feat: Add core map generation and management system

- Introduced MapData, MapGenerator, and MapPainter classes for procedural map generation.
- Implemented LevelManager to handle level initialization and navigation.
- Created TurnManager for managing turn order in a turn-based system.
- Added Player and Enemy character classes with movement and turn-taking capabilities.
- Established pathfinding using AStar2D in PathfindingHandler.
- Integrated new scenes for player and enemy characters, along with world setup.
- Included a new tileset for futuristic Zelda-themed assets.
This commit is contained in:
2026-03-16 16:24:32 +11:00
parent f5e33fb8ea
commit bb1c9f9284
39 changed files with 2341 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
## MapSettings.gd
# Resource for storing all configurable map generation settings.
# Used by MapGenerator to control map size, room count, and room properties.
class_name MapSettings
extends Resource
# Level size in tiles (width × height).
@export var width: int = 50
@export var height: int = 50
# Minimum and maximum number of rooms to generate.
@export var min_room_count: int = 5
@export var max_room_count: int = 15
# Room size constraints (in tiles).
@export var min_room_size: int = 4
@export var max_room_size: int = 10
# Minimum number of tiles between rooms (prevents overlap).
@export var room_padding:int = 5
# Maximum number of attempts to place a room before giving up.
@export var max_tries: int = 20
# The actual number of rooms generated (set by MapGenerator).
var room_count: int