🚧 made preplaced fields show plants

This commit is contained in:
2025-11-11 14:27:56 +01:00
parent 55f0d2a77e
commit d51cc461f7
3 changed files with 18 additions and 18 deletions
@@ -1,12 +1,9 @@
using System;
using Babushka.scripts.CSharp.Common.Animation;
using Babushka.scripts.CSharp.Common.Inventory;
using Godot;
namespace Babushka.scripts.CSharp.Common.Farming;
/// <summary>
/// Determines the behaviour of a plant in Babushka.
/// </summary>
@@ -23,8 +20,9 @@ public partial class PlantBehaviour2D : Node2D
[Export] private bool _magicWordNeeded = true;
private string _magicWordDialogicEventName = "MagicWord";
private Sprite2D _currentPlantSprite = null;
private Sprite2D? _currentPlantSprite = null;
private bool _magicWordSaid = false;
private bool _calledOnReady = false;
/// <summary>
/// public accessor for the field reference
@@ -37,6 +35,7 @@ public partial class PlantBehaviour2D : Node2D
public override void _Ready()
{
GD.Print($"Ready: {Name}");
if (_state == PlantState.None)
{
_state = PlantState.Planted;
@@ -45,6 +44,8 @@ public partial class PlantBehaviour2D : Node2D
}
else
{
GD.Print("plant state not none.");
_calledOnReady = true;
GrowPlant();
}
}
@@ -60,9 +61,13 @@ public partial class PlantBehaviour2D : Node2D
/// </summary>
public void GrowPlant()
{
if (_field.FieldState != FieldState.Watered || _magicWordSaid != _magicWordNeeded)
return;
if (!_calledOnReady)
{
if (_field.FieldState != FieldState.Watered || _magicWordSaid != _magicWordNeeded)
return;
}
GD.Print("Growing plant.");
switch (_state)
{
case PlantState.None:
@@ -105,6 +110,7 @@ public partial class PlantBehaviour2D : Node2D
_field.UpdateFieldState(FieldState.Tilled);
_magicWordSaid = false;
_calledOnReady = false;
}
private Sprite2D GetRandomSprite(Sprite2D[] sprites)