using GFramework.Core.system;
namespace GFramework.Godot.system;
///
/// 输入系统接口,用于统一管理游戏中的输入操作和键位绑定
///
public interface IInputSystem : ISystem
{
///
/// 设置指定动作的按键绑定
///
/// 动作名称
/// 按键码
void SetBinding(string actionName, string keyCode);
///
/// 获取指定动作的按键绑定
///
/// 动作名称
/// 绑定的按键码
string GetBinding(string actionName);
///
/// 检查指定动作是否正在被执行
///
/// 动作名称
/// 如果动作正在执行则返回true,否则返回false
bool IsActionPressed(string actionName);
///
/// 检查指定动作是否刚刚开始执行
///
/// 动作名称
/// 如果动作刚刚开始执行则返回true,否则返回false
bool IsActionJustPressed(string actionName);
///
/// 检查指定动作是否刚刚停止执行
///
/// 动作名称
/// 如果动作刚刚停止执行则返回true,否则返回false
bool IsActionJustReleased(string actionName);
///
/// 添加输入动作
///
/// 动作名称
/// 默认按键绑定
void AddAction(string actionName, string defaultKeyCode);
///
/// 移除输入动作
///
/// 动作名称
void RemoveAction(string actionName);
///
/// 保存输入配置到文件
///
void SaveConfiguration();
///
/// 从文件加载输入配置
///
void LoadConfiguration();
///
/// 更新输入系统状态,应在每帧调用
///
/// 帧间隔时间
void Update(double delta);
}