diff options
author | bd <bdunahu@operationnull.com> | 2025-05-22 20:24:01 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-05-22 20:24:01 -0400 |
commit | a95e2ead7e3ade3c13e4e9f6e68c24df4430097a (patch) | |
tree | 49913b6b0081ec7d51a9c672437597b9cc1b6b7b /scripts/map_generator.gd | |
parent | b318529cf9c01fca4ac2e1b7c7f7fccd0be4589a (diff) |
Make WaveSpawner, Cursor, use generated paths
Diffstat (limited to 'scripts/map_generator.gd')
-rw-r--r-- | scripts/map_generator.gd | 46 |
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 + |