using Godot; public partial class RobotList : PanelContainer { [Export] VBoxContainer robotList; [Signal] public delegate void OnRobotJumpToEventHandler(Robot robot); private PackedScene robotDisplayPrefab; public override void _Ready() { robotDisplayPrefab = ResourceLoader.LoadRobotDisplay(); } public override void _Notification(int id) { if (id == NotificationVisibilityChanged) { if (Visible) ReloadRobots(); } } public void ReloadRobots() { foreach (Node node in robotList.GetChildren()) { robotList.RemoveChild(node); node.QueueFree(); } RobotDisplay display; foreach (Robot robotObject in GameData.robots) { display = robotDisplayPrefab.Instantiate(); display.robot = robotObject; display.listItem.Text = robotObject.Name; display.OnRobotJumpTo += (robot) => { EmitSignal(SignalName.OnRobotJumpTo, robot); Visible = false; }; robotList.AddChild(display); } } }