GFramework/GFramework.Godot/architecture/AbstractGodotModule.cs
GwWuYou 339498e629 feat(GFramework.Godot): 引入 Godot 输入模块与架构锚点重构
新增 GodotInputModule 和相关输入事件类型,实现 Godot 输入系统与游戏框架的桥接。
重构架构锚点类名及其引用,统一使用 GFrameworkConstants 中定义的框架名称常量。
添加 AbstractGodotModule 基类以规范模块行为,并完善输入事件记录类定义。
2025-12-21 16:13:16 +08:00

59 lines
1.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using GFramework.Core.architecture;
using Godot;
namespace GFramework.Godot.architecture;
/// <summary>
/// 抽象的Godot模块基类用于定义Godot框架中的模块行为
/// </summary>
/// <typeparam name="T">架构类型必须继承自Architecture并且有无参构造函数</typeparam>
public abstract class AbstractGodotModule<T>: IGodotModule<T> where T : Architecture<T>, new()
{
/// <summary>
/// 当架构阶段发生变化时调用此方法
/// </summary>
/// <param name="phase">当前的架构阶段</param>
/// <param name="arch">架构实例</param>
public virtual void OnPhase(ArchitecturePhase phase, IArchitecture arch)
{
}
/// <summary>
/// 当架构阶段发生变化时调用此方法
/// </summary>
/// <param name="phase">当前的架构阶段</param>
public virtual void OnArchitecturePhase(ArchitecturePhase phase)
{
}
/// <summary>
/// 安装模块到指定架构中
/// </summary>
/// <param name="architecture">要安装到的架构实例</param>
public abstract void Install(IArchitecture architecture);
/// <summary>
/// 获取模块关联的Godot节点
/// </summary>
public abstract Node Node { get; }
/// <summary>
/// 当模块被附加到架构时调用此方法
/// </summary>
/// <param name="architecture">被附加到的架构实例</param>
public virtual void OnAttach(Architecture<T> architecture)
{
}
/// <summary>
/// 当模块从架构中分离时调用此方法
/// </summary>
public virtual void OnDetach()
{
}
}