/// <inheritdoc /> public IInput EnableInputLevel(InputLevel level) { if (IsInputEnabled(level)) { return(this); } mEnabledInputs |= level; EventManager.Notify(() => EventManager.Local.InputLevelChanged(level, true)); return(this); }
/// <inheritdoc /> public IInput DisableInputLevel(InputLevel level) { if (!IsInputEnabled(level)) { return(this); } mEnabledInputs &= ~level; EventManager.Notify(() => EventManager.Local.InputLevelChanged(level, false)); return(this); }
/// <inheritdoc /> public IInput SetInputLevel(InputLevel level) { mEnabledInputs = level; foreach (object value in Enum.GetValues(typeof(InputLevel))) { InputLevel v = (InputLevel)value; if ((level & v) == v) { EventManager.Notify(() => EventManager.Local.InputLevelChanged(v, true)); } else { EventManager.Notify(() => EventManager.Local.InputLevelChanged(v, false)); } } return(this); }
public AxisMap(Func <string, float> check, string value, InputLevel level) : base(level) { mFunction = check; mAxisName = value; }
public InputMap(Func <T, bool> check, T value, InputLevel level) : base(level) { mFunction = check; mValue = value; }
/// <inheritdoc /> public bool IsInputEnabled(InputLevel level) { return((mEnabledInputs & level) == level); }
/// <inheritdoc /> public IInput SetInputLevelState(InputLevel flag, bool state) { return(state ? EnableInputLevel(flag) : DisableInputLevel(flag)); }
protected BaseInputMap(InputLevel l) { mInputLevel = l; }
/// <inheritdoc /> public IInput RegisterAxis(Func <string, float> method, string axis, Action <float> command, InputLevel level, bool allowOtherAxes = true) { Logger.Info("Registering " + command.Method.Name + " as a new input on axis " + axis + ".", Logger.System.Input); AxisMap newInput = new AxisMap(method, axis, level); ClearInputFromOtherCommands(newInput); if (!allowOtherAxes) { ClearOtherInputsForCommand(command, mAxes); } if (!mAxes.ContainsKey(command)) { mAxes[command] = new List <AxisMap>(); } mAxes[command].Add(newInput); return(this); }
/// <inheritdoc /> public IInput RegisterInput <T>(Func <T, bool> method, T key, Action command, InputLevel level, bool allowOtherKeys = true) { Logger.Info("Registering " + command.Method.Name + " as a new input on key " + key + ".", Logger.System.Input); if (command.Method.Name.Contains("Cmd") || command.Method.Name.Contains("Rpc")) { throw new ArgumentException("It is forbidden to bind network calls directly to the input system!", "command"); } var newInput = new InputMap <T>(method, key, level); ClearInputFromOtherCommands(newInput); if (!allowOtherKeys) { ClearOtherInputsForCommand(command, mCommands); } if (!mCommands.ContainsKey(command)) { mCommands[command] = new List <BaseInputMap>(); } mCommands[command].Add(newInput); return(this); }
/// <summary> /// Event called when the local player's input rules have changed. /// </summary> /// <param name="level">The input type that was changed.</param> /// <param name="state">Whether that input was enabled (true) or disabled (false).</param> public static void InputLevelChanged(InputLevel level, bool state) { OnInputLevelChanged(level, state); }