27 lines
781 B
GDScript
27 lines
781 B
GDScript
class_name Level extends Node3D
|
|
|
|
const player_controller = preload("res://templates/singleplayer_pc.tscn")
|
|
|
|
@onready var floor_layer : GridMap = %Floor
|
|
@onready var marker_layer : GridMap = %Markers
|
|
|
|
func detect_square(crd : Vector3i, mark : bool) -> bool:
|
|
var cell = floor_layer.get_cell_item(crd)
|
|
if cell == GridMap.INVALID_CELL_ITEM:
|
|
return false
|
|
|
|
marker_layer.set_cell_item(crd, 0 if mark else GridMap.INVALID_CELL_ITEM)
|
|
return true
|
|
|
|
|
|
func _ready() -> void:
|
|
Game.level = self
|
|
var player = player_controller.instantiate()
|
|
var traps : Array[PlayerData.TrapData] = [
|
|
PlayerData.TrapData.new(Game.TrapType.BOMB, 3, 3),
|
|
PlayerData.TrapData.new(Game.TrapType.SWITCH, 3, 3),
|
|
PlayerData.TrapData.new(Game.TrapType.MINE, 3, 3)
|
|
]
|
|
add_child(player)
|
|
player.setup(traps)
|