WIP Wasserstand UI

This commit is contained in:
2025-07-05 17:34:03 +02:00
parent 57896e37df
commit 35c7e9a25e
24 changed files with 369 additions and 46 deletions
@@ -14,8 +14,7 @@ public partial class FarmingControls2D : Node2D
private int _toolId = -1;
private bool _wateringCanFilled = false;
private int _currentWateringCanStep = 0;
private int _wateringCanCapacity = 3;
[Signal] public delegate void WateringFieldEventHandler();
@@ -63,11 +62,11 @@ public partial class FarmingControls2D : Node2D
}
}
public void FillWateringCan(bool fillUp)
public void FillWateringCan()
{
if (_toolId == 1 )
{
_wateringCanFilled = fillUp;
WateringCanState.Fill();
}
}
@@ -78,18 +77,8 @@ public partial class FarmingControls2D : Node2D
return;
field.Water();
WateringCanState.Water();
EmitSignal(SignalName.WateringField);
if (_currentWateringCanStep < _wateringCanCapacity)
{
_currentWateringCanStep++;
}
else
{
_currentWateringCanStep = 0;
FillWateringCan(false);
}
}
private void MakeField(Vector2I fieldPosition)
@@ -15,6 +15,8 @@ public partial class VesnaBehaviour2D : Node
[Signal] public delegate void PickedUpToolEventHandler(bool success, int toolId);
[Signal] public delegate void FilledWateringCanEventHandler();
[Signal] public delegate void InventorySelectionChangedEventHandler(int toolId);
private InventoryManager _inventoryManager;
private InventoryInstance _inventoryInstance;
@@ -44,20 +46,21 @@ public partial class VesnaBehaviour2D : Node
if (currentItem == null)
return;
int toolId = -1;
if (currentItem.blueprint == _hoe)
{
ActivateTool(0);
return;
toolId = 0;
}
if (currentItem.blueprint == _wateringCan)
{
ActivateTool(1);
return;
toolId = 1;
}
ActivateTool(-1);
ActivateTool(toolId);
EmitSignal(SignalName.InventorySelectionChanged, toolId);
}
@@ -73,7 +76,7 @@ public partial class VesnaBehaviour2D : Node
{
if (toolId == 1)
{
_farmingControls.FillWateringCan(true);
_farmingControls.FillWateringCan();
_player2d.PlayWateringCanFillupAnimation();
EmitSignal(SignalName.FilledWateringCan);
}
@@ -0,0 +1,29 @@
namespace Babushka.scripts.CSharp.Common.Farming;
public static class WateringCanState
{
private static int _fillstate = 0;
public const int MAX_FILLSTATE = 6;
public static void Fill()
{
_fillstate = MAX_FILLSTATE;
}
public static void Water()
{
if(_fillstate > 0)
_fillstate--;
}
public static void Reset()
{
_fillstate = 0;
}
public static int GetFillState()
{
return _fillstate;
}
}