diff --git a/State/Character/CharacterState.cs b/State/Character/CharacterState.cs index ee458b9..17017d7 100644 --- a/State/Character/CharacterState.cs +++ b/State/Character/CharacterState.cs @@ -70,4 +70,6 @@ public abstract partial class CharacterState : Node, IState } public virtual CharacterState Input(InputEvent @event) => null; + + public virtual CharacterState UnhandledInput(InputEvent @event) => null; } diff --git a/State/Character/PlayerState.cs b/State/Character/PlayerState.cs index 515e344..e9493ae 100644 --- a/State/Character/PlayerState.cs +++ b/State/Character/PlayerState.cs @@ -13,7 +13,7 @@ public abstract partial class PlayerState : CharacterState [Export] public PlayerMaxLevelState MaxLevelState { get; set; } - public override CharacterState Input(InputEvent @event) + public override CharacterState UnhandledInput(InputEvent @event) { var inventory = Character.Inventory; var player = _player; @@ -60,16 +60,16 @@ public abstract partial class PlayerState : CharacterState } } - return base.Input(@event); + return base.UnhandledInput(@event); } public override CharacterState Process(double delta) { Character.Direction = Godot.Input.GetVector("left", "right", "up", "down"); - Character.LookTowardsDirection(); var player = _player; + var desiredTarget = player.GetDesiredInputFromInput(); if (!desiredTarget.IsZeroApprox()) { @@ -77,6 +77,8 @@ public abstract partial class PlayerState : CharacterState player.DesiredTarget = desiredTarget; } + Character.LookTowardsDirection(); + if (Character.Inventory.SelectedItem is Items.Weapon weapon) { var isAttack1On = Godot.Input.IsActionPressed("attack1");