#ifdef GAME_TEMPLATE enum InputTrigger { UP, ///< call listener when button/key is released DOWN, ///< call listener when button/key is pressed PRESSED, ///< call listener in each tick when button/key is pressed VALUE ///< call listener in each tick with current value }; class ActionManager { void ActionManager(ActionManager parent); proto native external bool RegisterAction(string actionName); proto native external bool RegisterContext(string contextName); proto native external float LocalValue(string actionName); proto native external bool GetActionTriggered(string actionName); proto native external bool ActivateAction(string actionName, int duration = 0); proto native external bool IsActionActive(string actionName); proto native external bool ActivateContext(string contextName, int duration = 0); proto native external bool IsContextActive(string contextName); proto external void AddActionListener(string actionName, InputTrigger trigger, func callback); proto native external void SetContextDebug(string contextName, bool bDebug); proto native void SetParent(ActionManager parent); proto native void SetDebug(bool bDebug); }; class InputManager: ActionManager { private void InputManager(ActionManager parent) {}; private void ~InputManager() {}; proto native external void ResetAction(string actionName); proto native void SetCursorPosition(int x, int y); proto native external bool RegisterActionManager(ActionManager pManager); proto native external bool UnregisterActionManager(ActionManager pManager); }; #endif