🐛 added preset fields to main outdoor scene and made them farmable

This commit is contained in:
2025-11-12 15:14:10 +01:00
parent 554a319428
commit 443741f5f1
10 changed files with 163 additions and 45 deletions
@@ -1,27 +1,51 @@
using Babushka.scripts.CSharp.Common.CharacterControls;
using Godot;
namespace Babushka.scripts.CSharp.Common.Farming;
/// <summary>
/// Enables a preset field in the scene sothat it can be used for farming.
/// </summary>
public partial class FieldActivator : Node
{
[Export] private Node2D _field;
[Export] private FieldBehaviour2D _field;
[Export] private InteractionArea2D _activatorArea;
private bool _activated = false;
private bool _used = false;
private bool _rakeInHand;
public override void _Ready()
{
ToggleInteractionArea();
}
/// <summary>
/// Activates the fieldbehaviour node and sets it to the tilled state.
/// </summary>
public void ActivateField()
{
if (!_activated && _rakeInHand)
if (!_used && _rakeInHand)
{
GD.Print("Tryina activate this field right here....");
_field.Visible = true;
_activated = true;
_field.UpdateFieldState(FieldState.Tilled);
_used = true;
}
}
/// <summary>
/// Reacts to changes in the inventory.
/// If setup correctly, the field activator interactable should only trigger when using the rake.
/// </summary>
/// <param name="activated"></param>
public void RakeActivated(bool activated)
{
_rakeInHand = activated;
ToggleInteractionArea();
}
private void ToggleInteractionArea()
{
_activatorArea.IsActive = !_used && _rakeInHand;
}
}