From c7925cac5dac943409074c326084bceef8f4f140 Mon Sep 17 00:00:00 2001 From: Maksim Trubchyk Date: Sat, 30 Apr 2022 14:04:12 +0300 Subject: [PATCH] added new scene with game - blocksbuster --- examples/main.collection | 18 + examples/main.script | 2 +- .../blocksbuster/blocksbuster.collection | 291 + .../blocksbuster/blocksbuster_main.script | 35 + .../scenes/blocksbuster/castle.collection | 5329 +++++++++++++++++ examples/scenes/blocksbuster/tower.collection | 169 + scene3d/prefabs/characters/buster.go | 160 + scene3d/scripts/characters/buster.script | 97 + 8 files changed, 6100 insertions(+), 1 deletion(-) create mode 100644 examples/scenes/blocksbuster/blocksbuster.collection create mode 100644 examples/scenes/blocksbuster/blocksbuster_main.script create mode 100644 examples/scenes/blocksbuster/castle.collection create mode 100644 examples/scenes/blocksbuster/tower.collection create mode 100644 scene3d/prefabs/characters/buster.go create mode 100644 scene3d/scripts/characters/buster.script diff --git a/examples/main.collection b/examples/main.collection index df0d5a4..4309aae 100644 --- a/examples/main.collection +++ b/examples/main.collection @@ -139,6 +139,24 @@ embedded_instances { " w: 1.0\n" " }\n" "}\n" + "embedded_components {\n" + " id: \"blocksbuster\"\n" + " type: \"collectionproxy\"\n" + " data: \"collection: \\\"/examples/scenes/blocksbuster/blocksbuster.collection\\\"\\n" + "exclude: false\\n" + "\"\n" + " position {\n" + " x: 0.0\n" + " y: 0.0\n" + " z: 0.0\n" + " }\n" + " rotation {\n" + " x: 0.0\n" + " y: 0.0\n" + " z: 0.0\n" + " w: 1.0\n" + " }\n" + "}\n" "" position { x: 0.0 diff --git a/examples/main.script b/examples/main.script index de5ebab..737fbf5 100644 --- a/examples/main.script +++ b/examples/main.script @@ -7,7 +7,7 @@ local main = require("examples.main") go.property("scene1", hash("playground")) go.property("scene2", hash("basic_3d")) go.property("scene3", hash("shadows")) -go.property("scene4", hash("")) +go.property("scene4", hash("blocksbuster")) go.property("scene5", hash("")) go.property("acquire_input_focus", true) diff --git a/examples/scenes/blocksbuster/blocksbuster.collection b/examples/scenes/blocksbuster/blocksbuster.collection new file mode 100644 index 0000000..aa00329 --- /dev/null +++ b/examples/scenes/blocksbuster/blocksbuster.collection @@ -0,0 +1,291 @@ +name: "shadows" +instances { + id: "main_camera" + prototype: "/scene3d/camera/camera3d.go" + position { + x: -0.269 + y: 10.570332 + z: 10.883265 + } + rotation { + x: -0.40577975 + y: 0.0 + z: 0.0 + w: 0.9139709 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +instances { + id: "light_directional" + prototype: "/scene3d/camera/light_directional.go" + position { + x: 3.01 + y: 2.42 + z: 0.85 + } + rotation { + x: -0.43348113 + y: 0.42721757 + z: 0.24543284 + w: 0.75454754 + } + component_properties { + id: "light_directional" + properties { + id: "ambient_light_intensity" + value: "0.9" + type: PROPERTY_TYPE_NUMBER + } + properties { + id: "directional_light_intensity" + value: "0.35" + type: PROPERTY_TYPE_NUMBER + } + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +instances { + id: "buildings_floor_10x10" + prototype: "/scene3d/prefabs/buildings/buildings_floor_10x10.go" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +instances { + id: "blob_shadows" + prototype: "/scene3d/fx/blob_shadows.go" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +instances { + id: "buster" + prototype: "/scene3d/prefabs/characters/buster.go" + position { + x: 0.0 + y: 0.05 + z: 3.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 2.0 + y: 0.1 + z: 2.0 + } +} +collection_instances { + id: "debug_ui" + collection: "/scene3d/debug/photo_mode/debug_ui.collection" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +collection_instances { + id: "castle1" + collection: "/examples/scenes/blocksbuster/castle.collection" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +collection_instances { + id: "tower4" + collection: "/examples/scenes/blocksbuster/tower.collection" + position { + x: -3.0 + y: 0.0 + z: 3.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +collection_instances { + id: "tower1" + collection: "/examples/scenes/blocksbuster/tower.collection" + position { + x: 3.0 + y: 0.0 + z: 3.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +collection_instances { + id: "tower2" + collection: "/examples/scenes/blocksbuster/tower.collection" + position { + x: -3.0 + y: 0.0 + z: -3.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +collection_instances { + id: "tower3" + collection: "/examples/scenes/blocksbuster/tower.collection" + position { + x: 3.0 + y: 0.0 + z: -3.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +scale_along_z: 1 +embedded_instances { + id: "main" + data: "components {\n" + " id: \"blocksbuster_main\"\n" + " component: \"/examples/scenes/blocksbuster/blocksbuster_main.script\"\n" + " position {\n" + " x: 0.0\n" + " y: 0.0\n" + " z: 0.0\n" + " }\n" + " rotation {\n" + " x: 0.0\n" + " y: 0.0\n" + " z: 0.0\n" + " w: 1.0\n" + " }\n" + "}\n" + "" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} +embedded_instances { + id: "objects" + children: "buster" + data: "" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + scale3 { + x: 1.0 + y: 1.0 + z: 1.0 + } +} diff --git a/examples/scenes/blocksbuster/blocksbuster_main.script b/examples/scenes/blocksbuster/blocksbuster_main.script new file mode 100644 index 0000000..5e67575 --- /dev/null +++ b/examples/scenes/blocksbuster/blocksbuster_main.script @@ -0,0 +1,35 @@ +local render3d = require("scene3d.render.render3d") + +go.property("acquire_input_focus", true) + +function init(self) + print("shadows_main: init()") + + if self.acquire_input_focus then + msg.post(".", hash("acquire_input_focus")) + end +end + +function final(self) +end + +function update(self, dt) + render3d.debug_log("[WASD] Move buster, Game: Blocksbuster! (Voodoo)") +end + +function on_message(self, message_id, message, sender) +end + +function on_input(self, action_id, action) + local buster_id = msg.url("/buster") + + if action_id == hash("key_a") and not action.released then + go.set_position(go.get_position(buster_id) - vmath.vector3(0.04, 0, 0), buster_id) + elseif action_id == hash("key_d") and not action.released then + go.set_position(go.get_position(buster_id) + vmath.vector3(0.04, 0, 0), buster_id) + elseif action_id == hash("key_w") and not action.released then + go.set_position(go.get_position(buster_id) - vmath.vector3(0, 0, 0.04), buster_id) + elseif action_id == hash("key_s") and not action.released then + go.set_position(go.get_position(buster_id) + vmath.vector3(0, 0, 0.04), buster_id) + end +end \ No newline at end of file diff --git a/examples/scenes/blocksbuster/castle.collection b/examples/scenes/blocksbuster/castle.collection new file mode 100644 index 0000000..e43f12b --- /dev/null +++ b/examples/scenes/blocksbuster/castle.collection @@ -0,0 +1,5329 @@ +name: "default" +instances { + id: "primitive_pyramid3" + prototype: "/scene3d/prefabs/primitives/primitive_pyramid.go" + position { + x: 1.5 + y: 2.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube16" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.25 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube72" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.75 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube8" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.75 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube50" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube79" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.75 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube86" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.75 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube26" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube24" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.75 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube27" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube95" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.75 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube94" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.75 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube13" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 1.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube48" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube45" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube49" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube40" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube31" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube88" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.75 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_pyramid4" + prototype: "/scene3d/prefabs/primitives/primitive_pyramid.go" + position { + x: 0.5 + y: 1.75 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube1" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 1.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube18" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.25 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube93" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.75 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube69" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.75 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube54" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube52" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube2" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 1.75 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube7" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube44" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube112" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 1.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube73" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.75 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube91" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.75 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube61" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.75 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube63" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.75 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube74" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube25" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube98" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.75 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube29" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube53" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube76" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.75 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_pyramid1" + prototype: "/scene3d/prefabs/primitives/primitive_pyramid.go" + position { + x: 1.5 + y: 2.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube19" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.25 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube111" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 1.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube43" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube92" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.75 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube22" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.25 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube101" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.75 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube109" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 1.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube82" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube103" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.75 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube62" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.75 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube10" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 1.75 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube11" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube37" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.25 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube104" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.75 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube23" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube81" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube83" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.75 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube12" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.75 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube87" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.75 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube51" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube106" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 1.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube57" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube55" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube113" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 1.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube75" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.75 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube85" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube30" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube107" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 1.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube108" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 1.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube58" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube90" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.75 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube65" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.75 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube34" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.25 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube64" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.75 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube105" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.75 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube66" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.75 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube68" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.75 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube9" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 1.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube56" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube97" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.75 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube77" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube114" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 1.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube100" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube78" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.75 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube84" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.75 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube5" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 1.75 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube89" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.75 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube15" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube59" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube99" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.75 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube4" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 1.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube42" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube47" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.25 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube14" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 1.75 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube38" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.25 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube46" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_pyramid6" + prototype: "/scene3d/prefabs/primitives/primitive_pyramid.go" + position { + x: 0.5 + y: 1.75 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube32" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube67" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.75 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube80" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.75 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube70" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.75 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_pyramid5" + prototype: "/scene3d/prefabs/primitives/primitive_pyramid.go" + position { + x: -0.5 + y: 1.75 + z: -0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube3" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.75 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_sphere" + prototype: "/scene3d/prefabs/primitives/primitive_sphere.go" + position { + x: 0.0 + y: 1.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#circle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube20" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.25 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube110" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 1.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube102" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.75 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube28" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_pyramid" + prototype: "/scene3d/prefabs/primitives/primitive_pyramid.go" + position { + x: -1.5 + y: 2.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube60" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.25 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube17" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.25 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_pyramid7" + prototype: "/scene3d/prefabs/primitives/primitive_pyramid.go" + position { + x: -0.5 + y: 1.75 + z: 0.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube96" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.75 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube33" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.25 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube21" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.0 + y: 0.25 + z: -1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube35" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -0.5 + y: 0.25 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube39" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 1.5 + y: 0.25 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube6" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.5 + y: 0.25 + z: -1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube41" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: -1.0 + y: 0.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube71" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.5 + y: 0.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cube36" + prototype: "/scene3d/prefabs/primitives/primitive_cube.go" + position { + x: 0.0 + y: 0.25 + z: 1.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_pyramid2" + prototype: "/scene3d/prefabs/primitives/primitive_pyramid.go" + position { + x: -1.5 + y: 2.25 + z: 1.5 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#rectangle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +scale_along_z: 0 diff --git a/examples/scenes/blocksbuster/tower.collection b/examples/scenes/blocksbuster/tower.collection new file mode 100644 index 0000000..4a3ce4f --- /dev/null +++ b/examples/scenes/blocksbuster/tower.collection @@ -0,0 +1,169 @@ +name: "default" +instances { + id: "primitive_cylinder" + prototype: "/scene3d/prefabs/primitives/primitive_cylinder.go" + position { + x: 0.0 + y: 0.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#circle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cylinder1" + prototype: "/scene3d/prefabs/primitives/primitive_cylinder.go" + position { + x: 0.0 + y: 0.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#circle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_cylinder2" + prototype: "/scene3d/prefabs/primitives/primitive_cylinder.go" + position { + x: 0.0 + y: 1.25 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "collision_type" + value: "static" + type: PROPERTY_TYPE_HASH + } + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#circle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +instances { + id: "primitive_sphere1" + prototype: "/scene3d/prefabs/primitives/primitive_sphere.go" + position { + x: 0.0 + y: 1.75 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } + component_properties { + id: "primitive" + properties { + id: "blob_shadow_factory_url" + value: "/blob_shadows#circle" + type: PROPERTY_TYPE_URL + } + properties { + id: "blob_shadow_scale" + value: "1.1, 1.1, 1.1" + type: PROPERTY_TYPE_VECTOR3 + } + properties { + id: "blob_shadow_offset" + value: "0.0, 0.0, 0.0" + type: PROPERTY_TYPE_VECTOR3 + } + } + scale3 { + x: 0.5 + y: 0.5 + z: 0.5 + } +} +scale_along_z: 0 diff --git a/scene3d/prefabs/characters/buster.go b/scene3d/prefabs/characters/buster.go new file mode 100644 index 0000000..47188e8 --- /dev/null +++ b/scene3d/prefabs/characters/buster.go @@ -0,0 +1,160 @@ +components { + id: "buster" + component: "/scene3d/scripts/characters/buster.script" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } +} +embedded_components { + id: "mesh1" + type: "mesh" + data: "material: \"/scene3d/materials/primitive_max_yellow_red.material\"\n" + "vertices: \"/scene3d/assets/meshes/primitive_tube.buffer\"\n" + "textures: \"/scene3d/assets/textures/grid_10x10.png\"\n" + "primitive_type: PRIMITIVE_TRIANGLES\n" + "position_stream: \"position\"\n" + "normal_stream: \"normal\"\n" + "" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } +} +embedded_components { + id: "collision_trigger" + type: "collisionobject" + data: "collision_shape: \"\"\n" + "type: COLLISION_OBJECT_TYPE_TRIGGER\n" + "mass: 0.0\n" + "friction: 0.0\n" + "restitution: 0.0\n" + "group: \"none\"\n" + "mask: \"default\"\n" + "embedded_collision_shape {\n" + " shapes {\n" + " shape_type: TYPE_CAPSULE\n" + " position {\n" + " x: 0.0\n" + " y: 0.0\n" + " z: 0.0\n" + " }\n" + " rotation {\n" + " x: 0.0\n" + " y: 0.0\n" + " z: 0.0\n" + " w: 1.0\n" + " }\n" + " index: 0\n" + " count: 2\n" + " }\n" + " data: 1.0\n" + " data: 10.0\n" + "}\n" + "linear_damping: 0.0\n" + "angular_damping: 0.0\n" + "locked_rotation: false\n" + "bullet: false\n" + "" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } +} +embedded_components { + id: "mesh2" + type: "mesh" + data: "material: \"/scene3d/materials/primitive_max_yellow_red.material\"\n" + "vertices: \"/scene3d/assets/meshes/primitive_cylinder.buffer\"\n" + "textures: \"/scene3d/assets/textures/grid_10x10.png\"\n" + "primitive_type: PRIMITIVE_TRIANGLES\n" + "position_stream: \"position\"\n" + "normal_stream: \"normal\"\n" + "" + position { + x: 0.0 + y: -0.9 + z: 0.0 + } + rotation { + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 + } +} +embedded_components { + id: "label" + type: "label" + data: "size {\n" + " x: 128.0\n" + " y: 32.0\n" + " z: 0.0\n" + " w: 0.0\n" + "}\n" + "scale {\n" + " x: 0.005\n" + " y: 0.005\n" + " z: 0.005\n" + " w: 0.0\n" + "}\n" + "color {\n" + " x: 1.0\n" + " y: 1.0\n" + " z: 1.0\n" + " w: 1.0\n" + "}\n" + "outline {\n" + " x: 1.0\n" + " y: 1.0\n" + " z: 1.0\n" + " w: 0.0\n" + "}\n" + "shadow {\n" + " x: 1.0\n" + " y: 1.0\n" + " z: 1.0\n" + " w: 0.0\n" + "}\n" + "leading: 1.0\n" + "tracking: 0.0\n" + "pivot: PIVOT_CENTER\n" + "blend_mode: BLEND_MODE_ALPHA\n" + "line_break: false\n" + "text: \"WASD\"\n" + "font: \"/scene3d/assets/debug_font.font\"\n" + "material: \"/scene3d/materials/label.material\"\n" + "" + position { + x: 0.0 + y: 0.0 + z: 0.0 + } + rotation { + x: -0.70710677 + y: 0.0 + z: 0.0 + w: 0.70710677 + } +} diff --git a/scene3d/scripts/characters/buster.script b/scene3d/scripts/characters/buster.script new file mode 100644 index 0000000..bf8cbff --- /dev/null +++ b/scene3d/scripts/characters/buster.script @@ -0,0 +1,97 @@ +local animation = require("scene3d.scripts.animation") +local blob_shadow = require("scene3d.scripts.blob_shadow") +local collision = require("scene3d.scripts.collision") +local frustum_mesh = require("scene3d.scripts.frustum_mesh") +local render3d = require("scene3d.render.render3d") + +-- go.property("mesh_enabled", true) +go.property("mesh1_id", hash("mesh1")) +go.property("mesh2_id", hash("mesh2")) + +-- frustum_mesh.lua +go.property("frustum_cull_enabled", true) +go.property("frustum_mesh_max_dimension", 1) +go.property("frustum_mesh_use_world_position", false) + +-- collision.lua +go.property("collision_type", hash("trigger")) +go.property("collision_group", hash("")) +go.property("collision_mask", hash("")) + +go.property("message_receiver", msg.url()) +go.property("message_init", hash("")) + +local EMPTY_HASH = hash("") + +function init(self) + frustum_mesh.init(self, msg.url(nil, nil, self.mesh1_id)) + frustum_mesh.init(self, msg.url(nil, nil, self.mesh2_id)) + collision.init(self, { trigger = COLLISION_TRIGGER }) + + if self.message_init ~= EMPTY_HASH then + msg.post(self.message_receiver, self.message_init) + end + + physics.set_group("#collision_trigger", "default") + self.busted_blocks_id = {} +end + +function final(self) + frustum_mesh.final(self) + collision.final(self) +end + +function update(self, dt) + frustum_mesh.update(self) + collision.update(self, dt) + + for block_id, _ in pairs(self.busted_blocks_id) do + local block_position = go.get_world_position(block_id) + local distance = go.get_world_position() - block_position + local collision_dynamic_url = msg.url(nil, block_id, "collision_dynamic") + if vmath.length(distance) < 2 then + local block_force = distance * 5 + block_force.y = 0 + local velocity = vmath.length(go.get(collision_dynamic_url, "angular_velocity")) + local rotation_position = vmath.vector3(0, 0, 0) + if velocity < 3 then + rotation_position = vmath.vector3(0, 1, 0) + end + msg.post(block_id, "apply_force", { force = block_force, position = block_position + rotation_position }) + end + if vmath.length(distance) < 0.7 then + physics.set_group(collision_dynamic_url, "none") + else + physics.set_group(collision_dynamic_url, "default") + end + end +end + +function on_message(self, message_id, message, sender) + collision.on_message(self, message_id, message, sender) + + if message_id == hash("trigger_response") then + if message.other_id ~= hash("/buildings_floor_10x10") then + local collision_dynamic_url = msg.url(nil, message.other_id, "collision_dynamic") + local collision_static_url = msg.url(nil, message.other_id, "collision_static") + if not self.busted_blocks_id[message.other_id] then + self.busted_blocks_id[message.other_id] = 0 + end + if message.enter then + self.busted_blocks_id[message.other_id] = self.busted_blocks_id[message.other_id] + 1 + msg.post(collision_dynamic_url, "enable") + msg.post(collision_static_url, "disable") + else + self.busted_blocks_id[message.other_id] = self.busted_blocks_id[message.other_id] - 1 + end + if self.busted_blocks_id[message.other_id] == 0 then + if physics.get_group(collision_dynamic_url) == hash("none") then + go.animate(message.other_id, "scale", go.PLAYBACK_ONCE_FORWARD, 0, go.EASING_INSINE, 0.2, 0, function() + go.delete(message.other_id) + end) + end + self.busted_blocks_id[message.other_id] = nil + end + end + end +end \ No newline at end of file