using GFramework.Core.Abstractions.architecture;
using GFramework.Core.architecture;
using Godot;
namespace GFramework.Godot.architecture;
///
/// 抽象的Godot模块基类,用于定义Godot框架中的模块行为
///
public abstract class AbstractGodotModule : IGodotModule
{
///
/// 获取模块关联的Godot节点
///
public abstract Node Node { get; }
///
/// 当架构阶段发生变化时调用此方法
///
/// 当前的架构阶段
/// 架构实例
public virtual void OnPhase(ArchitecturePhase phase, IArchitecture architecture)
{
}
///
/// 当架构阶段发生变化时调用此方法
///
/// 当前的架构阶段
public virtual void OnArchitecturePhase(ArchitecturePhase phase)
{
}
///
/// 安装模块到指定架构中
///
/// 要安装到的架构实例
public abstract void Install(IArchitecture architecture);
///
/// 当模块从架构中分离时调用此方法
///
public virtual void OnDetach()
{
}
///
/// 当模块被附加到架构时调用此方法
///
/// 被附加到的架构实例
public virtual void OnAttach(Architecture architecture)
{
}
}