RPGH_Engine/system/rpgh_engine.gd
2021-05-19 16:22:05 +02:00

41 lines
1.1 KiB
GDScript

extends Node
const DEFAULT_SCREEN_SIZE = Vector2(640, 360)
var map = null setget set_map
var global_data := {}
onready var DataManager = get_node("DataManager")
onready var MapContainer = get_node("Ingame/Viewport/MapContainer")
onready var Player = get_node("Ingame/Viewport/MapContainer/Player")
onready var Camera = get_node("Ingame/Viewport/MapContainer/Camera")
onready var Dialog = get_node("UI/Dialog")
func set_map(value):
if !value == null:
if !map == null:
map.queue_free()
yield(map, "tree_exited")
var instanced_map = _map_to_node(value)
if instanced_map != null:
MapContainer.add_child(instanced_map)
map = instanced_map
print("Map set!")
else:
if !map == null:
map.queue_free()
# Pass either a String, a PackedScene or a Node
# directly to certainly get a Node
func _map_to_node(node_information) -> Node:
if node_information is String:
return load(node_information).instance()
elif node_information is PackedScene:
return node_information.instance()
elif node_information is Node:
return node_information
else:
push_error("No supported format was passed for the map!")
return null