🐛 added preset fields to main outdoor scene and made them farmable
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user