Many changes

Handle it
This commit is contained in:
Dan Baker 2025-05-04 09:30:14 +01:00
parent bf09402bc5
commit 214e0aa5e0
366 changed files with 24353 additions and 2096 deletions

19
map/Map.tscn Normal file
View file

@ -0,0 +1,19 @@
[gd_scene load_steps=4 format=3 uid="uid://cfkusqucsap26"]
[ext_resource type="Script" uid="uid://begwu0icmrxyw" path="res://map/map.gd" id="1_l804v"]
[ext_resource type="TileSet" uid="uid://c66l102pgntht" path="res://assets/sprites/tilesets/forest.tres" id="2_3nv2f"]
[ext_resource type="PackedScene" uid="uid://bo5aw2cad3akl" path="res://player/player.tscn" id="5_3nv2f"]
[node name="Map" type="Node2D"]
script = ExtResource("1_l804v")
[node name="Ground" type="TileMapLayer" parent="."]
tile_set = ExtResource("2_3nv2f")
[node name="Water" type="TileMapLayer" parent="."]
tile_set = ExtResource("2_3nv2f")
[node name="Scatter" type="TileMapLayer" parent="."]
tile_set = ExtResource("2_3nv2f")
[node name="Player" parent="." instance=ExtResource("5_3nv2f")]

105
map/map.gd Normal file
View file

@ -0,0 +1,105 @@
extends Node2D
## MAP VARIABLES
var GRID_WIDTH = Global.GRID_WIDTH
var GRID_HEIGHT = Global.GRID_HEIGHT
var EMPTY = Global.MAP_EMPTY
var PATH = Global.MAP_PATH
var START = Global.MAP_START
var FINISH = Global.MAP_FINISH
var UP_CELL = Global.MAP_UP_CELL
## MAP LAYERS
var ground: TileMapLayer
var water: TileMapLayer
var walls: TileMapLayer
var scatter: TileMapLayer
var cells: Array
## MAP
var map: Array
var map_width: int
var map_height: int
func _ready() -> void:
Log.pr("Level ready")
map_width = Global.GRID_WIDTH * Global.ROOM_WIDTH
map_height = Global.GRID_HEIGHT * Global.ROOM_HEIGHT
ground = $Ground
water = $Water
#walls = $Walls
scatter = $Scatter
cells = CoordUtil.all_cells(Vector2i(-1, -1), Vector2i(map_width + 1, map_height + 1))
#RNG.set_seed(123456789)
Log.pr(RNG.get_seed())
Log.pr(RNG.randf())
Log.pr(RNG.randf())
Log.pr(RNG.randf())
Log.pr(RNG.randf())
#RNG.set_seed(123456789)
Log.pr(RNG.get_seed())
Log.pr(RNG.randf())
Log.pr(RNG.randf())
Log.pr(RNG.randf())
Log.pr(RNG.randf())
generateMap()
func generateMap() -> void:
Log.pr("Generating map")
var map_generator = MapGenerator.new()
map_generator.generate_map()
map_generator.print_map()
map = map_generator.get_map()
Log.pr(map)
drawGround()
drawPerimiter()
populateMapCells()
func drawGround() -> void:
Log.pr("Drawing ground")
ground.clear()
ground.set_cells_terrain_connect(cells, 0, 0, false)
func drawPerimiter() -> void:
Log.pr("Drawing perimeter")
var perimeter_cells: Array = CoordUtil.perimeter_cells(Vector2i(0, 0), Vector2i(map_width - 1, map_height - 1), false, 2)
water.set_cells_terrain_connect(perimeter_cells, 0, 1, false)
func populateMapCells() -> void:
# Loop through the map and check which type of cell it is
Log.pr("Populating map cells")
for y in range(GRID_HEIGHT):
for x in range(GRID_WIDTH):
var cell_value = map[y][x]
var scene = null
match cell_value:
EMPTY:
scene = SceneSelector.get_random_scene("res://mapgen/layout/misc")
Log.pr("Empty cell ", y, x, scene)
PATH:
scene = SceneSelector.get_random_scene("res://mapgen/layout/path")
Log.pr("Path cell", y, x, scene)
START:
scene = SceneSelector.get_random_scene("res://mapgen/layout/start")
Log.pr("Start cell", y, x, scene)
FINISH:
scene = SceneSelector.get_random_scene("res://mapgen/layout/finish")
Log.pr("Finish cell", y, x, scene)
UP_CELL:
scene = SceneSelector.get_random_scene("res://mapgen/layout/link")
Log.pr("Up cell", y, x, scene)
MapBuilder.copy_tilemap_to_target(scene, water, "Water", Vector2i(x, y))
MapBuilder.copy_tilemap_to_target(scene, scatter, "Scatter", Vector2i(x, y))
#walls.set_cells_terrain_connect(cells, 0, 0, true)
MapBuilder.redraw_terrain(cells, water, 0, 1)

1
map/map.gd.uid Normal file
View file

@ -0,0 +1 @@
uid://begwu0icmrxyw