Fixed light race condition
This commit is contained in:
@@ -35,17 +35,22 @@ func _ready() -> void:
|
|||||||
func _build_floor(floor_data: Array) -> void:
|
func _build_floor(floor_data: Array) -> void:
|
||||||
var start_pos := Vector2i.ZERO
|
var start_pos := Vector2i.ZERO
|
||||||
|
|
||||||
|
# First pass: instantiate all rooms and register them so lookups work
|
||||||
for room_data in floor_data:
|
for room_data in floor_data:
|
||||||
var room_node: Room = ROOM_SCENE.instantiate()
|
var room_node: Room = ROOM_SCENE.instantiate()
|
||||||
room_node.position = _grid_to_world(room_data.grid_pos)
|
room_node.position = _grid_to_world(room_data.grid_pos)
|
||||||
|
room_node.data = room_data
|
||||||
rooms_container.add_child(room_node)
|
rooms_container.add_child(room_node)
|
||||||
room_node.setup(room_data, self)
|
|
||||||
_rooms[room_data.grid_pos] = room_node
|
_rooms[room_data.grid_pos] = room_node
|
||||||
_rooms_data[room_data.grid_pos] = room_data
|
_rooms_data[room_data.grid_pos] = room_data
|
||||||
|
|
||||||
if room_data.type == RoomData.RoomType.START:
|
if room_data.type == RoomData.RoomType.START:
|
||||||
start_pos = room_data.grid_pos
|
start_pos = room_data.grid_pos
|
||||||
|
|
||||||
|
# Second pass: setup rooms (builds doors with correct adjacent room type lookups)
|
||||||
|
for room_data in floor_data:
|
||||||
|
_rooms[room_data.grid_pos].setup(room_data, self)
|
||||||
|
|
||||||
# Snap camera + player to start room
|
# Snap camera + player to start room
|
||||||
var world_start := _grid_to_world(start_pos)
|
var world_start := _grid_to_world(start_pos)
|
||||||
camera.position = world_start
|
camera.position = world_start
|
||||||
|
|||||||
Reference in New Issue
Block a user