From 4b460926c5399fcf85bae5004bcb194945a694a6 Mon Sep 17 00:00:00 2001 From: = <=> Date: Tue, 28 Apr 2026 14:37:12 +0200 Subject: [PATCH] Added renaming to the robots onclick. --- Scenes/Game.tscn | 62 ++++++++++++++++++++++++++++++-- Scripts/DSL/CodingWindow.cs | 17 ++++++++- Scripts/DSL/NodeDisplay.cs | 2 +- Scripts/Helpers/UIHandler.cs | 25 ++++++++++++- Scripts/Robot.cs | 3 +- Scripts/WorldGeneration/World.cs | 1 + 6 files changed, 103 insertions(+), 7 deletions(-) diff --git a/Scenes/Game.tscn b/Scenes/Game.tscn index bf9be21..a56a71e 100644 --- a/Scenes/Game.tscn +++ b/Scenes/Game.tscn @@ -141,18 +141,39 @@ size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_constants/separation = 10 -[node name="EditorWindow" type="ScrollContainer" parent="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer" unique_id=2045306791] +[node name="EditorWindow" type="VBoxContainer" parent="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer" unique_id=919757187] layout_mode = 2 size_flags_horizontal = 3 size_flags_stretch_ratio = 2.0 -theme_override_styles/panel = SubResource("StyleBoxFlat_2irst") -[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer/EditorWindow" unique_id=632191528] +[node name="CodeContainer" type="ScrollContainer" parent="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer/EditorWindow" unique_id=2045306791] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +size_flags_stretch_ratio = 2.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_2irst") +horizontal_scroll_mode = 0 + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer/EditorWindow/CodeContainer" unique_id=632191528] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_constants/separation = 10 +[node name="Buttons" type="HBoxContainer" parent="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer/EditorWindow" unique_id=265797151] +layout_mode = 2 +theme_override_constants/separation = 20 + +[node name="Clear" type="Button" parent="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer/EditorWindow/Buttons" unique_id=1191148341] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Clear" + +[node name="Compile" type="Button" parent="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer/EditorWindow/Buttons" unique_id=1559980287] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Compile" + [node name="Robotlist" type="ScrollContainer" parent="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer" unique_id=592644944] layout_mode = 2 size_flags_horizontal = 3 @@ -164,4 +185,39 @@ size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_constants/separation = 10 +[node name="Popup" type="PanelContainer" parent="CanvasLayer/Control" unique_id=311359170] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -20.0 +offset_top = -20.0 +offset_right = 20.0 +offset_bottom = 20.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="RobotNaming" type="VBoxContainer" parent="CanvasLayer/Control/Popup" unique_id=39200128] +visible = false +layout_mode = 2 + +[node name="RichTextLabel" type="RichTextLabel" parent="CanvasLayer/Control/Popup/RobotNaming" unique_id=1964282829] +layout_mode = 2 +text = "Name your robot:" +fit_content = true +autowrap_mode = 0 + +[node name="LineEdit" type="LineEdit" parent="CanvasLayer/Control/Popup/RobotNaming" unique_id=1713423672] +layout_mode = 2 +placeholder_text = "Name..." +max_length = 24 + +[node name="Button" type="Button" parent="CanvasLayer/Control/Popup/RobotNaming" unique_id=279251707] +layout_mode = 2 +text = "Submit" + [connection signal="color_changed" from="CanvasLayer/Control/MainUI/HeaderContainer/Header/LightColor" to="CanvasLayer/Control" method="ChangeColor"] +[connection signal="button_up" from="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer/EditorWindow/Buttons/Clear" to="CanvasLayer/Control/MainUI/Content/CodingWindow" method="ClearWindow"] +[connection signal="button_up" from="CanvasLayer/Control/MainUI/Content/CodingWindow/HBoxContainer/EditorWindow/Buttons/Compile" to="CanvasLayer/Control/MainUI/Content/CodingWindow" method="CompileProgram"] diff --git a/Scripts/DSL/CodingWindow.cs b/Scripts/DSL/CodingWindow.cs index 999dee4..8914c56 100644 --- a/Scripts/DSL/CodingWindow.cs +++ b/Scripts/DSL/CodingWindow.cs @@ -72,8 +72,23 @@ public partial class CodingWindow : PanelContainer foreach (Robot robotObject in GameData.robots) { robot = nodePrefab.Instantiate(); - robot.GetNode("./Node/NodeContainer/NodeText").Text = robotObject.Position.ToString(); + robot.GetNode("./Node/NodeContainer/NodeText").Text = robotObject.Name; GetNode("./HBoxContainer/Robotlist/VBoxContainer").AddChild(robot); } } + + public void ClearWindow() + { + VBoxContainer nodeList = GetNode("./HBoxContainer/EditorWindow/CodeContainer/VBoxContainer"); + foreach(Node node in nodeList.GetChildren()) + { + nodeList.RemoveChild(node); + node.QueueFree(); + } + } + + public void CompileProgram() + { + + } } diff --git a/Scripts/DSL/NodeDisplay.cs b/Scripts/DSL/NodeDisplay.cs index e185aa3..69f49c4 100644 --- a/Scripts/DSL/NodeDisplay.cs +++ b/Scripts/DSL/NodeDisplay.cs @@ -46,7 +46,7 @@ public partial class NodeDisplay : RichTextLabel { if (input is InputEventMouseButton mouseEvent && mouseEvent.ButtonIndex == MouseButton.Left && mouseEvent.IsReleased()) { - GetNode("../../../EditorWindow/VBoxContainer").AddChild(node.editorDisplay.Instantiate()); + GetNode("../../../EditorWindow/CodeContainer/VBoxContainer").AddChild(node.editorDisplay.Instantiate()); } } } \ No newline at end of file diff --git a/Scripts/Helpers/UIHandler.cs b/Scripts/Helpers/UIHandler.cs index c0f591d..e379030 100644 --- a/Scripts/Helpers/UIHandler.cs +++ b/Scripts/Helpers/UIHandler.cs @@ -1,3 +1,5 @@ +using System; +using System.Threading.Tasks; using Godot; public partial class UIHandler : Control @@ -10,7 +12,7 @@ public partial class UIHandler : Control // Called every frame. 'delta' is the elapsed time since the previous frame. public override void _Process(double delta) { - + } public void ChangeColor(Color color) @@ -19,4 +21,25 @@ public partial class UIHandler : Control LightHandler.RedrawLights(color); } + public void ShowNamingPopup(Robot robot) + { + VBoxContainer namingContainer = GetNode("./Popup/RobotNaming"); + namingContainer.Visible = true; + GameData.canMove = false; + LineEdit name = namingContainer.GetNode("./LineEdit"); + Button button = namingContainer.GetNode