summaryrefslogtreecommitdiff
path: root/scripts/map_generator.gd
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-05-22 20:24:01 -0400
committerbd <bdunahu@operationnull.com>2025-05-22 20:24:01 -0400
commita95e2ead7e3ade3c13e4e9f6e68c24df4430097a (patch)
tree49913b6b0081ec7d51a9c672437597b9cc1b6b7b /scripts/map_generator.gd
parentb318529cf9c01fca4ac2e1b7c7f7fccd0be4589a (diff)
Make WaveSpawner, Cursor, use generated paths
Diffstat (limited to 'scripts/map_generator.gd')
-rw-r--r--scripts/map_generator.gd46
1 files changed, 27 insertions, 19 deletions
diff --git a/scripts/map_generator.gd b/scripts/map_generator.gd
index 328bce1..7feb4b7 100644
--- a/scripts/map_generator.gd
+++ b/scripts/map_generator.gd
@@ -6,10 +6,11 @@ extends Node2D
@onready var tile_map : TileMapLayer = $TileMapLayer
-var _pg : PathGenerator
-var path_straight_atlas_coords : Vector2i = Vector2i(8, 1)
-var path_corner_atlas_coords : Vector2i = Vector2i(9, 1)
-var path_empty_atlas_coords : Vector2i = Vector2i(0, 0)
+var _path_straight_atlas_coords : Vector2i = Vector2i(8, 1)
+var _path_corner_atlas_coords : Vector2i = Vector2i(9, 1)
+var _path_empty_atlas_coords : Vector2i = Vector2i(0, 0)
+
+var _path : Array[Vector2i]
enum TileTransform {
ROTATE_0 = 0,
@@ -19,36 +20,39 @@ enum TileTransform {
}
func _ready() -> void:
- _pg = PathGenerator.new(grid_width, grid_height)
- _display_path()
+ _generate_path()
+ _draw_path()
-func _display_path():
- var path : Array[Vector2i] = []
- while path.size() < 35:
- path = _pg.generate_path()
+func _generate_path():
+ var pg : PathGenerator = PathGenerator.new(grid_width, grid_height)
+ _path = []
+ while _path.size() < 35:
+ _path = pg.generate_path()
+ _draw_path()
- for i in path:
- var score : int = _get_tile_score(path, i)
+func _draw_path():
+ for i in _path:
+ var score : int = _get_tile_score(_path, i)
- var atlas_coords : Vector2i = path_empty_atlas_coords
+ var atlas_coords : Vector2i = _path_empty_atlas_coords
var rot : TileTransform = TileTransform.ROTATE_0
match score:
2, 8, 10:
- atlas_coords = path_straight_atlas_coords
+ atlas_coords = _path_straight_atlas_coords
rot = TileTransform.ROTATE_90
1, 4, 5:
- atlas_coords = path_straight_atlas_coords
+ atlas_coords = _path_straight_atlas_coords
3:
- atlas_coords = path_corner_atlas_coords
+ atlas_coords = _path_corner_atlas_coords
rot = TileTransform.ROTATE_270
6:
- atlas_coords = path_corner_atlas_coords
+ atlas_coords = _path_corner_atlas_coords
12:
- atlas_coords = path_corner_atlas_coords
+ atlas_coords = _path_corner_atlas_coords
rot = TileTransform.ROTATE_90
9:
- atlas_coords = path_corner_atlas_coords
+ atlas_coords = _path_corner_atlas_coords
rot = TileTransform.ROTATE_180
_display_tile(atlas_coords, rot, i)
@@ -67,3 +71,7 @@ func _get_tile_score(path : Array[Vector2i], tile : Vector2i) -> int:
score += 8 if path.has(Vector2i(x - 1, y)) else 0
return score
+
+func get_enemy_path() -> Array[Vector2i]:
+ return _path
+