// Copyright (c) 2025-2026 GeWuYou // SPDX-License-Identifier: Apache-2.0 namespace GFramework.Game.Abstractions.Input; /// /// 定义逻辑动作绑定的查询、修改与快照导入导出契约。 /// /// /// 该接口承担框架输入系统的持久化与重绑定边界。 /// 宿主层可以把自己的原生输入系统适配到这里,上层业务则只依赖动作名和绑定描述,不直接接触宿主输入事件。 /// public interface IInputBindingStore { /// /// 获取指定动作的当前绑定。 /// /// 动作名称。 /// 动作绑定快照。 InputActionBinding GetBindings(string actionName); /// /// 获取所有动作的当前绑定快照。 /// /// 全量输入绑定快照。 InputBindingSnapshot ExportSnapshot(); /// /// 使用给定快照替换当前绑定。 /// /// 要导入的快照。 void ImportSnapshot(InputBindingSnapshot snapshot); /// /// 把指定绑定设置为动作的主绑定。 /// /// 动作名称。 /// 新绑定。 /// 是否在冲突时交换已占用绑定。 void SetPrimaryBinding(string actionName, InputBindingDescriptor binding, bool swapIfTaken = true); /// /// 将指定动作恢复为默认绑定。 /// /// 动作名称。 void ResetAction(string actionName); /// /// 将所有动作恢复为默认绑定。 /// void ResetAll(); }