diff --git a/Scripts/DSL/Nodes/MoveNode.cs b/Scripts/DSL/Nodes/MoveNode.cs index 1a563ce..b4c28dc 100644 --- a/Scripts/DSL/Nodes/MoveNode.cs +++ b/Scripts/DSL/Nodes/MoveNode.cs @@ -18,12 +18,17 @@ public class MoveNode : ProgramNode startPosition = robot.Position; Vector3 target = pathPoints[0] - startPosition; float distance = target.Length(); - + if (distance < 0.1f) { robot.Position = pathPoints[0]; Vector3I mapIndex = Pathfinding.GetClosestStartPoint(robot.Position); - GameData.map[mapIndex.Y].tiles[mapIndex.X, mapIndex.Z].wasVisited = true; + Tile tile = GameData.map[mapIndex.Y].tiles[mapIndex.X, mapIndex.Z]; + if (!tile.wasVisited) + { + tile.wasVisited = true; + tile.ContentNode.Visible = true; + } pathPoints.Remove(pathPoints[0]); if (pathPoints.Count <= 0) { diff --git a/Scripts/WorldGeneration/Layer.cs b/Scripts/WorldGeneration/Layer.cs index 0efe399..5c7fddf 100644 --- a/Scripts/WorldGeneration/Layer.cs +++ b/Scripts/WorldGeneration/Layer.cs @@ -29,7 +29,7 @@ public partial class Layer : Node3D // Called every frame. 'delta' is the elapsed time since the previous frame. public override void _Process(double delta) { - + } public void ClearDecorations() @@ -88,7 +88,8 @@ public partial class Layer : Node3D { var node = new Node3D { - Position = tile.Position + Position = tile.Position, + Visible = false }; decorationRoot.AddChild(node); diff --git a/Scripts/WorldGeneration/Tile.cs b/Scripts/WorldGeneration/Tile.cs index f0d0941..e928db2 100644 --- a/Scripts/WorldGeneration/Tile.cs +++ b/Scripts/WorldGeneration/Tile.cs @@ -78,7 +78,6 @@ public partial class Tile public void SpawnContent(Dictionary contentMeshes, Transform3D transform, List placeholders) { - if(!wasVisited) return; foreach (Placeholder placeholder in placeholders) { if (containsLight && placeholder.name == "light") SpawnLight(contentMeshes["light"], placeholder, transform); diff --git a/Scripts/WorldGeneration/World.cs b/Scripts/WorldGeneration/World.cs index 8f03563..f1a17b8 100644 --- a/Scripts/WorldGeneration/World.cs +++ b/Scripts/WorldGeneration/World.cs @@ -90,7 +90,7 @@ public partial class World : Node3D { Robot robot = ResourceLoader.LoadRobotPrefab().Instantiate(); robot.Name = $"Robot #{robots.Count + 1}"; - robot.Position = map[0].tiles[0,0].Position; + robot.Position = map[0].tiles[0, 0].Position; AddChild(robot); robots.Add(robot); } @@ -113,10 +113,16 @@ public partial class World : Node3D map[layer] = layerNode; } - map[0].tiles[0,0].wasVisited = true; - map[0].tiles[0,0].containsDecoration = true; - map[0].tiles[0,0].containsLight = true; - map[0].tiles[0,0].containsResource = false; + SetupSpawn(); + } + + private void SetupSpawn() + { + map[0].tiles[0, 0].wasVisited = true; + map[0].tiles[0, 0].containsDecoration = true; + map[0].tiles[0, 0].containsLight = true; + map[0].tiles[0, 0].containsResource = false; + map[0].tiles[0, 0].ContentNode.Visible = true; } private void HandleTileVisit(int level)