From 820a57f609deb0e19eddb40e3daa31d02fc80695 Mon Sep 17 00:00:00 2001 From: Jens Pitkanen Date: Thu, 23 Jul 2026 21:50:10 +0300 Subject: [PATCH] Add --rebuild-map to enable a TrenchBroom-only level design workflow --- godot/maps/entities/spawn.gd | 6 + godot/maps/entities/spawn.gd.uid | 1 + godot/maps/entities/spawn.tres | 21 +++ godot/maps/{meta => entities}/worldspawn.tres | 0 godot/maps/meta/map_entity_defs.tres | 5 +- godot/maps/meta/map_rebuilder.gd | 60 +++++++ godot/maps/meta/map_rebuilder.gd.uid | 1 + godot/maps/meta/rebuild_map.gd | 20 --- godot/maps/meta/rebuild_map.gd.uid | 1 - godot/maps/two_towers/two_towers.map | 41 +++-- godot/maps/two_towers/two_towers.tscn | 163 +++++++++--------- 11 files changed, 201 insertions(+), 118 deletions(-) create mode 100644 godot/maps/entities/spawn.gd create mode 100644 godot/maps/entities/spawn.gd.uid create mode 100644 godot/maps/entities/spawn.tres rename godot/maps/{meta => entities}/worldspawn.tres (100%) create mode 100644 godot/maps/meta/map_rebuilder.gd create mode 100644 godot/maps/meta/map_rebuilder.gd.uid delete mode 100644 godot/maps/meta/rebuild_map.gd delete mode 100644 godot/maps/meta/rebuild_map.gd.uid diff --git a/godot/maps/entities/spawn.gd b/godot/maps/entities/spawn.gd new file mode 100644 index 0000000..d92f438 --- /dev/null +++ b/godot/maps/entities/spawn.gd @@ -0,0 +1,6 @@ +@tool +class_name SpawnEntity +extends Node3D + +@export var team_index: int = -1 +@export var is_ball_spawn: bool = false diff --git a/godot/maps/entities/spawn.gd.uid b/godot/maps/entities/spawn.gd.uid new file mode 100644 index 0000000..26ff43f --- /dev/null +++ b/godot/maps/entities/spawn.gd.uid @@ -0,0 +1 @@ +uid://chhq2pb2quwg6 diff --git a/godot/maps/entities/spawn.tres b/godot/maps/entities/spawn.tres new file mode 100644 index 0000000..4dba6e4 --- /dev/null +++ b/godot/maps/entities/spawn.tres @@ -0,0 +1,21 @@ +[gd_resource type="Resource" script_class="FuncGodotFGDPointClass" format=3 uid="uid://bqm65x2jpfxho"] + +[ext_resource type="Script" uid="uid://d1nwwgcrner8b" path="res://addons/func_godot/src/fgd/func_godot_fgd_point_class_display_descriptor.gd" id="1_0io4j"] +[ext_resource type="Script" uid="uid://cxsqwtsqd8w33" path="res://addons/func_godot/src/fgd/func_godot_fgd_point_class.gd" id="2_nqhon"] +[ext_resource type="Script" uid="uid://chhq2pb2quwg6" path="res://maps/entities/spawn.gd" id="3_nqhon"] + +[resource] +script = ExtResource("2_nqhon") +script_class = ExtResource("3_nqhon") +classname = "info_spawn_point" +class_properties = Dictionary[String, Variant]({ +"is_ball_spawn": false, +"team_index": -1 +}) +class_property_descriptions = Dictionary[String, Variant]({ +"is_ball_spawn": "If enabled, this entity will be marked as the spawn point for the ball.", +"team_index": "The index of the team whose players will be spawned here. The indices are into the team array in the MapResource file under maps/." +}) +auto_apply_to_matching_node_properties = true +node_class = "Node3D" +metadata/_custom_type_script = "uid://cxsqwtsqd8w33" diff --git a/godot/maps/meta/worldspawn.tres b/godot/maps/entities/worldspawn.tres similarity index 100% rename from godot/maps/meta/worldspawn.tres rename to godot/maps/entities/worldspawn.tres diff --git a/godot/maps/meta/map_entity_defs.tres b/godot/maps/meta/map_entity_defs.tres index b6064cb..0a11d47 100644 --- a/godot/maps/meta/map_entity_defs.tres +++ b/godot/maps/meta/map_entity_defs.tres @@ -1,12 +1,13 @@ [gd_resource type="Resource" script_class="FuncGodotFGDFile" format=3 uid="uid://dhq2srgr0vr1m"] -[ext_resource type="Resource" uid="uid://cb5fm54x4t23d" path="res://maps/meta/worldspawn.tres" id="1_fkacr"] +[ext_resource type="Resource" uid="uid://cb5fm54x4t23d" path="res://maps/entities/worldspawn.tres" id="1_fkacr"] [ext_resource type="Resource" uid="uid://crgpdahjaj" path="res://addons/func_godot/fgd/func_godot_fgd.tres" id="1_j17uj"] [ext_resource type="Script" uid="uid://drlmgulwbjwqu" path="res://addons/func_godot/src/fgd/func_godot_fgd_file.gd" id="2_2w5ia"] +[ext_resource type="Resource" uid="uid://bqm65x2jpfxho" path="res://maps/entities/spawn.tres" id="3_qwe78"] [resource] script = ExtResource("2_2w5ia") fgd_name = "QuakeBall" base_fgd_files = Array[Resource]([ExtResource("1_j17uj")]) -entity_definitions = Array[Resource]([ExtResource("1_fkacr")]) +entity_definitions = Array[Resource]([ExtResource("1_fkacr"), ExtResource("3_qwe78")]) metadata/_custom_type_script = "uid://drlmgulwbjwqu" diff --git a/godot/maps/meta/map_rebuilder.gd b/godot/maps/meta/map_rebuilder.gd new file mode 100644 index 0000000..b97e0a1 --- /dev/null +++ b/godot/maps/meta/map_rebuilder.gd @@ -0,0 +1,60 @@ +@tool +extends Node + +# This node and script are here to rebuild the .map file and do general updating stuff +# when invoked with the --rebuild-map user CLI argument. This is useful for being able +# to update the scene with the latest changes to the .map file automatically in a +# trenchbroom compile step. The way this works is that this script is a bit of a sleeper agent, +# doing nothing most of the time, but if the engine is running in Editor mode and the --rebuild-map +# user CLI argument is passed, this script runs the "Build Map" buttons' function for the func_godot +# map, and does some other misc. node setup (like hooking up spawn points to the Map), and then +# quits. With the headless argument, this allows rebuilding the Godot representation of the map, and +# doing menial maintenance work, all from a single CLI command. That TrenchBroom can also invoke, +# enabling a level design iteration loop without any (visible) Godot editor in the loop. +# +# E.g. to rebuild the Two Towers map from CLI, run this from repo root: +# godot --headless --editor --path godot res://maps/two_towers/two_towers.tscn -- --rebuild-map +# +# In TrenchBroom, the following should work as "Parameters" of a "Run Tool" compile step with Godot as the tool: +# --headless --editor --path godot res://maps/${MAP_BASE_NAME}/${MAP_BASE_NAME}.tscn -- --rebuild-map +# Another step might be useful for actually running the game. + +func _ready() -> void: + var args: PackedStringArray = OS.get_cmdline_user_args() + if args.has("--rebuild-map"): + var success: bool = rebuild_map() + get_tree().quit(0 if success else 1) + +func rebuild_map() -> bool: + var map: Map = get_parent() + + # Rebuild func_godot_map + var func_godot_maps: Array = map.find_children("*", "FuncGodotMap") + assert(len(func_godot_maps) == 1) + var func_godot_map: FuncGodotMap = func_godot_maps[0] + print("Rebuilding ", func_godot_map.name, "...") + func_godot_map.build() + print(func_godot_map.name, " rebuilt. Registering spawners...") + + # Hook up team and ball spawns + map.spawners = [] + var spawner_count: int = 0 + var spawn_entities: Array = map.find_children("*", "SpawnEntity") + for node in spawn_entities: + var spawn_entity: SpawnEntity = node + if spawn_entity.is_ball_spawn: + map.ball_spawner = spawn_entity + spawner_count += 1 + if spawn_entity.team_index >= 0: + while len(map.spawners) <= spawn_entity.team_index: + map.spawners.push_back(null) + map.spawners[spawn_entity.team_index] = spawn_entity + spawner_count += 1 + print(spawner_count, " spawners registered. Saving scene...") + + var packed_scene = PackedScene.new() + packed_scene.pack(get_tree().edited_scene_root) + ResourceSaver.save(packed_scene, get_tree().edited_scene_root.scene_file_path) + print("Scene saved. All rebuilding steps complete!") + + return true diff --git a/godot/maps/meta/map_rebuilder.gd.uid b/godot/maps/meta/map_rebuilder.gd.uid new file mode 100644 index 0000000..dd1b6a8 --- /dev/null +++ b/godot/maps/meta/map_rebuilder.gd.uid @@ -0,0 +1 @@ +uid://diepa0rcedh5f diff --git a/godot/maps/meta/rebuild_map.gd b/godot/maps/meta/rebuild_map.gd deleted file mode 100644 index bbc95ea..0000000 --- a/godot/maps/meta/rebuild_map.gd +++ /dev/null @@ -1,20 +0,0 @@ -extends SceneTree - -func _init() -> void: - var args: PackedStringArray = OS.get_cmdline_user_args() - var next_is_map = false - for arg in args: - if next_is_map: - rebuild_map(arg) - return - elif arg == "--map": - next_is_map = true - print("No map provided. (Make sure to include e.g. '-- --map two_towers' after the godot invocation)") - quit(2) - -func rebuild_map(name: String) -> void: - var map_scene_path: String = "res://maps/" + name + "/" + name + ".tscn" - var scene: Resource = load(map_scene_path) as PackedScene - var instantiated_scene = scene.instantiate(PackedScene.GEN_EDIT_STATE_MAIN) - print("TODO: Rebuild the map & whatever post-processing, and save this back to disk: ", instantiated_scene) - quit(0) diff --git a/godot/maps/meta/rebuild_map.gd.uid b/godot/maps/meta/rebuild_map.gd.uid deleted file mode 100644 index d204adf..0000000 --- a/godot/maps/meta/rebuild_map.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://2ipxbi1glfsq diff --git a/godot/maps/two_towers/two_towers.map b/godot/maps/two_towers/two_towers.map index 03996ef..9c045a4 100644 --- a/godot/maps/two_towers/two_towers.map +++ b/godot/maps/two_towers/two_towers.map @@ -151,15 +151,6 @@ } // brush 15 { -( -256 -128 0 ) ( -256 -127 0 ) ( -256 -128 1 ) str_stonewall4 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 -( -256 -128 0 ) ( -256 -128 1 ) ( -255 -128 0 ) str_stonewall4 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 -( -256 -128 0 ) ( -255 -128 0 ) ( -256 -127 0 ) str_stonewall4 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 0.5 0.5 -( -192 0 32 ) ( -192 1 32 ) ( -191 0 32 ) str_stonewall4 [ 1 0 0 0 ] [ 0 -1 0 0 ] 180 0.5 0.5 -( -192 0 64 ) ( -191 0 64 ) ( -192 0 65 ) str_stonewall4 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 -( -192 0 64 ) ( -192 0 65 ) ( -192 1 64 ) str_stonewall4 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 -} -// brush 16 -{ ( 16 -16 32 ) ( 0 -128 32 ) ( 0 -128 0 ) str_stoneflr5 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 128 0 0 ) ( 128 0 32 ) ( 16 -16 32 ) str_stoneflr5 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 0 -128 32 ) ( 128 -128 32 ) ( 128 -128 0 ) str_stoneflr5 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 @@ -167,7 +158,7 @@ ( 16 -16 32 ) ( 128 0 32 ) ( 128 -128 32 ) str_stoneflr5 [ 1 0 0 0 ] [ 0 -1 0 0 ] 180 0.5 0.5 ( 128 -128 32 ) ( 128 0 32 ) ( 128 0 0 ) str_stoneflr5 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 } -// brush 17 +// brush 16 { ( -128 128 32 ) ( -128 0 32 ) ( -128 0 0 ) str_stoneflr5 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( -16 16 0 ) ( 0 128 0 ) ( -128 128 0 ) str_stoneflr5 [ -1 0 0 0 ] [ 0 -1 0 0 ] 0 0.5 0.5 @@ -176,7 +167,7 @@ ( -128 0 32 ) ( -16 16 32 ) ( -16 16 0 ) str_stoneflr5 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( -16 16 32 ) ( 0 128 32 ) ( 0 128 0 ) str_stoneflr5 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 } -// brush 18 +// brush 17 { ( 512 -256 256 ) ( 512 -128 0 ) ( 512 -128 256 ) str_stonebrk1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 576 -256 256 ) ( 512 -256 0 ) ( 512 -256 256 ) str_stonebrk1 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 @@ -185,7 +176,7 @@ ( 576 -128 256 ) ( 512 -128 0 ) ( 576 -128 0 ) str_stonebrk1 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 576 -128 256 ) ( 576 -256 0 ) ( 576 -256 256 ) str_stonebrk1 [ 0 1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 } -// brush 19 +// brush 18 { ( -576 64 256 ) ( -576 192 0 ) ( -576 192 256 ) str_stonebrk1 [ 0 -1 0 128 ] [ 0 0 -1 0 ] 90 0.5 0.5 ( -512 64 256 ) ( -576 64 0 ) ( -576 64 256 ) str_stonebrk1 [ 1 0 0 128 ] [ 0 0 -1 0 ] 90 0.5 0.5 @@ -194,7 +185,7 @@ ( -512 192 256 ) ( -576 192 0 ) ( -512 192 0 ) str_stonebrk1 [ -1 0 0 -128 ] [ 0 0 -1 0 ] 90 0.5 0.5 ( -512 192 256 ) ( -512 64 0 ) ( -512 64 256 ) str_stonebrk1 [ 0 1 0 -128 ] [ 0 0 -1 0 ] 90 0.5 0.5 } -// brush 20 +// brush 19 { ( 384 -256 192 ) ( 384 -320 192 ) ( 384 -256 0 ) str_stonebrk1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 448 -320 0 ) ( 384 -320 0 ) ( 448 -320 192 ) str_stonebrk1 [ -1 -2.220446049250313e-16 0 128 ] [ 0 0 -1 0 ] 0 0.5 0.5 @@ -203,7 +194,7 @@ ( 384 -256 0 ) ( 448 -256 0 ) ( 384 -256 192 ) clip [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 448 -256 0 ) ( 448 -320 0 ) ( 448 -256 192 ) str_stonebrk1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 } -// brush 21 +// brush 20 { ( 384 -448 0 ) ( 384 -384 0 ) ( 384 -448 192 ) str_stonebrk1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 384 -448 192 ) ( 448 -448 192 ) ( 384 -448 0 ) str_stonebrk1 [ -1 -2.220446049250313e-16 0 128 ] [ 0 0 -1 0 ] 0 0.5 0.5 @@ -212,7 +203,7 @@ ( 384 -384 192 ) ( 384 -384 0 ) ( 448 -384 192 ) str_stonebrk1 [ 1 -2.220446049250313e-16 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 448 -448 192 ) ( 448 -384 192 ) ( 448 -448 0 ) str_stonebrk1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 } -// brush 22 +// brush 21 { ( 384 -384 192 ) ( 384 -384 128 ) ( 384 -320 192 ) str_stonebrk1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 448 -384 192 ) ( 448 -384 128 ) ( 384 -384 192 ) str_wasteland4 [ 1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 @@ -221,7 +212,7 @@ ( 384 -320 192 ) ( 384 -320 128 ) ( 448 -320 192 ) str_wasteland4 [ -1 0 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 ( 448 -320 192 ) ( 448 -320 128 ) ( 448 -384 192 ) str_stonebrk1 [ 0 -1 0 0 ] [ 0 0 -1 0 ] 0 0.5 0.5 } -// brush 23 +// brush 22 { ( 416 -384 128 ) ( 416 -320 0 ) ( 416 -320 128 ) clip [ 0 -1 0 0 ] [ 0 0 -1 0 ] 270 0.5 0.5 ( 480 -384 128 ) ( 416 -384 0 ) ( 416 -384 128 ) clip [ 1 0 0 -64 ] [ 0 0 -1 0 ] 270 0.5 0.5 @@ -231,3 +222,21 @@ ( 448 -320 128 ) ( 448 -384 0 ) ( 448 -384 128 ) clip [ 0 1 0 0 ] [ 0 0 -1 0 ] 180 0.5 0.5 } } +// entity 1 +{ +"classname" "info_spawn_point" +"origin" "72 -72 40" +"team_index" "1" +} +// entity 2 +{ +"classname" "info_spawn_point" +"origin" "-72 56 40" +"team_index" "0" +} +// entity 3 +{ +"classname" "info_spawn_point" +"origin" "-440 424 168" +"is_ball_spawn" "1" +} diff --git a/godot/maps/two_towers/two_towers.tscn b/godot/maps/two_towers/two_towers.tscn index 02b5135..7c1081b 100644 --- a/godot/maps/two_towers/two_towers.tscn +++ b/godot/maps/two_towers/two_towers.tscn @@ -4,20 +4,22 @@ [ext_resource type="Script" uid="uid://cwu5cf7a0awcd" path="res://addons/func_godot/src/map/func_godot_map.gd" id="1_l5vmt"] [ext_resource type="Resource" uid="uid://blt2w6o2bluf" path="res://maps/meta/map_settings.tres" id="2_s5s5s"] [ext_resource type="PackedScene" uid="uid://kfxc0migw80o" path="res://scenes/player/remote_player.tscn" id="2_y3aqj"] -[ext_resource type="Material" uid="uid://batygcarr6lwx" path="res://maps/materials/str_wasteland4.tres" id="3_s5s5s"] [ext_resource type="PackedScene" uid="uid://dfnbc8sbufa4j" path="res://scenes/misc/ball.tscn" id="3_ykri2"] -[ext_resource type="Material" uid="uid://cflfpp58y77fm" path="res://maps/materials/str_stonebrk1.tres" id="4_hhbby"] -[ext_resource type="Material" uid="uid://c1qgpdya0unj7" path="res://maps/materials/str_stonewall4.tres" id="5_bcdi7"] -[ext_resource type="Material" uid="uid://vc7bel8b68an" path="res://maps/materials/str_stoneflr5.tres" id="6_hhbby"] +[ext_resource type="Script" uid="uid://diepa0rcedh5f" path="res://maps/meta/map_rebuilder.gd" id="4_y3aqj"] +[ext_resource type="Material" uid="uid://batygcarr6lwx" path="res://maps/materials/str_wasteland4.tres" id="7_ykri2"] +[ext_resource type="Material" uid="uid://cflfpp58y77fm" path="res://maps/materials/str_stonebrk1.tres" id="8_2spb1"] +[ext_resource type="Material" uid="uid://c1qgpdya0unj7" path="res://maps/materials/str_stonewall4.tres" id="9_mw7l8"] +[ext_resource type="Material" uid="uid://vc7bel8b68an" path="res://maps/materials/str_stoneflr5.tres" id="10_ldmbn"] +[ext_resource type="Script" uid="uid://chhq2pb2quwg6" path="res://maps/entities/spawn.gd" id="11_26faa"] -[sub_resource type="ArrayMesh" id="ArrayMesh_fjy4d"] +[sub_resource type="ArrayMesh" id="ArrayMesh_ykri2"] _surfaces = [{ "aabb": AABB(-56, -2, -56, 112, 8, 112), "attribute_data": PackedByteArray("AADgwAAAgL0AAOBAAACAvQAA4EAAAEA+AADgwAAAQD4AAOBAAABAPgAA4MAAAEA+AADgwAAAgL0AAOBAAACAvQAA4MAAAOBAAADgwAAA4MAAAOBAAADgwAAA4EAAAOBAAADgQAAA4EAAAODAAADgQAAA4MAAAODAAADgQAAA4MAAAODAAACAvQAA4EAAAIC9AADgQAAAQD4AAODAAABAPgAA4EAAAEA+AADgwAAAQD4AAODAAACAvQAA4EAAAIC9AADgvwAAoD8AAOC/AACAPwAAwL8AAIA/AADAvwAAoD8AAOC/AADgPwAA4L8AAMA/AADAvwAAwD8AAMC/AADgPwAA4D8AAAC/AADAPwAAAL8AAMA/AABAvwAA4D8AAEC/AADgPwAAwD8AAOA/AACgPwAAwD8AAKA/AADAPwAAwD8AAOC/AABAvwAAwL8AAEC/AADAvwAAAL8AAOC/AAAAvw=="), "format": 34359742487, "index_count": 66, "index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcAGAAZABoAGAAaABsAHAAdAB4AHAAeAB8AIAAhACIAIAAiACMAJAAlACYAJAAmACcAKAApACoAKAAqACsA"), -"material": ExtResource("3_s5s5s"), +"material": ExtResource("7_ykri2"), "name": "str_wasteland4", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), @@ -29,7 +31,7 @@ _surfaces = [{ "format": 34359742487, "index_count": 672, "index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcAGAAZABoAGAAaABsAHAAdAB4AHAAeAB8AIAAhACIAIAAiACMAJAAlACYAJAAmACcAKAApACoAKAAqACsALAAtAC4ALAAuAC8AMAAxADIAMAAyADMANAA1ADYANAA2ADcAOAA5ADoAOAA6ADsAPAA9AD4APAA+AD8AQABBAEIAQABCAEMARABFAEYARABGAEcASABJAEoASABKAEsATABNAE4ATABOAE8AUABRAFIAUABSAFMAVABVAFYAVABWAFcAWABZAFoAWABaAFsAXABdAF4AXABeAF8AYABhAGIAYABiAGMAZABlAGYAZABmAGcAaABpAGoAaABqAGsAbABtAG4AbABuAG8AcABxAHIAcAByAHMAdAB1AHYAdAB2AHcAeAB5AHoAeAB6AHsAfAB9AH4AfAB+AH8AgACBAIIAgACCAIMAhACFAIYAhACGAIcAiACJAIoAiACKAIsAjACNAI4AjACOAI8AkACRAJIAkACSAJMAlACVAJYAlACWAJcAmACZAJoAmACaAJsAnACdAJ4AnACeAJ8AoAChAKIAoACiAKMApAClAKYApACmAKcAqACpAKoAqACqAKsArACtAK4ArACuAK8AsACxALIAsACyALMAtAC1ALYAtAC2ALcAuAC5ALoAuAC6ALsAvAC9AL4AvAC+AL8AwADBAMIAwADCAMMAxADFAMYAxADGAMcAyADJAMoAyADKAMsAzADNAM4AzADOAM8A0ADRANIA0ADSANMA1ADVANYA1ADWANcA2ADZANoA2ADaANsA3ADdAN4A3ADeAN8A4ADhAOIA4ADiAOMA5ADlAOYA5ADmAOcA6ADpAOoA6ADqAOsA7ADtAO4A7ADuAO8A8ADxAPIA8ADyAPMA9AD1APYA9AD2APcA+AD5APoA+AD6APsA/AD9AP4A/AD+AP8AAAEBAQIBAAECAQMBAAEDAQQBAAEEAQUBAAEFAQYBAAEGAQcBCAEJAQoBCAEKAQsBCAELAQwBCAEMAQ0BCAENAQ4BCAEOAQ8BEAERARIBEAESARMBFAEVARYBFAEWARcBGAEZARoBGAEaARsBHAEdAR4BHAEeAR8BIAEhASIBIAEiASMBJAElASYBJAEmAScBKAEpASoBKAEqASsBLAEtAS4BLAEuAS8BMAExATIBMAEyATMBMAEzATQBMAE0ATUBMAE1ATYBMAE2ATcBOAE5AToBOAE6ATsBOAE7ATwBOAE8AT0BOAE9AT4BOAE+AT8BQAFBAUIBQAFCAUMBRAFFAUYBRAFGAUcBSAFJAUoBSAFKAUsBTAFNAU4BTAFOAU8BUAFRAVIBUAFSAVMBVAFVAVYBVAFWAVcBWAFZAVoBWAFaAVsBXAFdAV4BXAFeAV8BYAFhAWIBYAFiAWMBZAFlAWYBZAFmAWcBaAFpAWoBaAFqAWsBbAFtAW4BbAFuAW8BcAFxAXIBcAFyAXMBdAF1AXYBdAF2AXcBeAF5AXoBeAF6AXsBfAF9AX4BfAF+AX8BgAGBAYIBgAGCAYMBhAGFAYYBhAGGAYcBiAGJAYoBiAGKAYsBjAGNAY4BjAGOAY8BkAGRAZIBkAGSAZMBlAGVAZYBlAGWAZcBmAGZAZoBmAGaAZsBnAGdAZ4BnAGeAZ8BoAGhAaIBoAGiAaMBpAGlAaYBpAGmAacBqAGpAaoBqAGqAasBrAGtAa4BrAGuAa8B"), -"material": ExtResource("4_hhbby"), +"material": ExtResource("8_2spb1"), "name": "str_stonebrk1", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), @@ -37,23 +39,23 @@ _surfaces = [{ "vertex_data": PackedByteArray("AABgQQAAsEEAACBBAADAQAAAsEEAACBBAADAQAAAAAAAACBBAABgQQAAAAAAACBBAADAQAAAAAAAAJBBAADAQAAAAAAAACBBAADAQAAAsEEAACBBAADAQAAAsEEAAJBBAADAQAAAAAAAAJBBAABgQQAAAAAAAJBBAABgQQAAAAAAACBBAADAQAAAAAAAACBBAADAQAAAsEEAAJBBAADAQAAAsEEAACBBAABgQQAAsEEAACBBAABgQQAAsEEAAJBBAABgQQAAsEEAAJBBAABgQQAAsEEAACBBAABgQQAAAAAAACBBAABgQQAAAAAAAJBBAABgQQAAAAAAAJBBAADAQAAAAAAAAJBBAADAQAAAsEEAAJBBAABgQQAAsEEAAJBBAADAwAAAsEEAAJDBAABgwQAAsEEAAJDBAABgwQAAAAAAAJDBAADAwAAAAAAAAJDBAABgwQAAAAAAACDBAABgwQAAAAAAAJDBAABgwQAAsEEAAJDBAABgwQAAsEEAACDBAABgwQAAAAAAACDBAADAwAAAAAAAACDBAADAwAAAAAAAAJDBAABgwQAAAAAAAJDBAABgwQAAsEEAACDBAABgwQAAsEEAAJDBAADAwAAAsEEAAJDBAADAwAAAsEEAACDBAADAwAAAsEEAACDBAADAwAAAsEEAAJDBAADAwAAAAAAAAJDBAADAwAAAAAAAACDBAADAwAAAAAAAACDBAABgwQAAAAAAACDBAABgwQAAsEEAACDBAADAwAAAsEEAACDBAACwQQAAIEEAAGDBAACQQQAAIEEAAGDBAACQQQAAAAAAAGDBAACwQQAAAAAAAGDBAACQQQAAAAAAAIBBAACQQQAAAAAAAGDBAACQQQAAIEEAAGDBAACQQQAAIEEAAIBBAACQQQAAAAAAAIBBAACwQQAAAAAAAIBBAACwQQAAAAAAAGDBAACQQQAAAAAAAGDBAACQQQAAIEEAAIBBAACQQQAAIEEAAGDBAACwQQAAIEEAAGDBAACwQQAAIEEAAIBBAACwQQAAIEEAAIBBAACwQQAAIEEAAGDBAACwQQAAAAAAAGDBAACwQQAAAAAAAIBBAACwQQAAAAAAAIBBAACQQQAAAAAAAIBBAACQQQAAIEEAAIBBAACwQQAAIEEAAIBBAACQQQAAYEEAAEBBAABgQQAAYEEAAEBBAABgQQAAAAAAAEBBAACQQQAAAAAAAEBBAABgQQAAAAAAAIBBAABgQQAAAAAAAEBBAABgQQAAYEEAAEBBAABgQQAAYEEAAIBBAABgQQAAAAAAAIBBAACQQQAAAAAAAIBBAACQQQAAAAAAAEBBAABgQQAAAAAAAEBBAABgQQAAYEEAAIBBAABgQQAAYEEAAEBBAACQQQAAYEEAAEBBAACQQQAAYEEAAIBBAACQQQAAYEEAAIBBAACQQQAAYEEAAEBBAACQQQAAAAAAAEBBAACQQQAAAAAAAIBBAACQQQAAAAAAAIBBAABgQQAAAAAAAIBBAABgQQAAYEEAAIBBAACQQQAAYEEAAIBBAACQwQAAIEEAAIDBAACwwQAAIEEAAIDBAACwwQAAAAAAAIDBAACQwQAAAAAAAIDBAACwwQAAAAAAAGBBAACwwQAAAAAAAIDBAACwwQAAIEEAAIDBAACwwQAAIEEAAGBBAACwwQAAAAAAAGBBAACQwQAAAAAAAGBBAACQwQAAAAAAAIDBAACwwQAAAAAAAIDBAACwwQAAIEEAAGBBAACwwQAAIEEAAIDBAACQwQAAIEEAAIDBAACQwQAAIEEAAGBBAACQwQAAIEEAAGBBAACQwQAAIEEAAIDBAACQwQAAAAAAAIDBAACQwQAAAAAAAGBBAACQwQAAAAAAAGBBAACwwQAAAAAAAGBBAACwwQAAIEEAAGBBAACQwQAAIEEAAGBBAABgwQAAYEEAAIDBAACQwQAAYEEAAIDBAACQwQAAAAAAAIDBAABgwQAAAAAAAIDBAACQwQAAAAAAAEDBAACQwQAAAAAAAIDBAACQwQAAYEEAAIDBAACQwQAAYEEAAEDBAACQwQAAAAAAAEDBAABgwQAAAAAAAEDBAABgwQAAAAAAAIDBAACQwQAAAAAAAIDBAACQwQAAYEEAAEDBAACQwQAAYEEAAIDBAABgwQAAYEEAAIDBAABgwQAAYEEAAEDBAABgwQAAYEEAAEDBAABgwQAAYEEAAIDBAABgwQAAAAAAAIDBAABgwQAAAAAAAEDBAABgwQAAAAAAAEDBAACQwQAAAAAAAEDBAACQwQAAYEEAAEDBAABgwQAAYEEAAEDBAACAwAAAwEAAAJBBAABgwQAAwEAAAJBBAABgwQAAAAAAAJBBAACAwAAAAAAAAJBBAABgwQAAAAAAALBBAABgwQAAAAAAAJBBAABgwQAAwEAAAJBBAABgwQAAwEAAALBBAABgwQAAAAAAALBBAACAwAAAAAAAALBBAACAwAAAAAAAAJBBAABgwQAAAAAAAJBBAABgwQAAwEAAALBBAABgwQAAwEAAAJBBAACAwAAAwEAAAJBBAACAwAAAwEAAALBBAACAwAAAwEAAALBBAACAwAAAwEAAAJBBAACAwAAAAAAAAJBBAACAwAAAAAAAALBBAACAwAAAAAAAALBBAABgwQAAAAAAALBBAABgwQAAwEAAALBBAACAwAAAwEAAALBBAADAQAAAIEEAAEBBAAAAwQAAIEEAAEBBAAAAwQAAAAAAAEBBAADAQAAAAAAAAEBBAAAAwQAAAAAAAIBBAAAAwQAAAAAAAEBBAAAAwQAAIEEAAEBBAAAAwQAAIEEAAIBBAAAAwQAAAAAAAIBBAADAQAAAAAAAAIBBAADAQAAAAAAAAEBBAAAAwQAAAAAAAEBBAAAAwQAAIEEAAIBBAAAAwQAAIEEAAEBBAADAQAAAIEEAAEBBAADAQAAAIEEAAIBBAADAQAAAIEEAAIBBAADAQAAAIEEAAEBBAADAQAAAAAAAAEBBAADAQAAAAAAAAIBBAADAQAAAAAAAAIBBAAAAwQAAAAAAAIBBAAAAwQAAIEEAAIBBAADAQAAAIEEAAIBBAABgQQAAwEAAALDBAAAAQAAAwEAAALDBAAAAQAAAAAAAALDBAABgQQAAAAAAALDBAAAAQAAAAAAAAJDBAAAAQAAAAAAAALDBAAAAQAAAwEAAALDBAAAAQAAAwEAAAJDBAAAAQAAAAAAAAJDBAABgQQAAAAAAAJDBAABgQQAAAAAAALDBAAAAQAAAAAAAALDBAAAAQAAAwEAAAJDBAAAAQAAAwEAAALDBAABgQQAAwEAAALDBAABgQQAAwEAAAJDBAABgQQAAwEAAAJDBAABgQQAAwEAAALDBAABgQQAAAAAAALDBAABgQQAAAAAAAJDBAABgQQAAAAAAAJDBAAAAQAAAAAAAAJDBAAAAQAAAwEAAAJDBAABgQQAAwEAAAJDBAADAQAAAIEEAAIDBAADAwAAAIEEAAIDBAADAwAAAAAAAAIDBAADAQAAAAAAAAIDBAADAwAAAAAAAAEDBAADAwAAAAAAAAIDBAADAwAAAIEEAAIDBAADAwAAAIEEAAEDBAADAwAAAAAAAAEDBAADAQAAAAAAAAEDBAADAQAAAAAAAAIDBAADAwAAAAAAAAIDBAADAwAAAIEEAAEDBAADAwAAAIEEAAIDBAADAQAAAIEEAAIDBAADAQAAAIEEAAEDBAADAQAAAIEEAAEDBAADAQAAAIEEAAIDBAADAQAAAAAAAAIDBAADAQAAAAAAAAEDBAADAQAAAAAAAAEDBAADAwAAAAAAAAEDBAADAwAAAIEEAAEDBAADAQAAAIEEAAEDBAACAQQAAQEEAAMDBAACAQQAAAAAAAMDBAACwQQAAAAAAAMDBAACwQQAAQEEAAMDBAABgQQAAQEEAALDBAABgQQAAAAAAALDBAACAQQAAAAAAAMDBAACAQQAAQEEAAMDBAADAQQAAQEEAALDBAACwQQAAQEEAAMDBAACwQQAAAAAAAMDBAADAQQAAAAAAALDBAABgQQAAAAAAAIDBAABgQQAAAAAAALDBAABgQQAAQEEAALDBAABgQQAAQEEAAIDBAABgQQAAAAAAALDBAABgQQAAAAAAAIDBAACAQQAAAAAAAGDBAACwQQAAAAAAAGDBAADAQQAAAAAAAIDBAADAQQAAAAAAALDBAACwQQAAAAAAAMDBAACAQQAAAAAAAMDBAADAQQAAQEEAAIDBAACwQQAAQEEAAGDBAACAQQAAQEEAAGDBAABgQQAAQEEAAIDBAABgQQAAQEEAALDBAACAQQAAQEEAAMDBAACwQQAAQEEAAMDBAADAQQAAQEEAALDBAADAQQAAQEEAAIDBAADAQQAAQEEAALDBAADAQQAAAAAAALDBAADAQQAAAAAAAIDBAACAQQAAAAAAAGDBAABgQQAAAAAAAIDBAABgQQAAQEEAAIDBAACAQQAAQEEAAGDBAADAQQAAAAAAAIDBAACwQQAAAAAAAGDBAACwQQAAQEEAAGDBAADAQQAAQEEAAIDBAACwQQAAAAAAAGDBAACAQQAAAAAAAGDBAACAQQAAQEEAAGDBAACwQQAAQEEAAGDBAACwwQAAQEEAAGBBAACwwQAAAAAAAGBBAACAwQAAAAAAAGBBAACAwQAAQEEAAGBBAADAwQAAQEEAAIBBAADAwQAAAAAAAIBBAACwwQAAAAAAAGBBAACwwQAAQEEAAGBBAABgwQAAQEEAAIBBAACAwQAAQEEAAGBBAACAwQAAAAAAAGBBAABgwQAAAAAAAIBBAADAwQAAAAAAALBBAADAwQAAAAAAAIBBAADAwQAAQEEAAIBBAADAwQAAQEEAALBBAADAwQAAAAAAAIBBAADAwQAAAAAAALBBAACwwQAAAAAAAMBBAACAwQAAAAAAAMBBAABgwQAAAAAAALBBAABgwQAAAAAAAIBBAACAwQAAAAAAAGBBAACwwQAAAAAAAGBBAABgwQAAQEEAALBBAACAwQAAQEEAAMBBAACwwQAAQEEAAMBBAADAwQAAQEEAALBBAADAwQAAQEEAAIBBAACwwQAAQEEAAGBBAACAwQAAQEEAAGBBAABgwQAAQEEAAIBBAABgwQAAQEEAALBBAABgwQAAQEEAAIBBAABgwQAAAAAAAIBBAABgwQAAAAAAALBBAACwwQAAAAAAAMBBAADAwQAAAAAAALBBAADAwQAAQEEAALBBAACwwQAAQEEAAMBBAABgwQAAAAAAALBBAACAwQAAAAAAAMBBAACAwQAAQEEAAMBBAABgwQAAQEEAALBBAACAwQAAAAAAAMBBAACwwQAAAAAAAMBBAACwwQAAQEEAAMBBAACAwQAAQEEAAMBBAACAwAAAwEAAAIBBAAAAwQAAwEAAAIBBAAAAwQAAAAAAAIBBAACAwAAAAAAAAIBBAAAAwQAAAAAAAJBBAAAAwQAAAAAAAIBBAAAAwQAAwEAAAIBBAAAAwQAAwEAAAJBBAAAAwQAAAAAAAJBBAACAwAAAAAAAAJBBAACAwAAAAAAAAIBBAAAAwQAAAAAAAIBBAAAAwQAAwEAAAJBBAAAAwQAAwEAAAIBBAACAwAAAwEAAAIBBAACAwAAAwEAAAJBBAACAwAAAwEAAAJBBAACAwAAAwEAAAIBBAACAwAAAAAAAAIBBAACAwAAAAAAAAJBBAACAwAAAAAAAAJBBAAAAwQAAAAAAAJBBAAAAwQAAwEAAAJBBAACAwAAAwEAAAJBBAADAQAAAwEAAAJDBAAAAQAAAwEAAAJDBAAAAQAAAAAAAAJDBAADAQAAAAAAAAJDBAAAAQAAAAAAAAIDBAAAAQAAAAAAAAJDBAAAAQAAAwEAAAJDBAAAAQAAAwEAAAIDBAAAAQAAAAAAAAIDBAADAQAAAAAAAAIDBAADAQAAAAAAAAJDBAAAAQAAAAAAAAJDBAAAAQAAAwEAAAIDBAAAAQAAAwEAAAJDBAADAQAAAwEAAAJDBAADAQAAAwEAAAIDBAADAQAAAwEAAAIDBAADAQAAAwEAAAJDBAADAQAAAAAAAAJDBAADAQAAAAAAAAIDBAADAQAAAAAAAAIDBAAAAQAAAAAAAAIDBAAAAQAAAwEAAAIDBAADAQAAAwEAAAIDBAAAAwQAAwEAAAEBBAAAgwQAAwEAAAEBBAAAgwQAAAAAAAEBBAAAAwQAAAAAAAEBBAAAgwQAAAAAAAGBBAAAgwQAAAAAAAEBBAAAgwQAAwEAAAEBBAAAgwQAAwEAAAGBBAAAgwQAAwEAAAGBBAAAgwQAAwEAAAEBBAAAAwQAAwEAAAEBBAAAAwQAAwEAAAGBBAAAAwQAAAAAAAGBBAAAgwQAAAAAAAGBBAAAgwQAAwEAAAGBBAAAAwQAAwEAAAGBBAABAwQAAwEAAAEBBAABgwQAAwEAAAEBBAABgwQAAAAAAAEBBAABAwQAAAAAAAEBBAABgwQAAAAAAAGBBAABgwQAAAAAAAEBBAABgwQAAwEAAAEBBAABgwQAAwEAAAGBBAABgwQAAwEAAAGBBAABgwQAAwEAAAEBBAABAwQAAwEAAAEBBAABAwQAAwEAAAGBBAABAwQAAwEAAAGBBAABAwQAAwEAAAEBBAABAwQAAAAAAAEBBAABAwQAAAAAAAGBBAABAwQAAAAAAAGBBAABgwQAAAAAAAGBBAABgwQAAwEAAAGBBAABAwQAAwEAAAGBBAAAgwQAAwEAAAEBBAABAwQAAwEAAAEBBAABAwQAAgEAAAEBBAAAgwQAAgEAAAEBBAABAwQAAwEAAAGBBAABAwQAAwEAAAEBBAAAgwQAAwEAAAEBBAAAgwQAAwEAAAGBBAAAgwQAAgEAAAGBBAABAwQAAgEAAAGBBAABAwQAAwEAAAGBBAAAgwQAAwEAAAGBB/////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP+//z//vwAA/7//P/+/AAD/v/8//78AAP+//z//v////78AAP/f////vwAA/9////+/AAD/3////78AAP/fAAD/f/9//78AAP9//3//vwAA/3//f/+/AAD/f/9//7//fwAA//////9/AAD//////38AAP//////fwAA//////9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7//f////3//v/9/////f/+//3////9//7//f////3//v////3//////////f/////////9//////////3///////z//f/+//7//P/9//7//v/8//3//v/+//z//f/+//7//v/9/////3/+//3/////f/7//f////9//v/9/////3/9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP+//z//vwAA/7//P/+/AAD/v/8//78AAP+//z//v////78AAP/f////vwAA/9////+/AAD/3////78AAP/fAAD/f/9//78AAP9//3//vwAA/3//f/+/AAD/f/9//7//fwAA//////9/AAD//////38AAP//////fwAA//////9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7//f////3//v/9/////f/+//3////9//7//f////3//v////3//////////f/////////9//////////3///////z//f/+//7//P/9//7//v/8//3//v/+//z//f/+//7//v/9/////3/+//3/////f/7//f////9//v/9/////3/9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9/AAAAAAAA/38AAAAAAAD/fwAAAAAAAP9/AAAAAP9/////f/8//3////9//z//f////3//P/9/////f/8//3//fwAA/z//f/9/AAD/P/9//38AAP8//3//fwAA/z//////AAD/v/////8AAP+//////wAA/7//////AAD/vwAA/38AAAAAAAD/fwAAAAAAAP9/AAAAAAAA/38AAAAA/3////9//z//f////3//P/9/////f/8//3////9//z////9//3//P////3//f/8/////f/9//z////9//3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8//////wAA/7//////AAD/v/////8AAP+//////wAA/7//f////3//P/9/////f/8//3////9//z//f////3//P/9//38AAP8//3//fwAA/z//f/9/AAD/P/9//38AAP8/") }, { "aabb": AABB(-12, -1, -14, 26, 3, 14), -"attribute_data": PackedByteArray("AAAAQAAAAL8AAEBAAAAAvwAAQEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAgL8AAAAAAACAvwAAAL8AAAAAAAAAvwAAAAAAAEBAAAAAAAAAAEAAAIA/AAAAQAAAgD8AAEBAAAAAAAAAQEAAAIC/AABAQAAAgL8AAABAAAAAAAAAAEAAAAAAAAAAvwAAgD8AAAC/AACAPwAAAAAAAAAAAAAAAAAAAMAAAAAAAABAwAAAAAAAAEDAAAAAvwAAAMAAAAC/AABAwAAAAL8AAEDAAAAAAAAAYMAAAAAAAABgwAAAAL8AAMA/AABgwAAAYEAAAGDAAABgQAAAQMAAAMC/AACAvgAAwL8AAAAAAABgwAAAAAAAAGDAAAAAvwAAwD8AAEDAAADAPwAAYMAAAGBAAABAwAAAwD8AAIC+AABgQAAAAL8AAGBAAAAAAAAAwD8AAIA+AADAvwAAYMAAAMC/AABAwAAAYMAAAEDAAABgwAAAYMAAAEBAAAAAAAAAQEAAAIC+AABgQAAAgL4AAGBAAACAPgAAAAAAAIC+AACAPwAAgL4AAIA/AAAAAAAAAAAAAAAAAADAvwAAAAAAAADAAAAAAAAAAMAAAIC+AADAvwAAgL4AAMA/AACAPwAAwD8AAAAAAAAAQAAAAAAAAABAAACAPwAAwL8AAIA/AAAAwAAAgD8AAADAAAAAAAAAwL8AAAAAAADAPwAAgL4AAABAAACAvgAAAEAAAAAAAADAPwAAAAAAAAAAAAAAAAAAgL8AAAAAAACAvwAAgL4AAAAAAACAvg=="), +"attribute_data": PackedByteArray("AAAAQAAAAL8AAEBAAAAAvwAAQEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAgL8AAAAAAACAvwAAAL8AAAAAAAAAvwAAAAAAAEBAAAAAAAAAAEAAAIA/AAAAQAAAgD8AAEBAAAAAAAAAQEAAAIC/AABAQAAAgL8AAABAAAAAAAAAAEAAAAAAAAAAvwAAgD8AAAC/AACAPwAAAAAAAAAAAAAAAAAAAMAAAAAAAABAwAAAAAAAAEDAAAAAvwAAAMAAAAC/AABAwAAAAL8AAEDAAAAAAAAAYMAAAAAAAABgwAAAAL8AAMA/AABgwAAAYEAAAGDAAABgQAAAQMAAAMC/AACAvgAAwL8AAAAAAABgwAAAAAAAAGDAAAAAvwAAwD8AAEDAAADAPwAAYMAAAGBAAABAwAAAwD8AAIC+AABgQAAAAL8AAGBAAAAAAAAAwD8AAIA+AADAvwAAYMAAAMC/AABAwAAAYMAAAEDAAABgwAAAYMAAAEBAAAAAAAAAQEAAAIC+AABgQAAAgL4AAGBAAACAPg=="), "format": 34359742487, -"index_count": 108, -"index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcAGAAZABoAGAAaABsAHAAdAB4AHwAgACEAHwAhACIAIwAkACUAJgAnACgAJgAoACkAKgArACwAKgAsAC0ALgAvADAALgAwADEAMgAzADQAMgA0ADUANgA3ADgANgA4ADkAOgA7ADwAOgA8AD0APgA/AEAAPgBAAEEAQgBDAEQAQgBEAEUARgBHAEgARgBIAEkA"), -"material": ExtResource("5_bcdi7"), +"index_count": 72, +"index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcAGAAZABoAGAAaABsAHAAdAB4AHwAgACEAHwAhACIAIwAkACUAJgAnACgAJgAoACkAKgArACwAKgAsAC0ALgAvADAALgAwADEA"), +"material": ExtResource("9_mw7l8"), "name": "str_stonewall4", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 74, -"vertex_data": PackedByteArray("AAAAwQAAAEAAAIDAAABAwQAAAEAAAIDAAABAwQAAAAAAAIDAAAAAwQAAAAAAAIDAAABAwQAAAAAAAAAAAABAwQAAAAAAAIDAAABAwQAAAEAAAIDAAABAwQAAAEAAAAAAAABAwQAAAAAAAAAAAAAAwQAAAAAAAAAAAAAAwQAAAAAAAIDAAABAwQAAAAAAAIDAAABAwQAAAEAAAAAAAABAwQAAAEAAAIDAAAAAwQAAAEAAAIDAAAAAwQAAAEAAAAAAAAAAwQAAAEAAAAAAAAAAwQAAAEAAAIDAAAAAwQAAAAAAAIDAAAAAwQAAAAAAAAAAAAAAwQAAAAAAAAAAAABAwQAAAAAAAAAAAABAwQAAAEAAAAAAAAAAwQAAAEAAAAAAAABAQQAAAEAAAGDBAABAQQAAAAAAAGDBAABgQQAAAAAAAGDBAABgQQAAAEAAAGDBAABgQQAAgL8AAMDAAABgQQAAAAAAAGDBAABAQQAAAAAAAGDBAABAQQAAgD8AAMDAAABAQQAAAAAAAMDAAABAQQAAAAAAAGDBAABAQQAAAEAAAGDBAABAQQAAAAAAAMDAAABgQQAAgL8AAMDAAABAQQAAAAAAAGDBAABgQQAAgD8AAMDAAABgQQAAAEAAAGDBAABgQQAAAAAAAGDBAABgQQAAgL8AAMDAAABgQQAAgD8AAMDAAABAQQAAgD8AAMDAAABAQQAAAEAAAGDBAABgQQAAAEAAAGDBAABAQQAAAAAAAMDAAABAQQAAgD8AAMDAAABgQQAAgD8AAMDAAABgQQAAgL8AAMDAAAAAAAAAgD8AAADBAACAwAAAgD8AAADBAACAwAAAAAAAAADBAAAAAAAAAAAAAADBAACAwAAAAAAAAMDAAACAwAAAAAAAAADBAACAwAAAgD8AAADBAACAwAAAgD8AAMDAAACAwAAAAAAAAMDAAAAAAAAAAAAAAMDAAAAAAAAAAAAAAADBAACAwAAAAAAAAADBAACAwAAAgD8AAMDAAACAwAAAgD8AAADBAAAAAAAAgD8AAADBAAAAAAAAgD8AAMDAAAAAAAAAgD8AAMDAAAAAAAAAgD8AAADBAAAAAAAAAAAAAADBAAAAAAAAAAAAAMDAAAAAAAAAAAAAAMDAAACAwAAAAAAAAMDAAACAwAAAgD8AAMDAAAAAAAAAgD8AAMDA/////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/784jgAA/////ziOAAD/////OI4AAP////8AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v1RVqir/////VFWqKv////9UVaoq/////////3//////////f/////////9//////////3///////3/G8f9//7//f8bx/3//v/9/xvH/f/+//3/G8f9//7//f/9/////v/9//3////+//3//f////7//f/9/////v/////8AAP+//////wAA/7//////AAD/v/////8AAP+/AAD/f/9//78AAP9//3//vwAA/3//f/+/AAD/f/9//7//fwAA//////9/AAD//////38AAP//////fwAA//////9/////f/+//3////9//7//f////3//v/9/////f/+/////f/////////9//////////3//////////f///////f/9/////v/9//3////+//3//f////7//f/9/////vw==") +"vertex_count": 50, +"vertex_data": PackedByteArray("AAAAwQAAAEAAAIDAAABAwQAAAEAAAIDAAABAwQAAAAAAAIDAAAAAwQAAAAAAAIDAAABAwQAAAAAAAAAAAABAwQAAAAAAAIDAAABAwQAAAEAAAIDAAABAwQAAAEAAAAAAAABAwQAAAAAAAAAAAAAAwQAAAAAAAAAAAAAAwQAAAAAAAIDAAABAwQAAAAAAAIDAAABAwQAAAEAAAAAAAABAwQAAAEAAAIDAAAAAwQAAAEAAAIDAAAAAwQAAAEAAAAAAAAAAwQAAAEAAAAAAAAAAwQAAAEAAAIDAAAAAwQAAAAAAAIDAAAAAwQAAAAAAAAAAAAAAwQAAAAAAAAAAAABAwQAAAAAAAAAAAABAwQAAAEAAAAAAAAAAwQAAAEAAAAAAAABAQQAAAEAAAGDBAABAQQAAAAAAAGDBAABgQQAAAAAAAGDBAABgQQAAAEAAAGDBAABgQQAAgL8AAMDAAABgQQAAAAAAAGDBAABAQQAAAAAAAGDBAABAQQAAgD8AAMDAAABAQQAAAAAAAMDAAABAQQAAAAAAAGDBAABAQQAAAEAAAGDBAABAQQAAAAAAAMDAAABgQQAAgL8AAMDAAABAQQAAAAAAAGDBAABgQQAAgD8AAMDAAABgQQAAAEAAAGDBAABgQQAAAAAAAGDBAABgQQAAgL8AAMDAAABgQQAAgD8AAMDAAABAQQAAgD8AAMDAAABAQQAAAEAAAGDBAABgQQAAAEAAAGDBAABAQQAAAAAAAMDAAABAQQAAgD8AAMDAAABgQQAAgD8AAMDAAABgQQAAgL8AAMDA/////wAA/7//////AAD/v/////8AAP+//////wAA/78AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v/9/AAD//////38AAP//////fwAA//////9/AAD//////3////9//7//f////3//v/9/////f/+//3////9//7////9//////////3//////////f/////////9///////9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/784jgAA/////ziOAAD/////OI4AAP////8AAP9//3//vwAA/3//f/+/AAD/f/9//78AAP9//3//v1RVqir/////VFWqKv////9UVaoq/////////3//////////f/////////9//////////3///////3/G8f9//7//f8bx/3//v/9/xvH/f/+//3/G8f9//7//f/9/////v/9//3////+//3//f////7//f/9/////vw==") }, { "aabb": AABB(-4, 0, -4, 8, 1, 8), "attribute_data": PackedByteArray("AACAPwAAgL4AAIA/AAAAAAAAAD4AAAAAAAAAPgAAgL4AAIC/AACAvgAAAL4AAIC+AAAAvgAAAAAAAIC/AAAAAAAAgD8AAAAAAAAAAAAAAAAAAAAAAACAvgAAgD8AAIC+AACAvwAAgD8AAIC/AAAAAAAAAL4AAAA+AAAAAAAAgD8AAIA/AACAPwAAAAAAAIA/AAAAPgAAAD4AAIA/AAAAAAAAgL8AAAAAAACAvwAAgL4AAAAAAACAvgAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAgL8AAIC+AAAAAAAAgL4AAAA+AAAAvgAAAAAAAIC/AACAPwAAgL8AAIA/AAAAAAAAAL4AAAC+AACAvwAAAAAAAIC/AACAvwAAAAAAAIC/AAAAAAAAgL4AAIA/AACAvgAAgD8AAAAAAAAAAAAAAAAAAAC+AAAAAAAAgL8AAAAAAACAvwAAgL4AAAC+AACAvgAAgD8AAAAAAAAAPgAAAAAAAAA+AACAvgAAgD8AAIC+"), "format": 34359742487, "index_count": 72, "index_data": PackedByteArray("AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcAGAAZABoAGAAaABsAHAAdAB4AHAAeAB8AIAAhACIAIAAiACMAJAAlACYAJAAmACcAKAApACoAKAAqACsALAAtAC4ALAAuAC8A"), -"material": ExtResource("6_hhbby"), +"material": ExtResource("10_ldmbn"), "name": "str_stoneflr5", "primitive": 3, "uv_scale": Vector4(0, 0, 0, 0), @@ -61,85 +63,85 @@ _surfaces = [{ "vertex_data": PackedByteArray("AACAwAAAgD8AAAAAAACAwAAAAAAAAAAAAAAAvwAAAAAAAAA/AAAAvwAAgD8AAAA/AAAAAAAAgD8AAIBAAAAAvwAAgD8AAAA/AAAAvwAAAAAAAAA/AAAAAAAAAAAAAIBAAACAwAAAAAAAAIBAAACAwAAAAAAAAAAAAACAwAAAgD8AAAAAAACAwAAAgD8AAIBAAACAwAAAAAAAAIBAAAAAAAAAAAAAAIBAAAAAvwAAAAAAAAA/AACAwAAAAAAAAAAAAACAwAAAgD8AAIBAAACAwAAAgD8AAAAAAAAAvwAAgD8AAAA/AAAAAAAAgD8AAIBAAACAwAAAAAAAAIBAAACAwAAAgD8AAIBAAAAAAAAAgD8AAIBAAAAAAAAAAAAAAIBAAAAAAAAAAAAAAIDAAACAQAAAAAAAAIDAAACAQAAAgD8AAIDAAAAAAAAAgD8AAIDAAAAAPwAAAAAAAAC/AACAQAAAAAAAAAAAAACAQAAAAAAAAIDAAAAAAAAAAAAAAIDAAAAAPwAAgD8AAAC/AAAAAAAAgD8AAIDAAACAQAAAgD8AAIDAAACAQAAAgD8AAAAAAACAQAAAgD8AAAAAAACAQAAAgD8AAIDAAACAQAAAAAAAAIDAAACAQAAAAAAAAAAAAAAAPwAAAAAAAAC/AAAAAAAAAAAAAIDAAAAAAAAAgD8AAIDAAAAAPwAAgD8AAAC/AACAQAAAAAAAAAAAAAAAPwAAAAAAAAC/AAAAPwAAgD8AAAC/AACAQAAAgD8AAAAA////7wAA/7/////vAAD/v////+8AAP+/////7wAA/7////+P/////////4//////////j/////////+P/////wAA/3//f/+/AAD/f/9//78AAP9//3//vwAA/3//f/+//38AAP//////fwAA//////9/AAD//////38AAP//////f////3//v/9/////f/+//3////9//7//f////3//v/9//3////+//3//f////7//f/9/////v/9//3////+//////wAA/7//////AAD/v/////8AAP+//////wAA/7//fwAA//////9/AAD//////38AAP//////fwAA//////9/////f/+//3////9//7//f////3//v/9/////f/+/////f/////////9//////////3//////////f///////D/9//3//v/8P/3//f/+//w//f/9//7//D/9//3//v/9v/3////+//2//f////7//b/9/////v/9v/3////+/") }] -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_y3aqj"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_2spb1"] points = PackedVector3Array(56, 0, 56, 56, -2, 56, -56, 0, 56, -56, -2, 56, 56, 0, -56, 56, -2, -56, -56, 0, -56, -56, -2, -56) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ykri2"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_mw7l8"] points = PackedVector3Array(14, 22, 18, 14, 0, 18, 6, 22, 18, 6, 0, 18, 14, 22, 10, 14, 0, 10, 6, 22, 10, 6, 0, 10) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_2spb1"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ldmbn"] points = PackedVector3Array(-6, 22, -10, -6, 0, -10, -14, 22, -10, -14, 0, -10, -6, 22, -18, -6, 0, -18, -14, 22, -18, -14, 0, -18) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_mw7l8"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_26faa"] points = PackedVector3Array(22, 10, 16, 22, 0, 16, 18, 10, 16, 18, 0, 16, 22, 10, -14, 22, 0, -14, 18, 10, -14, 18, 0, -14) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ldmbn"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_law7c"] points = PackedVector3Array(18, 14, 16, 18, 0, 16, 14, 14, 16, 14, 0, 16, 18, 14, 12, 18, 0, 12, 14, 14, 12, 14, 0, 12) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_26faa"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_mjjvs"] points = PackedVector3Array(-18, 10, 14, -18, 0, 14, -22, 10, 14, -22, 0, 14, -18, 10, -16, -18, 0, -16, -22, 10, -16, -22, 0, -16) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_law7c"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_13612"] points = PackedVector3Array(-14, 14, -12, -14, 0, -12, -18, 14, -12, -18, 0, -12, -14, 14, -16, -14, 0, -16, -18, 14, -16, -18, 0, -16) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_mjjvs"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_iqy6x"] points = PackedVector3Array(-4, 6, 22, -4, 0, 22, -14, 6, 22, -14, 0, 22, -4, 6, 18, -4, 0, 18, -14, 6, 18, -14, 0, 18) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_13612"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_xq706"] points = PackedVector3Array(6, 10, 16, 6, 0, 16, -8, 10, 16, -8, 0, 16, 6, 10, 12, 6, 0, 12, -8, 10, 12, -8, 0, 12) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_iqy6x"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_55tqc"] points = PackedVector3Array(14, 6, -18, 14, 0, -18, 2, 6, -18, 2, 0, -18, 14, 6, -22, 14, 0, -22, 2, 6, -22, 2, 0, -22) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_xq706"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_inyex"] points = PackedVector3Array(6, 10, -12, 6, 0, -12, -6, 10, -12, -6, 0, -12, 6, 10, -16, 6, 0, -16, -6, 10, -16, -6, 0, -16) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_55tqc"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_jbkif"] points = PackedVector3Array(22, 12, -14.000001, 22, 0, -14.000001, 16, 12, -14.000001, 16, 0, -14.000001, 24, 12, -16, 24, 0, -16, 14.000001, 12, -16, 14.000001, 0, -16, 24, 12, -21.999996, 24, 0, -21.999996, 14.000001, 12, -22, 21.999996, 12, -24, 16, 12, -24, 14.000001, 0, -22, 21.999996, 0, -24, 16, 0, -24) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_inyex"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_00tui"] points = PackedVector3Array(-16, 12, 24, -16, 0, 24, -21.999996, 12, 24, -21.999996, 0, 24, -14.000001, 12, 22, -14.000001, 0, 22, -24, 12, 21.999996, -24, 0, 21.999996, -14.000001, 12, 16, -14.000001, 0, 16, -24, 12, 16, -16, 12, 14.000001, -22, 12, 14.000001, -24, 0, 16, -16, 0, 14.000001, -22, 0, 14.000001) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_jbkif"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_lsew2"] points = PackedVector3Array(-8, 2, 0, -8, 0, 0, -12, 2, 0, -12, 0, 0, -8, 2, -4, -8, 0, -4, -12, 2, -4, -12, 0, -4) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_00tui"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_gsm6b"] points = PackedVector3Array(13.999999, 1.0000001, -6, 12, 1.0000001, -6, 14, -1.0000001, -5.9999995, 13.999999, -0.99999994, -6, 11.999999, 0, -5.9999995, 13.999999, -0.9999999, -6, 13.999999, 2, -13.999999, 12, 2, -13.999999, 14, -1.0000006, -5.9999948, 13.999999, 0, -13.999999, 12, -5.37269e-07, -13.999994, 11.999999, 0, -14, 11.999998, 1.3431725e-07, -14, 12, 0, -13.999999) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_lsew2"] -points = PackedVector3Array(0, 1, -6, 0, 0, -6, -4, 1, -6, -4, 0, -6, 0, 1, -8, 0, 0, -8, -4, 1, -8, -4, 0, -8) - -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_gsm6b"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_pdnd8"] points = PackedVector3Array(-4, 1, 4, 0, 1, 4, -4, 0, 4, 0, 0, 4, -4, 1, -6.0209786e-08, -0.50000006, 1, 0.49999994, -4, 0, -6.0209786e-08, -0.50000006, 0, 0.49999994) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_pdnd8"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_gsv88"] points = PackedVector3Array(0.50000006, 1, -0.49999994, 0.50000006, 0, -0.49999994, 4, 1, 6.0209786e-08, 4, 0, 6.0209786e-08, 0, 1, -4, 0, 0, -4, 4, 1, -4, 4, 0, -4) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_gsv88"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_bj81e"] points = PackedVector3Array(-4, 6, 18, -4, 0, 18, -8, 6, 18, -8, 0, 18, -4, 6, 16, -4, 0, 16, -8, 6, 16, -8, 0, 16) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_bj81e"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_wnq4i"] points = PackedVector3Array(6, 6, -16, 6, 0, -16, 2, 6, -16, 2, 0, -16, 6, 6, -18, 6, 0, -18, 2, 6, -18, 2, 0, -18) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_wnq4i"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_mycsq"] points = PackedVector3Array(-8, 6, 14, -8, 0, 14, -10, 6, 14, -10, 0, 14, -8, 6, 12, -8, 0, 12, -10, 6, 12, -10, 0, 12) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_mycsq"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ux7cq"] points = PackedVector3Array(-12, 6, 14, -12, 0, 14, -14, 6, 14, -14, 0, 14, -12, 6, 12, -12, 0, 12, -14, 6, 12, -14, 0, 12) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ux7cq"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ertlo"] points = PackedVector3Array(-10, 6, 14, -10, 4, 14, -12, 6, 14, -12, 4, 14, -10, 6, 12, -10, 4, 12, -12, 6, 12, -12, 4, 12) -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ertlo"] +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_jr4rq"] points = PackedVector3Array(-10, 4, 14, -10, 0, 14, -12, 4, 14, -12, 0, 14, -10, 4, 13, -10, 0, 13, -12, 4, 13, -12, 0, 13) [node name="two_towers" type="Map" unique_id=590524284 node_paths=PackedStringArray("spawners", "ball_spawner")] -spawners = [NodePath("spawn_a"), NodePath("spawn_b")] -ball_spawner = NodePath("ball_spawner") +spawners = [NodePath("func_godot_map/entity_2_info_spawn_point"), NodePath("func_godot_map/entity_1_info_spawn_point")] +ball_spawner = NodePath("func_godot_map/entity_3_info_spawn_point") local_player = ExtResource("1_fjy4d") remote_player = ExtResource("2_y3aqj") ball = ExtResource("3_ykri2") +[node name="map_rebuilder" type="Node" parent="." unique_id=826429171] +script = ExtResource("4_y3aqj") + [node name="func_godot_map" type="Node3D" parent="." unique_id=1681100227] script = ExtResource("1_l5vmt") local_map_file = "uid://cismjd3hu8cfp" @@ -147,93 +149,96 @@ map_settings = ExtResource("2_s5s5s") hyperplane_size = 2048.0 metadata/_custom_type_script = "uid://cwu5cf7a0awcd" -[node name="entity_0_worldspawn" type="StaticBody3D" parent="func_godot_map" unique_id=491455538] +[node name="entity_0_worldspawn" type="StaticBody3D" parent="func_godot_map" unique_id=1270458016] collision_layer = 7 collision_mask = 7 -[node name="entity_0_mesh_instance" type="MeshInstance3D" parent="func_godot_map/entity_0_worldspawn" unique_id=740983772] -mesh = SubResource("ArrayMesh_fjy4d") +[node name="entity_0_mesh_instance" type="MeshInstance3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1495344957] +mesh = SubResource("ArrayMesh_ykri2") -[node name="entity_0_brush_0_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1403025860] -shape = SubResource("ConvexPolygonShape3D_y3aqj") - -[node name="entity_0_brush_1_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1342044315] -shape = SubResource("ConvexPolygonShape3D_ykri2") - -[node name="entity_0_brush_2_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1018824610] +[node name="entity_0_brush_0_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=683944652] shape = SubResource("ConvexPolygonShape3D_2spb1") -[node name="entity_0_brush_3_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=2029651633] +[node name="entity_0_brush_1_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=804402486] shape = SubResource("ConvexPolygonShape3D_mw7l8") -[node name="entity_0_brush_4_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1833838635] +[node name="entity_0_brush_2_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1174539107] shape = SubResource("ConvexPolygonShape3D_ldmbn") -[node name="entity_0_brush_5_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1981768423] +[node name="entity_0_brush_3_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=966642678] shape = SubResource("ConvexPolygonShape3D_26faa") -[node name="entity_0_brush_6_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=523757214] +[node name="entity_0_brush_4_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1748433871] shape = SubResource("ConvexPolygonShape3D_law7c") -[node name="entity_0_brush_7_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=33538733] +[node name="entity_0_brush_5_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=2132179366] shape = SubResource("ConvexPolygonShape3D_mjjvs") -[node name="entity_0_brush_8_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=688982500] +[node name="entity_0_brush_6_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=2020383590] shape = SubResource("ConvexPolygonShape3D_13612") -[node name="entity_0_brush_9_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1579772556] +[node name="entity_0_brush_7_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1838159027] shape = SubResource("ConvexPolygonShape3D_iqy6x") -[node name="entity_0_brush_10_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=231614482] +[node name="entity_0_brush_8_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=327004295] shape = SubResource("ConvexPolygonShape3D_xq706") -[node name="entity_0_brush_11_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=513658146] +[node name="entity_0_brush_9_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1224741081] shape = SubResource("ConvexPolygonShape3D_55tqc") -[node name="entity_0_brush_12_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=25671304] +[node name="entity_0_brush_10_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=551132754] shape = SubResource("ConvexPolygonShape3D_inyex") -[node name="entity_0_brush_13_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=957805027] +[node name="entity_0_brush_11_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=936113621] shape = SubResource("ConvexPolygonShape3D_jbkif") -[node name="entity_0_brush_14_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1153065083] +[node name="entity_0_brush_12_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1165571418] shape = SubResource("ConvexPolygonShape3D_00tui") -[node name="entity_0_brush_15_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=713844794] +[node name="entity_0_brush_13_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1570665743] shape = SubResource("ConvexPolygonShape3D_lsew2") -[node name="entity_0_brush_16_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=731224652] +[node name="entity_0_brush_14_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1656910330] shape = SubResource("ConvexPolygonShape3D_gsm6b") -[node name="entity_0_brush_17_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1022152921] +[node name="entity_0_brush_15_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1268171384] shape = SubResource("ConvexPolygonShape3D_pdnd8") -[node name="entity_0_brush_18_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1800423554] +[node name="entity_0_brush_16_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=301281672] shape = SubResource("ConvexPolygonShape3D_gsv88") -[node name="entity_0_brush_19_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=894311509] +[node name="entity_0_brush_17_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=630070020] shape = SubResource("ConvexPolygonShape3D_bj81e") -[node name="entity_0_brush_20_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1405177923] +[node name="entity_0_brush_18_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=21986463] shape = SubResource("ConvexPolygonShape3D_wnq4i") -[node name="entity_0_brush_21_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=661109786] +[node name="entity_0_brush_19_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=929657953] shape = SubResource("ConvexPolygonShape3D_mycsq") -[node name="entity_0_brush_22_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1574405759] +[node name="entity_0_brush_20_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1843598375] shape = SubResource("ConvexPolygonShape3D_ux7cq") -[node name="entity_0_brush_23_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=1201023387] +[node name="entity_0_brush_21_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=2008400564] shape = SubResource("ConvexPolygonShape3D_ertlo") -[node name="spawn_a" type="Node3D" parent="." unique_id=1406528193] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, -2) +[node name="entity_0_brush_22_collision_shape" type="CollisionShape3D" parent="func_godot_map/entity_0_worldspawn" unique_id=176211363] +shape = SubResource("ConvexPolygonShape3D_jr4rq") -[node name="spawn_b" type="Node3D" parent="." unique_id=647504551] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 2, 2) +[node name="entity_1_info_spawn_point" type="Node3D" parent="func_godot_map" unique_id=687285906] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, -2.25, 1.25, 2.25) +script = ExtResource("11_26faa") +team_index = 1 -[node name="ball_spawner" type="Node3D" parent="." unique_id=779550] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 5, -7) +[node name="entity_2_info_spawn_point" type="Node3D" parent="func_godot_map" unique_id=448410114] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 1.75, 1.25, -2.25) +script = ExtResource("11_26faa") +team_index = 0 + +[node name="entity_3_info_spawn_point" type="Node3D" parent="func_godot_map" unique_id=2002477426] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 13.25, 5.25, -13.75) +script = ExtResource("11_26faa") +is_ball_spawn = true [node name="directional_light_3d" type="DirectionalLight3D" parent="." unique_id=1461274044] transform = Transform3D(0.99328005, -0.09338135, 0.068372406, 0.019120537, 0.7150448, 0.6988171, -0.11414584, -0.6928138, 0.7120252, 0, 8, 0)