Files

71 lines
1.7 KiB
C#
Raw Permalink Normal View History

2025-05-12 00:16:13 +02:00
using Godot;
namespace Babushka.scripts.CSharp.Common.Farming;
[GlobalClass]
public partial class FieldBehaviour2D : Sprite2D
{
[Export] private Texture2D Tilled;
[Export] private Texture2D Watered;
2025-05-18 12:32:56 +02:00
[Export] public FieldState FieldState = FieldState.Tilled;
2025-05-12 00:16:13 +02:00
public Vector2 FieldPosition;
public override void _Ready()
{
2025-05-18 12:32:56 +02:00
UpdateFieldState(FieldState);
2025-05-12 00:16:13 +02:00
base._Ready();
}
2025-05-18 12:32:56 +02:00
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;
}
}
2025-05-12 00:16:13 +02:00
public void Water()
{
FieldState = FieldState.Watered;
Texture = Watered;
}
/// <summary>
2025-05-18 12:32:56 +02:00
/// Called when the player enters the field's interaction area and presses <E>.
2025-05-12 00:16:13 +02:00
/// </summary>
public void Farm()
{
switch (FieldState)
{
case FieldState.Empty:
Texture = Tilled;
FieldState = FieldState.Tilled;
break;
2025-05-18 12:32:56 +02:00
case FieldState.Watered:
2025-05-12 00:16:13 +02:00
FieldState = FieldState.Planted;
break;
case FieldState.Planted:
break;
default:
break;
}
}
}