just reorganised files thats it

This commit is contained in:
2025-06-24 02:55:20 +10:00
parent 3c5c8f1a44
commit 2bfea6471c
198 changed files with 313 additions and 747 deletions

View File

@@ -2,7 +2,7 @@
[ext_resource type="Script" uid="uid://bivtfdl3p1brv" path="res://Scenes/CardPrinter/card_printer.gd" id="1_qft15"]
[ext_resource type="Script" uid="uid://dkfswql8ui0bt" path="res://Scripts/interact_button.gd" id="4_eavi1"]
[ext_resource type="PackedScene" uid="uid://b6i5w3mowcfcs" path="res://drafting_table.glb" id="4_kpujb"]
[ext_resource type="PackedScene" uid="uid://b6i5w3mowcfcs" path="res://Scenes/DraftingTable/drafting_table.glb" id="4_kpujb"]
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://Audio/shot1.wav" id="5_m033a"]
[sub_resource type="BoxShape3D" id="BoxShape3D_0ebt5"]

Binary file not shown.

View File

@@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b6i5w3mowcfcs"
path="res://.godot/imported/drafting_table.glb-9a5f41e6bf4edcc8c042380f52a70575.scn"
[deps]
source_file="res://Scenes/DraftingTable/drafting_table.glb"
dest_files=["res://.godot/imported/drafting_table.glb-9a5f41e6bf4edcc8c042380f52a70575.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

View File

@@ -0,0 +1,38 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cx3u2fj5cniac"
path.s3tc="res://.godot/imported/drafting_table_plan_tex.png-7b1786af0562d78c6bd0327df564d184.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "f6894ba0243c1df76fb5fa0fd58f104b"
}
[deps]
source_file="res://Scenes/DraftingTable/drafting_table_plan_tex.png"
dest_files=["res://.godot/imported/drafting_table_plan_tex.png-7b1786af0562d78c6bd0327df564d184.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

BIN
Scenes/FlowField/cube.glb Normal file

Binary file not shown.

View File

@@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bkokjrjns7l6j"
path="res://.godot/imported/cube.glb-8c7fddad925be67dc400ce95d4de5b99.scn"
[deps]
source_file="res://Scenes/FlowField/cube.glb"
dest_files=["res://.godot/imported/cube.glb-8c7fddad925be67dc400ce95d4de5b99.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

View File

@@ -0,0 +1,11 @@
[gd_scene load_steps=3 format=3 uid="uid://ravcalfsha76"]
[ext_resource type="PackedScene" uid="uid://bkokjrjns7l6j" path="res://Scenes/FlowField/cube.glb" id="1_7p7qy"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_d8upr"]
resource_local_to_scene = true
[node name="cube" instance=ExtResource("1_7p7qy")]
[node name="Cube" parent="." index="0"]
material_override = SubResource("StandardMaterial3D_d8upr")

View File

@@ -0,0 +1,213 @@
class_name FlowField
extends Node3D
signal path_updated()
@export var flow_node_scene: PackedScene
@export var nodes: Array[FlowNode] = []
@export var goals: Array[FlowNode] = []
@export var starts: Array[FlowNode] = []
@export var nodes_visible: bool = false
func _ready() -> void:
if !nodes_visible:
for node: FlowNode in nodes:
node.visible = false
@warning_ignore("unused_parameter")
func _process(delta: float) -> void:
if !nodes_visible:
return
for node: FlowNode in nodes:
if node.traversable and node.buildable:
node.set_color(Color.WEB_GRAY)
elif node.traversable and !node.buildable:
node.set_color(Color.CORAL)
else:
node.set_color(Color.BLACK)
if goals.has(node):
node.set_color(Color.BLUE)
if starts.has(node):
node.set_color(Color.PINK)
if magic_node:
magic_node.set_color(Color.DEEP_PINK)
func get_closest_traversable_point(pos: Vector3) -> FlowNode:
var closest_point: FlowNode = null
var closest_dist: float = 100000.0
for node: FlowNode in nodes:
if node.traversable and node.global_position.distance_to(pos) < closest_dist:
closest_dist = node.global_position.distance_to(pos)
closest_point = node
return closest_point
func get_closest_point_point(pos: Vector3) -> FlowNode:
var closest_point: FlowNode = null
var closest_dist: float = 100000.0
for node: FlowNode in nodes:
if node.global_position.distance_to(pos) < closest_dist:
closest_dist = node.global_position.distance_to(pos)
closest_point = node
return closest_point
func get_closest_buildable_point(pos: Vector3) -> FlowNode:
var closest_point: FlowNode = null
var closest_dist: float = 100000.0
for node: FlowNode in nodes:
if node.buildable and node.global_position.distance_to(pos) < closest_dist:
closest_dist = node.global_position.distance_to(pos)
closest_point = node
return closest_point
func test_traversability() -> bool:
for node: FlowNode in starts:
while node.best_path != null:
if node.best_path.traversable:
node = node.best_path
else:
return false
return true
func iterate_search(search_frontier: Array[FlowNode], reached: Array[FlowNode]) -> void:
var current: FlowNode = search_frontier.pop_front()
for node: FlowNode in current.connections:
if !reached.has(node):
reached.append(node)
if node.traversable:
search_frontier.append(node)
node.best_path = current
func calculate() -> void:
var reached: Array[FlowNode] = []
var search_frontier: Array[FlowNode] = []
for node: FlowNode in goals:
node.best_path = null
reached.append(node)
search_frontier.append(node)
while search_frontier.size() > 0:
iterate_search(search_frontier, reached)
var magic_node: FlowNode = null
func traversable_after_blocking_point(point: FlowNode) -> bool:
magic_node = null
var reached: Array[FlowNode] = [point]
var search_frontier: Array[FlowNode] = []
for node: FlowNode in point.connections:
if node.best_path == point and node.traversable:
reached.append(node)
search_frontier.append(node)
if search_frontier.size() == 0: # if no neighbors rely on this node, then we're all good
return true
while search_frontier.size() > 0:
var current: FlowNode = search_frontier.pop_front()
for node: FlowNode in current.connections:
if !reached.has(node):
if node.traversable and node.best_path != node and !reached.has(node.best_path):
#if we havent already seen the node this neighbor goes to,
#then all our searched nodes could swap to go this direction
#and the path would still be traversable
magic_node = node
return true
reached.append(node)
if node.traversable:
search_frontier.append(node)
return false
## Connects many nodes to a single single node, if any connections already
## exist, this function disconnects them instead
func connect_many_nodes(common_node: FlowNode, child_nodes: Array[FlowNode]) -> void:
for node: FlowNode in child_nodes:
if common_node.connections.has(node):
disconnect_nodes(common_node, node)
else:
connect_nodes(common_node, node)
func toggle_goal(nodes_to_toggle: Array[FlowNode]) -> void:
for node: FlowNode in nodes_to_toggle:
if goals.has(node):
goals.erase(node)
else:
goals.append(node)
func toggle_start(nodes_to_toggle: Array[FlowNode]) -> void:
for node: FlowNode in nodes_to_toggle:
if starts.has(node):
starts.erase(node)
else:
starts.append(node)
func toggle_traversable(node: FlowNode) -> bool:
node.traversable = !node.traversable
calculate()
#TODO: technically the path only changed if the new path IS traversable
path_updated.emit()
return test_traversability()
func toggle_buildable(node: FlowNode) -> void:
node.buildable = !node.buildable
func create_node(pos: Vector3 = Vector3.ZERO) -> FlowNode:
var node: FlowNode = flow_node_scene.instantiate()
node.position = pos
node.set_color(Color.WEB_GRAY)
nodes.append(node)
add_child(node)
node.owner = self
return node
func delete_node(node: FlowNode) -> void:
for neighbor: FlowNode in node.connections:
node.remove_connection(neighbor)
nodes.erase(node)
node.queue_free()
func connect_nodes(node1: FlowNode, node2: FlowNode) -> void:
if node1 != node2:
node1.add_connection(node2)
node2.add_connection(node1)
func disconnect_nodes(node1: FlowNode, node2: FlowNode) -> void:
if node1 != node2:
node1.remove_connection(node2)
node2.remove_connection(node1)
func create_grid(x_size: int, y_size: int, gap: float) -> void:
var grid: Array[Array] = []
for x: int in x_size:
var row: Array[FlowNode] = []
for y: int in y_size:
#var start_pos: Vector3 = Vector3.ZERO - (Vector3(gap * x_size, 0, gap * y_size) / 2.0)
var point_position: Vector3 = Vector3((x - floori(x_size / 2.0)) * gap, 0, (y - floori(y_size / 2.0)) * gap)
#point_position += global_position
#row.append(create_node(start_pos + Vector3(gap * x, 0, gap * y)))
row.append(create_node(point_position))
grid.append(row)
for x: int in grid.size():
for y: int in grid[x].size():
if y > 0:
connect_nodes(grid[x][y], grid[x][y - 1])
if x > 0:
connect_nodes(grid[x][y], grid[x - 1][y])
if y < grid[x].size() - 1:
connect_nodes(grid[x][y], grid[x][y + 1])
if x < grid.size() - 1:
connect_nodes(grid[x][y], grid[x + 1][y])

View File

@@ -0,0 +1 @@
uid://r4nmfr8jfcjx

View File

@@ -0,0 +1,12 @@
[gd_scene load_steps=4 format=3 uid="uid://b7dwsqfmdqr8"]
[ext_resource type="Script" uid="uid://r4nmfr8jfcjx" path="res://Scenes/FlowField/flow_field.gd" id="1_l46ob"]
[ext_resource type="PackedScene" uid="uid://bssfvyxv5uo1f" path="res://Scenes/FlowField/flow_node.tscn" id="2_d6vkn"]
[ext_resource type="PackedScene" uid="uid://cccowrgelgswj" path="res://Scenes/FlowField/flow_field_tool.tscn" id="3_apokv"]
[node name="FlowField" type="Node3D"]
script = ExtResource("1_l46ob")
flow_node_scene = ExtResource("2_d6vkn")
[node name="FlowFieldTool" parent="." node_paths=PackedStringArray("flow_field") instance=ExtResource("3_apokv")]
flow_field = NodePath("..")

View File

@@ -0,0 +1,140 @@
[gd_scene load_steps=3 format=3 uid="uid://cccowrgelgswj"]
[ext_resource type="Script" uid="uid://05c5q1v2nv8p" path="res://Scripts/flow_field_tool.gd" id="1_e7pmn"]
[sub_resource type="Environment" id="Environment_e7pmn"]
ambient_light_source = 2
ambient_light_color = Color(0.728822, 0.728822, 0.728822, 1)
[node name="FlowFieldTool" type="Node" node_paths=PackedStringArray("raycast", "project_raycast", "camera", "camera_pivot", "position_field", "x_field", "y_field", "z_field", "x_size_field", "y_size_field", "gap_field")]
script = ExtResource("1_e7pmn")
raycast = NodePath("CameraFocus/Camera3D/RayCast3D")
project_raycast = NodePath("RayCast3D")
camera = NodePath("CameraFocus/Camera3D")
camera_pivot = NodePath("CameraFocus")
position_field = NodePath("Position")
x_field = NodePath("Position/x")
y_field = NodePath("Position/y")
z_field = NodePath("Position/z")
x_size_field = NodePath("VBoxContainer/HBoxContainer/x_size")
y_size_field = NodePath("VBoxContainer/HBoxContainer/y_size")
gap_field = NodePath("VBoxContainer/HBoxContainer/gap")
metadata/_custom_type_script = "uid://05c5q1v2nv8p"
[node name="VBoxContainer" type="VBoxContainer" parent="."]
offset_right = 296.0
offset_bottom = 572.0
[node name="Create" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Create Node"
[node name="Delete" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Remove Node"
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
[node name="GenerateGrid" type="Button" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Generate Grid"
[node name="x_size" type="LineEdit" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "15"
placeholder_text = "x_size"
[node name="y_size" type="LineEdit" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "7"
placeholder_text = "y_size"
[node name="gap" type="LineEdit" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "2.5"
placeholder_text = "gap"
[node name="Connect" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Connect Nodes"
[node name="ProjectDownwards" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Stick node to floor"
[node name="MarkGoal" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Toggle Goal"
[node name="MarkStart" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Toggle Start"
[node name="ToggleTraversable" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Toggle Traversable"
[node name="ToggleBuildable" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Toggle Buildable"
[node name="Extrude" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Extrude"
[node name="Calculate" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Calculate"
[node name="Finalize" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Finalize"
[node name="Position" type="HBoxContainer" parent="."]
visible = false
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -323.0
offset_bottom = 41.0
grow_horizontal = 0
[node name="x" type="LineEdit" parent="Position"]
layout_mode = 2
size_flags_horizontal = 3
[node name="y" type="LineEdit" parent="Position"]
layout_mode = 2
size_flags_horizontal = 3
[node name="z" type="LineEdit" parent="Position"]
layout_mode = 2
size_flags_horizontal = 3
[node name="CameraFocus" type="Node3D" parent="."]
[node name="Camera3D" type="Camera3D" parent="CameraFocus"]
transform = Transform3D(1, 0, 0, 0, 0.34202, 0.939693, 0, -0.939693, 0.34202, 0, 8.50452, 3.40739)
environment = SubResource("Environment_e7pmn")
[node name="RayCast3D" type="RayCast3D" parent="CameraFocus/Camera3D"]
collision_mask = 64
[node name="RayCast3D" type="RayCast3D" parent="."]
[connection signal="pressed" from="VBoxContainer/Create" to="." method="_on_create_button_pressed"]
[connection signal="pressed" from="VBoxContainer/Delete" to="." method="_on_create_button_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/GenerateGrid" to="." method="_on_generate_grid_button_pressed"]
[connection signal="pressed" from="VBoxContainer/Connect" to="." method="_on_connect_button_pressed"]
[connection signal="pressed" from="VBoxContainer/ProjectDownwards" to="." method="_on_project_downwards_button_pressed"]
[connection signal="pressed" from="VBoxContainer/MarkGoal" to="." method="_on_mark_goal_button_pressed"]
[connection signal="pressed" from="VBoxContainer/MarkStart" to="." method="_on_mark_start_button_pressed"]
[connection signal="pressed" from="VBoxContainer/ToggleTraversable" to="." method="_on_toggle_traversable_button_pressed"]
[connection signal="pressed" from="VBoxContainer/ToggleBuildable" to="." method="_on_toggle_buildable_button_pressed"]
[connection signal="pressed" from="VBoxContainer/Extrude" to="." method="_on_extrude_button_pressed"]
[connection signal="pressed" from="VBoxContainer/Calculate" to="." method="_on_calculate_button_pressed"]
[connection signal="pressed" from="VBoxContainer/Finalize" to="." method="_on_finalize_button_pressed"]
[connection signal="text_changed" from="Position/x" to="." method="_on_x_field_changed"]
[connection signal="text_changed" from="Position/y" to="." method="_on_y_field_changed"]
[connection signal="text_changed" from="Position/z" to="." method="_on_z_field_changed"]

View File

@@ -0,0 +1,662 @@
[gd_scene load_steps=3 format=3 uid="uid://2vv6mrxiwibf"]
[ext_resource type="Script" uid="uid://r4nmfr8jfcjx" path="res://Scenes/FlowField/flow_field.gd" id="1_ca7vt"]
[ext_resource type="PackedScene" uid="uid://bssfvyxv5uo1f" path="res://Scenes/FlowField/flow_node.tscn" id="2_s6hwk"]
[node name="FlowField" type="Node3D" node_paths=PackedStringArray("nodes", "goals")]
script = ExtResource("1_ca7vt")
flow_node_scene = ExtResource("2_s6hwk")
nodes = [NodePath("FlowNode"), NodePath("@StaticBody3D@10"), NodePath("@StaticBody3D@11"), NodePath("@StaticBody3D@12"), NodePath("@StaticBody3D@13"), NodePath("@StaticBody3D@14"), NodePath("@StaticBody3D@15"), NodePath("@StaticBody3D@16"), NodePath("@StaticBody3D@17"), NodePath("@StaticBody3D@18"), NodePath("@StaticBody3D@19"), NodePath("@StaticBody3D@20"), NodePath("@StaticBody3D@21"), NodePath("@StaticBody3D@22"), NodePath("@StaticBody3D@23"), NodePath("@StaticBody3D@24"), NodePath("@StaticBody3D@25"), NodePath("@StaticBody3D@26"), NodePath("@StaticBody3D@27"), NodePath("@StaticBody3D@28"), NodePath("@StaticBody3D@29"), NodePath("@StaticBody3D@30"), NodePath("@StaticBody3D@31"), NodePath("@StaticBody3D@32"), NodePath("@StaticBody3D@33"), NodePath("@StaticBody3D@34"), NodePath("@StaticBody3D@35"), NodePath("@StaticBody3D@36"), NodePath("@StaticBody3D@37"), NodePath("@StaticBody3D@38"), NodePath("@StaticBody3D@39"), NodePath("@StaticBody3D@40"), NodePath("@StaticBody3D@41"), NodePath("@StaticBody3D@42"), NodePath("@StaticBody3D@43"), NodePath("@StaticBody3D@44"), NodePath("@StaticBody3D@45"), NodePath("@StaticBody3D@46"), NodePath("@StaticBody3D@47"), NodePath("@StaticBody3D@48"), NodePath("@StaticBody3D@49"), NodePath("@StaticBody3D@50"), NodePath("@StaticBody3D@51"), NodePath("@StaticBody3D@52"), NodePath("@StaticBody3D@53"), NodePath("@StaticBody3D@54"), NodePath("@StaticBody3D@55"), NodePath("@StaticBody3D@56"), NodePath("@StaticBody3D@57"), NodePath("@StaticBody3D@58"), NodePath("@StaticBody3D@59"), NodePath("@StaticBody3D@60"), NodePath("@StaticBody3D@61"), NodePath("@StaticBody3D@62"), NodePath("@StaticBody3D@63"), NodePath("@StaticBody3D@64"), NodePath("@StaticBody3D@65"), NodePath("@StaticBody3D@66"), NodePath("@StaticBody3D@67"), NodePath("@StaticBody3D@68"), NodePath("@StaticBody3D@69"), NodePath("@StaticBody3D@70"), NodePath("@StaticBody3D@71"), NodePath("@StaticBody3D@72"), NodePath("@StaticBody3D@73"), NodePath("@StaticBody3D@74"), NodePath("@StaticBody3D@75"), NodePath("@StaticBody3D@76"), NodePath("@StaticBody3D@77"), NodePath("@StaticBody3D@78"), NodePath("@StaticBody3D@79"), NodePath("@StaticBody3D@80"), NodePath("@StaticBody3D@81"), NodePath("@StaticBody3D@82"), NodePath("@StaticBody3D@83"), NodePath("@StaticBody3D@84"), NodePath("@StaticBody3D@85"), NodePath("@StaticBody3D@86"), NodePath("@StaticBody3D@87"), NodePath("@StaticBody3D@88"), NodePath("@StaticBody3D@89"), NodePath("@StaticBody3D@90"), NodePath("@StaticBody3D@91"), NodePath("@StaticBody3D@92"), NodePath("@StaticBody3D@93"), NodePath("@StaticBody3D@94"), NodePath("@StaticBody3D@95"), NodePath("@StaticBody3D@96"), NodePath("@StaticBody3D@97"), NodePath("@StaticBody3D@98"), NodePath("@StaticBody3D@99"), NodePath("@StaticBody3D@100"), NodePath("@StaticBody3D@101"), NodePath("@StaticBody3D@102"), NodePath("@StaticBody3D@103"), NodePath("@StaticBody3D@104"), NodePath("@StaticBody3D@105"), NodePath("@StaticBody3D@106"), NodePath("@StaticBody3D@107"), NodePath("@StaticBody3D@108"), NodePath("@StaticBody3D@109"), NodePath("@StaticBody3D@110"), NodePath("@StaticBody3D@111"), NodePath("@StaticBody3D@112"), NodePath("@StaticBody3D@113"), NodePath("@StaticBody3D@385"), NodePath("@StaticBody3D@387"), NodePath("@StaticBody3D@389"), NodePath("@StaticBody3D@391"), NodePath("@StaticBody3D@393"), NodePath("@StaticBody3D@395"), NodePath("@StaticBody3D@397"), NodePath("@StaticBody3D@411"), NodePath("@StaticBody3D@414"), NodePath("@StaticBody3D@416"), NodePath("@StaticBody3D@458"), NodePath("@StaticBody3D@464"), NodePath("@StaticBody3D@466"), NodePath("@StaticBody3D@468"), NodePath("@StaticBody3D@470"), NodePath("@StaticBody3D@472"), NodePath("@StaticBody3D@474"), NodePath("@StaticBody3D@476"), NodePath("@StaticBody3D@490"), NodePath("@StaticBody3D@493"), NodePath("@StaticBody3D@495")]
goals = [NodePath("@StaticBody3D@458")]
metadata/_custom_type_script = "uid://r4nmfr8jfcjx"
[node name="FlowNode" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, 0.00175571, -7.5)
connections = [NodePath("../@StaticBody3D@10"), NodePath("../@StaticBody3D@16"), NodePath("../@StaticBody3D@464")]
visualisers = [null, null, null]
[node name="@StaticBody3D@10" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, -0.0404969, -5)
connections = [NodePath("../FlowNode"), NodePath("../@StaticBody3D@11"), NodePath("../@StaticBody3D@17"), NodePath("../@StaticBody3D@466")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@11" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, -0.0404969, -2.5)
connections = [NodePath("../@StaticBody3D@10"), NodePath("../@StaticBody3D@12"), NodePath("../@StaticBody3D@18"), NodePath("../@StaticBody3D@468")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@12" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, -0.0404969, 2.84217e-14)
connections = [NodePath("../@StaticBody3D@11"), NodePath("../@StaticBody3D@13"), NodePath("../@StaticBody3D@19"), NodePath("../@StaticBody3D@470")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@13" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, -0.0404972, 2.5)
connections = [NodePath("../@StaticBody3D@12"), NodePath("../@StaticBody3D@14"), NodePath("../@StaticBody3D@20"), NodePath("../@StaticBody3D@472")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@14" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, -0.0404972, 5)
connections = [NodePath("../@StaticBody3D@13"), NodePath("../@StaticBody3D@15"), NodePath("../@StaticBody3D@21"), NodePath("../@StaticBody3D@474")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@15" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -17.5, 0.0017556, 7.5)
connections = [NodePath("../@StaticBody3D@14"), NodePath("../@StaticBody3D@22"), NodePath("../@StaticBody3D@476")]
visualisers = [null, null, null]
[node name="@StaticBody3D@16" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0.0017556, -7.5)
connections = [NodePath("../FlowNode"), NodePath("../@StaticBody3D@17"), NodePath("../@StaticBody3D@23")]
visualisers = [null, null, null]
[node name="@StaticBody3D@17" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, -0.0404969, -5)
connections = [NodePath("../@StaticBody3D@10"), NodePath("../@StaticBody3D@16"), NodePath("../@StaticBody3D@18"), NodePath("../@StaticBody3D@24")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@18" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, -0.0404969, -2.5)
connections = [NodePath("../@StaticBody3D@11"), NodePath("../@StaticBody3D@17"), NodePath("../@StaticBody3D@19"), NodePath("../@StaticBody3D@25")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@19" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, -0.0404969, -2.84217e-14)
connections = [NodePath("../@StaticBody3D@12"), NodePath("../@StaticBody3D@18"), NodePath("../@StaticBody3D@20"), NodePath("../@StaticBody3D@26")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@20" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, -0.0404972, 2.5)
connections = [NodePath("../@StaticBody3D@13"), NodePath("../@StaticBody3D@19"), NodePath("../@StaticBody3D@21"), NodePath("../@StaticBody3D@27")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@21" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, -0.0404972, 5)
connections = [NodePath("../@StaticBody3D@14"), NodePath("../@StaticBody3D@20"), NodePath("../@StaticBody3D@22"), NodePath("../@StaticBody3D@28")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@22" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0.0017556, 7.5)
connections = [NodePath("../@StaticBody3D@15"), NodePath("../@StaticBody3D@21"), NodePath("../@StaticBody3D@29")]
visualisers = [null, null, null]
[node name="@StaticBody3D@23" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, 0.0017556, -7.5)
connections = [NodePath("../@StaticBody3D@16"), NodePath("../@StaticBody3D@24"), NodePath("../@StaticBody3D@30")]
visualisers = [null, null, null]
[node name="@StaticBody3D@24" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, -0.0404971, -5)
connections = [NodePath("../@StaticBody3D@17"), NodePath("../@StaticBody3D@23"), NodePath("../@StaticBody3D@25"), NodePath("../@StaticBody3D@31")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@25" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, -0.0404969, -2.5)
connections = [NodePath("../@StaticBody3D@18"), NodePath("../@StaticBody3D@24"), NodePath("../@StaticBody3D@26"), NodePath("../@StaticBody3D@32")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@26" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, -0.0404969, -2.84217e-14)
connections = [NodePath("../@StaticBody3D@19"), NodePath("../@StaticBody3D@25"), NodePath("../@StaticBody3D@27"), NodePath("../@StaticBody3D@33")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@27" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, -0.0404972, 2.5)
connections = [NodePath("../@StaticBody3D@20"), NodePath("../@StaticBody3D@26"), NodePath("../@StaticBody3D@28"), NodePath("../@StaticBody3D@34")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@28" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, -0.0404972, 5)
connections = [NodePath("../@StaticBody3D@21"), NodePath("../@StaticBody3D@27"), NodePath("../@StaticBody3D@29"), NodePath("../@StaticBody3D@35")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@29" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.5, 0.0017556, 7.5)
connections = [NodePath("../@StaticBody3D@22"), NodePath("../@StaticBody3D@28"), NodePath("../@StaticBody3D@36")]
visualisers = [null, null, null]
[node name="@StaticBody3D@30" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0.0017556, -7.5)
connections = [NodePath("../@StaticBody3D@23"), NodePath("../@StaticBody3D@31"), NodePath("../@StaticBody3D@37")]
visualisers = [null, null, null]
[node name="@StaticBody3D@31" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, -0.0404971, -5)
connections = [NodePath("../@StaticBody3D@24"), NodePath("../@StaticBody3D@30"), NodePath("../@StaticBody3D@32"), NodePath("../@StaticBody3D@38")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@32" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, -0.0404969, -2.5)
connections = [NodePath("../@StaticBody3D@25"), NodePath("../@StaticBody3D@31"), NodePath("../@StaticBody3D@33"), NodePath("../@StaticBody3D@39")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@33" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, -0.0404969, 2.84217e-14)
connections = [NodePath("../@StaticBody3D@26"), NodePath("../@StaticBody3D@32"), NodePath("../@StaticBody3D@34"), NodePath("../@StaticBody3D@40")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@34" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, -0.0404972, 2.5)
connections = [NodePath("../@StaticBody3D@27"), NodePath("../@StaticBody3D@33"), NodePath("../@StaticBody3D@35"), NodePath("../@StaticBody3D@41")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@35" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, -0.0404972, 5)
connections = [NodePath("../@StaticBody3D@28"), NodePath("../@StaticBody3D@34"), NodePath("../@StaticBody3D@36"), NodePath("../@StaticBody3D@42")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@36" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0.00175571, 7.5)
connections = [NodePath("../@StaticBody3D@29"), NodePath("../@StaticBody3D@35"), NodePath("../@StaticBody3D@43")]
visualisers = [null, null, null]
[node name="@StaticBody3D@37" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0.0017556, -7.5)
connections = [NodePath("../@StaticBody3D@30"), NodePath("../@StaticBody3D@38"), NodePath("../@StaticBody3D@44")]
visualisers = [null, null, null]
[node name="@StaticBody3D@38" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, -0.0404971, -5)
connections = [NodePath("../@StaticBody3D@31"), NodePath("../@StaticBody3D@37"), NodePath("../@StaticBody3D@39"), NodePath("../@StaticBody3D@45")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@39" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, -0.0404969, -2.5)
connections = [NodePath("../@StaticBody3D@32"), NodePath("../@StaticBody3D@38"), NodePath("../@StaticBody3D@40"), NodePath("../@StaticBody3D@46")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@40" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, -0.0404969, -2.84217e-14)
connections = [NodePath("../@StaticBody3D@33"), NodePath("../@StaticBody3D@39"), NodePath("../@StaticBody3D@41"), NodePath("../@StaticBody3D@47")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@41" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, -0.0404972, 2.5)
connections = [NodePath("../@StaticBody3D@34"), NodePath("../@StaticBody3D@40"), NodePath("../@StaticBody3D@42"), NodePath("../@StaticBody3D@48")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@42" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, -0.0404972, 5)
connections = [NodePath("../@StaticBody3D@35"), NodePath("../@StaticBody3D@41"), NodePath("../@StaticBody3D@43"), NodePath("../@StaticBody3D@49")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@43" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.5, 0.00175571, 7.5)
connections = [NodePath("../@StaticBody3D@36"), NodePath("../@StaticBody3D@42"), NodePath("../@StaticBody3D@50")]
visualisers = [null, null, null]
[node name="@StaticBody3D@44" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0.0017556, -7.5)
connections = [NodePath("../@StaticBody3D@37"), NodePath("../@StaticBody3D@45"), NodePath("../@StaticBody3D@51")]
visualisers = [null, null, null]
[node name="@StaticBody3D@45" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, -0.0404971, -5)
connections = [NodePath("../@StaticBody3D@38"), NodePath("../@StaticBody3D@44"), NodePath("../@StaticBody3D@46"), NodePath("../@StaticBody3D@52")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@46" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, -0.0404969, -2.5)
connections = [NodePath("../@StaticBody3D@39"), NodePath("../@StaticBody3D@45"), NodePath("../@StaticBody3D@47"), NodePath("../@StaticBody3D@53")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@47" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, -0.0404969, 0)
connections = [NodePath("../@StaticBody3D@40"), NodePath("../@StaticBody3D@46"), NodePath("../@StaticBody3D@48"), NodePath("../@StaticBody3D@54")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@48" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, -0.0404972, 2.5)
connections = [NodePath("../@StaticBody3D@41"), NodePath("../@StaticBody3D@47"), NodePath("../@StaticBody3D@49"), NodePath("../@StaticBody3D@55")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@49" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, -0.0404972, 5)
connections = [NodePath("../@StaticBody3D@42"), NodePath("../@StaticBody3D@48"), NodePath("../@StaticBody3D@50"), NodePath("../@StaticBody3D@56")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@50" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0.00175571, 7.5)
connections = [NodePath("../@StaticBody3D@43"), NodePath("../@StaticBody3D@49"), NodePath("../@StaticBody3D@57")]
visualisers = [null, null, null]
[node name="@StaticBody3D@51" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, 0.0017556, -7.5)
connections = [NodePath("../@StaticBody3D@44"), NodePath("../@StaticBody3D@52"), NodePath("../@StaticBody3D@58")]
visualisers = [null, null, null]
[node name="@StaticBody3D@52" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, -0.0404971, -5)
connections = [NodePath("../@StaticBody3D@45"), NodePath("../@StaticBody3D@51"), NodePath("../@StaticBody3D@53"), NodePath("../@StaticBody3D@59")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@53" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, -0.0404969, -2.5)
connections = [NodePath("../@StaticBody3D@46"), NodePath("../@StaticBody3D@52"), NodePath("../@StaticBody3D@54"), NodePath("../@StaticBody3D@60")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@54" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, -0.0404969, 0)
connections = [NodePath("../@StaticBody3D@47"), NodePath("../@StaticBody3D@53"), NodePath("../@StaticBody3D@55"), NodePath("../@StaticBody3D@61")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@55" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, -0.0404972, 2.5)
connections = [NodePath("../@StaticBody3D@48"), NodePath("../@StaticBody3D@54"), NodePath("../@StaticBody3D@56"), NodePath("../@StaticBody3D@62")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@56" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, -0.0404972, 5)
connections = [NodePath("../@StaticBody3D@49"), NodePath("../@StaticBody3D@55"), NodePath("../@StaticBody3D@57"), NodePath("../@StaticBody3D@63")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@57" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5, 0.00175571, 7.5)
connections = [NodePath("../@StaticBody3D@50"), NodePath("../@StaticBody3D@56"), NodePath("../@StaticBody3D@64")]
visualisers = [null, null, null]
[node name="@StaticBody3D@58" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0017556, -7.5)
connections = [NodePath("../@StaticBody3D@51"), NodePath("../@StaticBody3D@59"), NodePath("../@StaticBody3D@65")]
visualisers = [null, null, null]
[node name="@StaticBody3D@59" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0404971, -5)
connections = [NodePath("../@StaticBody3D@52"), NodePath("../@StaticBody3D@58"), NodePath("../@StaticBody3D@60"), NodePath("../@StaticBody3D@66")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@60" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0404969, -2.5)
connections = [NodePath("../@StaticBody3D@53"), NodePath("../@StaticBody3D@59"), NodePath("../@StaticBody3D@61"), NodePath("../@StaticBody3D@67")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@61" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0404969, 0)
connections = [NodePath("../@StaticBody3D@54"), NodePath("../@StaticBody3D@60"), NodePath("../@StaticBody3D@62"), NodePath("../@StaticBody3D@68")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@62" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0404972, 2.5)
connections = [NodePath("../@StaticBody3D@55"), NodePath("../@StaticBody3D@61"), NodePath("../@StaticBody3D@63"), NodePath("../@StaticBody3D@69")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@63" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0404972, 5)
connections = [NodePath("../@StaticBody3D@56"), NodePath("../@StaticBody3D@62"), NodePath("../@StaticBody3D@64"), NodePath("../@StaticBody3D@70")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@64" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.00175571, 7.5)
connections = [NodePath("../@StaticBody3D@57"), NodePath("../@StaticBody3D@63"), NodePath("../@StaticBody3D@71")]
visualisers = [null, null, null]
[node name="@StaticBody3D@65" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.00175571, -7.5)
connections = [NodePath("../@StaticBody3D@58"), NodePath("../@StaticBody3D@66"), NodePath("../@StaticBody3D@72")]
visualisers = [null, null, null]
[node name="@StaticBody3D@66" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, -0.0404972, -5)
connections = [NodePath("../@StaticBody3D@59"), NodePath("../@StaticBody3D@65"), NodePath("../@StaticBody3D@67"), NodePath("../@StaticBody3D@73")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@67" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, -0.0404972, -2.5)
connections = [NodePath("../@StaticBody3D@60"), NodePath("../@StaticBody3D@66"), NodePath("../@StaticBody3D@68"), NodePath("../@StaticBody3D@74")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@68" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, -0.0404972, 0)
connections = [NodePath("../@StaticBody3D@61"), NodePath("../@StaticBody3D@67"), NodePath("../@StaticBody3D@69"), NodePath("../@StaticBody3D@75")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@69" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, -0.0404969, 2.5)
connections = [NodePath("../@StaticBody3D@62"), NodePath("../@StaticBody3D@68"), NodePath("../@StaticBody3D@70"), NodePath("../@StaticBody3D@76")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@70" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, -0.0404971, 5)
connections = [NodePath("../@StaticBody3D@63"), NodePath("../@StaticBody3D@69"), NodePath("../@StaticBody3D@71"), NodePath("../@StaticBody3D@77")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@71" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0.0017556, 7.5)
connections = [NodePath("../@StaticBody3D@64"), NodePath("../@StaticBody3D@70"), NodePath("../@StaticBody3D@78")]
visualisers = [null, null, null]
[node name="@StaticBody3D@72" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 0.00175571, -7.5)
connections = [NodePath("../@StaticBody3D@65"), NodePath("../@StaticBody3D@73"), NodePath("../@StaticBody3D@79")]
visualisers = [null, null, null]
[node name="@StaticBody3D@73" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, -0.0404972, -5)
connections = [NodePath("../@StaticBody3D@66"), NodePath("../@StaticBody3D@72"), NodePath("../@StaticBody3D@74"), NodePath("../@StaticBody3D@80")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@74" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, -0.0404972, -2.5)
connections = [NodePath("../@StaticBody3D@67"), NodePath("../@StaticBody3D@73"), NodePath("../@StaticBody3D@75"), NodePath("../@StaticBody3D@81")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@75" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, -0.0404969, -1.42109e-14)
connections = [NodePath("../@StaticBody3D@68"), NodePath("../@StaticBody3D@74"), NodePath("../@StaticBody3D@76"), NodePath("../@StaticBody3D@82")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@76" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, -0.0404969, 2.5)
connections = [NodePath("../@StaticBody3D@69"), NodePath("../@StaticBody3D@75"), NodePath("../@StaticBody3D@77"), NodePath("../@StaticBody3D@83")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@77" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, -0.0404971, 5)
connections = [NodePath("../@StaticBody3D@70"), NodePath("../@StaticBody3D@76"), NodePath("../@StaticBody3D@78"), NodePath("../@StaticBody3D@84")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@78" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 0.0017556, 7.5)
connections = [NodePath("../@StaticBody3D@71"), NodePath("../@StaticBody3D@77"), NodePath("../@StaticBody3D@85")]
visualisers = [null, null, null]
[node name="@StaticBody3D@79" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0.00175571, -7.5)
connections = [NodePath("../@StaticBody3D@72"), NodePath("../@StaticBody3D@80"), NodePath("../@StaticBody3D@86")]
visualisers = [null, null, null]
[node name="@StaticBody3D@80" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, -0.0404972, -5)
connections = [NodePath("../@StaticBody3D@73"), NodePath("../@StaticBody3D@79"), NodePath("../@StaticBody3D@81"), NodePath("../@StaticBody3D@87")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@81" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, -0.0404972, -2.5)
connections = [NodePath("../@StaticBody3D@74"), NodePath("../@StaticBody3D@80"), NodePath("../@StaticBody3D@82"), NodePath("../@StaticBody3D@88")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@82" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, -0.0404969, -2.84217e-14)
connections = [NodePath("../@StaticBody3D@75"), NodePath("../@StaticBody3D@81"), NodePath("../@StaticBody3D@83"), NodePath("../@StaticBody3D@89")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@83" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, -0.0404969, 2.5)
connections = [NodePath("../@StaticBody3D@76"), NodePath("../@StaticBody3D@82"), NodePath("../@StaticBody3D@84"), NodePath("../@StaticBody3D@90")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@84" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, -0.0404971, 5)
connections = [NodePath("../@StaticBody3D@77"), NodePath("../@StaticBody3D@83"), NodePath("../@StaticBody3D@85"), NodePath("../@StaticBody3D@91")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@85" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 0.0017556, 7.5)
connections = [NodePath("../@StaticBody3D@78"), NodePath("../@StaticBody3D@84"), NodePath("../@StaticBody3D@92")]
visualisers = [null, null, null]
[node name="@StaticBody3D@86" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0.00175571, -7.5)
connections = [NodePath("../@StaticBody3D@79"), NodePath("../@StaticBody3D@87"), NodePath("../@StaticBody3D@93")]
visualisers = [null, null, null]
[node name="@StaticBody3D@87" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, -0.0404972, -5)
connections = [NodePath("../@StaticBody3D@80"), NodePath("../@StaticBody3D@86"), NodePath("../@StaticBody3D@88"), NodePath("../@StaticBody3D@94")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@88" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, -0.0404972, -2.5)
connections = [NodePath("../@StaticBody3D@81"), NodePath("../@StaticBody3D@87"), NodePath("../@StaticBody3D@89"), NodePath("../@StaticBody3D@95")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@89" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, -0.0404969, 0)
connections = [NodePath("../@StaticBody3D@82"), NodePath("../@StaticBody3D@88"), NodePath("../@StaticBody3D@90"), NodePath("../@StaticBody3D@96")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@90" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, -0.0404969, 2.5)
connections = [NodePath("../@StaticBody3D@83"), NodePath("../@StaticBody3D@89"), NodePath("../@StaticBody3D@91"), NodePath("../@StaticBody3D@97")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@91" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, -0.0404971, 5)
connections = [NodePath("../@StaticBody3D@84"), NodePath("../@StaticBody3D@90"), NodePath("../@StaticBody3D@92"), NodePath("../@StaticBody3D@98")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@92" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0.0017556, 7.5)
connections = [NodePath("../@StaticBody3D@85"), NodePath("../@StaticBody3D@91"), NodePath("../@StaticBody3D@99")]
visualisers = [null, null, null]
[node name="@StaticBody3D@93" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, 0.00175571, -7.5)
connections = [NodePath("../@StaticBody3D@86"), NodePath("../@StaticBody3D@94"), NodePath("../@StaticBody3D@100")]
visualisers = [null, null, null]
[node name="@StaticBody3D@94" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, -0.0404972, -5)
connections = [NodePath("../@StaticBody3D@87"), NodePath("../@StaticBody3D@93"), NodePath("../@StaticBody3D@95"), NodePath("../@StaticBody3D@101")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@95" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, -0.0404972, -2.5)
connections = [NodePath("../@StaticBody3D@88"), NodePath("../@StaticBody3D@94"), NodePath("../@StaticBody3D@96"), NodePath("../@StaticBody3D@102")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@96" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, -0.0404969, 0)
connections = [NodePath("../@StaticBody3D@89"), NodePath("../@StaticBody3D@95"), NodePath("../@StaticBody3D@97"), NodePath("../@StaticBody3D@103")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@97" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, -0.0404969, 2.5)
connections = [NodePath("../@StaticBody3D@90"), NodePath("../@StaticBody3D@96"), NodePath("../@StaticBody3D@98"), NodePath("../@StaticBody3D@104")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@98" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, -0.0404971, 5)
connections = [NodePath("../@StaticBody3D@91"), NodePath("../@StaticBody3D@97"), NodePath("../@StaticBody3D@99"), NodePath("../@StaticBody3D@105")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@99" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.5, 0.0017556, 7.5)
connections = [NodePath("../@StaticBody3D@92"), NodePath("../@StaticBody3D@98"), NodePath("../@StaticBody3D@106")]
visualisers = [null, null, null]
[node name="@StaticBody3D@100" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 0.00175571, -7.5)
connections = [NodePath("../@StaticBody3D@93"), NodePath("../@StaticBody3D@101"), NodePath("../@StaticBody3D@107")]
visualisers = [null, null, null]
[node name="@StaticBody3D@101" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, -0.0404972, -5)
connections = [NodePath("../@StaticBody3D@94"), NodePath("../@StaticBody3D@100"), NodePath("../@StaticBody3D@102"), NodePath("../@StaticBody3D@108")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@102" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, -0.0404972, -2.5)
connections = [NodePath("../@StaticBody3D@95"), NodePath("../@StaticBody3D@101"), NodePath("../@StaticBody3D@103"), NodePath("../@StaticBody3D@109")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@103" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, -0.0404969, -2.84217e-14)
connections = [NodePath("../@StaticBody3D@96"), NodePath("../@StaticBody3D@102"), NodePath("../@StaticBody3D@104"), NodePath("../@StaticBody3D@110")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@104" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, -0.0404969, 2.5)
connections = [NodePath("../@StaticBody3D@97"), NodePath("../@StaticBody3D@103"), NodePath("../@StaticBody3D@105"), NodePath("../@StaticBody3D@111")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@105" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, -0.0404969, 5)
connections = [NodePath("../@StaticBody3D@98"), NodePath("../@StaticBody3D@104"), NodePath("../@StaticBody3D@106"), NodePath("../@StaticBody3D@112")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@106" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 0.00175571, 7.5)
connections = [NodePath("../@StaticBody3D@99"), NodePath("../@StaticBody3D@105"), NodePath("../@StaticBody3D@113")]
visualisers = [null, null, null]
[node name="@StaticBody3D@107" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.5, 0.00175571, -7.5)
connections = [NodePath("../@StaticBody3D@100"), NodePath("../@StaticBody3D@108"), NodePath("../@StaticBody3D@397")]
visualisers = [null, null, null]
[node name="@StaticBody3D@108" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.5, -0.0404972, -5)
connections = [NodePath("../@StaticBody3D@101"), NodePath("../@StaticBody3D@107"), NodePath("../@StaticBody3D@109"), NodePath("../@StaticBody3D@395")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@109" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.5, -0.0404972, -2.5)
connections = [NodePath("../@StaticBody3D@102"), NodePath("../@StaticBody3D@108"), NodePath("../@StaticBody3D@110"), NodePath("../@StaticBody3D@393")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@110" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.5, -0.0404969, 2.84217e-14)
connections = [NodePath("../@StaticBody3D@103"), NodePath("../@StaticBody3D@109"), NodePath("../@StaticBody3D@111"), NodePath("../@StaticBody3D@391")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@111" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.5, -0.0404969, 2.5)
connections = [NodePath("../@StaticBody3D@104"), NodePath("../@StaticBody3D@110"), NodePath("../@StaticBody3D@112"), NodePath("../@StaticBody3D@389")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@112" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.5, -0.0404969, 5)
connections = [NodePath("../@StaticBody3D@105"), NodePath("../@StaticBody3D@111"), NodePath("../@StaticBody3D@113"), NodePath("../@StaticBody3D@387")]
visualisers = [null, null, null, null]
[node name="@StaticBody3D@113" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.5, 0.0017556, 7.5)
connections = [NodePath("../@StaticBody3D@106"), NodePath("../@StaticBody3D@112"), NodePath("../@StaticBody3D@385")]
visualisers = [null, null, null]
[node name="@StaticBody3D@385" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.215, 0.0945654, 7.5)
connections = [NodePath("../@StaticBody3D@113"), NodePath("../@StaticBody3D@387"), NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@414"), NodePath("../@StaticBody3D@416")]
visualisers = [null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@387" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.215, -0.0885693, 5)
connections = [NodePath("../@StaticBody3D@112"), NodePath("../@StaticBody3D@385"), NodePath("../@StaticBody3D@389"), NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@414"), NodePath("../@StaticBody3D@416")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@389" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.215, -0.0848544, 2.5)
connections = [NodePath("../@StaticBody3D@111"), NodePath("../@StaticBody3D@391"), NodePath("../@StaticBody3D@387"), NodePath("../@StaticBody3D@416"), NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@414")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@391" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.215, -0.0806967, 2.84217e-14)
connections = [NodePath("../@StaticBody3D@110"), NodePath("../@StaticBody3D@393"), NodePath("../@StaticBody3D@389"), NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@414"), NodePath("../@StaticBody3D@416")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@393" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.215, -0.0848545, -2.5)
connections = [NodePath("../@StaticBody3D@109"), NodePath("../@StaticBody3D@395"), NodePath("../@StaticBody3D@391"), NodePath("../@StaticBody3D@414"), NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@416")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@395" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.215, -0.0885694, -5)
connections = [NodePath("../@StaticBody3D@108"), NodePath("../@StaticBody3D@397"), NodePath("../@StaticBody3D@393"), NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@414"), NodePath("../@StaticBody3D@416")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@397" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.215, 0.0945654, -7.5)
connections = [NodePath("../@StaticBody3D@107"), NodePath("../@StaticBody3D@395"), NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@414"), NodePath("../@StaticBody3D@416")]
visualisers = [null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@411" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27.215, -1.0593, 0)
connections = [NodePath("../@StaticBody3D@391"), NodePath("../@StaticBody3D@416"), NodePath("../@StaticBody3D@414"), NodePath("../@StaticBody3D@385"), NodePath("../@StaticBody3D@387"), NodePath("../@StaticBody3D@389"), NodePath("../@StaticBody3D@393"), NodePath("../@StaticBody3D@395"), NodePath("../@StaticBody3D@397"), NodePath("../@StaticBody3D@458")]
visualisers = [null, null, null, null, null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@414" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27.215, -1.05915, -2.5)
connections = [NodePath("../@StaticBody3D@393"), NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@397"), NodePath("../@StaticBody3D@395"), NodePath("../@StaticBody3D@391"), NodePath("../@StaticBody3D@389"), NodePath("../@StaticBody3D@387"), NodePath("../@StaticBody3D@385"), NodePath("../@StaticBody3D@458")]
visualisers = [null, null, null, null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@416" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27.215, -1.05945, 2.5)
connections = [NodePath("../@StaticBody3D@389"), NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@385"), NodePath("../@StaticBody3D@387"), NodePath("../@StaticBody3D@391"), NodePath("../@StaticBody3D@393"), NodePath("../@StaticBody3D@395"), NodePath("../@StaticBody3D@397"), NodePath("../@StaticBody3D@458")]
visualisers = [null, null, null, null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@458" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 44.215, -1.05955, 0)
connections = [NodePath("../@StaticBody3D@411"), NodePath("../@StaticBody3D@416"), NodePath("../@StaticBody3D@414")]
visualisers = [null, null, null]
buildable = false
[node name="@StaticBody3D@464" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.285, 0.10004, -7.5)
connections = [NodePath("../FlowNode"), NodePath("../@StaticBody3D@466"), NodePath("../@StaticBody3D@490"), NodePath("../@StaticBody3D@495"), NodePath("../@StaticBody3D@493")]
visualisers = [null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@466" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.285, -0.079766, -5)
connections = [NodePath("../@StaticBody3D@10"), NodePath("../@StaticBody3D@468"), NodePath("../@StaticBody3D@464"), NodePath("../@StaticBody3D@490"), NodePath("../@StaticBody3D@495"), NodePath("../@StaticBody3D@493")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@468" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.285, -0.0764061, -2.5)
connections = [NodePath("../@StaticBody3D@11"), NodePath("../@StaticBody3D@470"), NodePath("../@StaticBody3D@466"), NodePath("../@StaticBody3D@495"), NodePath("../@StaticBody3D@490"), NodePath("../@StaticBody3D@493")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@470" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.285, -0.0730402, -2.84217e-14)
connections = [NodePath("../@StaticBody3D@12"), NodePath("../@StaticBody3D@472"), NodePath("../@StaticBody3D@468"), NodePath("../@StaticBody3D@490"), NodePath("../@StaticBody3D@495"), NodePath("../@StaticBody3D@493")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@472" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.285, -0.0764062, 2.5)
connections = [NodePath("../@StaticBody3D@13"), NodePath("../@StaticBody3D@474"), NodePath("../@StaticBody3D@470"), NodePath("../@StaticBody3D@493"), NodePath("../@StaticBody3D@490"), NodePath("../@StaticBody3D@495")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@474" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.285, -0.0797663, 5)
connections = [NodePath("../@StaticBody3D@14"), NodePath("../@StaticBody3D@472"), NodePath("../@StaticBody3D@476"), NodePath("../@StaticBody3D@490"), NodePath("../@StaticBody3D@495"), NodePath("../@StaticBody3D@493")]
visualisers = [null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@476" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.285, 0.10004, 7.5)
connections = [NodePath("../@StaticBody3D@15"), NodePath("../@StaticBody3D@474"), NodePath("../@StaticBody3D@490"), NodePath("../@StaticBody3D@495"), NodePath("../@StaticBody3D@493")]
visualisers = [null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@490" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.385, -1.0444, -2.84217e-14)
connections = [NodePath("../@StaticBody3D@470"), NodePath("../@StaticBody3D@493"), NodePath("../@StaticBody3D@495"), NodePath("../@StaticBody3D@472"), NodePath("../@StaticBody3D@474"), NodePath("../@StaticBody3D@476"), NodePath("../@StaticBody3D@468"), NodePath("../@StaticBody3D@466"), NodePath("../@StaticBody3D@464")]
visualisers = [null, null, null, null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@493" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.385, -1.05029, 4)
connections = [NodePath("../@StaticBody3D@472"), NodePath("../@StaticBody3D@490"), NodePath("../@StaticBody3D@476"), NodePath("../@StaticBody3D@474"), NodePath("../@StaticBody3D@470"), NodePath("../@StaticBody3D@468"), NodePath("../@StaticBody3D@466"), NodePath("../@StaticBody3D@464")]
visualisers = [null, null, null, null, null, null, null, null]
buildable = false
[node name="@StaticBody3D@495" parent="." node_paths=PackedStringArray("connections", "visualisers") instance=ExtResource("2_s6hwk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.385, -1.05029, -4)
connections = [NodePath("../@StaticBody3D@468"), NodePath("../@StaticBody3D@490"), NodePath("../@StaticBody3D@464"), NodePath("../@StaticBody3D@466"), NodePath("../@StaticBody3D@470"), NodePath("../@StaticBody3D@472"), NodePath("../@StaticBody3D@474"), NodePath("../@StaticBody3D@476")]
visualisers = [null, null, null, null, null, null, null, null]
buildable = false

Binary file not shown.

View File

@@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bs4en6twugqjl"
path="res://.godot/imported/flow_node.glb-6ba2ba2afb1294cefafdb385a7532688.scn"
[deps]
source_file="res://Scenes/FlowField/flow_node.glb"
dest_files=["res://.godot/imported/flow_node.glb-6ba2ba2afb1294cefafdb385a7532688.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

View File

@@ -0,0 +1,18 @@
[gd_scene load_steps=4 format=3 uid="uid://bssfvyxv5uo1f"]
[ext_resource type="Script" uid="uid://c86ygtor5tksd" path="res://Scripts/flow_node.gd" id="1_ng65h"]
[ext_resource type="PackedScene" uid="uid://h7el2c2awv6" path="res://Scenes/FlowField/flow_node2.tscn" id="2_bmgs5"]
[sub_resource type="SphereShape3D" id="SphereShape3D_bmgs5"]
radius = 0.4
[node name="FlowNode" type="StaticBody3D"]
collision_layer = 64
collision_mask = 0
script = ExtResource("1_ng65h")
metadata/_custom_type_script = "uid://c86ygtor5tksd"
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("SphereShape3D_bmgs5")
[node name="flow_node" parent="." instance=ExtResource("2_bmgs5")]

View File

@@ -0,0 +1,11 @@
[gd_scene load_steps=3 format=3 uid="uid://h7el2c2awv6"]
[ext_resource type="PackedScene" uid="uid://bs4en6twugqjl" path="res://Scenes/FlowField/flow_node.glb" id="1_tnepb"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_16gtg"]
resource_local_to_scene = true
[node name="flow_node" instance=ExtResource("1_tnepb")]
[node name="Sphere" parent="." index="0"]
material_override = SubResource("StandardMaterial3D_16gtg")

12
Scenes/Ladder/ladder.gd Normal file
View File

@@ -0,0 +1,12 @@
class_name Ladder
extends Area3D
func _on_body_entered(body: Node3D) -> void:
if body is Hero:
body.movement.enable_climbing()
func _on_body_exited(body: Node3D) -> void:
if body is Hero:
body.movement.disable_climbing()

View File

@@ -0,0 +1 @@
uid://7pd2edvb845w

10
Scenes/Ladder/ladder.tscn Normal file
View File

@@ -0,0 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://cx8f6tsipvmls"]
[ext_resource type="Script" uid="uid://7pd2edvb845w" path="res://Scenes/Ladder/ladder.gd" id="1_cq4ai"]
[node name="Ladder" type="Area3D"]
collision_mask = 2
script = ExtResource("1_cq4ai")
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="body_exited" from="." to="." method="_on_body_exited"]

View File

@@ -2,7 +2,7 @@
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://UI/new_theme.tres" id="1_p1cib"]
[ext_resource type="Script" uid="uid://ci8vq73u23viy" path="res://Scenes/Menus/MainMenu/main_menu.gd" id="2_ivytu"]
[ext_resource type="PackedScene" uid="uid://y1qa1g3ic8sp" path="res://Worlds/GreenPlanet/Levels/first_level.tscn" id="3_l8r4a"]
[ext_resource type="PackedScene" uid="uid://y1qa1g3ic8sp" path="res://Worlds/GreenPlanet/Levels/Bridge/bridge.tscn" id="3_l8r4a"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="5_cwn2i"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="5_u514r"]
[ext_resource type="Texture2D" uid="uid://cdnhe2mi5c5ln" path="res://Assets/Textures/dead_eye_dog.png" id="6_rsxwm"]
@@ -17,7 +17,7 @@
[ext_resource type="Script" uid="uid://cjr0pbqisd51v" path="res://Scenes/Menus/MainMenu/achievements_menu.gd" id="15_sv1gy"]
[ext_resource type="Texture2D" uid="uid://cpa1hl36xfplg" path="res://Assets/Textures/first_scroll_seen.png" id="16_sv1gy"]
[ext_resource type="Texture2D" uid="uid://ctbi3gm1me1t5" path="res://Assets/Textures/unlock_mage_achievement.png" id="17_6t4jd"]
[ext_resource type="Script" uid="uid://cxrm2naq75jo1" path="res://mod_menu.gd" id="19_6t4jd"]
[ext_resource type="Script" uid="uid://cxrm2naq75jo1" path="res://Scripts/mod_menu.gd" id="19_6t4jd"]
[ext_resource type="FontFile" uid="uid://c3hwdjscf2hnk" path="res://Assets/Fonts/OpenType (.otf)/Kaph-Regular.otf" id="20_y5bw6"]
[sub_resource type="ViewportTexture" id="ViewportTexture_5u75i"]

Binary file not shown.

View File

@@ -3,7 +3,7 @@
[ext_resource type="Script" uid="uid://si58bm4r7r2i" path="res://Scenes/TowerBase/tower_base.gd" id="1_kalmg"]
[ext_resource type="Script" uid="uid://do24iuot0j7d7" path="res://Scripts/inventory.gd" id="2_m0oxx"]
[ext_resource type="Material" uid="uid://bi0grduhgdma4" path="res://Scenes/TowerBase/new_shader_material.tres" id="3_ueedj"]
[ext_resource type="ArrayMesh" uid="uid://cm5xjp442ew0y" path="res://textmesh.res" id="4_8j8ue"]
[ext_resource type="ArrayMesh" uid="uid://cr83c74ys8rll" path="res://Scenes/TowerBase/textmesh.res" id="4_8j8ue"]
[ext_resource type="Texture2D" uid="uid://ba85u6i558x4w" path="res://Assets/Textures/minimap_node.png" id="4_lbvtm"]
[sub_resource type="BoxShape3D" id="BoxShape3D_lc72v"]

View File

@@ -1,20 +1,14 @@
[gd_scene load_steps=5 format=3 uid="uid://d2yv447trxkwt"]
[gd_scene load_steps=4 format=3 uid="uid://d2yv447trxkwt"]
[ext_resource type="Script" uid="uid://dkuxg6ek5us4f" path="res://Scripts/enemy_spawner.gd" id="1_23wuv"]
[ext_resource type="PackedScene" uid="uid://b0nady5xm88bo" path="res://Worlds/GreenPlanet/Enemies/land_enemy.tscn" id="2_muaoj"]
[ext_resource type="PackedScene" uid="uid://bjo2q6vca5qlv" path="res://Worlds/GreenPlanet/Enemies/air_enemy.tscn" id="3_nh55v"]
[ext_resource type="Script" uid="uid://cd500cyj1tdyw" path="res://Scripts/visualized_path.gd" id="4_tdwud"]
[node name="Node3D" type="Node3D" node_paths=PackedStringArray("path")]
[node name="Node3D" type="Node3D"]
script = ExtResource("1_23wuv")
land_enemy_scene = ExtResource("2_muaoj")
air_enemy_scene = ExtResource("3_nh55v")
path = NodePath("VisualizedPath")
[node name="CSGBox3D" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
visible = false
[node name="VisualizedPath" type="Path3D" parent="."]
script = ExtResource("4_tdwud")
metadata/_custom_type_script = "uid://cd500cyj1tdyw"

View File

@@ -1,24 +0,0 @@
[gd_scene load_steps=4 format=3 uid="uid://clbw3osqy2ww2"]
[ext_resource type="Script" uid="uid://cr3sfjjo6l6n2" path="res://Scripts/path_visual_thing.gd" id="1_pgun7"]
[ext_resource type="Texture2D" uid="uid://cy786nrpcdr5o" path="res://Assets/Textures/minimap_path_visual.png" id="2_0gsds"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lutld"]
albedo_color = Color(0.0509804, 0.337255, 0.709804, 1)
[node name="PathFollow3D" type="PathFollow3D" node_paths=PackedStringArray("world_model", "minimap_model")]
use_model_front = true
script = ExtResource("1_pgun7")
world_model = NodePath("CSGSphere3D")
minimap_model = NodePath("Sprite3D")
[node name="CSGSphere3D" type="CSGSphere3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.401382, 0)
radius = 0.05
material = SubResource("StandardMaterial3D_lutld")
[node name="Sprite3D" type="Sprite3D" parent="."]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.620933, 0)
layers = 4
texture_filter = 0
texture = ExtResource("2_0gsds")

View File

@@ -1,14 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://dtfw0tefhb6qq"]
[ext_resource type="Script" uid="uid://cd500cyj1tdyw" path="res://Scripts/visualized_path.gd" id="1_34oex"]
[sub_resource type="Curve3D" id="Curve3D_tcut2"]
_data = {
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, -0.894202, 0.687927, -2.77275, 0, 0, -2),
"tilts": PackedFloat32Array(0, 0)
}
point_count = 2
[node name="Node3D" type="Path3D"]
curve = SubResource("Curve3D_tcut2")
script = ExtResource("1_34oex")