You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1012 B
GDScript

extends Node3D
class_name LevelManager
var map: Node3D
var starting_map = "level0101.tscn"
func _ready():
Global.level_mgr = self
func init():
MetSys.set_save_data()
goto_map(MetSys.get_full_room_path(starting_map))
MetSys.room_changed.connect(on_room_changed, CONNECT_DEFERRED)
func goto_map(map_path: String):
var prev_map_position := Vector2i.MAX
if map:
# If some map is already loaded (which is true anytime other than the beginning), remember its position and free it.
prev_map_position = MetSys.get_current_room_instance().get_base_coords()
map.queue_free()
map = null
map = load(map_path).instantiate()
add_child(map)
MetSys.current_layer = MetSys.get_current_room_instance().get_layer()
var level_size = MetSys.get_current_room_instance().get_size()
print(level_size)
SignalManager.level_size_change.emit(level_size)
func on_room_changed(target_map: String):
if target_map.is_absolute_path():
goto_map(target_map)
else:
goto_map(MetSys.get_full_room_path(target_map))