public object Get(string name, params object[] objects) { if (_keybindHost == null) { return(null); } if (!_keybindHost._actions.ContainsKey(name)) { return(null); } GameKeybind keybind = _keybindHost._actions[name]; GameKeybindContext context = new GameKeybindContext() { Actor = this, Host = _keybindHost, ActorParameter = Parameter, InstanceParameter = objects, KeyboardState = Keyboard.GetState(), MouseState = Mouse.GetState(), ControllerState = Controller?.GetState() ?? new GameControllerState(true), }; return(keybind[Type].Invoke(context)); }
public void Setup(string name, Func <GameKeybindContext, object> keyboard = null, Func <GameKeybindContext, object> gameController = null, Func <GameKeybindContext, object> ai = null) { GameKeybind bind; if (_actions.ContainsKey(name)) { bind = _actions[name]; } else { bind = new GameKeybind(); _actions.Add(name, bind); } bind.Keyboard = keyboard; bind.Controller = gameController; bind.AI = ai; }