Watering can animation plays when watering
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Godot;
|
||||
|
||||
namespace Babushka.scripts.CSharp.Common.CharacterControls;
|
||||
@@ -11,6 +13,7 @@ public partial class Player2D : CharacterBody2D
|
||||
private int _toolID = -1;
|
||||
private string _toolString;
|
||||
private bool anyActionPressed;
|
||||
private bool _wateringInProgress;
|
||||
private Vector2 _lastDirection = Vector2.Zero;
|
||||
|
||||
public override void _Process(double delta)
|
||||
@@ -61,6 +64,8 @@ public partial class Player2D : CharacterBody2D
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_wateringInProgress)
|
||||
return;
|
||||
//idle
|
||||
if(_lastDirection == Vector2.Zero || _lastDirection == Vector2.Down)
|
||||
_sprite.Animation = "front idle" + _toolString;
|
||||
@@ -90,4 +95,23 @@ public partial class Player2D : CharacterBody2D
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void PlayWateringAnimation()
|
||||
{
|
||||
if (_toolID == 1 && !_wateringInProgress)
|
||||
{
|
||||
_sprite.Animation = "diagonal wateringcan";
|
||||
_sprite.Play();
|
||||
_wateringInProgress = true;
|
||||
Task.Run(DelayedWateringCanReset);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task DelayedWateringCanReset()
|
||||
{
|
||||
await Task.Delay(1000);
|
||||
_wateringInProgress = false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@ public partial class FarmingControls2D : Node2D
|
||||
private int _currentWateringCanStep = 0;
|
||||
private int _wateringCanCapacity = 3;
|
||||
|
||||
[Signal] public delegate void WateringFieldEventHandler();
|
||||
|
||||
#region Tools
|
||||
|
||||
/// <summary>
|
||||
@@ -84,6 +86,7 @@ public partial class FarmingControls2D : Node2D
|
||||
return;
|
||||
|
||||
field.Water();
|
||||
EmitSignal(SignalName.WateringField);
|
||||
|
||||
if (_currentWateringCanStep < _wateringCanCapacity)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user