Player looks in last direction; fix #17

controller-support
HumanoidSandvichDispenser 2023-09-06 23:18:53 -07:00
parent 17104e7b74
commit 88c296dd13
Signed by: sandvich
GPG Key ID: 9A39BE37E602B22D
3 changed files with 29 additions and 4 deletions

View File

@ -130,7 +130,14 @@ public partial class Character : CharacterBody2D, IFaction
StunAnimation.Stop(); StunAnimation.Stop();
} }
Sprite.FlipH = Target.X < 0; if (Target.X < 0)
{
Sprite.FlipH = true;
}
else if (Target.X > 0)
{
Sprite.FlipH = false;
}
DrawTarget(); DrawTarget();
} }
@ -214,7 +221,7 @@ public partial class Character : CharacterBody2D, IFaction
scale.Y = -1; scale.Y = -1;
angle = Mathf.Pi - angle; angle = Mathf.Pi - angle;
} }
else else if (target.X > 0)
{ {
scale.Y = 1; scale.Y = 1;
} }

View File

@ -11,7 +11,20 @@ public sealed partial class Player : Character
{ {
private string _spriteAnim; private string _spriteAnim;
public Vector2 DesiredTarget { get; set; } private Vector2 _desiredTarget;
public Vector2 DesiredTarget
{
get => _desiredTarget;
set
{
if (value.IsZeroApprox())
{
return;
}
_desiredTarget = value;
}
}
[Export] [Export]
public PlayerCamera Camera { get; set; } public PlayerCamera Camera { get; set; }

View File

@ -56,7 +56,12 @@ public abstract partial class PlayerState : CharacterState
Character.LookTowardsDirection(); Character.LookTowardsDirection();
var player = _player; var player = _player;
player.DesiredTarget = player.GetDesiredInputFromInput(); var desiredTarget = player.GetDesiredInputFromInput();
if (!desiredTarget.IsZeroApprox())
{
// can never be zero
player.DesiredTarget = desiredTarget;
}
if (Character.Inventory.SelectedItem is Items.Weapon weapon) if (Character.Inventory.SelectedItem is Items.Weapon weapon)
{ {