using Godot; public partial class CaptureController : Node { [Export] public NodePath CaptureUIPath { get; set; } private GameRoot _root = null!; private CaptureUI? _ui; public override void _Ready() { _ui = GetNodeOrNull(CaptureUIPath); if (_ui == null) { GD.PrintErr("CaptureController: CaptureUIPath not set."); return; } GameRoot.Instance.CaptureRequested += OnRequestCapture; } private void OnRequestCapture(Creature creature) { if (_ui == null) return; if (!IsInstanceValid(creature)) return; _ui.StartCapture(creature); } }