33 lines
806 B
GDScript
33 lines
806 B
GDScript
extends GridContainer
|
|
|
|
var cells: Array[ColorRect] = []
|
|
|
|
func _ready():
|
|
columns = 4
|
|
for i in range(16):
|
|
var cell = ColorRect.new()
|
|
cell.custom_minimum_size = Vector2(40, 40)
|
|
cell.color = Color.DARK_GRAY
|
|
add_child(cell)
|
|
cells.append(cell)
|
|
|
|
func update_map(current_room_id: String, explored_rooms: Array):
|
|
# Parse "room_x_y"
|
|
var parts = current_room_id.split("_")
|
|
if parts.size() == 3:
|
|
var x = int(parts[1])
|
|
var y = int(parts[2])
|
|
var index = y * 4 + x
|
|
|
|
for i in range(cells.size()):
|
|
var cell_x = i % 4
|
|
var cell_y = i / 4
|
|
var cell_id = "room_%d_%d" % [cell_x, cell_y]
|
|
|
|
if i == index:
|
|
cells[i].color = Color.GREEN # Player
|
|
elif cell_id in explored_rooms:
|
|
cells[i].color = Color.LIGHT_GRAY # Explored
|
|
else:
|
|
cells[i].color = Color.DARK_GRAY # Unexplored
|