using Godot; namespace SupaLidlGame.Characters.State { public partial class Machine : Node { protected Character _character; public CharacterState State { get; protected set; } [Export] public CharacterState InitialState { get; set; } [Export] public Character Character { get; set; } [Export] public int DebugLevel { get; set; } public override void _Ready() { ChangeState(InitialState); } public void ChangeState(CharacterState nextState, bool isProxied = false) { if (DebugLevel >= 2) { if (State is not null) { string proxyNote = isProxied ? " (proxied)" : ""; GD.Print($"Transition{proxyNote} {State.Name} -> {nextState.Name}"); } } if (DebugLevel >= 1) { if (GetNode