using Godot; using System; public partial class CodingWindow : PanelContainer { // Called when the node enters the scene tree for the first time. public override void _Ready() { GenerateCodingBlocks(); } // Called every frame. 'delta' is the elapsed time since the previous frame. public override void _Process(double delta) { if (Input.IsActionJustPressed("codingwindow")) { Visible = !Visible; if (Visible) { ReloadRobots(); } } } //Move, Harvest, Craft public void GenerateCodingBlocks() { PackedScene nodePrefab = ResourceLoader.LoadProgramNodePrefab(); Control node1 = nodePrefab.Instantiate(); node1.GetNode("./Node/NodeContainer/NodeText").Text = "Move"; GetNode("./HBoxContainer/CodeBlocks/VBoxContainer").AddChild(node1); Control node2 = nodePrefab.Instantiate(); node2.GetNode("./Node/NodeContainer/NodeText").Text = "Harvest"; GetNode("./HBoxContainer/CodeBlocks/VBoxContainer").AddChild(node2); Control node3 = nodePrefab.Instantiate(); node3.GetNode("./Node/NodeContainer/NodeText").Text = "Craft"; GetNode("./HBoxContainer/CodeBlocks/VBoxContainer").AddChild(node3); } public void ReloadRobots() { VBoxContainer robotList = GetNode("./HBoxContainer/Robotlist/VBoxContainer"); foreach(Node node in robotList.GetChildren()) { robotList.RemoveChild(node); node.QueueFree(); } PackedScene nodePrefab = ResourceLoader.LoadProgramNodePrefab(); Control robot; foreach (Robot robotObject in GameData.robots) { robot = nodePrefab.Instantiate(); robot.GetNode("./Node/NodeContainer/NodeText").Text = robotObject.Position.ToString(); GetNode("./HBoxContainer/Robotlist/VBoxContainer").AddChild(robot); } } }