GwWuYou 4bd9853ec1 feat(input): 引入输入转换器接口及实现
新增 `IInputTranslator` 接口用于解耦原始输入与游戏事件的转换逻辑。
在 `InputSystem` 中增加注册、注销和处理原始输入的方法,支持优先级控制。
重构 `GodotInputBridge`,移除原有硬编码翻译逻辑,改为通过 `HandleRaw` 调用转换器处理。
新增 `GodotInputTranslator` 实现 `IInputTranslator`,负责将 Godot 输入事件翻译为游戏事件。
模块初始化时自动注册该转换器至输入系统。
2025-12-21 16:34:20 +08:00

31 lines
1.1 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.

namespace GFramework.Game.input;
public static class InputEvents
{
/// <summary>
/// 按键输入事件
/// </summary>
/// <param name="Action">按键操作名称</param>
/// <param name="Pressed">按键是否被按下true表示按下false表示释放</param>
/// <param name="Echo">是否为回显事件,用于处理按键重复触发</param>
public sealed record KeyInputEvent(
string Action,
bool Pressed,
bool Echo
) : IGameInputEvent;
/// <summary>
/// 指针/鼠标输入事件
/// </summary>
/// <typeparam name="TVector2">二维向量类型</typeparam>
/// <param name="Position">指针当前位置坐标</param>
/// <param name="Delta">指针位置变化量</param>
/// <param name="Button">鼠标按键编号0表示左键1表示右键2表示中键</param>
/// <param name="Pressed">按键是否被按下true表示按下false表示释放</param>
public sealed record PointerInputEvent<TVector2>(
TVector2 Position,
TVector2 Delta,
int Button,
bool Pressed
) : IGameInputEvent where TVector2 : struct;
}