Initial Farming setup complete

This commit is contained in:
2025-05-18 12:32:56 +02:00
parent 90616537bc
commit ff426b0494
8 changed files with 76 additions and 14 deletions
@@ -7,15 +7,40 @@ public partial class FieldBehaviour2D : Sprite2D
{
[Export] private Texture2D Tilled;
[Export] private Texture2D Watered;
[Export] public FieldState FieldState = FieldState.Empty;
[Export] public FieldState FieldState = FieldState.Tilled;
public Vector2 FieldPosition;
public override void _Ready()
{
Texture = Tilled;
UpdateFieldState(FieldState);
base._Ready();
}
public void UpdateFieldState(FieldState state)
{
switch (state)
{
case FieldState.Empty:
FieldState = FieldState.Empty;
break;
case FieldState.Tilled:
FieldState = FieldState.Tilled;
Texture = Tilled;
break;
case FieldState.Watered:
FieldState = FieldState.Watered;
Texture = Watered;
break;
case FieldState.Planted:
FieldState = FieldState.Planted;
break;
default:
FieldState = FieldState.NotFound;
break;
}
}
public void Water()
{
@@ -24,7 +49,7 @@ public partial class FieldBehaviour2D : Sprite2D
}
/// <summary>
/// Called when the player enters the field'S interaction area and presses <E>.
/// Called when the player enters the field's interaction area and presses <E>.
/// </summary>
public void Farm()
{
@@ -34,7 +59,7 @@ public partial class FieldBehaviour2D : Sprite2D
Texture = Tilled;
FieldState = FieldState.Tilled;
break;
case FieldState.Tilled:
case FieldState.Watered:
FieldState = FieldState.Planted;
break;
case FieldState.Planted:
@@ -42,6 +67,5 @@ public partial class FieldBehaviour2D : Sprite2D
default:
break;
}
}
}
@@ -13,14 +13,18 @@ public partial class PlantBehaviour2D : Node2D
[Export] private Sprite2D[] _bigPlants;
[Export] private Sprite2D[] _readyPlants;
[Export] private PlantState _state = PlantState.None;
[Export] private FieldBehaviour2D _field;
private Sprite2D _currentPlantSprite = null;
/// <summary>
/// Transitions the plant to its next groth stage.
/// Transitions the plant to its next growth stage.
/// </summary>
public void Grow(int id)
public void Grow()
{
if (_field.FieldState != FieldState.Watered)
return;
switch (_state)
{
case PlantState.None:
@@ -54,6 +58,8 @@ public partial class PlantBehaviour2D : Node2D
default:
break;
}
_field.UpdateFieldState(FieldState.Tilled);
}
private Sprite2D GetRandomSprite(Sprite2D[] sprites)