gewuyou ebbef321ad feat(input): 新增统一输入抽象与Godot集成
- 新增输入绑定 DTO、设备上下文和 UI 语义桥接契约。

- 实现 Game 默认输入绑定存储、动作映射和 UI 分发桥接。

- 落地 Godot InputMap 适配、测试覆盖与配套文档。

- 更新 ai-plan 恢复点、worktree 映射与采用入口。
2026-05-10 22:29:26 +08:00

42 lines
1.2 KiB
C#

// Copyright (c) 2025-2026 GeWuYou
// SPDX-License-Identifier: Apache-2.0
namespace GFramework.Game.Abstractions.Input;
/// <summary>
/// 描述当前活跃输入设备上下文。
/// </summary>
public sealed class InputDeviceContext
{
/// <summary>
/// 初始化一个输入设备上下文。
/// </summary>
/// <param name="deviceKind">当前设备族。</param>
/// <param name="deviceIndex">设备索引;未知时为 <see langword="null" />。</param>
/// <param name="deviceName">宿主归一化后的设备名称。</param>
public InputDeviceContext(
InputDeviceKind deviceKind,
int? deviceIndex = null,
string? deviceName = null)
{
DeviceKind = deviceKind;
DeviceIndex = deviceIndex;
DeviceName = deviceName ?? string.Empty;
}
/// <summary>
/// 获取当前设备族。
/// </summary>
public InputDeviceKind DeviceKind { get; }
/// <summary>
/// 获取当前设备索引。
/// </summary>
public int? DeviceIndex { get; }
/// <summary>
/// 获取宿主归一化后的设备名称。
/// </summary>
public string DeviceName { get; }
}