Added robot display to map logic, now need to add the color for it.

This commit is contained in:
2026-05-14 20:50:41 +02:00
parent c6cb2cc00e
commit 6084761e0d
4 changed files with 28 additions and 0 deletions
+6
View File
@@ -281,6 +281,11 @@ layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
text = "Apply" text = "Apply"
[node name="CheckBox" type="CheckBox" parent="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Renaming" unique_id=1340883792]
layout_mode = 2
button_pressed = true
text = "Show on map"
[node name="Scripting" type="HBoxContainer" parent="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer" unique_id=1934932205] [node name="Scripting" type="HBoxContainer" parent="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer" unique_id=1934932205]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3 size_flags_vertical = 3
@@ -732,6 +737,7 @@ vertical_alignment = 1
[connection signal="pressed" from="CanvasLayer/UIHandler/MainUI/HeaderContainer/VBoxContainer/UnlockLayer" to="CanvasLayer/UIHandler" method="UnlockLayer"] [connection signal="pressed" from="CanvasLayer/UIHandler/MainUI/HeaderContainer/VBoxContainer/UnlockLayer" to="CanvasLayer/UIHandler" method="UnlockLayer"]
[connection signal="pressed" from="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Renaming/Button" to="CanvasLayer/UIHandler/MainUI/Content/CodingWindow" method="SaveRobotName"] [connection signal="pressed" from="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Renaming/Button" to="CanvasLayer/UIHandler/MainUI/Content/CodingWindow" method="SaveRobotName"]
[connection signal="toggled" from="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Renaming/CheckBox" to="CanvasLayer/UIHandler/MainUI/Content/CodingWindow" method="OnMapToggled"]
[connection signal="connection_request" from="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Scripting/EditorWindow/CodeContainer" to="CanvasLayer/UIHandler/MainUI/Content/CodingWindow" method="OnNodeConnect"] [connection signal="connection_request" from="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Scripting/EditorWindow/CodeContainer" to="CanvasLayer/UIHandler/MainUI/Content/CodingWindow" method="OnNodeConnect"]
[connection signal="disconnection_request" from="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Scripting/EditorWindow/CodeContainer" to="CanvasLayer/UIHandler/MainUI/Content/CodingWindow" method="OnNodeDisconnect"] [connection signal="disconnection_request" from="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Scripting/EditorWindow/CodeContainer" to="CanvasLayer/UIHandler/MainUI/Content/CodingWindow" method="OnNodeDisconnect"]
[connection signal="node_deselected" from="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Scripting/EditorWindow/CodeContainer" to="CanvasLayer/UIHandler/MainUI/Content/CodingWindow" method="OnNodeDeselect"] [connection signal="node_deselected" from="CanvasLayer/UIHandler/MainUI/Content/CodingWindow/VBoxContainer/Scripting/EditorWindow/CodeContainer" to="CanvasLayer/UIHandler/MainUI/Content/CodingWindow" method="OnNodeDeselect"]
+1
View File
@@ -21,6 +21,7 @@ public partial class Robot : Node3D
public bool isCoolingDown = false; public bool isCoolingDown = false;
public bool isBroken = false; public bool isBroken = false;
public string robotType = "iron_robot"; public string robotType = "iron_robot";
public bool showOnMap = true;
private RobotTypeStats TypeStats => private RobotTypeStats TypeStats =>
GameData.robotStats.RobotTypes.TryGetValue(robotType, out RobotTypeStats stats) GameData.robotStats.RobotTypes.TryGetValue(robotType, out RobotTypeStats stats)
+6
View File
@@ -43,6 +43,12 @@ public partial class CodingWindow : PanelContainer
} }
} }
public void OnMapToggled(bool toggledOn)
{
if(robot == null) return;
robot.showOnMap = toggledOn;
}
public void OnNodeSelect(NodeDisplay node) public void OnNodeSelect(NodeDisplay node)
{ {
selectedNode = node; selectedNode = node;
+15
View File
@@ -22,6 +22,21 @@ public partial class Map : PanelContainer
Tile[,] tiles = GameData.map[GameData.currentLayer].tiles; Tile[,] tiles = GameData.map[GameData.currentLayer].tiles;
int size = GameData.layerSize; int size = GameData.layerSize;
Dictionary<Vector2I, List<Robot>> visibleRobots = new Dictionary<Vector2I, List<Robot>>();
Vector3I tilePos;
Vector2I key;
foreach(Robot robot in GameData.robots)
{
if(!robot.showOnMap) continue;
tilePos = Pathfinding.GetClosestStartPoint(robot.Position);
if(tilePos.Y != GameData.visibleLayer) continue;
key = new Vector2I(tilePos.X, tilePos.Z);
if(!visibleRobots.ContainsKey(key)) visibleRobots.Add(key, new List<Robot>());
visibleRobots[key].Add(robot);
}
for (int z = -1; z < size; z++) for (int z = -1; z < size; z++)
{ {
for (int x = -1; x < size; x++) for (int x = -1; x < size; x++)