using Godot;
using System;
using System.Linq;
using Cirno.Scripts.Components.Actors;
using Cirno.Scripts.Components.FSM;
using Cirno.Scripts.Interactables;

public partial class InteractionController : PlayerArea2DModule
{
	[Export] public ActorResourceProvider Health { get; private set; }
	[Export] public ActorResourceProvider Shield { get; private set; }

	private bool _enabled = false;

	public bool Enabled
	{
		get => _enabled;
		set
		{
			if (_enabled == value) return;
			_enabled = value;
			if (_enabled)
			{
				EmitSignal(SignalName.InteractionStarted);
			}
		}
	}

	[Signal]
	public delegate void InteractionStartedEventHandler();

	// Called when the node enters the scene tree for the first time.
	public override void _Ready()
	{
	}

	// Called every frame. 'delta' is the elapsed time since the previous frame.
	public override void _Process(double delta)
	{
	}

	public override void EnterState(PlayerState state)
	{
		
	}

	public override void ExitState(PlayerState state)
	{
		
	}

	public override void Init(IStateMachine<PlayerState, CharacterBody2D> machine)
	{
		base.Init(machine);
	}

	public override void Process(double delta)
	{

	}

	public override void PhysicsProcess(double delta)
	{

	}
}
