namespace GFramework.Godot.system; /// /// 输入映射类,管理所有的输入动作及其绑定 /// public class InputMap { private readonly Dictionary _actions = new(); /// /// 添加输入动作 /// /// 输入动作 public void AddAction(InputAction action) { _actions[action.Name] = action; } /// /// 移除输入动作 /// /// 动作名称 public void RemoveAction(string actionName) { _actions.Remove(actionName); } /// /// 获取输入动作 /// /// 动作名称 /// 输入动作,如果不存在则返回null public InputAction GetAction(string actionName) { return _actions.GetValueOrDefault(actionName); } /// /// 获取所有输入动作 /// /// 输入动作列表 public IEnumerable GetAllActions() { return _actions.Values; } /// /// 检查是否存在指定名称的动作 /// /// 动作名称 /// 存在返回true,否则返回false public bool ContainsAction(string actionName) { return _actions.ContainsKey(actionName); } /// /// 根据按键查找绑定的动作 /// /// 按键码 /// 绑定到该按键的所有动作 public IEnumerable FindActionsByBinding(string keyCode) { return _actions.Values.Where(action => action.CurrentBindings.Contains(keyCode)); } }