diff --git a/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs b/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs index a7a6c54..b27f55f 100644 --- a/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs +++ b/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs @@ -79,9 +79,17 @@ public partial class FieldBehaviour2D : Sprite2D, ISaveable public override void _EnterTree() { + WateringCanState.OnFill += UpdateInteractionArea; + WateringCanState.OnEmpty += UpdateInteractionArea; LoadFromSaveData(); } + public override void _ExitTree() + { + WateringCanState.OnFill -= UpdateInteractionArea; + WateringCanState.OnEmpty -= UpdateInteractionArea; + } + public override void _Ready() { if(PlantingPlaceholder.GetChildCount() > 0) diff --git a/scripts/CSharp/Common/Farming/WateringCanState.cs b/scripts/CSharp/Common/Farming/WateringCanState.cs index 359ee6f..9e6fb08 100644 --- a/scripts/CSharp/Common/Farming/WateringCanState.cs +++ b/scripts/CSharp/Common/Farming/WateringCanState.cs @@ -30,6 +30,7 @@ public static class WateringCanState public static event WateringCanDelegate WateringCanActiveStateChanged; public static event Action? OnWater; public static event Action? OnFill; + public static event Action? OnEmpty; @@ -52,6 +53,11 @@ public static class WateringCanState _fillstate--; OnWater?.Invoke(); } + + if (_fillstate == 0) + { + OnEmpty?.Invoke(); + } } ///