WIP Wasserstand UI
This commit is contained in:
@@ -99,12 +99,14 @@ public partial class Player2D : CharacterBody2D
|
||||
_lastDirection = Vector2.Up;
|
||||
}
|
||||
|
||||
/*
|
||||
if (Input.IsActionPressed("item"))
|
||||
{
|
||||
_sprite.Animation = "diagonal item";
|
||||
anyActionPressed = true;
|
||||
_lastDirection = Vector2.Right;
|
||||
}
|
||||
*/
|
||||
|
||||
if (anyActionPressed)
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using Babushka.scripts.CSharp.Common.Farming;
|
||||
using Godot;
|
||||
|
||||
namespace Babushka.scripts.CSharp.Common.UI;
|
||||
|
||||
public partial class WateringCanUi : Node2D
|
||||
{
|
||||
[Export] private Sprite2D[] _stages;
|
||||
|
||||
private const int WATERING_CAN_ID = 1;
|
||||
|
||||
public void Refill()
|
||||
{
|
||||
WateringCanState.Fill();
|
||||
UpdateSprites();
|
||||
}
|
||||
|
||||
public void Water()
|
||||
{
|
||||
UpdateSprites();
|
||||
}
|
||||
|
||||
public void IsWateringCanActive(int toolId)
|
||||
{
|
||||
IsWateringCanActive(true, toolId);
|
||||
}
|
||||
|
||||
public void IsWateringCanActive(bool success, int toolId)
|
||||
{
|
||||
if (!success)
|
||||
return;
|
||||
UpdateSprites();
|
||||
}
|
||||
|
||||
|
||||
private void UpdateSprites()
|
||||
{
|
||||
for (int i = 0; i < _stages.Length; i++)
|
||||
{
|
||||
_stages[i].Visible = i < WateringCanState.GetFillState();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
uid://er03dkj8axlr
|
||||
Reference in New Issue
Block a user