Files
HorrorGame/Assets/scripts/MapLoader.gd

36 lines
772 B
GDScript

class_name MapLoader
extends Node3D
@export var Default_Map:PackedScene
@onready var loading_thread : Thread = Thread.new()
signal map_loaded
var current_map
var loaded_scene : PackedScene
func openMap(new_map=Default_Map):
if new_map is PackedScene:
current_map = new_map.instantiate()
if new_map is String:
loading_thread.start(_thread_Load.bind(new_map))
while not loaded_scene:
pass
current_map = loaded_scene.instantiate()
add_child(current_map)
emit_signal("map_loaded")
func _thread_Load(path : String):
var loader = load(path)
if loader:
loaded_scene = loader
print("Map Loaded")
func closeMap():
remove_child(current_map)
func _ready():
openMap(GlobalSettings.current_map)
func _exit_tree() -> void:
loading_thread.wait_to_finish()