Files
VRyHungry1/test/testworldLoad.gd
T

63 lines
1.6 KiB
GDScript

extends Node
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
SweetLogger.debug("stations: {0}", [get_stations()])
SweetLogger.debug("items: {0}", [get_items()])
func get_node_data(node):
# {"scene": "res://Stations/Hob.tscn", "name": "Hob",
# "xform": Transform3D(Basis(), Vector3(0.29336345, 0.8981018, -1.484)), "props": {}},
var data = {}
data["scene"] = node.scene_file_path
data["name"] = node.name
data["xform"] = node.transform
data["props"] = {}
var scrip = node.get_script()
if scrip:
for i in scrip.get_script_property_list():
if i.usage & PROPERTY_USAGE_STORAGE:
data["props"][i["name"]] = node.get(i["name"])
return data
func get_stations() -> Array[Dictionary]:
var Stations = ResourceLoader.list_directory("res://Stations/")
var Stations2 = []
for i in Stations:
Stations2.append("res://Stations/" + i)
Stations = Stations2
var Stations_nodes = []
for i in get_tree().root.find_children("*", "StaticBody3D", true, false):
if i.scene_file_path in Stations:
Stations_nodes.append(i)
var data: Array[Dictionary] = []
for i in Stations_nodes:
data.append(get_node_data(i))
return data
func get_items() -> Array[Dictionary]:
var Items = ResourceLoader.list_directory("res://Items/")
var Items2 = []
for i in Items:
Items2.append("res://Items/" + i)
Items = Items2
var Items_nodes = []
for i in get_tree().root.find_children("*", "XRToolsPickable", true, false):
if i.scene_file_path in Items:
Items_nodes.append(i)
var data: Array[Dictionary] = []
for i in Items_nodes:
data.append(get_node_data(i))
return data