Many changes
Handle it
This commit is contained in:
parent
bf09402bc5
commit
214e0aa5e0
366 changed files with 24353 additions and 2096 deletions
19
map/Map.tscn
Normal file
19
map/Map.tscn
Normal 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
105
map/map.gd
Normal 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
1
map/map.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://begwu0icmrxyw
|
||||
Loading…
Add table
Add a link
Reference in a new issue