Added event handlers in Fieldbehaviour to react to watering can state changes

pull/49/head
kziolkowski 4 weeks ago
parent 3bdc8cd03f
commit f6e83e7fef

@ -79,9 +79,17 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable
public override void _EnterTree() public override void _EnterTree()
{ {
WateringCanState.OnFill += UpdateInteractionArea;
WateringCanState.OnEmpty += UpdateInteractionArea;
LoadFromSaveData(); LoadFromSaveData();
} }
public override void _ExitTree()
{
WateringCanState.OnFill -= UpdateInteractionArea;
WateringCanState.OnEmpty -= UpdateInteractionArea;
}
public override void _Ready() public override void _Ready()
{ {
if(PlantingPlaceholder.GetChildCount() > 0) if(PlantingPlaceholder.GetChildCount() > 0)

@ -30,6 +30,7 @@ public static class WateringCanState
public static event WateringCanDelegate WateringCanActiveStateChanged; public static event WateringCanDelegate WateringCanActiveStateChanged;
public static event Action? OnWater; public static event Action? OnWater;
public static event Action? OnFill; public static event Action? OnFill;
public static event Action? OnEmpty;
@ -52,6 +53,11 @@ public static class WateringCanState
_fillstate--; _fillstate--;
OnWater?.Invoke(); OnWater?.Invoke();
} }
if (_fillstate == 0)
{
OnEmpty?.Invoke();
}
} }
/// <summary> /// <summary>

Loading…
Cancel
Save