summaryrefslogtreecommitdiff
path: root/scripts/map
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/map')
-rw-r--r--scripts/map/DungeonGenerator.cs5
-rw-r--r--scripts/map/Map.cs18
-rw-r--r--scripts/map/MapData.cs5
3 files changed, 22 insertions, 6 deletions
diff --git a/scripts/map/DungeonGenerator.cs b/scripts/map/DungeonGenerator.cs
index 0d94724..68bde06 100644
--- a/scripts/map/DungeonGenerator.cs
+++ b/scripts/map/DungeonGenerator.cs
@@ -50,7 +50,10 @@ public partial class DungeonGenerator : Node
public MapData GenerateDungeon(Player player)
{
- MapData data = new MapData(width, height);
+ MapData data = new MapData(width, height, player);
+
+ data.InsertActor(player);
+ player.Map_Data = data;
MapDivision root = new MapDivision(0, 0, width, height);
diff --git a/scripts/map/Map.cs b/scripts/map/Map.cs
index 41bd7f8..52ff588 100644
--- a/scripts/map/Map.cs
+++ b/scripts/map/Map.cs
@@ -8,21 +8,32 @@ public partial class Map : Node2D
[Export]
private int fovRadius = 12;
- DungeonGenerator generator;
+ private DungeonGenerator generator;
FieldOfView fieldOfView;
+ private Node2D tilesNode;
+ private Node2D actorsNode;
+
public override void _Ready()
{
base._Ready();
generator = GetNode<DungeonGenerator>("Generator");
fieldOfView = GetNode<FieldOfView>("FieldOfView");
+ tilesNode = GetNode<Node2D>("Tiles");
+ actorsNode = GetNode<Node2D>("Actors");
}
private void PlaceTiles() {
foreach (Tile tile in Map_Data.Tiles) {
- AddChild(tile);
+ tilesNode.AddChild(tile);
+ }
+ }
+
+ private void PlaceActors() {
+ foreach (Actor actor in Map_Data.Actors) {
+ actorsNode.AddChild(actor);
}
}
@@ -30,11 +41,10 @@ public partial class Map : Node2D
{
Map_Data = generator.GenerateDungeon(player);
- Map_Data.InsertActor(player);
-
player.Map_Data = Map_Data;
PlaceTiles();
+ PlaceActors();
}
public void UpdateFOV(Vector2I pos) {
diff --git a/scripts/map/MapData.cs b/scripts/map/MapData.cs
index 1aba35d..ea18b4b 100644
--- a/scripts/map/MapData.cs
+++ b/scripts/map/MapData.cs
@@ -12,12 +12,15 @@ public partial class MapData : RefCounted
public Godot.Collections.Array<Tile> Tiles { get; private set; } = [];
+ public Player Player { get; set; }
public Godot.Collections.Array<Actor> Actors { get; private set; } = [];
- public MapData(int width, int height) {
+ public MapData(int width, int height, Player player) {
Width = width;
Height = height;
+ Player = player;
+
SetupTiles();
}