From 5cfc0839f7ea4b9f3d105231c96b4643aa6e36b3 Mon Sep 17 00:00:00 2001 From: kookroach Date: Tue, 3 Jan 2023 23:43:30 +0100 Subject: [PATCH] add entity collision option --- scripts/utils/runtimeloader.gd | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/scripts/utils/runtimeloader.gd b/scripts/utils/runtimeloader.gd index 8dc5030..918528c 100644 --- a/scripts/utils/runtimeloader.gd +++ b/scripts/utils/runtimeloader.gd @@ -37,32 +37,23 @@ func load_gltf(file, parent = self, hasCollision = false, trimesh = false): var node = gltf.generate_scene(gltf_state) parent.add_child(node) + get_all_entities(node) - var entity_count = 0; if not hasCollision: - get_all_entities(node) return node for o in get_all_children(node): - if o.name.begins_with("entity_"): - print("Loading entity ", o.name) - if loadEntity(o): - entity_count += 1; - if o is MeshInstance3D: if(trimesh): o.create_trimesh_collision() else: o.create_convex_collision() - - if(entity_count > 0): - print("Loaded ", entity_count, " entities.") return node func get_all_entities(at_node): var entity_count = 0 for o in get_all_children(at_node): - if o.name.begins_with("entity_") && not o.name.ends_with("_geometry"): + if o.name.begins_with("entity_"): print("Loading entity ", o.name) if loadEntity(o): entity_count += 1; @@ -80,8 +71,13 @@ func loadEntity(node): if(not config.has_section(node.name)): printerr("NO CONFIG FOUND FOR ENTITY : ", node.name) return false + + var model = config.get_value(node.name, "model") + var has_collision = config.get_value(node.name, "has_collision") + var has_trimesh_col = config.get_value(node.name, "has_trimesh_col") + + var entity = load_gltf(model, node.get_parent(), has_collision, has_trimesh_col) as Node3D - var entity = load_gltf(config.get_value(node.name, "model"), node.get_parent()) as Node3D if(entity == null): printerr("ENTITY COULD NOT BE CREATED : ", node.name) return false