public EConsole(SpriteBatch spriteBatch) { keyboardState = new KeyboardState(); _spriteBatch = spriteBatch; headLine = new MText(_spriteBatch, new Vector2(10, 45), "", GameMain.fontTest); userinput = new MInput(_spriteBatch, new Vector2(10, 10), "", GameMain.fontTest, keyboardState); }
public static void UpdateInputs() { UpdatePlayerInfo(); kbState = Keyboard.GetState(); GamePadState padState = GetGamePadState(); HandleFrameRates(padState); CheckControls(padState); FrameStepping(padState); if (HasFlag(state, State.Enable)) { Running = true; if (HasFlag(state, State.FrameStep)) { return; } if (HasFlag(state, State.Record)) { controller.RecordPlayer(); } else { bool fastForward = controller.HasFastForward; controller.PlaybackPlayer(); if (fastForward && !controller.HasFastForward) { nextState |= State.FrameStep; FrameLoops = 1; } if (!controller.CanPlayback) { DisableRun(); } } string status = controller.Current.Line + "[" + controller.ToString() + "]"; CurrentStatus = status; } else { Running = false; CurrentStatus = null; if (!Engine.Instance.IsActive) { for (int i = 0; i < 4; i++) { if (MInput.GamePads[i].Attached) { MInput.GamePads[i].CurrentState = padState; } } MInput.UpdateVirtualInputs(); } } }
public static void SetInputs(InputRecord input) { GamePadDPad pad; GamePadThumbSticks sticks; if (input.HasActions(Actions.Feather)) { pad = new GamePadDPad(ButtonState.Released, ButtonState.Released, ButtonState.Released, ButtonState.Released); sticks = new GamePadThumbSticks(new Vector2(input.GetX(), input.GetY()), new Vector2(0, 0)); } else { pad = new GamePadDPad( input.HasActions(Actions.Up) ? ButtonState.Pressed : ButtonState.Released, input.HasActions(Actions.Down) ? ButtonState.Pressed : ButtonState.Released, input.HasActions(Actions.Left) ? ButtonState.Pressed : ButtonState.Released, input.HasActions(Actions.Right) ? ButtonState.Pressed : ButtonState.Released ); sticks = new GamePadThumbSticks(new Vector2(0, 0), new Vector2(0, 0)); } GamePadState state = new GamePadState( sticks, new GamePadTriggers(input.HasActions(Actions.Journal) ? 1f : 0f, 0), new GamePadButtons( (input.HasActions(Actions.Jump) ? Buttons.A : (Buttons)0) | (input.HasActions(Actions.Jump2) ? Buttons.Y : (Buttons)0) | (input.HasActions(Actions.Dash) ? Buttons.B : (Buttons)0) | (input.HasActions(Actions.Dash2) ? Buttons.X : (Buttons)0) | (input.HasActions(Actions.Grab) ? Buttons.RightShoulder : (Buttons)0) | (input.HasActions(Actions.Start) ? Buttons.Start : (Buttons)0) | (input.HasActions(Actions.Restart) ? Buttons.LeftShoulder : (Buttons)0) ), pad ); bool found = false; for (int i = 0; i < 4; i++) { MInput.GamePads[i].Update(); if (MInput.GamePads[i].Attached) { found = true; MInput.GamePads[i].CurrentState = state; } } if (!found) { MInput.GamePads[0].CurrentState = state; MInput.GamePads[0].Attached = true; } MInput.UpdateVirtualInputs(); }
public void EatInput() { // prevent game from seeing any inputs // but keep a copy so we can get accurate pressed/released data for ourselves this.personalKeyboard = MInput.Keyboard.CurrentState; this.personalMouse = MInput.Mouse.CurrentState; for (var i = 0; i < 4; i++) { this.personalGamepads[i] = MInput.GamePads[i].CurrentState; } MInput.UpdateNull(); }
private void SetInputs() { GamePadDPad pad; GamePadThumbSticks sticks; if (Current.HasActions(Actions.Feather)) { pad = new GamePadDPad(ButtonState.Released, ButtonState.Released, ButtonState.Released, ButtonState.Released); sticks = new GamePadThumbSticks(new Vector2(Current.GetX(), Current.GetY()), new Vector2(0, 0)); } else { pad = new GamePadDPad( Current.HasActions(Actions.Up) ? ButtonState.Pressed : ButtonState.Released, Current.HasActions(Actions.Down) ? ButtonState.Pressed : ButtonState.Released, Current.HasActions(Actions.Left) ? ButtonState.Pressed : ButtonState.Released, Current.HasActions(Actions.Right) ? ButtonState.Pressed : ButtonState.Released ); sticks = new GamePadThumbSticks(new Vector2(0, 0), new Vector2(0, 0)); } GamePadState state = new GamePadState( sticks, new GamePadTriggers(Current.HasActions(Actions.Journal) ? 1f : 0f, 0), new GamePadButtons( (Current.HasActions(Actions.Jump) ? Buttons.A : (Buttons)0) | (Current.HasActions(Actions.Dash) ? Buttons.B : (Buttons)0) | (Current.HasActions(Actions.Grab) ? Buttons.RightShoulder : (Buttons)0) | (Current.HasActions(Actions.Start) ? Buttons.Start : (Buttons)0) | (Current.HasActions(Actions.Restart) ? Buttons.LeftShoulder : (Buttons)0) ), pad ); for (int i = 0; i < 4; i++) { MInput.GamePads[i].Update(); if (MInput.GamePads[i].Attached) { MInput.GamePads[i].CurrentState = state; } } MInput.UpdateVirtualInputs(); }
private int getTouchCount(bool realTouch) { int count = 0; if (realTouch || MInput.Instance.enableRemote) { count = Input.touchCount; } else { if (Input.GetMouseButton(0) || Input.GetMouseButtonUp(0)) { count = 1; if (MInput.GetSecondeFingerSimulation()) { if (Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(MInput.Instance.twistKey) || Input.GetKey(KeyCode.LeftControl) || Input.GetKey(MInput.Instance.swipeKey)) { count = 2; } if (Input.GetKeyUp(KeyCode.LeftAlt) || Input.GetKeyUp(MInput.Instance.twistKey) || Input.GetKeyUp(KeyCode.LeftControl) || Input.GetKeyUp(MInput.Instance.swipeKey)) { count = 2; } } if (count == 0) { complexCenter = Vector2.zero; oldMousePosition[0] = new Vector2(-1, -1); oldMousePosition[1] = new Vector2(-1, -1); } } } return(count); }
/// <summary> /// Determines whether this instance is over user interface element. /// </summary> /// <returns><c>true</c> if this instance is over user interface element; otherwise, <c>false</c>.</returns> public bool IsOverUIElement() { return(MInput.IsFingerOverUIElement(fingerIndex)); }
/// <summary> /// Gets the current picked object. /// </summary> /// <returns>The current picked object.</returns> public GameObject GetCurrentPickedObject(bool isTwoFinger = false) { return(MInput.GetCurrentPickedObject(fingerIndex, isTwoFinger)); }
protected void CreateInputs() { #if UNITY_EDITOR MInput input = GetComponent <MInput>(); if (input == null) { input = gameObject.AddComponent <MInput>(); } #region Open Close Input var OpenCloseInput = input.FindInput("OpenSelector"); if (OpenCloseInput == null) { OpenCloseInput = new InputRow("OpenSelector", "OpenSelector", KeyCode.Escape, InputButton.Down, InputType.Key); input.inputs.Add(OpenCloseInput); UnityEditor.Events.UnityEventTools.AddPersistentListener(OpenCloseInput.OnInputDown, ToggleSelector); } #endregion #region Submit Input var Submit = input.FindInput("Submit"); if (Submit == null) { Submit = new InputRow("Submit", "Submit", KeyCode.Return, InputButton.Down, InputType.Key); input.inputs.Add(Submit); UnityEditor.Events.UnityEventTools.AddPersistentListener(Submit.OnInputDown, Controller.Submit_Input); } #endregion #region ChangeLeft Input var ChangeLeft = input.FindInput("ChangeLeft"); if (ChangeLeft == null) { ChangeLeft = new InputRow("ChangeLeft", "ChangeLeft", KeyCode.LeftArrow, InputButton.Down, InputType.Key); input.inputs.Add(ChangeLeft); UnityEditor.Events.UnityEventTools.AddPersistentListener(ChangeLeft.OnInputDown, Controller.ChangeLeft); } #endregion #region ChangeRight Input var ChangeRight = input.FindInput("ChangeRight"); if (ChangeRight == null) { ChangeRight = new InputRow("ChangeRight", "ChangeRight", KeyCode.RightArrow, InputButton.Down, InputType.Key); input.inputs.Add(ChangeRight); UnityEditor.Events.UnityEventTools.AddPersistentListener(ChangeRight.OnInputDown, Controller.ChangeRight); } #endregion #region ChangeUp Input var ChangeUp = input.FindInput("ChangeUp"); if (ChangeUp == null) { ChangeUp = new InputRow("ChangeUp", "ChangeUp", KeyCode.UpArrow, InputButton.Down, InputType.Key); input.inputs.Add(ChangeUp); UnityEditor.Events.UnityEventTools.AddPersistentListener(ChangeUp.OnInputDown, Controller.ChangeUp); } #endregion #region ChangeDown Input var ChangeDown = input.FindInput("ChangeDown"); if (ChangeDown == null) { ChangeDown = new InputRow("ChangeDown", "ChangeDown", KeyCode.DownArrow, InputButton.Down, InputType.Key); input.inputs.Add(ChangeDown); UnityEditor.Events.UnityEventTools.AddPersistentListener(ChangeDown.OnInputDown, Controller.ChangeDown); } #endregion UnityEditor.EditorUtility.SetDirty(this); UnityEditor.EditorUtility.SetDirty(input); #endif }
public static void UpdateInputs() { Player player = null; long chapterTime = 0; if (Engine.Scene is Level level) { player = level.Tracker.GetEntity <Player>(); if (player != null) { string statuses = ((int)(player.dashCooldownTimer * 60f) < 1 && player.Dashes > 0 ? "Dash " : string.Empty) + (player.LoseShards ? "Ground " : string.Empty) + (player.WallJumpCheck(1) ? "Wall-R " : string.Empty) + (player.WallJumpCheck(-1) ? "Wall-L " : string.Empty); chapterTime = ((Celeste.Celeste)Engine.Instance).AutoSplitterInfo.ChapterTime; Vector2 diff = (player.ExactPosition - lastPos) * 60; if (player.Holding == null) { foreach (Component component in level.Tracker.GetComponents <Holdable>()) { Holdable holdable = (Holdable)component; if (holdable.Check(player)) { statuses += "Grab "; break; } } } StringBuilder sb = new StringBuilder(); sb.Append("Pos: ").Append(player.ExactPosition.X.ToString("0.0", enUS)).Append(',').AppendLine(player.ExactPosition.Y.ToString("0.0", enUS)); sb.Append("Speed: ").Append(player.Speed.X.ToString("0.00", enUS)).Append(',').Append(player.Speed.Y.ToString("0.00", enUS)).Append(',').AppendLine(player.Speed.Length().ToString("0.00", enUS)); sb.Append("Vel: ").Append(diff.X.ToString("0.00", enUS)).Append(',').Append(diff.Y.ToString("0.00", enUS)).Append(',').AppendLine(diff.Length().ToString("0.00", enUS)); sb.Append("Stamina: ").Append(player.Stamina.ToString("0")).Append(" Timer: ").AppendLine(((double)chapterTime / (double)10000000).ToString("0.000", enUS)); sb.Append(player.InControl && !level.Transitioning ? statuses : "NoControl ").Append(player.TimePaused ? "Paused " : string.Empty).Append(level.InCutscene ? "Cutscene " : string.Empty); PlayerStatus = sb.ToString(); } else { PlayerStatus = level.InCutscene ? "Cutscene" : null; } } else if (Engine.Scene is SummitVignette summit) { PlayerStatus = string.Concat("SummitVignette ", summit.ready); } else if (Engine.Scene is Overworld overworld) { PlayerStatus = string.Concat("Overworld ", overworld.ShowInputUI); } else if (Engine.Scene != null) { PlayerStatus = Engine.Scene.GetType().Name; } kbState = Keyboard.GetState(); GamePadState padState = GetGamePadState(); HandleFrameRates(padState); CheckControls(padState); FrameStepping(padState); if (HasFlag(state, State.Enable)) { Running = true; if (HasFlag(state, State.FrameStep)) { return; } if (HasFlag(state, State.Record)) { controller.RecordPlayer(); } else { bool fastForward = controller.HasFastForward; controller.PlaybackPlayer(); if (fastForward && !controller.HasFastForward) { nextState |= State.FrameStep; FrameLoops = 1; } if (!controller.CanPlayback) { DisableRun(); } } string status = controller.Current.Line + "[" + controller.ToString() + "]"; CurrentStatus = status; } else { Running = false; CurrentStatus = null; if (!Engine.Instance.IsActive) { for (int i = 0; i < 4; i++) { if (MInput.GamePads[i].Attached) { MInput.GamePads[i].CurrentState = padState; } } MInput.UpdateVirtualInputs(); } } if (player != null && chapterTime != lastTimer) { lastPos = player.ExactPosition; lastTimer = chapterTime; } }
void ConnectToInput() { MInput input = GetComponent <MInput>(); if (input == null) { input = gameObject.AddComponent <MInput>(); } BoolVar RiderCombatMode = MalbersTools.GetInstance <BoolVar>("RC Combat Mode"); BoolVar RCWeaponInput = MalbersTools.GetInstance <BoolVar>("RC Weapon Input"); var inv = GetComponent <MInventory>(); #region AIM INPUT var AIM = input.FindInput("Aim"); if (AIM == null) { AIM = new InputRow("Aim", "Aim", KeyCode.Mouse1, InputButton.Press, InputType.Key); input.inputs.Add(AIM); AIM.active.Variable = RiderCombatMode; AIM.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(AIM.OnInputChanged, SetAim); Debug.Log("<B>Aim</B> Input created and connected to RiderCombat.SetAim()"); } #endregion #region RiderAttack1 INPUT var RCA1 = input.FindInput("RiderAttack1"); if (RCA1 == null) { RCA1 = new InputRow("RiderAttack1", "RiderAttack1", KeyCode.Mouse0, InputButton.Press, InputType.Key); input.inputs.Add(RCA1); RCA1.active.Variable = RiderCombatMode; RCA1.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(RCA1.OnInputDown, MainAttack); UnityEditor.Events.UnityEventTools.AddPersistentListener(RCA1.OnInputUp, MainAttackReleased); Debug.Log("<B>RiderAttack1</B> Input created and connected to RiderCombat.MainAttack() and RiderCombat.MainAttackReleased() "); } #endregion #region RiderAttack2 INPUT var RCA2 = input.FindInput("RiderAttack2"); if (RCA2 == null) { RCA2 = new InputRow("RiderAttack2", "RiderAttack2", KeyCode.Mouse1, InputButton.Press, InputType.Key); input.inputs.Add(RCA2); RCA2.active.Variable = RiderCombatMode; RCA2.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(RCA2.OnInputDown, SecondAttack); UnityEditor.Events.UnityEventTools.AddPersistentListener(RCA2.OnInputUp, SecondAttackReleased); Debug.Log("<B>RiderAttack2</B> Input created and connected to RiderCombat.SecondAttack() and RiderCombat.SecondAttackReleased() "); } #endregion #region Reload INPUT var Reload = input.FindInput("Reload"); if (Reload == null) { Reload = new InputRow("Reload", "Reload", KeyCode.R, InputButton.Down, InputType.Key); input.inputs.Add(Reload); Reload.active.Variable = RiderCombatMode; Reload.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(Reload.OnInputDown, ReloadWeapon); Debug.Log("<B>Reload</B> Input created and connected to RiderCombat.ReloadWeapon() "); } #endregion #region Weapon1 INPUT var w1 = input.FindInput("Weapon1"); if (w1 == null) { w1 = new InputRow("Weapon1", "Weapon1", KeyCode.Alpha4, InputButton.Down, InputType.Key); input.inputs.Add(w1); w1.active.Variable = RCWeaponInput; w1.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(w1.OnInputDown, Change_Weapon_Holder_Back); if (inv) { UnityEditor.Events.UnityEventTools.AddIntPersistentListener(w1.OnInputDown, inv.EquipItem, 0); } Debug.Log("<B>Weapon1</B> Input created and connected to RiderCombat.Change_Weapon_Holder_Back() "); } #endregion #region Weapon2 INPUT var w2 = input.FindInput("Weapon2"); if (w2 == null) { w2 = new InputRow("Weapon2", "Weapon2", KeyCode.Alpha5, InputButton.Down, InputType.Key); input.inputs.Add(w2); w2.active.Variable = RCWeaponInput; w2.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(w2.OnInputDown, Change_Weapon_Holder_Left); if (inv) { UnityEditor.Events.UnityEventTools.AddIntPersistentListener(w2.OnInputDown, inv.EquipItem, 1); } Debug.Log("<B>Weapon2</B> Input created and connected to RiderCombat.Change_Weapon_Holder_Left() "); } #endregion #region Weapon3 INPUT var w3 = input.FindInput("Weapon3"); if (w3 == null) { w3 = new InputRow("Weapon3", "Weapon3", KeyCode.Alpha6, InputButton.Down, InputType.Key); input.inputs.Add(w3); w3.active.Variable = RCWeaponInput; w3.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(w3.OnInputDown, Change_Weapon_Holder_Right); if (inv) { UnityEditor.Events.UnityEventTools.AddIntPersistentListener(w3.OnInputDown, inv.EquipItem, 2); } Debug.Log("<B>Weapon3</B> Input created and connected to RiderCombat.Change_Weapon_Holder_Right() "); } #endregion }
public RrtStarHelper(Random mRandom, RrtStarParameter mRrtParameter, int iTaskIndex, int iStageIndex, MInput mInput , Func <FPoint3, bool> isSafePoint, Func <FPoint3, FPoint3, bool> isSafeLine) { this._mRandom = mRandom; this.MRrtParameter = mRrtParameter; this.ITaskIndex = iTaskIndex; this.IStageIndex = iStageIndex; this._mInput = mInput; this._isSafeLine = isSafeLine; this._isSafePoint = isSafePoint; }
void ConnectToInput() { MInput input = GetComponent <MInput>(); if (input == null) { input = gameObject.AddComponent <MInput>(); } BoolVar RiderCombatMode = MTools.GetInstance <BoolVar>("RC Combat Mode"); BoolVar RCWeaponInput = MTools.GetInstance <BoolVar>("RC Weapon Input"); #region AIM INPUT var AIM = input.FindInput("Aim"); if (AIM == null) { AIM = new InputRow("Aim", "Aim", KeyCode.Mouse1, InputButton.Press, InputType.Key); input.inputs.Add(AIM); AIM.active.Variable = RiderCombatMode; AIM.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(AIM.OnInputChanged, Aim_Set); Debug.Log("<B>Aim</B> Input created and connected to RiderCombat.SetAim()"); } #endregion #region RiderAttack1 INPUT var RCA1 = input.FindInput("RiderAttack1"); if (RCA1 == null) { RCA1 = new InputRow("RiderAttack1", "RiderAttack1", KeyCode.Mouse0, InputButton.Press, InputType.Key); input.inputs.Add(RCA1); RCA1.active.Variable = RiderCombatMode; RCA1.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(RCA1.OnInputDown, MainAttack); UnityEditor.Events.UnityEventTools.AddPersistentListener(RCA1.OnInputUp, MainAttackReleased); Debug.Log("<B>RiderAttack1</B> Input created and connected to RiderCombat.MainAttack() and RiderCombat.MainAttackReleased()"); } #endregion #region RiderAttack2 INPUT var RCA2 = input.FindInput("RiderAttack2"); if (RCA2 == null) { RCA2 = new InputRow("RiderAttack2", "RiderAttack2", KeyCode.Mouse1, InputButton.Press, InputType.Key); input.inputs.Add(RCA2); RCA2.active.Variable = RiderCombatMode; RCA2.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(RCA2.OnInputDown, SecondAttack); UnityEditor.Events.UnityEventTools.AddPersistentListener(RCA2.OnInputUp, SecondAttackReleased); Debug.Log("<B>RiderAttack2</B> Input created and connected to RiderCombat.SecondAttack() and RiderCombat.SecondAttackReleased() "); } #endregion #region Reload INPUT var Reload = input.FindInput("Reload"); if (Reload == null) { Reload = new InputRow("Reload", "Reload", KeyCode.R, InputButton.Down, InputType.Key); input.inputs.Add(Reload); Reload.active.Variable = RiderCombatMode; Reload.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(Reload.OnInputDown, ReloadWeapon); Debug.Log("<B>Reload</B> Input created and connected to RiderCombat.ReloadWeapon() "); } #endregion EditorUtility.SetDirty(input); }
public static void UpdateInputs() { Level level = Engine.Scene as Level; if (level != null) { Player player = level.Tracker.GetEntity <Player>(); if (player != null) { string statuses = ((int)(player.dashCooldownTimer * 60f) < 1 && player.Dashes > 0 ? "Dash " : string.Empty) + (player.LoseShards ? "Ground " : string.Empty) + (player.WallJumpCheck(1) ? "Wall-R " : string.Empty) + (player.WallJumpCheck(-1) ? "Wall-L " : string.Empty); string info = "Pos: " + player.Position.X.ToString("0") + "," + player.Position.Y.ToString("0") + "\r\nSpeed: " + player.Speed.X.ToString("0.00") + "," + player.Speed.Y.ToString("0.00") + "," + player.Speed.Length().ToString("0.00") + "\r\nStamina: " + player.Stamina.ToString("0") + " Timer: " + ((double)((Celeste.Celeste)Engine.Instance).AutoSplitterInfo.ChapterTime / (double)10000000).ToString("0.000") + "\r\n" + (player.InControl && !level.Transitioning ? statuses : "NoControl ") + (player.TimePaused ? "Paused " : string.Empty) + (level.InCutscene ? "Cutscene " : string.Empty); PlayerStatus = info; } else { PlayerStatus = level.InCutscene ? "Cutscene" : null; } } else if (Engine.Scene != null) { PlayerStatus = Engine.Scene.GetType().Name; } GamePadState padState = GetGamePadState(); HandleFrameRates(padState); CheckControls(padState); FrameStepping(padState); if (HasFlag(state, State.Enable)) { Running = true; if (HasFlag(state, State.FrameStep)) { return; } if (HasFlag(state, State.Record)) { controller.RecordPlayer(); } else { bool fastForward = controller.HasFastForward; controller.PlaybackPlayer(); if (fastForward && !controller.HasFastForward) { nextState |= State.FrameStep; FrameLoops = 1; } if (!controller.CanPlayback) { DisableRun(); } } string status = controller.Current.Line + "[" + controller.ToString() + "]"; CurrentStatus = status; } else { Running = false; CurrentStatus = null; if (!Engine.Instance.IsActive) { for (int i = 0; i < 4; i++) { if (MInput.GamePads[i].Attached) { MInput.GamePads[i].CurrentState = padState; } } MInput.UpdateVirtualInputs(); } } }
void ConnectToInput() { MInput input = GetComponent <MInput>(); if (input == null) { input = gameObject.AddComponent <MInput>(); } #region Mount Input var mountInput = input.FindInput("Mount"); if (mountInput == null) { mountInput = new InputRow("Mount", "Mount", KeyCode.F, InputButton.Down, InputType.Key); input.inputs.Add(mountInput); mountInput.active.Variable = MalbersTools.GetInstance <BoolVar>("Can Mount"); mountInput.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(mountInput.OnInputDown, MountAnimal); Debug.Log("<B>Mount</B> Input created and connected to Rider.MountAnimal"); } #endregion #region Dismount Input var DismountInput = input.FindInput("Dismount"); if (DismountInput == null) { DismountInput = new InputRow("Dismount", "Dismount", KeyCode.F, InputButton.LongPress, InputType.Key); DismountInput.LongPressTime = 0.2f; input.inputs.Add(DismountInput); DismountInput.active.Variable = MalbersTools.GetInstance <BoolVar>("Can Dismount"); DismountInput.active.UseConstant = false; var RiderDismountUI = MalbersTools.GetInstance <MEvent>("Rider Dismount UI"); UnityEditor.Events.UnityEventTools.AddPersistentListener(DismountInput.OnLongPress, DismountAnimal); if (RiderDismountUI != null) { UnityEditor.Events.UnityEventTools.AddPersistentListener(DismountInput.OnLongPress, RiderDismountUI.Invoke); UnityEditor.Events.UnityEventTools.AddPersistentListener(DismountInput.OnPressedNormalized, RiderDismountUI.Invoke); UnityEditor.Events.UnityEventTools.AddPersistentListener(DismountInput.OnInputUp, RiderDismountUI.Invoke); UnityEditor.Events.UnityEventTools.AddIntPersistentListener(DismountInput.OnInputDown, RiderDismountUI.Invoke, 0); } Debug.Log("<B>Dismount</B> Input created and connected to Rider.DismountAnimal"); } #endregion #region CanCallMount Input var CanCallMount = input.FindInput("Call Mount"); if (CanCallMount == null) { CanCallMount = new InputRow("Call Mount", "Call Mount", KeyCode.F, InputButton.Down, InputType.Key); input.inputs.Add(CanCallMount); CanCallMount.active.Variable = MalbersTools.GetInstance <BoolVar>("Can Call Mount"); CanCallMount.active.UseConstant = false; UnityEditor.Events.UnityEventTools.AddPersistentListener(CanCallMount.OnInputDown, CallAnimalToggle); Debug.Log("<B>Call Mount</B> Input created and connected to Rider.CallAnimalToggle"); } #endregion }