small racing game im working on
Track Editor (#1)
223 files changed, 5873 insertions, 847 deletions
diff --git a/.github/workflows/export.yml b/.github/workflows/export.yml index 44c324d..c7bdb9c 100644 --- a/.github/workflows/export.yml +++ b/.github/workflows/export.yml @@ -10,13 +10,11 @@ on: - "**.ttf" - ".github/workflows/export.yml" - "export_presets.cfg" - branches: - - main jobs: export: uses: bend-n/godot-actions/.github/workflows/callable-export.yml@main with: export-name: tracer - image: ghcr.io/bend-n/godot:4.0 + image: ghcr.io/bend-n/godot:4.0.2 platforms: "windows linux mac" @@ -4,3 +4,4 @@ movie.* addons/ *.x86_64 godot.lock +_svg_source* diff --git a/.gitmodules b/.gitmodules index 4fa30ba..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule "enginesound"] - path = enginesound - url = https://github.com/bend-n/enginesound diff --git a/.vscode/settings.json b/.vscode/settings.json index c9596d0..16db01e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,4 @@ { "godot_tools.gdscript_lsp_server_port": 6005, "python.formatting.provider": "black" -} +}
\ No newline at end of file diff --git a/assets/blocks/arrow.material b/assets/blocks/arrow.material Binary files differnew file mode 100644 index 0000000..ceee95e --- /dev/null +++ b/assets/blocks/arrow.material diff --git a/assets/blocks/arrow.mesh b/assets/blocks/arrow.mesh Binary files differnew file mode 100644 index 0000000..0ad88ed --- /dev/null +++ b/assets/blocks/arrow.mesh diff --git a/assets/blocks/platform_booster.tscn b/assets/blocks/platform_booster.tscn new file mode 100644 index 0000000..0bbbb88 --- /dev/null +++ b/assets/blocks/platform_booster.tscn @@ -0,0 +1,239 @@ +[gd_scene load_steps=14 format=3 uid="uid://ct733wlw6osxl"] + +[ext_resource type="Script" path="res://classes/booster.gd" id="1_xsyb5"] +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="2_7slgu"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="2_b2gjs"] +[ext_resource type="Material" uid="uid://cpqd2somc06dx" path="res://assets/blocks/arrow.material" id="3_0ymhr"] +[ext_resource type="ArrayMesh" uid="uid://dpryebqcookr2" path="res://assets/blocks/arrow.mesh" id="3_hvb8d"] +[ext_resource type="PackedScene" uid="uid://urgqw6yoy4f5" path="res://ui/editor/cameras/topdown_cam.tscn" id="6_ajq8r"] + +[sub_resource type="BoxMesh" id="BoxMesh_yy48c"] +size = Vector3(10, 1, 10) + +[sub_resource type="BoxShape3D" id="BoxShape3D_0mmg7"] +size = Vector3(10, 1, 10) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_t325e"] +transparency = 1 +albedo_color = Color(0.929412, 0.796078, 0.196078, 1) +metallic = 0.1 +metallic_specular = 1.0 +roughness = 0.0 +disable_receive_shadows = true + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_djys4"] +transparency = 1 +albedo_color = Color(0.93, 0.795305, 0.1953, 1) +metallic = 0.1 +metallic_specular = 1.0 +roughness = 0.0 +disable_receive_shadows = true + +[sub_resource type="Animation" id="Animation_h17yr"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("arrow_holder/arrow1:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(1.58947, 1.1, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("arrow_holder/arrow2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(4.24211, 1.1, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("arrow_holder/arrow3:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(-1.06316, 1.1, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("arrow_holder/arrow1:surface_material_override/0:albedo_color") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(0.929412, 0.796078, 0.196078, 1)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("arrow_holder/arrow2:surface_material_override/0:albedo_color") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(0.929412, 0.796078, 0.196078, 1)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("arrow_holder/arrow3:surface_material_override/0:albedo_color") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(0.93, 0.795305, 0.1953, 1)] +} + +[sub_resource type="Animation" id="Animation_26wkv"] +resource_name = "move" +length = 2.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("arrow_holder/arrow1:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0.1, 0.2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(-2.2, 1.1, 0), Vector3(5, 1.1, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("arrow_holder/arrow2:position") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.8, 0.9), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(-2.2, 1.1, 0), Vector3(5, 1.1, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("arrow_holder/arrow2:surface_material_override/0:albedo_color") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0.7, 0.8, 0.9, 1), +"transitions": PackedFloat32Array(2, 0.5, 2, 0.5), +"update": 0, +"values": [Color(0.929412, 0.796078, 0.196078, 1), Color(0.929412, 0.796078, 0.196078, 0), Color(0.929412, 0.796078, 0.196078, 0), Color(0.929412, 0.796078, 0.196078, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("arrow_holder/arrow3:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(1.4, 1.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(-2.2, 1.1, 0), Vector3(5, 1.1, 0)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("arrow_holder/arrow3:surface_material_override/0:albedo_color") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(1.3, 1.4, 1.5, 1.6), +"transitions": PackedFloat32Array(2, 0.5, 2, 0.5), +"update": 0, +"values": [Color(0.93, 0.795305, 0.1953, 1), Color(0.929412, 0.796078, 0.196078, 0), Color(0.929412, 0.796078, 0.196078, 0), Color(0.93, 0.795305, 0.1953, 1)] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("arrow_holder/arrow1:surface_material_override/0:albedo_color") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3), +"transitions": PackedFloat32Array(2, 0.5, 2, 0.5), +"update": 0, +"values": [Color(0.929412, 0.796078, 0.196078, 1), Color(0.929412, 0.796078, 0.196078, 0), Color(0.929412, 0.796078, 0.196078, 0), Color(0.929412, 0.796078, 0.196078, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_vxlkq"] +_data = { +"RESET": SubResource("Animation_h17yr"), +"move": SubResource("Animation_26wkv") +} + +[node name="platform_booster" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_xsyb5") +mesh = NodePath("mesh") +west_wall_scene = ExtResource("2_b2gjs") +west_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("2_b2gjs") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = ExtResource("2_b2gjs") +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0) +south_wall_scene = ExtResource("2_b2gjs") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="mesh" type="MeshInstance3D" parent="."] +mesh = SubResource("BoxMesh_yy48c") +surface_material_override/0 = ExtResource("2_7slgu") + +[node name="collision" type="CollisionShape3D" parent="."] +shape = SubResource("BoxShape3D_0mmg7") + +[node name="arrow_holder" type="Node3D" parent="."] +transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) + +[node name="arrow1" type="MeshInstance3D" parent="arrow_holder"] +transform = Transform3D(1.41421, 0, 1.41421, 0, 0.7, 0, -1.41421, 0, 1.41421, 1.58947, 1.1, 0) +mesh = ExtResource("3_hvb8d") +skeleton = NodePath("../..") +surface_material_override/0 = ExtResource("3_0ymhr") + +[node name="arrow2" type="MeshInstance3D" parent="arrow_holder"] +transform = Transform3D(1.41421, 0, 1.41421, 0, 0.7, 0, -1.41421, 0, 1.41421, 4.24211, 1.1, 0) +mesh = ExtResource("3_hvb8d") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("StandardMaterial3D_t325e") + +[node name="arrow3" type="MeshInstance3D" parent="arrow_holder"] +transform = Transform3D(1.41421, 0, 1.41421, 0, 0.7, 0, -1.41421, 0, 1.41421, -1.06316, 1.1, 0) +mesh = ExtResource("3_hvb8d") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("StandardMaterial3D_djys4") + +[node name="animator" type="AnimationPlayer" parent="."] +unique_name_in_owner = true +autoplay = "move" +libraries = { +"": SubResource("AnimationLibrary_vxlkq") +} + +[node name="camera" parent="." instance=ExtResource("6_ajq8r")] diff --git a/assets/blocks/platform_corner.tscn b/assets/blocks/platform_corner.tscn new file mode 100644 index 0000000..5a2040e --- /dev/null +++ b/assets/blocks/platform_corner.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=7 format=3 uid="uid://bpve5rga4f5ts"] + +[ext_resource type="ArrayMesh" uid="uid://cvcsk0675a5hy" path="res://assets/meshes/platforms/corner.mesh" id="1_gka10"] +[ext_resource type="Script" path="res://classes/platform.gd" id="1_h30a2"] +[ext_resource type="PackedScene" uid="uid://clvtje1uy8v2s" path="res://assets/blocks/walls/corner_wall.tscn" id="2_d1j4r"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="3_ou0ka"] +[ext_resource type="PackedScene" uid="uid://urgqw6yoy4f5" path="res://ui/editor/cameras/topdown_cam.tscn" id="4_xugmh"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_l5if3"] +points = PackedVector3Array(-5, 0, -5, -5, 1, -5, 5, 0, 5, -5, 0, 5, -5, 1, 5, 5, 1, 5) + +[node name="platform_corner" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_h30a2") +mesh = NodePath("mesh") +wall_mode = 7 +west_wall_scene = ExtResource("2_d1j4r") +west_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("3_ou0ka") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = null +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0) +south_wall_scene = ExtResource("3_ou0ka") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) +mesh = ExtResource("1_gka10") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) +shape = SubResource("ConvexPolygonShape3D_l5if3") + +[node name="camera" parent="." instance=ExtResource("4_xugmh")] diff --git a/assets/blocks/platform_depression.tscn b/assets/blocks/platform_depression.tscn new file mode 100644 index 0000000..544c39a --- /dev/null +++ b/assets/blocks/platform_depression.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=7 format=3 uid="uid://d0bnqhv1caak3"] + +[ext_resource type="Script" path="res://classes/platform.gd" id="1_n2owk"] +[ext_resource type="PackedScene" uid="uid://dforj6583ykxh" path="res://assets/blocks/walls/diagonal_wall.tscn" id="2_1aqqn"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="3_cfbhp"] +[ext_resource type="ArrayMesh" uid="uid://d07uut724gmam" path="res://assets/meshes/platforms/depression.tres" id="4_563w5"] +[ext_resource type="PackedScene" uid="uid://urgqw6yoy4f5" path="res://ui/editor/cameras/topdown_cam.tscn" id="5_4weiu"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_e7apd"] +data = PackedVector3Array(-5, -0.5, -2.5, -5, 0.5, -5, -5, 0.5, -2.5, -5, -0.5, -2.5, -5, -0.5, -5, -5, 0.5, -5, 2.5, -0.5, -5, 5, 0.5, -5, 2.5, 0.5, -5, 2.5, -0.5, -5, 5, -0.5, -5, 5, 0.5, -5, 5, -2.375, 2.5, 5, -2, 5, 5, -1.375, 2.5, 5, -2.375, 2.5, 5, -3, 5, 5, -2, 5, -2.5, -1.125, 5, -5, 0.5, 5, -2.5, -0.125, 5, -2.5, -1.125, 5, -5, -0.5, 5, -5, 0.5, 5, 2.5, -1.9063, 2.5, 5, -3, 5, 5, -2.375, 2.5, 2.5, -1.9063, 2.5, 2.5, -2.375, 5, 5, -3, 5, -2.5, 0.0313, 2.5, -5, 0.5, 5, -5, 0.5, 2.5, -2.5, 0.0313, 2.5, -2.5, -0.125, 5, -5, 0.5, 5, -2.5, 0.5, -5, -5, 0.5, -2.5, -5, 0.5, -5, -2.5, 0.5, -5, -2.5, 0.3438, -2.5, -5, 0.5, -2.5, -2.5, 0.3438, -2.5, -5, 0.5, 0, -5, 0.5, -2.5, -2.5, 0.3438, -2.5, -2.5, 0.1875, 0, -5, 0.5, 0, -2.5, 0.1875, 0, -5, 0.5, 2.5, -5, 0.5, 0, -2.5, 0.1875, 0, -2.5, 0.0313, 2.5, -5, 0.5, 2.5, 2.5, -0.5, -5, 5, -1.125, -2.5, 5, -0.5, -5, 2.5, -0.5, -5, 2.5, -0.9688, -2.5, 5, -1.125, -2.5, 2.5, -0.9688, -2.5, 5, -1.75, 0, 5, -1.125, -2.5, 2.5, -0.9688, -2.5, 2.5, -1.4375, 0, 5, -1.75, 0, 2.5, -1.4375, 0, 5, -2.375, 2.5, 5, -1.75, 0, 2.5, -1.4375, 0, 2.5, -1.9063, 2.5, 5, -2.375, 2.5, 5, -0.5, -5, 5, -0.125, -2.5, 5, 0.5, -5, 5, -0.5, -5, 5, -1.125, -2.5, 5, -0.125, -2.5, 5, -1.125, -2.5, 5, -0.75, 0, 5, -0.125, -2.5, 5, -1.125, -2.5, 5, -1.75, 0, 5, -0.75, 0, 5, -1.75, 0, 5, -1.375, 2.5, 5, -0.75, 0, 5, -1.75, 0, 5, -2.375, 2.5, 5, -1.375, 2.5, -5, -0.5, 5, -5, 0.5, 2.5, -5, 0.5, 5, -5, -0.5, 5, -5, -0.5, 2.5, -5, 0.5, 2.5, -5, -0.5, 2.5, -5, 0.5, 0, -5, 0.5, 2.5, -5, -0.5, 2.5, -5, -0.5, 0, -5, 0.5, 0, -5, -0.5, 0, -5, 0.5, -2.5, -5, 0.5, 0, -5, -0.5, 0, -5, -0.5, -2.5, -5, 0.5, -2.5, -5, -0.5, 0, -2.5, -0.9688, 2.5, -2.5, -0.8125, 0, -5, -0.5, 0, -5, -0.5, 2.5, -2.5, -0.9688, 2.5, -2.5, -0.8125, 0, 0, -1.4375, 2.5, 0, -1.125, 0, -2.5, -0.8125, 0, -2.5, -0.9688, 2.5, 0, -1.4375, 2.5, 0, -1.125, 0, 2.5, -1.9063, 2.5, 2.5, -1.4375, 0, 0, -1.125, 0, 0, -1.4375, 2.5, 2.5, -1.9063, 2.5, -5, -0.5, -2.5, -2.5, -0.8125, 0, -2.5, -0.6563, -2.5, -5, -0.5, -2.5, -5, -0.5, 0, -2.5, -0.8125, 0, -2.5, -0.6563, -2.5, 0, -1.125, 0, 0, -0.8125, -2.5, -2.5, -0.6563, -2.5, -2.5, -0.8125, 0, 0, -1.125, 0, 0, -0.8125, -2.5, 2.5, -1.4375, 0, 2.5, -0.9688, -2.5, 0, -0.8125, -2.5, 0, -1.125, 0, 2.5, -1.4375, 0, -5, -0.5, -5, -2.5, -0.6563, -2.5, -2.5, -0.5, -5, -5, -0.5, -5, -5, -0.5, -2.5, -2.5, -0.6563, -2.5, -2.5, -0.5, -5, 0, -0.8125, -2.5, 0, -0.5, -5, -2.5, -0.5, -5, -2.5, -0.6563, -2.5, 0, -0.8125, -2.5, 0, -0.5, -5, 2.5, -0.9688, -2.5, 2.5, -0.5, -5, 0, -0.5, -5, 0, -0.8125, -2.5, 2.5, -0.9688, -2.5, 5, -0.75, 0, 2.5, -0.9063, 2.5, 2.5, -0.4375, 0, 5, -0.75, 0, 5, -1.375, 2.5, 2.5, -0.9063, 2.5, 2.5, -0.4375, 0, 0, -0.4375, 2.5, 0, -0.125, 0, 2.5, -0.4375, 0, 2.5, -0.9063, 2.5, 0, -0.4375, 2.5, 0, -0.125, 0, -2.5, 0.0313, 2.5, -2.5, 0.1875, 0, 0, -0.125, 0, 0, -0.4375, 2.5, -2.5, 0.0313, 2.5, 5, -0.125, -2.5, 2.5, -0.4375, 0, 2.5, 0.0313, -2.5, 5, -0.125, -2.5, 5, -0.75, 0, 2.5, -0.4375, 0, 2.5, 0.0313, -2.5, 0, -0.125, 0, 0, 0.1875, -2.5, 2.5, 0.0313, -2.5, 2.5, -0.4375, 0, 0, -0.125, 0, 0, 0.1875, -2.5, -2.5, 0.1875, 0, -2.5, 0.3438, -2.5, 0, 0.1875, -2.5, 0, -0.125, 0, -2.5, 0.1875, 0, 5, 0.5, -5, 2.5, 0.0313, -2.5, 2.5, 0.5, -5, 5, 0.5, -5, 5, -0.125, -2.5, 2.5, 0.0313, -2.5, 2.5, 0.5, -5, 0, 0.1875, -2.5, 0, 0.5, -5, 2.5, 0.5, -5, 2.5, 0.0313, -2.5, 0, 0.1875, -2.5, 0, 0.5, -5, -2.5, 0.3438, -2.5, -2.5, 0.5, -5, 0, 0.5, -5, 0, 0.1875, -2.5, -2.5, 0.3438, -2.5, 5, -1.375, 2.5, 2.5, -1.375, 5, 2.5, -0.9063, 2.5, 5, -1.375, 2.5, 5, -2, 5, 2.5, -1.375, 5, 2.5, -0.9063, 2.5, 0, -0.75, 5, 0, -0.4375, 2.5, 2.5, -0.9063, 2.5, 2.5, -1.375, 5, 0, -0.75, 5, 0, -0.4375, 2.5, -2.5, -0.125, 5, -2.5, 0.0313, 2.5, 0, -0.4375, 2.5, 0, -0.75, 5, -2.5, -0.125, 5, -5, -0.5, 2.5, -2.5, -1.125, 5, -2.5, -0.9688, 2.5, -5, -0.5, 2.5, -5, -0.5, 5, -2.5, -1.125, 5, -2.5, -0.9688, 2.5, 0, -1.75, 5, 0, -1.4375, 2.5, -2.5, -0.9688, 2.5, -2.5, -1.125, 5, 0, -1.75, 5, 0, -1.4375, 2.5, 2.5, -2.375, 5, 2.5, -1.9063, 2.5, 0, -1.4375, 2.5, 0, -1.75, 5, 2.5, -2.375, 5, 5, -3, 5, 2.5, -1.375, 5, 5, -2, 5, 5, -3, 5, 2.5, -2.375, 5, 2.5, -1.375, 5, 2.5, -2.375, 5, 0, -0.75, 5, 2.5, -1.375, 5, 2.5, -2.375, 5, 0, -1.75, 5, 0, -0.75, 5, 0, -1.75, 5, -2.5, -0.125, 5, 0, -0.75, 5, 0, -1.75, 5, -2.5, -1.125, 5, -2.5, -0.125, 5, -5, -0.5, -5, -2.5, 0.5, -5, -5, 0.5, -5, -5, -0.5, -5, -2.5, -0.5, -5, -2.5, 0.5, -5, -2.5, -0.5, -5, 0, 0.5, -5, -2.5, 0.5, -5, -2.5, -0.5, -5, 0, -0.5, -5, 0, 0.5, -5, 0, -0.5, -5, 2.5, 0.5, -5, 0, 0.5, -5, 0, -0.5, -5, 2.5, -0.5, -5, 2.5, 0.5, -5) + +[node name="platform_depression" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_n2owk") +mesh = NodePath("mesh") +west_wall_scene = ExtResource("2_1aqqn") +west_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("3_cfbhp") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = ExtResource("2_1aqqn") +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, -1, 0, 0, 0, 0, 0) +south_wall_scene = ExtResource("3_cfbhp") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +mesh = ExtResource("4_563w5") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +visible = false +shape = SubResource("ConcavePolygonShape3D_e7apd") + +[node name="camera" parent="." instance=ExtResource("5_4weiu")] diff --git a/assets/blocks/platform_diagonal.tscn b/assets/blocks/platform_diagonal.tscn new file mode 100644 index 0000000..2c6b00a --- /dev/null +++ b/assets/blocks/platform_diagonal.tscn @@ -0,0 +1,32 @@ +[gd_scene load_steps=7 format=3 uid="uid://ceo1o8kfhqnxy"] + +[ext_resource type="Script" path="res://classes/platform.gd" id="1_kratg"] +[ext_resource type="PackedScene" uid="uid://dforj6583ykxh" path="res://assets/blocks/walls/diagonal_wall.tscn" id="2_4a34e"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="3_5esq0"] +[ext_resource type="ArrayMesh" uid="uid://nw0f20urbu50" path="res://assets/meshes/platforms/diagonal.tres" id="4_fgvbp"] +[ext_resource type="PackedScene" uid="uid://cb46aartkefse" path="res://ui/editor/cameras/side_slant_cam.tscn" id="4_ik4ya"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ha1t2"] +points = PackedVector3Array(-5, -0.500049, -5, -5, 0.5, -5, 5, -3, -5, -5, -0.500049, 5, -5, 0.5, 5, 5, -2.00029, -5, 5, -3, 5, 5, -2.00029, 5) + +[node name="platform_diagonal" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_kratg") +mesh = NodePath("mesh") +west_wall_scene = ExtResource("2_4a34e") +west_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("2_4a34e") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = ExtResource("3_5esq0") +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, -5, 0) +south_wall_scene = ExtResource("3_5esq0") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="mesh" type="MeshInstance3D" parent="."] +mesh = ExtResource("4_fgvbp") + +[node name="collision" type="CollisionShape3D" parent="."] +shape = SubResource("ConvexPolygonShape3D_ha1t2") + +[node name="camera" parent="." instance=ExtResource("4_ik4ya")] diff --git a/assets/blocks/platform_poke.tscn b/assets/blocks/platform_poke.tscn new file mode 100644 index 0000000..74ed952 --- /dev/null +++ b/assets/blocks/platform_poke.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=7 format=3 uid="uid://cb70byabne8d"] + +[ext_resource type="Script" path="res://classes/platform.gd" id="1_8mrda"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="2_bi3dp"] +[ext_resource type="PackedScene" path="res://assets/blocks/walls/tall_diagonal_wall.tscn" id="2_g8isk"] +[ext_resource type="ArrayMesh" uid="uid://7h6mvi4idtq1" path="res://assets/meshes/platforms/poke.tres" id="4_emath"] +[ext_resource type="PackedScene" uid="uid://opcnps6psy07" path="res://ui/editor/cameras/tall_right_slant_cam.tscn" id="5_u4plc"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_hwe68"] +data = PackedVector3Array(2.5, 0.5, 5, 5, -0.5, 5, 2.5, -0.5, 5, 2.5, 0.5, 5, 5, 0.5, 5, 5, -0.5, 5, -5, 0.5, 2.5, -5, -0.5, 5, -5, -0.5, 2.5, -5, 0.5, 2.5, -5, 0.5, 5, -5, -0.5, 5, -2.5, 0.9688, -2.5, -5, 0.5, -5, -2.5, 1.125, -5, -2.5, 0.9688, -2.5, -5, 0.5, -2.5, -5, 0.5, -5, -2.5, 1.125, -5, -5, -0.5, -5, -2.5, -0.5, -5, -2.5, 1.125, -5, -5, 0.5, -5, -5, -0.5, -5, 5, 2.375, -2.5, 5, -0.5, -5, 5, -0.5, -2.5, 5, 2.375, -2.5, 5, 3, -5, 5, -0.5, -5, -2.5, -0.5, -2.5, -5, -0.5, -5, -5, -0.5, -2.5, -2.5, -0.5, -2.5, -2.5, -0.5, -5, -5, -0.5, -5, -2.5, -0.5, 5, -5, -0.5, 2.5, -5, -0.5, 5, -2.5, -0.5, 5, -2.5, -0.5, 2.5, -5, -0.5, 2.5, -2.5, -0.5, 2.5, -5, -0.5, 0, -5, -0.5, 2.5, -2.5, -0.5, 2.5, -2.5, -0.5, 0, -5, -0.5, 0, -2.5, -0.5, 0, -5, -0.5, -2.5, -5, -0.5, 0, -2.5, -0.5, 0, -2.5, -0.5, -2.5, -5, -0.5, -2.5, 5, 0.5, 5, 5, -0.5, 2.5, 5, -0.5, 5, 5, 0.5, 5, 5, 1.125, 2.5, 5, -0.5, 2.5, 5, 1.125, 2.5, 5, -0.5, 0, 5, -0.5, 2.5, 5, 1.125, 2.5, 5, 1.75, 0, 5, -0.5, 0, 5, 1.75, 0, 5, -0.5, -2.5, 5, -0.5, 0, 5, 1.75, 0, 5, 2.375, -2.5, 5, -0.5, -2.5, -2.5, 0.5, 5, -5, 0.5, 2.5, -2.5, 0.6563, 2.5, -2.5, 0.5, 5, -5, 0.5, 5, -5, 0.5, 2.5, -2.5, 0.6563, 2.5, -5, 0.5, 0, -2.5, 0.8125, 0, -2.5, 0.6563, 2.5, -5, 0.5, 2.5, -5, 0.5, 0, -2.5, 0.8125, 0, -5, 0.5, -2.5, -2.5, 0.9688, -2.5, -2.5, 0.8125, 0, -5, 0.5, 0, -5, 0.5, -2.5, -5, 0.5, -5, -5, -0.5, -2.5, -5, -0.5, -5, -5, 0.5, -5, -5, 0.5, -2.5, -5, -0.5, -2.5, -5, 0.5, -2.5, -5, -0.5, 0, -5, -0.5, -2.5, -5, 0.5, -2.5, -5, 0.5, 0, -5, -0.5, 0, -5, 0.5, 0, -5, -0.5, 2.5, -5, -0.5, 0, -5, 0.5, 0, -5, 0.5, 2.5, -5, -0.5, 2.5, 5, 1.75, 0, 2.5, 1.9063, -2.5, 5, 2.375, -2.5, 5, 1.75, 0, 2.5, 1.4375, 0, 2.5, 1.9063, -2.5, 2.5, 1.4375, 0, 0, 1.4375, -2.5, 2.5, 1.9063, -2.5, 2.5, 1.4375, 0, 0, 1.125, 0, 0, 1.4375, -2.5, 0, 1.125, 0, -2.5, 0.9688, -2.5, 0, 1.4375, -2.5, 0, 1.125, 0, -2.5, 0.8125, 0, -2.5, 0.9688, -2.5, 5, 1.125, 2.5, 2.5, 1.4375, 0, 5, 1.75, 0, 5, 1.125, 2.5, 2.5, 0.9688, 2.5, 2.5, 1.4375, 0, 2.5, 0.9688, 2.5, 0, 1.125, 0, 2.5, 1.4375, 0, 2.5, 0.9688, 2.5, 0, 0.8125, 2.5, 0, 1.125, 0, 0, 0.8125, 2.5, -2.5, 0.8125, 0, 0, 1.125, 0, 0, 0.8125, 2.5, -2.5, 0.6563, 2.5, -2.5, 0.8125, 0, 5, 0.5, 5, 2.5, 0.9688, 2.5, 5, 1.125, 2.5, 5, 0.5, 5, 2.5, 0.5, 5, 2.5, 0.9688, 2.5, 2.5, 0.5, 5, 0, 0.8125, 2.5, 2.5, 0.9688, 2.5, 2.5, 0.5, 5, 0, 0.5, 5, 0, 0.8125, 2.5, 0, 0.5, 5, -2.5, 0.6563, 2.5, 0, 0.8125, 2.5, 0, 0.5, 5, -2.5, 0.5, 5, -2.5, 0.6563, 2.5, 5, -0.5, 0, 2.5, -0.5, -2.5, 2.5, -0.5, 0, 5, -0.5, 0, 5, -0.5, -2.5, 2.5, -0.5, -2.5, 2.5, -0.5, 0, 0, -0.5, -2.5, 0, -0.5, 0, 2.5, -0.5, 0, 2.5, -0.5, -2.5, 0, -0.5, -2.5, 0, -0.5, 0, -2.5, -0.5, -2.5, -2.5, -0.5, 0, 0, -0.5, 0, 0, -0.5, -2.5, -2.5, -0.5, -2.5, 5, -0.5, 2.5, 2.5, -0.5, 0, 2.5, -0.5, 2.5, 5, -0.5, 2.5, 5, -0.5, 0, 2.5, -0.5, 0, 2.5, -0.5, 2.5, 0, -0.5, 0, 0, -0.5, 2.5, 2.5, -0.5, 2.5, 2.5, -0.5, 0, 0, -0.5, 0, 0, -0.5, 2.5, -2.5, -0.5, 0, -2.5, -0.5, 2.5, 0, -0.5, 2.5, 0, -0.5, 0, -2.5, -0.5, 0, 5, -0.5, 5, 2.5, -0.5, 2.5, 2.5, -0.5, 5, 5, -0.5, 5, 5, -0.5, 2.5, 2.5, -0.5, 2.5, 2.5, -0.5, 5, 0, -0.5, 2.5, 0, -0.5, 5, 2.5, -0.5, 5, 2.5, -0.5, 2.5, 0, -0.5, 2.5, 0, -0.5, 5, -2.5, -0.5, 2.5, -2.5, -0.5, 5, 0, -0.5, 5, 0, -0.5, 2.5, -2.5, -0.5, 2.5, 5, -0.5, -2.5, 2.5, -0.5, -5, 2.5, -0.5, -2.5, 5, -0.5, -2.5, 5, -0.5, -5, 2.5, -0.5, -5, 2.5, -0.5, -2.5, 0, -0.5, -5, 0, -0.5, -2.5, 2.5, -0.5, -2.5, 2.5, -0.5, -5, 0, -0.5, -5, 0, -0.5, -2.5, -2.5, -0.5, -5, -2.5, -0.5, -2.5, 0, -0.5, -2.5, 0, -0.5, -5, -2.5, -0.5, -5, 5, 3, -5, 2.5, -0.5, -5, 5, -0.5, -5, 5, 3, -5, 2.5, 2.375, -5, 2.5, -0.5, -5, 2.5, 2.375, -5, 0, -0.5, -5, 2.5, -0.5, -5, 2.5, 2.375, -5, 0, 1.75, -5, 0, -0.5, -5, 0, 1.75, -5, -2.5, -0.5, -5, 0, -0.5, -5, 0, 1.75, -5, -2.5, 1.125, -5, -2.5, -0.5, -5, 5, 2.375, -2.5, 2.5, 2.375, -5, 5, 3, -5, 5, 2.375, -2.5, 2.5, 1.9063, -2.5, 2.5, 2.375, -5, 2.5, 1.9063, -2.5, 0, 1.75, -5, 2.5, 2.375, -5, 2.5, 1.9063, -2.5, 0, 1.4375, -2.5, 0, 1.75, -5, 0, 1.4375, -2.5, -2.5, 1.125, -5, 0, 1.75, -5, 0, 1.4375, -2.5, -2.5, 0.9688, -2.5, -2.5, 1.125, -5, -5, 0.5, 5, -2.5, -0.5, 5, -5, -0.5, 5, -5, 0.5, 5, -2.5, 0.5, 5, -2.5, -0.5, 5, -2.5, 0.5, 5, 0, -0.5, 5, -2.5, -0.5, 5, -2.5, 0.5, 5, 0, 0.5, 5, 0, -0.5, 5, 0, 0.5, 5, 2.5, -0.5, 5, 0, -0.5, 5, 0, 0.5, 5, 2.5, 0.5, 5, 2.5, -0.5, 5) + +[node name="platform_poke" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_8mrda") +mesh = NodePath("mesh") +west_wall_scene = ExtResource("2_g8isk") +west_wall_transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("2_bi3dp") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = ExtResource("2_g8isk") +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0) +south_wall_scene = ExtResource("2_bi3dp") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="camera" parent="." instance=ExtResource("5_u4plc")] + +[node name="mesh" type="MeshInstance3D" parent="."] +mesh = ExtResource("4_emath") + +[node name="collision" type="CollisionShape3D" parent="."] +visible = false +shape = SubResource("ConcavePolygonShape3D_hwe68") diff --git a/assets/blocks/platform_poke_corner.tscn b/assets/blocks/platform_poke_corner.tscn new file mode 100644 index 0000000..beed993 --- /dev/null +++ b/assets/blocks/platform_poke_corner.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=8 format=3 uid="uid://bs7iubbwrs78d"] + +[ext_resource type="Script" path="res://classes/platform.gd" id="1_awaf1"] +[ext_resource type="PackedScene" path="res://assets/blocks/walls/tall_diagonal_wall.tscn" id="2_xuhlu"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="3_7c6de"] +[ext_resource type="PackedScene" uid="uid://cvagg3inem8cy" path="res://assets/blocks/walls/tall_corner_diagonal_wall.tscn" id="3_sxx5x"] +[ext_resource type="PackedScene" uid="uid://opcnps6psy07" path="res://ui/editor/cameras/tall_right_slant_cam.tscn" id="5_dysll"] +[ext_resource type="ArrayMesh" uid="uid://buyff2c3guxdj" path="res://assets/meshes/platforms/poke_corner.tres" id="5_jythw"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_5v27g"] +points = PackedVector3Array(-5, -0.5, -5, -5, 0.499706, -5, 5, -0.5, -5, 5, -0.5, 5, 5, 3, 5, 5, 0.499706, -5) + +[node name="platform_poke" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_awaf1") +mesh = NodePath("mesh") +wall_mode = 7 +west_wall_scene = ExtResource("2_xuhlu") +west_wall_transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("3_sxx5x") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +north_wall_scene = ExtResource("2_xuhlu") +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0) +south_wall_scene = ExtResource("3_7c6de") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="camera" parent="." instance=ExtResource("5_dysll")] + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +mesh = ExtResource("5_jythw") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +visible = false +shape = SubResource("ConvexPolygonShape3D_5v27g") diff --git a/assets/blocks/platform_ramp.tscn b/assets/blocks/platform_ramp.tscn new file mode 100644 index 0000000..54a8e4a --- /dev/null +++ b/assets/blocks/platform_ramp.tscn @@ -0,0 +1,34 @@ +[gd_scene load_steps=8 format=3 uid="uid://ci24eqfa38cy4"] + +[ext_resource type="Script" path="res://classes/platform.gd" id="1_3ciq1"] +[ext_resource type="PackedScene" path="res://assets/blocks/walls/tall_diagonal_wall.tscn" id="2_j1v08"] +[ext_resource type="PackedScene" uid="uid://8mjs78vkeleb" path="res://assets/blocks/walls/tall_wall.tscn" id="3_18buk"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="3_lx7hu"] +[ext_resource type="PackedScene" uid="uid://ccfnlmu6xnhxg" path="res://ui/editor/cameras/tall_side_slant_cam.tscn" id="4_v4u3u"] +[ext_resource type="ArrayMesh" uid="uid://bf6hiaub2ecc7" path="res://assets/meshes/platforms/ramp.tres" id="5_vmhi2"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_im65t"] +points = PackedVector3Array(-5, -0.5, -5, -5, 0.499706, -5, 5, -0.5, -5, -5, -0.5, 5, -5, 0.499706, 5, 5, 3, -5, 5, -0.5, 5, 5, 3, 5) + +[node name="platform_ramp" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_3ciq1") +mesh = NodePath("mesh") +west_wall_scene = ExtResource("2_j1v08") +west_wall_transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("2_j1v08") +east_wall_transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = ExtResource("3_18buk") +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0) +south_wall_scene = ExtResource("3_lx7hu") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="mesh" type="MeshInstance3D" parent="."] +mesh = ExtResource("5_vmhi2") + +[node name="collision" type="CollisionShape3D" parent="."] +visible = false +shape = SubResource("ConvexPolygonShape3D_im65t") + +[node name="camera" parent="." instance=ExtResource("4_v4u3u")] diff --git a/assets/blocks/platform_square.tscn b/assets/blocks/platform_square.tscn new file mode 100644 index 0000000..1c3223d --- /dev/null +++ b/assets/blocks/platform_square.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=7 format=3 uid="uid://cotdon210bw6c"] + +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="1_ox5eu"] +[ext_resource type="Script" path="res://classes/platform.gd" id="1_y4r5p"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="2_tm8v4"] +[ext_resource type="PackedScene" uid="uid://urgqw6yoy4f5" path="res://ui/editor/cameras/topdown_cam.tscn" id="4_hin2j"] + +[sub_resource type="BoxMesh" id="BoxMesh_yy48c"] +material = ExtResource("1_ox5eu") +size = Vector3(10, 1, 10) + +[sub_resource type="BoxShape3D" id="BoxShape3D_0mmg7"] +size = Vector3(10, 1, 10) + +[node name="platform_square" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_y4r5p") +mesh = NodePath("mesh") +west_wall_scene = ExtResource("2_tm8v4") +west_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("2_tm8v4") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = ExtResource("2_tm8v4") +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0) +south_wall_scene = ExtResource("2_tm8v4") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="mesh" type="MeshInstance3D" parent="."] +mesh = SubResource("BoxMesh_yy48c") + +[node name="collision" type="CollisionShape3D" parent="."] +shape = SubResource("BoxShape3D_0mmg7") + +[node name="camera" parent="." instance=ExtResource("4_hin2j")] diff --git a/assets/blocks/platform_turn_1x1.tscn b/assets/blocks/platform_turn_1x1.tscn new file mode 100644 index 0000000..16786f1 --- /dev/null +++ b/assets/blocks/platform_turn_1x1.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=7 format=3 uid="uid://dtmmpkwtlvovq"] + +[ext_resource type="Script" path="res://classes/platform.gd" id="1_8xamw"] +[ext_resource type="ArrayMesh" uid="uid://dgxce0yrvqmg5" path="res://assets/meshes/platforms/turn.tres" id="2_6mnla"] +[ext_resource type="PackedScene" uid="uid://bfe6ps3cjf37j" path="res://assets/blocks/walls/turn_wall.tscn" id="2_pgjox"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="3_w86ma"] +[ext_resource type="PackedScene" uid="uid://urgqw6yoy4f5" path="res://ui/editor/cameras/topdown_cam.tscn" id="4_rehd8"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_qno1p"] +points = PackedVector3Array(-5, 0, -5, -5, 1, -5, -4.15818, 0, -5, -5, 0, 5, -5, 1, 5, -4.15818, 1, -5, -2.85532, 0, -4.90701, 5, 0, 5, 5, 1, 5, -2.85532, 1, -4.90701, -1.5789, 0, -4.62999, 5, 0, 4.1572, 5, 1, 4.1572, -1.5789, 1, -4.62999, -0.354346, 0, -4.17287, 4.90603, 0, 2.85435, 4.90603, 1, 2.85435, -0.354346, 1, -4.17287, 0.792874, 0, -3.5464, 4.62901, 0, 1.57792, 4.62901, 1, 1.57792, 0.792874, 1, -3.5464, 1.83829, 0, -2.76331, 4.17189, 0, 0.353367, 4.17189, 1, 0.353367, 1.83829, 1, -2.76331, 2.76233, 0, -1.83927, 3.54542, 0, -0.793853, 3.54542, 1, -0.793853, 2.76233, 1, -1.83927) + +[node name="platform_turn" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_8xamw") +mesh = NodePath("mesh") +wall_mode = 7 +west_wall_scene = ExtResource("2_pgjox") +west_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("3_w86ma") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = null +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0) +south_wall_scene = ExtResource("3_w86ma") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="mesh" type="MeshInstance3D" parent="."] +mesh = ExtResource("2_6mnla") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) +visible = false +shape = SubResource("ConvexPolygonShape3D_qno1p") + +[node name="camera" parent="." instance=ExtResource("4_rehd8")] diff --git a/assets/blocks/platform_turn_2x2.tscn b/assets/blocks/platform_turn_2x2.tscn new file mode 100644 index 0000000..3e77b94 --- /dev/null +++ b/assets/blocks/platform_turn_2x2.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=8 format=3 uid="uid://dqxgxdxibvabe"] + +[ext_resource type="Script" path="res://classes/platform.gd" id="1_h6ikq"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="2_2humv"] +[ext_resource type="ArrayMesh" uid="uid://dhvhlj43vxfla" path="res://assets/meshes/platforms/small_wide_turn.tres" id="3_01o3u"] +[ext_resource type="PackedScene" uid="uid://bm34lkdsai4fq" path="res://assets/blocks/walls/turn_wall_inner.tscn" id="3_rij0u"] +[ext_resource type="PackedScene" uid="uid://clxoturhpmobw" path="res://assets/blocks/walls/small_curved_wall_inner.tscn" id="3_wc63e"] +[ext_resource type="PackedScene" uid="uid://urgqw6yoy4f5" path="res://ui/editor/cameras/topdown_cam.tscn" id="4_os0cu"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_whx0o"] +data = PackedVector3Array(-9.8618, -0.5, -0.1382, -9.8618, 0.5, -10.1382, -9.8618, 0.5, -0.1382, -9.8618, -0.5, -0.1382, -9.8618, -0.5, -10.1382, -9.8618, 0.5, -10.1382, -7.2513, 0.5, -9.9671, -4.6854, -0.5, -9.4567, -4.6854, 0.5, -9.4567, -7.2513, 0.5, -9.9671, -7.2513, -0.5, -9.9671, -4.6854, -0.5, -9.4567, -9.8618, 0.5, -10.1382, -7.2513, -0.5, -9.9671, -7.2513, 0.5, -9.9671, -9.8618, 0.5, -10.1382, -9.8618, -0.5, -10.1382, -7.2513, -0.5, -9.9671, -9.8618, -0.5, -0.1382, -8.5565, 0.5, -0.0526, -8.5565, -0.5, -0.0526, -9.8618, -0.5, -0.1382, -9.8618, 0.5, -0.1382, -8.5565, 0.5, -0.0526, -7.2736, -0.5, 0.2025, -6.035, 0.5, 0.623, -6.035, -0.5, 0.623, -7.2736, -0.5, 0.2025, -7.2736, 0.5, 0.2025, -6.035, 0.5, 0.623, -8.5565, -0.5, -0.0526, -7.2736, 0.5, 0.2025, -7.2736, -0.5, 0.2025, -8.5565, -0.5, -0.0526, -8.5565, 0.5, -0.0526, -7.2736, 0.5, 0.2025, -4.6854, 0.5, -9.4567, -2.2081, -0.5, -8.6158, -2.2081, 0.5, -8.6158, -4.6854, 0.5, -9.4567, -4.6854, -0.5, -9.4567, -2.2081, -0.5, -8.6158, 0.1382, 0.5, -7.4587, 2.3134, -0.5, -6.0053, 2.3134, 0.5, -6.0053, 0.1382, 0.5, -7.4587, 0.1382, -0.5, -7.4587, 2.3134, -0.5, -6.0053, -2.2081, 0.5, -8.6158, 0.1382, -0.5, -7.4587, 0.1382, 0.5, -7.4587, -2.2081, 0.5, -8.6158, -2.2081, -0.5, -8.6158, 0.1382, -0.5, -7.4587, -6.035, -0.5, 0.623, -4.8618, 0.5, 1.2015, -4.8618, -0.5, 1.2015, -6.035, -0.5, 0.623, -6.035, 0.5, 0.623, -4.8618, 0.5, 1.2015, -4.8618, -0.5, 1.2015, -3.7742, 0.5, 1.9283, -3.7742, -0.5, 1.9283, -4.8618, -0.5, 1.2015, -4.8618, 0.5, 1.2015, -3.7742, 0.5, 1.9283, 2.3134, 0.5, -6.0053, 4.2803, -0.5, -4.2803, 4.2803, 0.5, -4.2803, 2.3134, 0.5, -6.0053, 2.3134, -0.5, -6.0053, 4.2803, -0.5, -4.2803, -3.7742, -0.5, 1.9283, -2.7907, 0.5, 2.7907, -2.7907, -0.5, 2.7907, -3.7742, -0.5, 1.9283, -3.7742, 0.5, 1.9283, -2.7907, 0.5, 2.7907, 6.0053, 0.5, -2.3134, 7.4587, -0.5, -0.1382, 7.4587, 0.5, -0.1382, 6.0053, 0.5, -2.3134, 6.0053, -0.5, -2.3134, 7.4587, -0.5, -0.1382, 4.2803, 0.5, -4.2803, 6.0053, -0.5, -2.3134, 6.0053, 0.5, -2.3134, 4.2803, 0.5, -4.2803, 4.2803, -0.5, -4.2803, 6.0053, -0.5, -2.3134, -2.7907, -0.5, 2.7907, -1.9283, 0.5, 3.7742, -1.9283, -0.5, 3.7742, -2.7907, -0.5, 2.7907, -2.7907, 0.5, 2.7907, -1.9283, 0.5, 3.7742, -1.9283, -0.5, 3.7742, -1.2015, 0.5, 4.8618, -1.2015, -0.5, 4.8618, -1.9283, -0.5, 3.7742, -1.9283, 0.5, 3.7742, -1.2015, 0.5, 4.8618, 7.4587, 0.5, -0.1382, 8.6158, -0.5, 2.2081, 8.6158, 0.5, 2.2081, 7.4587, 0.5, -0.1382, 7.4587, -0.5, -0.1382, 8.6158, -0.5, 2.2081, -1.2015, -0.5, 4.8618, -0.623, 0.5, 6.035, -0.623, -0.5, 6.035, -1.2015, -0.5, 4.8618, -1.2015, 0.5, 4.8618, -0.623, 0.5, 6.035, 9.4567, 0.5, 4.6854, 9.9671, -0.5, 7.2513, 9.9671, 0.5, 7.2513, 9.4567, 0.5, 4.6854, 9.4567, -0.5, 4.6854, 9.9671, -0.5, 7.2513, 8.6158, 0.5, 2.2081, 9.4567, -0.5, 4.6854, 9.4567, 0.5, 4.6854, 8.6158, 0.5, 2.2081, 8.6158, -0.5, 2.2081, 9.4567, -0.5, 4.6854, -0.623, -0.5, 6.035, -0.2025, 0.5, 7.2736, -0.2025, -0.5, 7.2736, -0.623, -0.5, 6.035, -0.623, 0.5, 6.035, -0.2025, 0.5, 7.2736, -0.2025, -0.5, 7.2736, 0.0526, 0.5, 8.5565, 0.0526, -0.5, 8.5565, -0.2025, -0.5, 7.2736, -0.2025, 0.5, 7.2736, 0.0526, 0.5, 8.5565, -9.8618, -0.5, -10.1382, -4.6854, -0.5, -9.4567, -7.2513, -0.5, -9.9671, -4.6854, -0.5, -9.4567, 0.1382, -0.5, -7.4587, -2.2081, -0.5, -8.6158, 0.1382, -0.5, -7.4587, 4.2803, -0.5, -4.2803, 2.3134, -0.5, -6.0053, 4.2803, -0.5, -4.2803, 7.4587, -0.5, -0.1382, 6.0053, -0.5, -2.3134, 7.4587, -0.5, -0.1382, 9.4567, -0.5, 4.6854, 8.6158, -0.5, 2.2081, 9.4567, -0.5, 4.6854, 10.1382, -0.5, 9.8618, 9.9671, -0.5, 7.2513, 10.1382, -0.5, 9.8618, 0.0526, -0.5, 8.5565, 0.1382, -0.5, 9.8618, 10.1382, -0.5, 9.8618, -0.2025, -0.5, 7.2736, 0.0526, -0.5, 8.5565, 7.4587, -0.5, -0.1382, 10.1382, -0.5, 9.8618, 9.4567, -0.5, 4.6854, 0.1382, -0.5, -7.4587, 7.4587, -0.5, -0.1382, 4.2803, -0.5, -4.2803, -9.8618, -0.5, -10.1382, 0.1382, -0.5, -7.4587, -4.6854, -0.5, -9.4567, -8.5565, -0.5, -0.0526, -9.8618, -0.5, -10.1382, -9.8618, -0.5, -0.1382, -7.2736, -0.5, 0.2025, -9.8618, -0.5, -10.1382, -8.5565, -0.5, -0.0526, -9.8618, -0.5, -10.1382, 7.4587, -0.5, -0.1382, 0.1382, -0.5, -7.4587, 7.4587, -0.5, -0.1382, -0.2025, -0.5, 7.2736, 10.1382, -0.5, 9.8618, 7.4587, -0.5, -0.1382, -0.623, -0.5, 6.035, -0.2025, -0.5, 7.2736, -7.2736, -0.5, 0.2025, 7.4587, -0.5, -0.1382, -9.8618, -0.5, -10.1382, -6.035, -0.5, 0.623, 7.4587, -0.5, -0.1382, -7.2736, -0.5, 0.2025, 7.4587, -0.5, -0.1382, -1.2015, -0.5, 4.8618, -0.623, -0.5, 6.035, 7.4587, -0.5, -0.1382, -1.9283, -0.5, 3.7742, -1.2015, -0.5, 4.8618, -4.8618, -0.5, 1.2015, 7.4587, -0.5, -0.1382, -6.035, -0.5, 0.623, -3.7742, -0.5, 1.9283, 7.4587, -0.5, -0.1382, -4.8618, -0.5, 1.2015, 7.4587, -0.5, -0.1382, -2.7907, -0.5, 2.7907, -1.9283, -0.5, 3.7742, 7.4587, -0.5, -0.1382, -3.7742, -0.5, 1.9283, -2.7907, -0.5, 2.7907, 0.1382, -0.5, 9.8618, 10.1382, 0.5, 9.8618, 10.1382, -0.5, 9.8618, 0.1382, -0.5, 9.8618, 0.1382, 0.5, 9.8618, 10.1382, 0.5, 9.8618, 0.0526, 0.5, 8.5565, 10.1382, 0.5, 9.8618, 0.1382, 0.5, 9.8618, 10.1382, 0.5, 9.8618, 9.4567, 0.5, 4.6854, 9.9671, 0.5, 7.2513, 9.4567, 0.5, 4.6854, 7.4587, 0.5, -0.1382, 8.6158, 0.5, 2.2081, 7.4587, 0.5, -0.1382, 4.2803, 0.5, -4.2803, 6.0053, 0.5, -2.3134, 4.2803, 0.5, -4.2803, 0.1382, 0.5, -7.4587, 2.3134, 0.5, -6.0053, 0.1382, 0.5, -7.4587, -4.6854, 0.5, -9.4567, -2.2081, 0.5, -8.6158, -4.6854, 0.5, -9.4567, -9.8618, 0.5, -10.1382, -7.2513, 0.5, -9.9671, -9.8618, 0.5, -10.1382, -8.5565, 0.5, -0.0526, -9.8618, 0.5, -0.1382, -9.8618, 0.5, -10.1382, -7.2736, 0.5, 0.2025, -8.5565, 0.5, -0.0526, 0.1382, 0.5, -7.4587, -9.8618, 0.5, -10.1382, -4.6854, 0.5, -9.4567, 7.4587, 0.5, -0.1382, 0.1382, 0.5, -7.4587, 4.2803, 0.5, -4.2803, 10.1382, 0.5, 9.8618, 7.4587, 0.5, -0.1382, 9.4567, 0.5, 4.6854, -0.2025, 0.5, 7.2736, 10.1382, 0.5, 9.8618, 0.0526, 0.5, 8.5565, -0.623, 0.5, 6.035, 10.1382, 0.5, 9.8618, -0.2025, 0.5, 7.2736, 10.1382, 0.5, 9.8618, 0.1382, 0.5, -7.4587, 7.4587, 0.5, -0.1382, 0.1382, 0.5, -7.4587, -7.2736, 0.5, 0.2025, -9.8618, 0.5, -10.1382, 0.1382, 0.5, -7.4587, -6.035, 0.5, 0.623, -7.2736, 0.5, 0.2025, -0.623, 0.5, 6.035, 0.1382, 0.5, -7.4587, 10.1382, 0.5, 9.8618, -1.2015, 0.5, 4.8618, 0.1382, 0.5, -7.4587, -0.623, 0.5, 6.035, 0.1382, 0.5, -7.4587, -4.8618, 0.5, 1.2015, -6.035, 0.5, 0.623, 0.1382, 0.5, -7.4587, -3.7742, 0.5, 1.9283, -4.8618, 0.5, 1.2015, -1.9283, 0.5, 3.7742, 0.1382, 0.5, -7.4587, -1.2015, 0.5, 4.8618, 0.1382, 0.5, -7.4587, -2.7907, 0.5, 2.7907, -3.7742, 0.5, 1.9283, -2.7907, 0.5, 2.7907, 0.1382, 0.5, -7.4587, -1.9283, 0.5, 3.7742, 9.9671, 0.5, 7.2513, 10.1382, -0.5, 9.8618, 10.1382, 0.5, 9.8618, 9.9671, 0.5, 7.2513, 9.9671, -0.5, 7.2513, 10.1382, -0.5, 9.8618, 0.0526, -0.5, 8.5565, 0.1382, 0.5, 9.8618, 0.1382, -0.5, 9.8618, 0.0526, -0.5, 8.5565, 0.0526, 0.5, 8.5565, 0.1382, 0.5, 9.8618) + +[node name="platform_turn_2x2" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_h6ikq") +mesh = NodePath("mesh") +west_wall_scene = ExtResource("2_2humv") +west_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, 1, 0, 0, -10, 0, -10) +east_wall_scene = ExtResource("2_2humv") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = ExtResource("3_wc63e") +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, -5, 0, -5) +south_wall_scene = ExtResource("3_rij0u") +south_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0, -5) + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.11883, 0, -4.88116) +mesh = ExtResource("3_01o3u") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.11883, 0, -4.88116) +shape = SubResource("ConcavePolygonShape3D_whx0o") + +[node name="camera" parent="." instance=ExtResource("4_os0cu")] +transform = Transform3D(-4.37114e-08, 1, 4.37114e-08, 0, -4.37114e-08, 1, 1, 4.37114e-08, 1.91069e-15, -5, 15, -5) diff --git a/assets/blocks/platform_turn_3x3.tscn b/assets/blocks/platform_turn_3x3.tscn new file mode 100644 index 0000000..e5d9a78 --- /dev/null +++ b/assets/blocks/platform_turn_3x3.tscn @@ -0,0 +1,38 @@ +[gd_scene load_steps=8 format=3 uid="uid://bawi544gebahm"] + +[ext_resource type="Script" path="res://classes/platform.gd" id="1_biqg8"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="2_e4e6n"] +[ext_resource type="PackedScene" path="res://assets/blocks/walls/large_curved_wall.tscn" id="3_l1pfb"] +[ext_resource type="PackedScene" path="res://assets/blocks/walls/small_curved_wall.tscn" id="4_jmw7o"] +[ext_resource type="ArrayMesh" uid="uid://1uh80csnupve" path="res://assets/meshes/platforms/wide_turn.tres" id="5_be8h1"] +[ext_resource type="PackedScene" uid="uid://urgqw6yoy4f5" path="res://ui/editor/cameras/topdown_cam.tscn" id="6_u76a2"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_6xhf1"] +data = PackedVector3Array(-5, -5, 5, 4.7433, -5, 1.0842, -5.1711, -5, 2.3895, -5, -5, 5, 5, -5, 5, 4.7433, -5, 1.0842, -5.1711, -5, 2.3895, 3.9778, -5, -2.7646, -5.6815, -5, -0.1764, -5.1711, -5, 2.3895, 4.7433, -5, 1.0842, 3.9778, -5, -2.7646, -5.6815, -5, -0.1764, 2.7164, -5, -6.4805, -6.5224, -5, -2.6537, -5.6815, -5, -0.1764, 3.9778, -5, -2.7646, 2.7164, -5, -6.4805, -6.5224, -5, -2.6537, 0.9808, -5, -10, -7.6795, -5, -5, -6.5224, -5, -2.6537, 2.7164, -5, -6.4805, 0.9808, -5, -10, -7.6795, -5, -5, -1.1994, -5, -13.2628, -9.1329, -5, -7.1752, -7.6795, -5, -5, 0.9808, -5, -10, -1.1994, -5, -13.2628, -9.1329, -5, -7.1752, -3.7868, -5, -16.2132, -10.8579, -5, -9.1421, -9.1329, -5, -7.1752, -1.1994, -5, -13.2628, -3.7868, -5, -16.2132, -10.8579, -5, -9.1421, -6.7372, -5, -18.8006, -12.8248, -5, -10.8671, -10.8579, -5, -9.1421, -3.7868, -5, -16.2132, -6.7372, -5, -18.8006, -12.8248, -5, -10.8671, -10, -5, -20.9808, -15, -5, -12.3205, -12.8248, -5, -10.8671, -6.7372, -5, -18.8006, -10, -5, -20.9808, -15, -5, -12.3205, -13.5195, -5, -22.7164, -17.3463, -5, -13.4776, -15, -5, -12.3205, -10, -5, -20.9808, -13.5195, -5, -22.7164, -17.3463, -5, -13.4776, -17.2354, -5, -23.9778, -19.8236, -5, -14.3185, -17.3463, -5, -13.4776, -13.5195, -5, -22.7164, -17.2354, -5, -23.9778, -19.8236, -5, -14.3185, -21.0842, -5, -24.7434, -22.3895, -5, -14.8289, -19.8236, -5, -14.3185, -17.2354, -5, -23.9778, -21.0842, -5, -24.7434, -22.3895, -5, -14.8289, -25, -5, -25, -25, -5, -15, -22.3895, -5, -14.8289, -21.0842, -5, -24.7434, -25, -5, -25, -5, -4, 5, 4.7433, -4, 1.0842, 5, -4, 5, -5, -4, 5, -5.1711, -4, 2.3895, 4.7433, -4, 1.0842, -5.1711, -4, 2.3895, 3.9778, -4, -2.7646, 4.7433, -4, 1.0842, -5.1711, -4, 2.3895, -5.6815, -4, -0.1764, 3.9778, -4, -2.7646, -5.6815, -4, -0.1764, 2.7164, -4, -6.4805, 3.9778, -4, -2.7646, -5.6815, -4, -0.1764, -6.5224, -4, -2.6537, 2.7164, -4, -6.4805, -6.5224, -4, -2.6537, 0.9808, -4, -10, 2.7164, -4, -6.4805, -6.5224, -4, -2.6537, -7.6795, -4, -5, 0.9808, -4, -10, -7.6795, -4, -5, -1.1994, -4, -13.2628, 0.9808, -4, -10, -7.6795, -4, -5, -9.1329, -4, -7.1752, -1.1994, -4, -13.2628, -9.1329, -4, -7.1752, -3.7868, -4, -16.2132, -1.1994, -4, -13.2628, -9.1329, -4, -7.1752, -10.8579, -4, -9.1421, -3.7868, -4, -16.2132, -10.8579, -4, -9.1421, -6.7372, -4, -18.8006, -3.7868, -4, -16.2132, -10.8579, -4, -9.1421, -12.8248, -4, -10.8671, -6.7372, -4, -18.8006, -12.8248, -4, -10.8671, -10, -4, -20.9808, -6.7372, -4, -18.8006, -12.8248, -4, -10.8671, -15, -4, -12.3205, -10, -4, -20.9808, -15, -4, -12.3205, -13.5195, -4, -22.7164, -10, -4, -20.9808, -15, -4, -12.3205, -17.3463, -4, -13.4776, -13.5195, -4, -22.7164, -17.3463, -4, -13.4776, -17.2354, -4, -23.9778, -13.5195, -4, -22.7164, -17.3463, -4, -13.4776, -19.8236, -4, -14.3185, -17.2354, -4, -23.9778, -19.8236, -4, -14.3185, -21.0842, -4, -24.7434, -17.2354, -4, -23.9778, -19.8236, -4, -14.3185, -22.3895, -4, -14.8289, -21.0842, -4, -24.7434, -22.3895, -4, -14.8289, -25, -4, -25, -21.0842, -4, -24.7434, -22.3895, -4, -14.8289, -25, -4, -15, -25, -4, -25, -22.3895, -5, -14.8289, -19.8236, -4, -14.3185, -19.8236, -5, -14.3185, -22.3895, -5, -14.8289, -22.3895, -4, -14.8289, -19.8236, -4, -14.3185, 2.7164, -5, -6.4805, 0.9808, -4, -10, 0.9808, -5, -10, 2.7164, -5, -6.4805, 2.7164, -4, -6.4805, 0.9808, -4, -10, -10, -5, -20.9808, -13.5195, -4, -22.7164, -13.5195, -5, -22.7164, -10, -5, -20.9808, -10, -4, -20.9808, -13.5195, -4, -22.7164, -25, -5, -25, -25, -4, -15, -25, -5, -15, -25, -5, -25, -25, -4, -25, -25, -4, -15, -7.6795, -5, -5, -6.5224, -4, -2.6537, -6.5224, -5, -2.6537, -7.6795, -5, -5, -7.6795, -4, -5, -6.5224, -4, -2.6537, -17.3463, -5, -13.4776, -15, -4, -12.3205, -15, -5, -12.3205, -17.3463, -5, -13.4776, -17.3463, -4, -13.4776, -15, -4, -12.3205, 4.7433, -5, 1.0842, 3.9778, -4, -2.7646, 3.9778, -5, -2.7646, 4.7433, -5, 1.0842, 4.7433, -4, 1.0842, 3.9778, -4, -2.7646, -3.7868, -5, -16.2132, -6.7372, -4, -18.8006, -6.7372, -5, -18.8006, -3.7868, -5, -16.2132, -3.7868, -4, -16.2132, -6.7372, -4, -18.8006, -21.0842, -5, -24.7434, -25, -4, -25, -25, -5, -25, -21.0842, -5, -24.7434, -21.0842, -4, -24.7434, -25, -4, -25, -5.6815, -5, -0.1764, -5.1711, -4, 2.3895, -5.1711, -5, 2.3895, -5.6815, -5, -0.1764, -5.6815, -4, -0.1764, -5.1711, -4, 2.3895, -12.8248, -5, -10.8671, -10.8579, -4, -9.1421, -10.8579, -5, -9.1421, -12.8248, -5, -10.8671, -12.8248, -4, -10.8671, -10.8579, -4, -9.1421, -25, -5, -15, -22.3895, -4, -14.8289, -22.3895, -5, -14.8289, -25, -5, -15, -25, -4, -15, -22.3895, -4, -14.8289, 0.9808, -5, -10, -1.1994, -4, -13.2628, -1.1994, -5, -13.2628, 0.9808, -5, -10, 0.9808, -4, -10, -1.1994, -4, -13.2628, -13.5195, -5, -22.7164, -17.2354, -4, -23.9778, -17.2354, -5, -23.9778, -13.5195, -5, -22.7164, -13.5195, -4, -22.7164, -17.2354, -4, -23.9778, -5, -5, 5, 5, -4, 5, 5, -5, 5, -5, -5, 5, -5, -4, 5, 5, -4, 5, -9.1329, -5, -7.1752, -7.6795, -4, -5, -7.6795, -5, -5, -9.1329, -5, -7.1752, -9.1329, -4, -7.1752, -7.6795, -4, -5, -19.8236, -5, -14.3185, -17.3463, -4, -13.4776, -17.3463, -5, -13.4776, -19.8236, -5, -14.3185, -19.8236, -4, -14.3185, -17.3463, -4, -13.4776, 3.9778, -5, -2.7646, 2.7164, -4, -6.4805, 2.7164, -5, -6.4805, 3.9778, -5, -2.7646, 3.9778, -4, -2.7646, 2.7164, -4, -6.4805, -6.7372, -5, -18.8006, -10, -4, -20.9808, -10, -5, -20.9808, -6.7372, -5, -18.8006, -6.7372, -4, -18.8006, -10, -4, -20.9808, -6.5224, -5, -2.6537, -5.6815, -4, -0.1764, -5.6815, -5, -0.1764, -6.5224, -5, -2.6537, -6.5224, -4, -2.6537, -5.6815, -4, -0.1764, -15, -5, -12.3205, -12.8248, -4, -10.8671, -12.8248, -5, -10.8671, -15, -5, -12.3205, -15, -4, -12.3205, -12.8248, -4, -10.8671, 5, -5, 5, 4.7433, -4, 1.0842, 4.7433, -5, 1.0842, 5, -5, 5, 5, -4, 5, 4.7433, -4, 1.0842, -1.1994, -5, -13.2628, -3.7868, -4, -16.2132, -3.7868, -5, -16.2132, -1.1994, -5, -13.2628, -1.1994, -4, -13.2628, -3.7868, -4, -16.2132, -17.2354, -5, -23.9778, -21.0842, -4, -24.7434, -21.0842, -5, -24.7434, -17.2354, -5, -23.9778, -17.2354, -4, -23.9778, -21.0842, -4, -24.7434, -5.1711, -5, 2.3895, -5, -4, 5, -5, -5, 5, -5.1711, -5, 2.3895, -5.1711, -4, 2.3895, -5, -4, 5, -10.8579, -5, -9.1421, -9.1329, -4, -7.1752, -9.1329, -5, -7.1752, -10.8579, -5, -9.1421, -10.8579, -4, -9.1421, -9.1329, -4, -7.1752) + +[node name="platform_square" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.6643, 0, 0) +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_biqg8") +mesh = NodePath("mesh") +west_wall_scene = ExtResource("2_e4e6n") +west_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, 1, 0, 0, -12.3, 0, -20) +east_wall_scene = ExtResource("2_e4e6n") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = ExtResource("3_l1pfb") +north_wall_transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 0, -20) +south_wall_scene = ExtResource("4_jmw7o") +south_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0) + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.5, 0) +mesh = ExtResource("5_be8h1") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.5, 0) +visible = false +shape = SubResource("ConcavePolygonShape3D_6xhf1") + +[node name="camera" parent="." instance=ExtResource("6_u76a2")] +transform = Transform3D(-4.37114e-08, 1, 4.37114e-08, 0, -4.37114e-08, 1, 1, 4.37114e-08, 1.91069e-15, -10, 25, -10) diff --git a/assets/blocks/platform_x.tscn b/assets/blocks/platform_x.tscn new file mode 100644 index 0000000..132014f --- /dev/null +++ b/assets/blocks/platform_x.tscn @@ -0,0 +1,34 @@ +[gd_scene load_steps=7 format=3 uid="uid://c7xxrp8ml2ku1"] + +[ext_resource type="Script" path="res://classes/platform.gd" id="1_1ufbr"] +[ext_resource type="PackedScene" uid="uid://bxodo0cs3ewce" path="res://assets/blocks/walls/x_wall.tscn" id="2_1l616"] +[ext_resource type="ArrayMesh" uid="uid://bpde4jrjhpo8r" path="res://assets/meshes/platforms/x.mesh" id="2_sdch3"] +[ext_resource type="PackedScene" uid="uid://lq13suvwdu6g" path="res://assets/blocks/walls/flat_wall.tscn" id="3_uslfv"] +[ext_resource type="PackedScene" uid="uid://urgqw6yoy4f5" path="res://ui/editor/cameras/topdown_cam.tscn" id="4_ertxg"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_dco4m"] +data = PackedVector3Array(-3.5, -0.5, 0, -5, 0.5, -5, -3.5, 0.5, 0, -3.5, -0.5, 0, -5, -0.5, -5, -5, 0.5, -5, -5, -0.5, -5, 5, 0.5, -5, -5, 0.5, -5, -5, -0.5, -5, 5, -0.5, -5, 5, 0.5, -5, 3.5, -0.5, 0, 5, 0.5, 5, 3.5, 0.5, 0, 3.5, -0.5, 0, 5, -0.5, 5, 5, 0.5, 5, 5, -0.5, 5, -5, 0.5, 5, 5, 0.5, 5, 5, -0.5, 5, -5, -0.5, 5, -5, 0.5, 5, -3.5, -0.5, 0, 5, -0.5, 5, 3.5, -0.5, 0, -3.5, -0.5, 0, -5, -0.5, 5, 5, -0.5, 5, 3.5, 0.5, 0, -5, 0.5, 5, -3.5, 0.5, 0, 3.5, 0.5, 0, 5, 0.5, 5, -5, 0.5, 5, 5, 0.5, -5, -3.5, 0.5, 0, -5, 0.5, -5, 5, 0.5, -5, 3.5, 0.5, 0, -3.5, 0.5, 0, -5, -0.5, -5, 3.5, -0.5, 0, 5, -0.5, -5, -5, -0.5, -5, -3.5, -0.5, 0, 3.5, -0.5, 0, 5, -0.5, -5, 3.5, 0.5, 0, 5, 0.5, -5, 5, -0.5, -5, 3.5, -0.5, 0, 3.5, 0.5, 0, -5, -0.5, 5, -3.5, 0.5, 0, -5, 0.5, 5, -5, -0.5, 5, -3.5, -0.5, 0, -3.5, 0.5, 0) + +[node name="platform_x" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_1ufbr") +mesh = NodePath("mesh") +west_wall_scene = ExtResource("2_1l616") +west_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +east_wall_scene = ExtResource("2_1l616") +east_wall_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 0) +north_wall_scene = ExtResource("3_uslfv") +north_wall_transform = Transform3D(0, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, 0) +south_wall_scene = ExtResource("3_uslfv") +south_wall_transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 0, 0, 0) + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +mesh = ExtResource("2_sdch3") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +shape = SubResource("ConcavePolygonShape3D_dco4m") + +[node name="camera" parent="." instance=ExtResource("4_ertxg")] diff --git a/assets/blocks/ring_checkpoint.tscn b/assets/blocks/ring_checkpoint.tscn new file mode 100644 index 0000000..618fa64 --- /dev/null +++ b/assets/blocks/ring_checkpoint.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=6 format=3 uid="uid://behu0a0iegwov"] + +[ext_resource type="Script" path="res://classes/checkpoint.gd" id="1_rlrel"] +[ext_resource type="TorusMesh" uid="uid://dlbpusye3e33p" path="res://assets/meshes/checkpoint.tres" id="2_xys6y"] +[ext_resource type="PackedScene" uid="uid://bb56nmgmi1i74" path="res://ui/editor/cameras/side_far_cam.tscn" id="3_674db"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_c3er2"] +data = PackedVector3Array(-6, 0, -10.3923, 0, 2.5, -14.5, 0, 0, -12, -6, 0, -10.3923, -7.25, 2.5, -12.5574, 0, 2.5, -14.5, -7.25, 2.5, -12.5574, 0, 0, -17, 0, 2.5, -14.5, -7.25, 2.5, -12.5574, -8.5, 0, -14.7224, 0, 0, -17, -8.5, 0, -14.7224, 0, -2.5, -14.5, 0, 0, -17, -8.5, 0, -14.7224, -7.25, -2.5, -12.5574, 0, -2.5, -14.5, -7.25, -2.5, -12.5574, 0, 0, -12, 0, -2.5, -14.5, -7.25, -2.5, -12.5574, -6, 0, -10.3923, 0, 0, -12, -10.3923, 0, -6, -7.25, 2.5, -12.5574, -6, 0, -10.3923, -10.3923, 0, -6, -12.5574, 2.5, -7.25, -7.25, 2.5, -12.5574, -12.5574, 2.5, -7.25, -8.5, 0, -14.7224, -7.25, 2.5, -12.5574, -12.5574, 2.5, -7.25, -14.7224, 0, -8.5, -8.5, 0, -14.7224, -14.7224, 0, -8.5, -7.25, -2.5, -12.5574, -8.5, 0, -14.7224, -14.7224, 0, -8.5, -12.5574, -2.5, -7.25, -7.25, -2.5, -12.5574, -12.5574, -2.5, -7.25, -6, 0, -10.3923, -7.25, -2.5, -12.5574, -12.5574, -2.5, -7.25, -10.3923, 0, -6, -6, 0, -10.3923, -12, 0, 0, -12.5574, 2.5, -7.25, -10.3923, 0, -6, -12, 0, 0, -14.5, 2.5, 0, -12.5574, 2.5, -7.25, -14.5, 2.5, 0, -14.7224, 0, -8.5, -12.5574, 2.5, -7.25, -14.5, 2.5, 0, -17, 0, 0, -14.7224, 0, -8.5, -17, 0, 0, -12.5574, -2.5, -7.25, -14.7224, 0, -8.5, -17, 0, 0, -14.5, -2.5, 0, -12.5574, -2.5, -7.25, -14.5, -2.5, 0, -10.3923, 0, -6, -12.5574, -2.5, -7.25, -14.5, -2.5, 0, -12, 0, 0, -10.3923, 0, -6, -10.3923, 0, 6, -14.5, 2.5, 0, -12, 0, 0, -10.3923, 0, 6, -12.5574, 2.5, 7.25, -14.5, 2.5, 0, -12.5574, 2.5, 7.25, -17, 0, 0, -14.5, 2.5, 0, -12.5574, 2.5, 7.25, -14.7224, 0, 8.5, -17, 0, 0, -14.7224, 0, 8.5, -14.5, -2.5, 0, -17, 0, 0, -14.7224, 0, 8.5, -12.5574, -2.5, 7.25, -14.5, -2.5, 0, -12.5574, -2.5, 7.25, -12, 0, 0, -14.5, -2.5, 0, -12.5574, -2.5, 7.25, -10.3923, 0, 6, -12, 0, 0, -6, 0, 10.3923, -12.5574, 2.5, 7.25, -10.3923, 0, 6, -6, 0, 10.3923, -7.25, 2.5, 12.5574, -12.5574, 2.5, 7.25, -7.25, 2.5, 12.5574, -14.7224, 0, 8.5, -12.5574, 2.5, 7.25, -7.25, 2.5, 12.5574, -8.5, 0, 14.7224, -14.7224, 0, 8.5, -8.5, 0, 14.7224, -12.5574, -2.5, 7.25, -14.7224, 0, 8.5, -8.5, 0, 14.7224, -7.25, -2.5, 12.5574, -12.5574, -2.5, 7.25, -7.25, -2.5, 12.5574, -10.3923, 0, 6, -12.5574, -2.5, 7.25, -7.25, -2.5, 12.5574, -6, 0, 10.3923, -10.3923, 0, 6, 0, 0, 12, -7.25, 2.5, 12.5574, -6, 0, 10.3923, 0, 0, 12, 0, 2.5, 14.5, -7.25, 2.5, 12.5574, 0, 2.5, 14.5, -8.5, 0, 14.7224, -7.25, 2.5, 12.5574, 0, 2.5, 14.5, 0, 0, 17, -8.5, 0, 14.7224, 0, 0, 17, -7.25, -2.5, 12.5574, -8.5, 0, 14.7224, 0, 0, 17, 0, -2.5, 14.5, -7.25, -2.5, 12.5574, 0, -2.5, 14.5, -6, 0, 10.3923, -7.25, -2.5, 12.5574, 0, -2.5, 14.5, 0, 0, 12, -6, 0, 10.3923, 6, 0, 10.3923, 0, 2.5, 14.5, 0, 0, 12, 6, 0, 10.3923, 7.25, 2.5, 12.5574, 0, 2.5, 14.5, 7.25, 2.5, 12.5574, 0, 0, 17, 0, 2.5, 14.5, 7.25, 2.5, 12.5574, 8.5, 0, 14.7224, 0, 0, 17, 8.5, 0, 14.7224, 0, -2.5, 14.5, 0, 0, 17, 8.5, 0, 14.7224, 7.25, -2.5, 12.5574, 0, -2.5, 14.5, 7.25, -2.5, 12.5574, 0, 0, 12, 0, -2.5, 14.5, 7.25, -2.5, 12.5574, 6, 0, 10.3923, 0, 0, 12, 10.3923, 0, 6, 7.25, 2.5, 12.5574, 6, 0, 10.3923, 10.3923, 0, 6, 12.5574, 2.5, 7.25, 7.25, 2.5, 12.5574, 12.5574, 2.5, 7.25, 8.5, 0, 14.7224, 7.25, 2.5, 12.5574, 12.5574, 2.5, 7.25, 14.7224, 0, 8.5, 8.5, 0, 14.7224, 14.7224, 0, 8.5, 7.25, -2.5, 12.5574, 8.5, 0, 14.7224, 14.7224, 0, 8.5, 12.5574, -2.5, 7.25, 7.25, -2.5, 12.5574, 12.5574, -2.5, 7.25, 6, 0, 10.3923, 7.25, -2.5, 12.5574, 12.5574, -2.5, 7.25, 10.3923, 0, 6, 6, 0, 10.3923, 12, 0, 0, 12.5574, 2.5, 7.25, 10.3923, 0, 6, 12, 0, 0, 14.5, 2.5, 0, 12.5574, 2.5, 7.25, 14.5, 2.5, 0, 14.7224, 0, 8.5, 12.5574, 2.5, 7.25, 14.5, 2.5, 0, 17, 0, 0, 14.7224, 0, 8.5, 17, 0, 0, 12.5574, -2.5, 7.25, 14.7224, 0, 8.5, 17, 0, 0, 14.5, -2.5, 0, 12.5574, -2.5, 7.25, 14.5, -2.5, 0, 10.3923, 0, 6, 12.5574, -2.5, 7.25, 14.5, -2.5, 0, 12, 0, 0, 10.3923, 0, 6, 10.3923, 0, -6, 14.5, 2.5, 0, 12, 0, 0, 10.3923, 0, -6, 12.5574, 2.5, -7.25, 14.5, 2.5, 0, 12.5574, 2.5, -7.25, 17, 0, 0, 14.5, 2.5, 0, 12.5574, 2.5, -7.25, 14.7224, 0, -8.5, 17, 0, 0, 14.7224, 0, -8.5, 14.5, -2.5, 0, 17, 0, 0, 14.7224, 0, -8.5, 12.5574, -2.5, -7.25, 14.5, -2.5, 0, 12.5574, -2.5, -7.25, 12, 0, 0, 14.5, -2.5, 0, 12.5574, -2.5, -7.25, 10.3923, 0, -6, 12, 0, 0, 6, 0, -10.3923, 12.5574, 2.5, -7.25, 10.3923, 0, -6, 6, 0, -10.3923, 7.25, 2.5, -12.5574, 12.5574, 2.5, -7.25, 7.25, 2.5, -12.5574, 14.7224, 0, -8.5, 12.5574, 2.5, -7.25, 7.25, 2.5, -12.5574, 8.5, 0, -14.7224, 14.7224, 0, -8.5, 8.5, 0, -14.7224, 12.5574, -2.5, -7.25, 14.7224, 0, -8.5, 8.5, 0, -14.7224, 7.25, -2.5, -12.5574, 12.5574, -2.5, -7.25, 7.25, -2.5, -12.5574, 10.3923, 0, -6, 12.5574, -2.5, -7.25, 7.25, -2.5, -12.5574, 6, 0, -10.3923, 10.3923, 0, -6, 0, 0, -12, 7.25, 2.5, -12.5574, 6, 0, -10.3923, 0, 0, -12, 0, 2.5, -14.5, 7.25, 2.5, -12.5574, 0, 2.5, -14.5, 8.5, 0, -14.7224, 7.25, 2.5, -12.5574, 0, 2.5, -14.5, 0, 0, -17, 8.5, 0, -14.7224, 0, 0, -17, 7.25, -2.5, -12.5574, 8.5, 0, -14.7224, 0, 0, -17, 0, -2.5, -14.5, 7.25, -2.5, -12.5574, 0, -2.5, -14.5, 6, 0, -10.3923, 7.25, -2.5, -12.5574, 0, -2.5, -14.5, 0, 0, -12, 6, 0, -10.3923) + +[sub_resource type="BoxShape3D" id="BoxShape3D_k77jm"] +size = Vector3(23, 23, 3) + +[node name="ring_checkpoint" type="StaticBody3D" node_paths=PackedStringArray("player_detector", "mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_rlrel") +player_detector = NodePath("PlayerDetector") +mesh = NodePath("mesh") + +[node name="shape" type="CollisionShape3D" parent="."] +transform = Transform3D(1.91069e-15, 4.37114e-08, 1, 1, -4.37114e-08, 0, 4.37114e-08, 1, -4.37114e-08, 0, 0, 0) +shape = SubResource("ConcavePolygonShape3D_c3er2") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) +visibility_range_end_margin = 1000.0 +visibility_range_fade_mode = 1 +mesh = ExtResource("2_xys6y") +skeleton = NodePath("") + +[node name="PlayerDetector" type="Area3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +collision_layer = 0 +collision_mask = 2 +monitorable = false + +[node name="Area" type="CollisionShape3D" parent="PlayerDetector"] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +shape = SubResource("BoxShape3D_k77jm") + +[node name="camera" parent="." instance=ExtResource("3_674db")] diff --git a/assets/blocks/ring_finish.tscn b/assets/blocks/ring_finish.tscn new file mode 100644 index 0000000..4c7c617 --- /dev/null +++ b/assets/blocks/ring_finish.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=6 format=3 uid="uid://bm7dvglsg6cxo"] + +[ext_resource type="Script" path="res://classes/finish.gd" id="1_2c5pp"] +[ext_resource type="TorusMesh" uid="uid://bc8hyk8kfo4q1" path="res://assets/meshes/ring_finish.tres" id="2_hvrqd"] +[ext_resource type="PackedScene" uid="uid://bb56nmgmi1i74" path="res://ui/editor/cameras/side_far_cam.tscn" id="3_a8arm"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_pk7yj"] +data = PackedVector3Array(-6, 0, -10.3923, 0, 2.5, -14.5, 0, 0, -12, -6, 0, -10.3923, -7.25, 2.5, -12.5574, 0, 2.5, -14.5, -7.25, 2.5, -12.5574, 0, 0, -17, 0, 2.5, -14.5, -7.25, 2.5, -12.5574, -8.5, 0, -14.7224, 0, 0, -17, -8.5, 0, -14.7224, 0, -2.5, -14.5, 0, 0, -17, -8.5, 0, -14.7224, -7.25, -2.5, -12.5574, 0, -2.5, -14.5, -7.25, -2.5, -12.5574, 0, 0, -12, 0, -2.5, -14.5, -7.25, -2.5, -12.5574, -6, 0, -10.3923, 0, 0, -12, -10.3923, 0, -6, -7.25, 2.5, -12.5574, -6, 0, -10.3923, -10.3923, 0, -6, -12.5574, 2.5, -7.25, -7.25, 2.5, -12.5574, -12.5574, 2.5, -7.25, -8.5, 0, -14.7224, -7.25, 2.5, -12.5574, -12.5574, 2.5, -7.25, -14.7224, 0, -8.5, -8.5, 0, -14.7224, -14.7224, 0, -8.5, -7.25, -2.5, -12.5574, -8.5, 0, -14.7224, -14.7224, 0, -8.5, -12.5574, -2.5, -7.25, -7.25, -2.5, -12.5574, -12.5574, -2.5, -7.25, -6, 0, -10.3923, -7.25, -2.5, -12.5574, -12.5574, -2.5, -7.25, -10.3923, 0, -6, -6, 0, -10.3923, -12, 0, 0, -12.5574, 2.5, -7.25, -10.3923, 0, -6, -12, 0, 0, -14.5, 2.5, 0, -12.5574, 2.5, -7.25, -14.5, 2.5, 0, -14.7224, 0, -8.5, -12.5574, 2.5, -7.25, -14.5, 2.5, 0, -17, 0, 0, -14.7224, 0, -8.5, -17, 0, 0, -12.5574, -2.5, -7.25, -14.7224, 0, -8.5, -17, 0, 0, -14.5, -2.5, 0, -12.5574, -2.5, -7.25, -14.5, -2.5, 0, -10.3923, 0, -6, -12.5574, -2.5, -7.25, -14.5, -2.5, 0, -12, 0, 0, -10.3923, 0, -6, -10.3923, 0, 6, -14.5, 2.5, 0, -12, 0, 0, -10.3923, 0, 6, -12.5574, 2.5, 7.25, -14.5, 2.5, 0, -12.5574, 2.5, 7.25, -17, 0, 0, -14.5, 2.5, 0, -12.5574, 2.5, 7.25, -14.7224, 0, 8.5, -17, 0, 0, -14.7224, 0, 8.5, -14.5, -2.5, 0, -17, 0, 0, -14.7224, 0, 8.5, -12.5574, -2.5, 7.25, -14.5, -2.5, 0, -12.5574, -2.5, 7.25, -12, 0, 0, -14.5, -2.5, 0, -12.5574, -2.5, 7.25, -10.3923, 0, 6, -12, 0, 0, -6, 0, 10.3923, -12.5574, 2.5, 7.25, -10.3923, 0, 6, -6, 0, 10.3923, -7.25, 2.5, 12.5574, -12.5574, 2.5, 7.25, -7.25, 2.5, 12.5574, -14.7224, 0, 8.5, -12.5574, 2.5, 7.25, -7.25, 2.5, 12.5574, -8.5, 0, 14.7224, -14.7224, 0, 8.5, -8.5, 0, 14.7224, -12.5574, -2.5, 7.25, -14.7224, 0, 8.5, -8.5, 0, 14.7224, -7.25, -2.5, 12.5574, -12.5574, -2.5, 7.25, -7.25, -2.5, 12.5574, -10.3923, 0, 6, -12.5574, -2.5, 7.25, -7.25, -2.5, 12.5574, -6, 0, 10.3923, -10.3923, 0, 6, 0, 0, 12, -7.25, 2.5, 12.5574, -6, 0, 10.3923, 0, 0, 12, 0, 2.5, 14.5, -7.25, 2.5, 12.5574, 0, 2.5, 14.5, -8.5, 0, 14.7224, -7.25, 2.5, 12.5574, 0, 2.5, 14.5, 0, 0, 17, -8.5, 0, 14.7224, 0, 0, 17, -7.25, -2.5, 12.5574, -8.5, 0, 14.7224, 0, 0, 17, 0, -2.5, 14.5, -7.25, -2.5, 12.5574, 0, -2.5, 14.5, -6, 0, 10.3923, -7.25, -2.5, 12.5574, 0, -2.5, 14.5, 0, 0, 12, -6, 0, 10.3923, 6, 0, 10.3923, 0, 2.5, 14.5, 0, 0, 12, 6, 0, 10.3923, 7.25, 2.5, 12.5574, 0, 2.5, 14.5, 7.25, 2.5, 12.5574, 0, 0, 17, 0, 2.5, 14.5, 7.25, 2.5, 12.5574, 8.5, 0, 14.7224, 0, 0, 17, 8.5, 0, 14.7224, 0, -2.5, 14.5, 0, 0, 17, 8.5, 0, 14.7224, 7.25, -2.5, 12.5574, 0, -2.5, 14.5, 7.25, -2.5, 12.5574, 0, 0, 12, 0, -2.5, 14.5, 7.25, -2.5, 12.5574, 6, 0, 10.3923, 0, 0, 12, 10.3923, 0, 6, 7.25, 2.5, 12.5574, 6, 0, 10.3923, 10.3923, 0, 6, 12.5574, 2.5, 7.25, 7.25, 2.5, 12.5574, 12.5574, 2.5, 7.25, 8.5, 0, 14.7224, 7.25, 2.5, 12.5574, 12.5574, 2.5, 7.25, 14.7224, 0, 8.5, 8.5, 0, 14.7224, 14.7224, 0, 8.5, 7.25, -2.5, 12.5574, 8.5, 0, 14.7224, 14.7224, 0, 8.5, 12.5574, -2.5, 7.25, 7.25, -2.5, 12.5574, 12.5574, -2.5, 7.25, 6, 0, 10.3923, 7.25, -2.5, 12.5574, 12.5574, -2.5, 7.25, 10.3923, 0, 6, 6, 0, 10.3923, 12, 0, 0, 12.5574, 2.5, 7.25, 10.3923, 0, 6, 12, 0, 0, 14.5, 2.5, 0, 12.5574, 2.5, 7.25, 14.5, 2.5, 0, 14.7224, 0, 8.5, 12.5574, 2.5, 7.25, 14.5, 2.5, 0, 17, 0, 0, 14.7224, 0, 8.5, 17, 0, 0, 12.5574, -2.5, 7.25, 14.7224, 0, 8.5, 17, 0, 0, 14.5, -2.5, 0, 12.5574, -2.5, 7.25, 14.5, -2.5, 0, 10.3923, 0, 6, 12.5574, -2.5, 7.25, 14.5, -2.5, 0, 12, 0, 0, 10.3923, 0, 6, 10.3923, 0, -6, 14.5, 2.5, 0, 12, 0, 0, 10.3923, 0, -6, 12.5574, 2.5, -7.25, 14.5, 2.5, 0, 12.5574, 2.5, -7.25, 17, 0, 0, 14.5, 2.5, 0, 12.5574, 2.5, -7.25, 14.7224, 0, -8.5, 17, 0, 0, 14.7224, 0, -8.5, 14.5, -2.5, 0, 17, 0, 0, 14.7224, 0, -8.5, 12.5574, -2.5, -7.25, 14.5, -2.5, 0, 12.5574, -2.5, -7.25, 12, 0, 0, 14.5, -2.5, 0, 12.5574, -2.5, -7.25, 10.3923, 0, -6, 12, 0, 0, 6, 0, -10.3923, 12.5574, 2.5, -7.25, 10.3923, 0, -6, 6, 0, -10.3923, 7.25, 2.5, -12.5574, 12.5574, 2.5, -7.25, 7.25, 2.5, -12.5574, 14.7224, 0, -8.5, 12.5574, 2.5, -7.25, 7.25, 2.5, -12.5574, 8.5, 0, -14.7224, 14.7224, 0, -8.5, 8.5, 0, -14.7224, 12.5574, -2.5, -7.25, 14.7224, 0, -8.5, 8.5, 0, -14.7224, 7.25, -2.5, -12.5574, 12.5574, -2.5, -7.25, 7.25, -2.5, -12.5574, 10.3923, 0, -6, 12.5574, -2.5, -7.25, 7.25, -2.5, -12.5574, 6, 0, -10.3923, 10.3923, 0, -6, 0, 0, -12, 7.25, 2.5, -12.5574, 6, 0, -10.3923, 0, 0, -12, 0, 2.5, -14.5, 7.25, 2.5, -12.5574, 0, 2.5, -14.5, 8.5, 0, -14.7224, 7.25, 2.5, -12.5574, 0, 2.5, -14.5, 0, 0, -17, 8.5, 0, -14.7224, 0, 0, -17, 7.25, -2.5, -12.5574, 8.5, 0, -14.7224, 0, 0, -17, 0, -2.5, -14.5, 7.25, -2.5, -12.5574, 0, -2.5, -14.5, 6, 0, -10.3923, 7.25, -2.5, -12.5574, 0, -2.5, -14.5, 0, 0, -12, 6, 0, -10.3923) + +[sub_resource type="BoxShape3D" id="BoxShape3D_bu8o6"] +size = Vector3(23, 23, 3) + +[node name="ring_finish" type="StaticBody3D" node_paths=PackedStringArray("player_detector", "mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_2c5pp") +player_detector = NodePath("PlayerDetector") +mesh = NodePath("Ring") + +[node name="shape" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) +shape = SubResource("ConcavePolygonShape3D_pk7yj") + +[node name="Ring" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) +mesh = ExtResource("2_hvrqd") +skeleton = NodePath("") + +[node name="PlayerDetector" type="Area3D" parent="."] +collision_layer = 0 +collision_mask = 2 +monitorable = false + +[node name="Area" type="CollisionShape3D" parent="PlayerDetector"] +shape = SubResource("BoxShape3D_bu8o6") + +[node name="camera" parent="." instance=ExtResource("3_a8arm")] diff --git a/assets/blocks/ring_start.tscn b/assets/blocks/ring_start.tscn new file mode 100644 index 0000000..0409db2 --- /dev/null +++ b/assets/blocks/ring_start.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=8 format=3 uid="uid://cy2ialm17md6c"] + +[ext_resource type="TorusMesh" uid="uid://cwiqggu3nwbyh" path="res://assets/meshes/ring_start.tres" id="1_ksild"] +[ext_resource type="Material" uid="uid://dekbqdhjdmtod" path="res://assets/blocks/start_guide.material" id="3_8k4fv"] +[ext_resource type="PackedScene" uid="uid://bb56nmgmi1i74" path="res://ui/editor/cameras/side_far_cam.tscn" id="3_cpkl8"] + +[sub_resource type="GDScript" id="GDScript_jas2p"] +resource_name = "ring start" +script/source = "extends Start + +func _ready() -> void: + super() + if not editor: + $editor_guide_cylinder.queue_free() + $editor_guide_point.queue_free() +" + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_wl74k"] +data = PackedVector3Array(-6, 0, -10.3923, 0, 2.5, -14.5, 0, 0, -12, -6, 0, -10.3923, -7.25, 2.5, -12.5574, 0, 2.5, -14.5, -7.25, 2.5, -12.5574, 0, 0, -17, 0, 2.5, -14.5, -7.25, 2.5, -12.5574, -8.5, 0, -14.7224, 0, 0, -17, -8.5, 0, -14.7224, 0, -2.5, -14.5, 0, 0, -17, -8.5, 0, -14.7224, -7.25, -2.5, -12.5574, 0, -2.5, -14.5, -7.25, -2.5, -12.5574, 0, 0, -12, 0, -2.5, -14.5, -7.25, -2.5, -12.5574, -6, 0, -10.3923, 0, 0, -12, -10.3923, 0, -6, -7.25, 2.5, -12.5574, -6, 0, -10.3923, -10.3923, 0, -6, -12.5574, 2.5, -7.25, -7.25, 2.5, -12.5574, -12.5574, 2.5, -7.25, -8.5, 0, -14.7224, -7.25, 2.5, -12.5574, -12.5574, 2.5, -7.25, -14.7224, 0, -8.5, -8.5, 0, -14.7224, -14.7224, 0, -8.5, -7.25, -2.5, -12.5574, -8.5, 0, -14.7224, -14.7224, 0, -8.5, -12.5574, -2.5, -7.25, -7.25, -2.5, -12.5574, -12.5574, -2.5, -7.25, -6, 0, -10.3923, -7.25, -2.5, -12.5574, -12.5574, -2.5, -7.25, -10.3923, 0, -6, -6, 0, -10.3923, -12, 0, 0, -12.5574, 2.5, -7.25, -10.3923, 0, -6, -12, 0, 0, -14.5, 2.5, 0, -12.5574, 2.5, -7.25, -14.5, 2.5, 0, -14.7224, 0, -8.5, -12.5574, 2.5, -7.25, -14.5, 2.5, 0, -17, 0, 0, -14.7224, 0, -8.5, -17, 0, 0, -12.5574, -2.5, -7.25, -14.7224, 0, -8.5, -17, 0, 0, -14.5, -2.5, 0, -12.5574, -2.5, -7.25, -14.5, -2.5, 0, -10.3923, 0, -6, -12.5574, -2.5, -7.25, -14.5, -2.5, 0, -12, 0, 0, -10.3923, 0, -6, -10.3923, 0, 6, -14.5, 2.5, 0, -12, 0, 0, -10.3923, 0, 6, -12.5574, 2.5, 7.25, -14.5, 2.5, 0, -12.5574, 2.5, 7.25, -17, 0, 0, -14.5, 2.5, 0, -12.5574, 2.5, 7.25, -14.7224, 0, 8.5, -17, 0, 0, -14.7224, 0, 8.5, -14.5, -2.5, 0, -17, 0, 0, -14.7224, 0, 8.5, -12.5574, -2.5, 7.25, -14.5, -2.5, 0, -12.5574, -2.5, 7.25, -12, 0, 0, -14.5, -2.5, 0, -12.5574, -2.5, 7.25, -10.3923, 0, 6, -12, 0, 0, -6, 0, 10.3923, -12.5574, 2.5, 7.25, -10.3923, 0, 6, -6, 0, 10.3923, -7.25, 2.5, 12.5574, -12.5574, 2.5, 7.25, -7.25, 2.5, 12.5574, -14.7224, 0, 8.5, -12.5574, 2.5, 7.25, -7.25, 2.5, 12.5574, -8.5, 0, 14.7224, -14.7224, 0, 8.5, -8.5, 0, 14.7224, -12.5574, -2.5, 7.25, -14.7224, 0, 8.5, -8.5, 0, 14.7224, -7.25, -2.5, 12.5574, -12.5574, -2.5, 7.25, -7.25, -2.5, 12.5574, -10.3923, 0, 6, -12.5574, -2.5, 7.25, -7.25, -2.5, 12.5574, -6, 0, 10.3923, -10.3923, 0, 6, 0, 0, 12, -7.25, 2.5, 12.5574, -6, 0, 10.3923, 0, 0, 12, 0, 2.5, 14.5, -7.25, 2.5, 12.5574, 0, 2.5, 14.5, -8.5, 0, 14.7224, -7.25, 2.5, 12.5574, 0, 2.5, 14.5, 0, 0, 17, -8.5, 0, 14.7224, 0, 0, 17, -7.25, -2.5, 12.5574, -8.5, 0, 14.7224, 0, 0, 17, 0, -2.5, 14.5, -7.25, -2.5, 12.5574, 0, -2.5, 14.5, -6, 0, 10.3923, -7.25, -2.5, 12.5574, 0, -2.5, 14.5, 0, 0, 12, -6, 0, 10.3923, 6, 0, 10.3923, 0, 2.5, 14.5, 0, 0, 12, 6, 0, 10.3923, 7.25, 2.5, 12.5574, 0, 2.5, 14.5, 7.25, 2.5, 12.5574, 0, 0, 17, 0, 2.5, 14.5, 7.25, 2.5, 12.5574, 8.5, 0, 14.7224, 0, 0, 17, 8.5, 0, 14.7224, 0, -2.5, 14.5, 0, 0, 17, 8.5, 0, 14.7224, 7.25, -2.5, 12.5574, 0, -2.5, 14.5, 7.25, -2.5, 12.5574, 0, 0, 12, 0, -2.5, 14.5, 7.25, -2.5, 12.5574, 6, 0, 10.3923, 0, 0, 12, 10.3923, 0, 6, 7.25, 2.5, 12.5574, 6, 0, 10.3923, 10.3923, 0, 6, 12.5574, 2.5, 7.25, 7.25, 2.5, 12.5574, 12.5574, 2.5, 7.25, 8.5, 0, 14.7224, 7.25, 2.5, 12.5574, 12.5574, 2.5, 7.25, 14.7224, 0, 8.5, 8.5, 0, 14.7224, 14.7224, 0, 8.5, 7.25, -2.5, 12.5574, 8.5, 0, 14.7224, 14.7224, 0, 8.5, 12.5574, -2.5, 7.25, 7.25, -2.5, 12.5574, 12.5574, -2.5, 7.25, 6, 0, 10.3923, 7.25, -2.5, 12.5574, 12.5574, -2.5, 7.25, 10.3923, 0, 6, 6, 0, 10.3923, 12, 0, 0, 12.5574, 2.5, 7.25, 10.3923, 0, 6, 12, 0, 0, 14.5, 2.5, 0, 12.5574, 2.5, 7.25, 14.5, 2.5, 0, 14.7224, 0, 8.5, 12.5574, 2.5, 7.25, 14.5, 2.5, 0, 17, 0, 0, 14.7224, 0, 8.5, 17, 0, 0, 12.5574, -2.5, 7.25, 14.7224, 0, 8.5, 17, 0, 0, 14.5, -2.5, 0, 12.5574, -2.5, 7.25, 14.5, -2.5, 0, 10.3923, 0, 6, 12.5574, -2.5, 7.25, 14.5, -2.5, 0, 12, 0, 0, 10.3923, 0, 6, 10.3923, 0, -6, 14.5, 2.5, 0, 12, 0, 0, 10.3923, 0, -6, 12.5574, 2.5, -7.25, 14.5, 2.5, 0, 12.5574, 2.5, -7.25, 17, 0, 0, 14.5, 2.5, 0, 12.5574, 2.5, -7.25, 14.7224, 0, -8.5, 17, 0, 0, 14.7224, 0, -8.5, 14.5, -2.5, 0, 17, 0, 0, 14.7224, 0, -8.5, 12.5574, -2.5, -7.25, 14.5, -2.5, 0, 12.5574, -2.5, -7.25, 12, 0, 0, 14.5, -2.5, 0, 12.5574, -2.5, -7.25, 10.3923, 0, -6, 12, 0, 0, 6, 0, -10.3923, 12.5574, 2.5, -7.25, 10.3923, 0, -6, 6, 0, -10.3923, 7.25, 2.5, -12.5574, 12.5574, 2.5, -7.25, 7.25, 2.5, -12.5574, 14.7224, 0, -8.5, 12.5574, 2.5, -7.25, 7.25, 2.5, -12.5574, 8.5, 0, -14.7224, 14.7224, 0, -8.5, 8.5, 0, -14.7224, 12.5574, -2.5, -7.25, 14.7224, 0, -8.5, 8.5, 0, -14.7224, 7.25, -2.5, -12.5574, 12.5574, -2.5, -7.25, 7.25, -2.5, -12.5574, 10.3923, 0, -6, 12.5574, -2.5, -7.25, 7.25, -2.5, -12.5574, 6, 0, -10.3923, 10.3923, 0, -6, 0, 0, -12, 7.25, 2.5, -12.5574, 6, 0, -10.3923, 0, 0, -12, 0, 2.5, -14.5, 7.25, 2.5, -12.5574, 0, 2.5, -14.5, 8.5, 0, -14.7224, 7.25, 2.5, -12.5574, 0, 2.5, -14.5, 0, 0, -17, 8.5, 0, -14.7224, 0, 0, -17, 7.25, -2.5, -12.5574, 8.5, 0, -14.7224, 0, 0, -17, 0, -2.5, -14.5, 7.25, -2.5, -12.5574, 0, -2.5, -14.5, 6, 0, -10.3923, 7.25, -2.5, -12.5574, 0, -2.5, -14.5, 0, 0, -12, 6, 0, -10.3923) + +[sub_resource type="CylinderMesh" id="CylinderMesh_1hr2x"] +material = ExtResource("3_8k4fv") +top_radius = 3.0 +bottom_radius = 5.0 +height = 10.0 +radial_segments = 32 + +[sub_resource type="CylinderMesh" id="CylinderMesh_l0thy"] +material = ExtResource("3_8k4fv") +top_radius = 0.0 +bottom_radius = 5.0 +height = 5.0 +radial_segments = 32 + +[node name="ring_start" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = SubResource("GDScript_jas2p") +mesh = NodePath("Ring") + +[node name="shape" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) +shape = SubResource("ConcavePolygonShape3D_wl74k") + +[node name="Ring" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) +mesh = ExtResource("1_ksild") +skeleton = NodePath("") + +[node name="editor_guide_cylinder" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -5) +mesh = SubResource("CylinderMesh_1hr2x") + +[node name="editor_guide_point" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -12.5) +mesh = SubResource("CylinderMesh_l0thy") + +[node name="camera" parent="." instance=ExtResource("3_cpkl8")] diff --git a/assets/blocks/start_guide.material b/assets/blocks/start_guide.material Binary files differnew file mode 100644 index 0000000..3b1fc6d --- /dev/null +++ b/assets/blocks/start_guide.material diff --git a/assets/blocks/tree.gd b/assets/blocks/tree.gd new file mode 100644 index 0000000..4da5745 --- /dev/null +++ b/assets/blocks/tree.gd @@ -0,0 +1,17 @@ +extends Decoration + +@export var hl_top_mat: BaseMaterial3D +@export var hl_trunk_mat: BaseMaterial3D +@export var top_mat: BaseMaterial3D +@export var trunk_mat: BaseMaterial3D + +func get_aabb(): + return %trunk.get_aabb().merge(%top.get_aabb()) + +func highlight() -> void: + %trunk.set_surface_override_material(0, hl_trunk_mat) + %top.set_surface_override_material(0, hl_top_mat) + +func un_highlight() -> void: + %trunk.set_surface_override_material(0, trunk_mat) + %top.set_surface_override_material(0, top_mat) diff --git a/assets/blocks/tree.tscn b/assets/blocks/tree.tscn new file mode 100644 index 0000000..fb838b1 --- /dev/null +++ b/assets/blocks/tree.tscn @@ -0,0 +1,64 @@ +[gd_scene load_steps=11 format=3 uid="uid://d2nwkpdn3gnx3"] + +[ext_resource type="Script" path="res://assets/blocks/tree.gd" id="1_aqri3"] +[ext_resource type="ArrayMesh" uid="uid://wpn040a4trym" path="res://assets/meshes/tree_bottom.tres" id="2_aqfsv"] +[ext_resource type="ArrayMesh" uid="uid://dnglrbqb00hnw" path="res://assets/meshes/tree_top.mesh" id="3_ek4hf"] +[ext_resource type="PackedScene" uid="uid://ccfnlmu6xnhxg" path="res://ui/editor/cameras/tall_side_slant_cam.tscn" id="4_ruq6c"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_id6f0"] +resource_name = "tree top hl" +albedo_color = Color(0.333333, 0.67451, 0.172549, 1) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_70boo"] +resource_name = "tree trunk hl" +albedo_color = Color(0.705882, 0.435294, 0.384314, 1) +metallic_specular = 0.0 +roughness = 0.0 +texture_filter = 0 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bo2t4"] +resource_name = "tree top" +albedo_color = Color(0.286275, 0.580392, 0.14902, 1) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wm34v"] +resource_name = "tree trunk" +albedo_color = Color(0.403922, 0.223529, 0.192157, 1) +metallic_specular = 0.0 +roughness = 0.0 +texture_filter = 0 + +[sub_resource type="CylinderShape3D" id="CylinderShape3D_0lfwo"] +height = 3.0 +radius = 1.0 + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_woi3d"] +points = PackedVector3Array(0, -1.5, -2.949, -2.08531, -1.5, -2.08531, 0, -0.900059, -2.35955, 2.08474, -1.5, -2.08531, -2.949, -1.5, 0, -2.35955, -0.900059, 0, -1.25165, -0.300117, -1.25165, 0, 0.299824, -1.18006, 1.25107, -0.300117, -1.25165, 2.949, -1.5, 0, -2.08531, -1.5, 2.08474, -1.25165, -0.300117, 1.25107, -1.18006, 0.299824, 0, -0.417409, 0.899765, -0.417409, 0, 1.5, 0, 1.25107, -0.300117, 1.25107, 2.08474, -1.5, 2.08474, 0, -1.5, 2.949) + +[node name="tree" type="StaticBody3D"] +input_ray_pickable = false +script = ExtResource("1_aqri3") +hl_top_mat = SubResource("StandardMaterial3D_id6f0") +hl_trunk_mat = SubResource("StandardMaterial3D_70boo") +top_mat = SubResource("StandardMaterial3D_bo2t4") +trunk_mat = SubResource("StandardMaterial3D_wm34v") + +[node name="trunk" type="MeshInstance3D" parent="."] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +mesh = ExtResource("2_aqfsv") +surface_material_override/0 = SubResource("StandardMaterial3D_wm34v") + +[node name="top" type="MeshInstance3D" parent="."] +unique_name_in_owner = true +mesh = ExtResource("3_ek4hf") +surface_material_override/0 = SubResource("StandardMaterial3D_bo2t4") + +[node name="collision1" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +shape = SubResource("CylinderShape3D_0lfwo") + +[node name="collision2" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.98431, 0) +shape = SubResource("ConvexPolygonShape3D_woi3d") + +[node name="camera" parent="." instance=ExtResource("4_ruq6c")] diff --git a/assets/blocks/walls/corner_wall.tscn b/assets/blocks/walls/corner_wall.tscn new file mode 100644 index 0000000..6a55cca --- /dev/null +++ b/assets/blocks/walls/corner_wall.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3 uid="uid://clvtje1uy8v2s"] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_kfuvf"] +[ext_resource type="ArrayMesh" uid="uid://tdpui03o1a0i" path="res://assets/meshes/walls/corner_wall.tres" id="2_wftl1"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_y18tm"] +points = PackedVector3Array(-4.99354, -0.5, -6.00711, -5, -0.5, -5.00078, -4.99354, 2.5, -6.00711, 6.00711, -0.5, 4.99246, -5, 2.5, -5.00078, 4.9997, -0.5, 5, 6.00711, 2.5, 4.99246, 4.9997, 2.5, 5) + +[node name="corner_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_kfuvf") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 1.06581e-14, 0, 1, 0, -1.06581e-14, 0, 1, 0, 0, 0) +mesh = ExtResource("2_wftl1") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 1.06581e-14, 0, 1, 0, -1.06581e-14, 0, 1, 0, 0, 0) +shape = SubResource("ConvexPolygonShape3D_y18tm") diff --git a/assets/blocks/walls/diagonal_wall.tscn b/assets/blocks/walls/diagonal_wall.tscn new file mode 100644 index 0000000..42f0bae --- /dev/null +++ b/assets/blocks/walls/diagonal_wall.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3 uid="uid://dforj6583ykxh"] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_ftymv"] +[ext_resource type="ArrayMesh" uid="uid://8dvooynpliqm" path="res://assets/meshes/walls/diagonal_wall.tres" id="2_88wck"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_x2x34"] +points = PackedVector3Array(-5, 2.5, 6, -5, 2.5, 5, -5, -0.500343, 6, 5, -0.00019598, 6, 5, -0.00019598, 5, -5, -0.500343, 5, 5, -3, 6, 5, -3, 5) + +[node name="diagonal_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_ftymv") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -11) +mesh = ExtResource("2_88wck") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -11) +shape = SubResource("ConvexPolygonShape3D_x2x34") diff --git a/assets/blocks/walls/flat_wall.tscn b/assets/blocks/walls/flat_wall.tscn new file mode 100644 index 0000000..14e465f --- /dev/null +++ b/assets/blocks/walls/flat_wall.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3 uid="uid://lq13suvwdu6g"] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_8sr8v"] +[ext_resource type="ArrayMesh" uid="uid://c5yviammd3ie" path="res://assets/meshes/walls/flat_wall.mesh" id="2_xr5wx"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_s6p00"] +points = PackedVector3Array(5, -0.5, -5, 6, -0.5, -5, 5, -0.5, 5, 5, 2.5, -5, 6, 2.5, -5, 6, -0.5, 5, 5, 2.5, 5, 6, 2.5, 5) + +[node name="flat_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_8sr8v") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +mesh = ExtResource("2_xr5wx") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +visible = false +shape = SubResource("ConvexPolygonShape3D_s6p00") diff --git a/assets/blocks/walls/large_curved_wall.tscn b/assets/blocks/walls/large_curved_wall.tscn new file mode 100644 index 0000000..80fcc5a --- /dev/null +++ b/assets/blocks/walls/large_curved_wall.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_k2b4a"] +[ext_resource type="ArrayMesh" uid="uid://dtexmiikiu1om" path="res://assets/meshes/walls/large_curved_wall.tres" id="2_3bnhc"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_41m1v"] +data = PackedVector3Array(2.7164, -5, -6.4805, 0.9808, -2, -10, 2.7164, -2, -6.4805, 2.7164, -5, -6.4805, 0.9808, -5, -10, 0.9808, -2, -10, -10, -5, -20.9808, -13.5195, -2, -22.7164, -10, -2, -20.9808, -10, -5, -20.9808, -13.5195, -5, -22.7164, -13.5195, -2, -22.7164, 4.7433, -5, 1.0842, 3.9778, -2, -2.7646, 4.7433, -2, 1.0842, 4.7433, -5, 1.0842, 3.9778, -5, -2.7646, 3.9778, -2, -2.7646, -3.7868, -5, -16.2132, -6.7372, -2, -18.8006, -3.7868, -2, -16.2132, -3.7868, -5, -16.2132, -6.7372, -5, -18.8006, -6.7372, -2, -18.8006, -21.0842, -5, -24.7434, -25, -2, -25, -21.0842, -2, -24.7434, -21.0842, -5, -24.7434, -25, -5, -25, -25, -2, -25, 0.9808, -5, -10, -1.1994, -2, -13.2628, 0.9808, -2, -10, 0.9808, -5, -10, -1.1994, -5, -13.2628, -1.1994, -2, -13.2628, -13.5195, -5, -22.7164, -17.2354, -2, -23.9778, -13.5195, -2, -22.7164, -13.5195, -5, -22.7164, -17.2354, -5, -23.9778, -17.2354, -2, -23.9778, 3.9778, -5, -2.7646, 2.7164, -2, -6.4805, 3.9778, -2, -2.7646, 3.9778, -5, -2.7646, 2.7164, -5, -6.4805, 2.7164, -2, -6.4805, -6.7372, -5, -18.8006, -10, -2, -20.9808, -6.7372, -2, -18.8006, -6.7372, -5, -18.8006, -10, -5, -20.9808, -10, -2, -20.9808, 5, -5, 5, 4.7433, -2, 1.0842, 5, -2, 5, 5, -5, 5, 4.7433, -5, 1.0842, 4.7433, -2, 1.0842, -1.1994, -5, -13.2628, -3.7868, -2, -16.2132, -1.1994, -2, -13.2628, -1.1994, -5, -13.2628, -3.7868, -5, -16.2132, -3.7868, -2, -16.2132, -17.2354, -5, -23.9778, -21.0842, -2, -24.7434, -17.2354, -2, -23.9778, -17.2354, -5, -23.9778, -21.0842, -5, -24.7434, -21.0842, -2, -24.7434, 3.6403, -5, -6.8632, 1.8468, -2, -10.5, 1.8468, -5, -10.5, 3.6403, -5, -6.8632, 3.6403, -2, -6.8632, 1.8468, -2, -10.5, -9.5, -5, -21.8468, -13.1368, -2, -23.6403, -13.1368, -5, -23.6403, -9.5, -5, -21.8468, -9.5, -2, -21.8468, -13.1368, -2, -23.6403, 5.7348, -5, 0.9537, 4.9437, -2, -3.0234, 4.9437, -5, -3.0234, 5.7348, -5, 0.9537, 5.7348, -2, 0.9537, 4.9437, -2, -3.0234, -3.0797, -5, -16.9203, -6.1284, -2, -19.594, -6.1284, -5, -19.594, -3.0797, -5, -16.9203, -3.0797, -2, -16.9203, -6.1284, -2, -19.594, -20.9537, -5, -25.7348, -25, -2, -25.9979, -25, -5, -25.9979, -20.9537, -5, -25.7348, -20.9537, -2, -25.7348, -25, -2, -25.9979, 1.8468, -5, -10.5, -0.406, -2, -13.8716, -0.406, -5, -13.8716, 1.8468, -5, -10.5, 1.8468, -2, -10.5, -0.406, -2, -13.8716, -13.1368, -5, -23.6403, -16.9766, -2, -24.9437, -16.9766, -5, -24.9437, -13.1368, -5, -23.6403, -13.1368, -2, -23.6403, -16.9766, -2, -24.9437, 4.9437, -5, -3.0234, 3.6403, -2, -6.8632, 3.6403, -5, -6.8632, 4.9437, -5, -3.0234, 4.9437, -2, -3.0234, 3.6403, -2, -6.8632, -6.1284, -5, -19.594, -9.5, -2, -21.8468, -9.5, -5, -21.8468, -6.1284, -5, -19.594, -6.1284, -2, -19.594, -9.5, -2, -21.8468, 5.9979, -5, 5, 5.7348, -2, 0.9537, 5.7348, -5, 0.9537, 5.9979, -5, 5, 5.9979, -2, 5, 5.7348, -2, 0.9537, -0.406, -5, -13.8716, -3.0797, -2, -16.9203, -3.0797, -5, -16.9203, -0.406, -5, -13.8716, -0.406, -2, -13.8716, -3.0797, -2, -16.9203, -16.9766, -5, -24.9437, -20.9537, -2, -25.7348, -20.9537, -5, -25.7348, -16.9766, -5, -24.9437, -16.9766, -2, -24.9437, -20.9537, -2, -25.7348, 5, -2, 5, 5.9979, -5, 5, 5, -5, 5, 5, -2, 5, 5.9979, -2, 5, 5.9979, -5, 5, 2.7164, -2, -6.4805, 4.9437, -2, -3.0234, 3.9778, -2, -2.7646, 2.7164, -2, -6.4805, 3.6403, -2, -6.8632, 4.9437, -2, -3.0234, -6.7372, -5, -18.8006, -9.5, -5, -21.8468, -10, -5, -20.9808, -6.7372, -5, -18.8006, -6.1284, -5, -19.594, -9.5, -5, -21.8468, -21.0842, -2, -24.7434, -16.9766, -2, -24.9437, -17.2354, -2, -23.9778, -21.0842, -2, -24.7434, -20.9537, -2, -25.7348, -16.9766, -2, -24.9437, 5, -5, 5, 5.7348, -5, 0.9537, 4.7433, -5, 1.0842, 5, -5, 5, 5.9979, -5, 5, 5.7348, -5, 0.9537, 0.9808, -2, -10, 3.6403, -2, -6.8632, 2.7164, -2, -6.4805, 0.9808, -2, -10, 1.8468, -2, -10.5, 3.6403, -2, -6.8632, -10, -5, -20.9808, -13.1368, -5, -23.6403, -13.5195, -5, -22.7164, -10, -5, -20.9808, -9.5, -5, -21.8468, -13.1368, -5, -23.6403, -25, -2, -25, -20.9537, -2, -25.7348, -21.0842, -2, -24.7434, -25, -2, -25, -25, -2, -25.9979, -20.9537, -2, -25.7348, 4.7433, -5, 1.0842, 4.9437, -5, -3.0234, 3.9778, -5, -2.7646, 4.7433, -5, 1.0842, 5.7348, -5, 0.9537, 4.9437, -5, -3.0234, -1.1994, -2, -13.2628, 1.8468, -2, -10.5, 0.9808, -2, -10, -1.1994, -2, -13.2628, -0.406, -2, -13.8716, 1.8468, -2, -10.5, -13.5195, -5, -22.7164, -16.9766, -5, -24.9437, -17.2354, -5, -23.9778, -13.5195, -5, -22.7164, -13.1368, -5, -23.6403, -16.9766, -5, -24.9437, 3.9778, -5, -2.7646, 3.6403, -5, -6.8632, 2.7164, -5, -6.4805, 3.9778, -5, -2.7646, 4.9437, -5, -3.0234, 3.6403, -5, -6.8632, -3.7868, -2, -16.2132, -0.406, -2, -13.8716, -1.1994, -2, -13.2628, -3.7868, -2, -16.2132, -3.0797, -2, -16.9203, -0.406, -2, -13.8716, -17.2354, -5, -23.9778, -20.9537, -5, -25.7348, -21.0842, -5, -24.7434, -17.2354, -5, -23.9778, -16.9766, -5, -24.9437, -20.9537, -5, -25.7348, 2.7164, -5, -6.4805, 1.8468, -5, -10.5, 0.9808, -5, -10, 2.7164, -5, -6.4805, 3.6403, -5, -6.8632, 1.8468, -5, -10.5, -6.7372, -2, -18.8006, -3.0797, -2, -16.9203, -3.7868, -2, -16.2132, -6.7372, -2, -18.8006, -6.1284, -2, -19.594, -3.0797, -2, -16.9203, -21.0842, -5, -24.7434, -25, -5, -25.9979, -25, -5, -25, -21.0842, -5, -24.7434, -20.9537, -5, -25.7348, -25, -5, -25.9979, 0.9808, -5, -10, -0.406, -5, -13.8716, -1.1994, -5, -13.2628, 0.9808, -5, -10, 1.8468, -5, -10.5, -0.406, -5, -13.8716, -10, -2, -20.9808, -6.1284, -2, -19.594, -6.7372, -2, -18.8006, -10, -2, -20.9808, -9.5, -2, -21.8468, -6.1284, -2, -19.594, 4.7433, -2, 1.0842, 5.9979, -2, 5, 5, -2, 5, 4.7433, -2, 1.0842, 5.7348, -2, 0.9537, 5.9979, -2, 5, -1.1994, -5, -13.2628, -3.0797, -5, -16.9203, -3.7868, -5, -16.2132, -1.1994, -5, -13.2628, -0.406, -5, -13.8716, -3.0797, -5, -16.9203, -13.5195, -2, -22.7164, -9.5, -2, -21.8468, -10, -2, -20.9808, -13.5195, -2, -22.7164, -13.1368, -2, -23.6403, -9.5, -2, -21.8468, 3.9778, -2, -2.7646, 5.7348, -2, 0.9537, 4.7433, -2, 1.0842, 3.9778, -2, -2.7646, 4.9437, -2, -3.0234, 5.7348, -2, 0.9537, -25, -5, -25, -25, -2, -25.9979, -25, -2, -25, -25, -5, -25, -25, -5, -25.9979, -25, -2, -25.9979, -3.7868, -5, -16.2132, -6.1284, -5, -19.594, -6.7372, -5, -18.8006, -3.7868, -5, -16.2132, -3.0797, -5, -16.9203, -6.1284, -5, -19.594, -17.2354, -2, -23.9778, -13.1368, -2, -23.6403, -13.5195, -2, -22.7164, -17.2354, -2, -23.9778, -16.9766, -2, -24.9437, -13.1368, -2, -23.6403) + +[node name="large curved wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_k2b4a") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 4.5, 0) +mesh = ExtResource("2_3bnhc") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 4.5, 0) +shape = SubResource("ConcavePolygonShape3D_41m1v") diff --git a/assets/blocks/walls/small_curved_wall.tscn b/assets/blocks/walls/small_curved_wall.tscn new file mode 100644 index 0000000..79eba61 --- /dev/null +++ b/assets/blocks/walls/small_curved_wall.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_58f2h"] +[ext_resource type="ArrayMesh" uid="uid://cpisquk518aee" path="res://assets/meshes/walls/small_curved_wall.tres" id="2_jgrr8"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_n3qp6"] +data = PackedVector3Array(-22.3895, -5, -14.8289, -19.8236, -2, -14.3185, -22.3895, -2, -14.8289, -22.3895, -5, -14.8289, -19.8236, -5, -14.3185, -19.8236, -2, -14.3185, -7.6795, -5, -5, -6.5224, -2, -2.6537, -7.6795, -2, -5, -7.6795, -5, -5, -6.5224, -5, -2.6537, -6.5224, -2, -2.6537, -17.3463, -5, -13.4776, -15, -2, -12.3205, -17.3463, -2, -13.4776, -17.3463, -5, -13.4776, -15, -5, -12.3205, -15, -2, -12.3205, -5.6815, -5, -0.1764, -5.1711, -2, 2.3895, -5.6815, -2, -0.1764, -5.6815, -5, -0.1764, -5.1711, -5, 2.3895, -5.1711, -2, 2.3895, -12.8248, -5, -10.8671, -10.8579, -2, -9.1421, -12.8248, -2, -10.8671, -12.8248, -5, -10.8671, -10.8579, -5, -9.1421, -10.8579, -2, -9.1421, -25, -5, -15, -22.3895, -2, -14.8289, -25, -2, -15, -25, -5, -15, -22.3895, -5, -14.8289, -22.3895, -2, -14.8289, -9.1329, -5, -7.1752, -7.6795, -2, -5, -9.1329, -2, -7.1752, -9.1329, -5, -7.1752, -7.6795, -5, -5, -7.6795, -2, -5, -19.8236, -5, -14.3185, -17.3463, -2, -13.4776, -19.8236, -2, -14.3185, -19.8236, -5, -14.3185, -17.3463, -5, -13.4776, -17.3463, -2, -13.4776, -6.5224, -5, -2.6537, -5.6815, -2, -0.1764, -6.5224, -2, -2.6537, -6.5224, -5, -2.6537, -5.6815, -5, -0.1764, -5.6815, -2, -0.1764, -15, -5, -12.3205, -12.8248, -2, -10.8671, -15, -2, -12.3205, -15, -5, -12.3205, -12.8248, -5, -10.8671, -12.8248, -2, -10.8671, -5.1711, -5, 2.3895, -5, -2, 5, -5.1711, -2, 2.3895, -5.1711, -5, 2.3895, -5, -5, 5, -5, -2, 5, -10.8579, -5, -9.1421, -9.1329, -2, -7.1752, -10.8579, -2, -9.1421, -10.8579, -5, -9.1421, -9.1329, -5, -7.1752, -9.1329, -2, -7.1752, -22.52, -5, -13.8375, -20.0824, -2, -13.3526, -20.0824, -5, -13.3526, -22.52, -5, -13.8375, -22.52, -2, -13.8375, -20.0824, -2, -13.3526, -8.5455, -5, -4.5, -7.4463, -2, -2.271, -7.4463, -5, -2.271, -8.5455, -5, -4.5, -8.5455, -2, -4.5, -7.4463, -2, -2.271, -17.729, -5, -12.5537, -15.5, -2, -11.4545, -15.5, -5, -11.4545, -17.729, -5, -12.5537, -17.729, -2, -12.5537, -15.5, -2, -11.4545, -6.6474, -5, 0.0824, -6.1625, -2, 2.52, -6.1625, -5, 2.52, -6.6474, -5, 0.0824, -6.6474, -2, 0.0824, -6.1625, -2, 2.52, -13.4335, -5, -10.0737, -11.565, -2, -8.435, -11.565, -5, -8.435, -13.4335, -5, -10.0737, -13.4335, -2, -10.0737, -11.565, -2, -8.435, -25, -5, -14.0021, -22.52, -2, -13.8375, -22.52, -5, -13.8375, -25, -5, -14.0021, -25, -2, -14.0021, -22.52, -2, -13.8375, -9.9263, -5, -6.5665, -8.5455, -2, -4.5, -8.5455, -5, -4.5, -9.9263, -5, -6.5665, -9.9263, -2, -6.5665, -8.5455, -2, -4.5, -20.0824, -5, -13.3526, -17.729, -2, -12.5537, -17.729, -5, -12.5537, -20.0824, -5, -13.3526, -20.0824, -2, -13.3526, -17.729, -2, -12.5537, -7.4463, -5, -2.271, -6.6474, -2, 0.0824, -6.6474, -5, 0.0824, -7.4463, -5, -2.271, -7.4463, -2, -2.271, -6.6474, -2, 0.0824, -15.5, -5, -11.4545, -13.4335, -2, -10.0737, -13.4335, -5, -10.0737, -15.5, -5, -11.4545, -15.5, -2, -11.4545, -13.4335, -2, -10.0737, -6.1625, -5, 2.52, -5.9979, -2, 5, -5.9979, -5, 5, -6.1625, -5, 2.52, -6.1625, -2, 2.52, -5.9979, -2, 5, -11.565, -5, -8.435, -9.9263, -2, -6.5665, -9.9263, -5, -6.5665, -11.565, -5, -8.435, -11.565, -2, -8.435, -9.9263, -2, -6.5665, -22.3895, -5, -14.8289, -20.0824, -5, -13.3526, -19.8236, -5, -14.3185, -22.3895, -5, -14.8289, -22.52, -5, -13.8375, -20.0824, -5, -13.3526, -7.6795, -5, -5, -7.4463, -5, -2.271, -6.5224, -5, -2.6537, -7.6795, -5, -5, -8.5455, -5, -4.5, -7.4463, -5, -2.271, -10.8579, -2, -9.1421, -13.4335, -2, -10.0737, -12.8248, -2, -10.8671, -10.8579, -2, -9.1421, -11.565, -2, -8.435, -13.4335, -2, -10.0737, -25, -5, -15, -22.52, -5, -13.8375, -22.3895, -5, -14.8289, -25, -5, -15, -25, -5, -14.0021, -22.52, -5, -13.8375, -25, -2, -15, -25, -5, -14.0021, -25, -5, -15, -25, -2, -15, -25, -2, -14.0021, -25, -5, -14.0021, -9.1329, -5, -7.1752, -8.5455, -5, -4.5, -7.6795, -5, -5, -9.1329, -5, -7.1752, -9.9263, -5, -6.5665, -8.5455, -5, -4.5, -12.8248, -2, -10.8671, -15.5, -2, -11.4545, -15, -2, -12.3205, -12.8248, -2, -10.8671, -13.4335, -2, -10.0737, -15.5, -2, -11.4545, -5, -2, 5, -6.1625, -2, 2.52, -5.1711, -2, 2.3895, -5, -2, 5, -5.9979, -2, 5, -6.1625, -2, 2.52, -10.8579, -5, -9.1421, -9.9263, -5, -6.5665, -9.1329, -5, -7.1752, -10.8579, -5, -9.1421, -11.565, -5, -8.435, -9.9263, -5, -6.5665, -15, -2, -12.3205, -17.729, -2, -12.5537, -17.3463, -2, -13.4776, -15, -2, -12.3205, -15.5, -2, -11.4545, -17.729, -2, -12.5537, -5, -5, 5, -5.9979, -2, 5, -5, -2, 5, -5, -5, 5, -5.9979, -5, 5, -5.9979, -2, 5, -5.1711, -2, 2.3895, -6.6474, -2, 0.0824, -5.6815, -2, -0.1764, -5.1711, -2, 2.3895, -6.1625, -2, 2.52, -6.6474, -2, 0.0824, -12.8248, -5, -10.8671, -11.565, -5, -8.435, -10.8579, -5, -9.1421, -12.8248, -5, -10.8671, -13.4335, -5, -10.0737, -11.565, -5, -8.435, -17.3463, -2, -13.4776, -20.0824, -2, -13.3526, -19.8236, -2, -14.3185, -17.3463, -2, -13.4776, -17.729, -2, -12.5537, -20.0824, -2, -13.3526, -5.6815, -2, -0.1764, -7.4463, -2, -2.271, -6.5224, -2, -2.6537, -5.6815, -2, -0.1764, -6.6474, -2, 0.0824, -7.4463, -2, -2.271, -15, -5, -12.3205, -13.4335, -5, -10.0737, -12.8248, -5, -10.8671, -15, -5, -12.3205, -15.5, -5, -11.4545, -13.4335, -5, -10.0737, -19.8236, -2, -14.3185, -22.52, -2, -13.8375, -22.3895, -2, -14.8289, -19.8236, -2, -14.3185, -20.0824, -2, -13.3526, -22.52, -2, -13.8375, -5.1711, -5, 2.3895, -5.9979, -5, 5, -5, -5, 5, -5.1711, -5, 2.3895, -6.1625, -5, 2.52, -5.9979, -5, 5, -6.5224, -2, -2.6537, -8.5455, -2, -4.5, -7.6795, -2, -5, -6.5224, -2, -2.6537, -7.4463, -2, -2.271, -8.5455, -2, -4.5, -17.3463, -5, -13.4776, -15.5, -5, -11.4545, -15, -5, -12.3205, -17.3463, -5, -13.4776, -17.729, -5, -12.5537, -15.5, -5, -11.4545, -22.3895, -2, -14.8289, -25, -2, -14.0021, -25, -2, -15, -22.3895, -2, -14.8289, -22.52, -2, -13.8375, -25, -2, -14.0021, -5.6815, -5, -0.1764, -6.1625, -5, 2.52, -5.1711, -5, 2.3895, -5.6815, -5, -0.1764, -6.6474, -5, 0.0824, -6.1625, -5, 2.52, -7.6795, -2, -5, -9.9263, -2, -6.5665, -9.1329, -2, -7.1752, -7.6795, -2, -5, -8.5455, -2, -4.5, -9.9263, -2, -6.5665, -19.8236, -5, -14.3185, -17.729, -5, -12.5537, -17.3463, -5, -13.4776, -19.8236, -5, -14.3185, -20.0824, -5, -13.3526, -17.729, -5, -12.5537, -6.5224, -5, -2.6537, -6.6474, -5, 0.0824, -5.6815, -5, -0.1764, -6.5224, -5, -2.6537, -7.4463, -5, -2.271, -6.6474, -5, 0.0824, -9.1329, -2, -7.1752, -11.565, -2, -8.435, -10.8579, -2, -9.1421, -9.1329, -2, -7.1752, -9.9263, -2, -6.5665, -11.565, -2, -8.435) + +[node name="flat_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_58f2h") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 4.5, 0) +mesh = ExtResource("2_jgrr8") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 4.5, 0) +shape = SubResource("ConcavePolygonShape3D_n3qp6") diff --git a/assets/blocks/walls/small_curved_wall_inner.tscn b/assets/blocks/walls/small_curved_wall_inner.tscn new file mode 100644 index 0000000..5723d86 --- /dev/null +++ b/assets/blocks/walls/small_curved_wall_inner.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3 uid="uid://clxoturhpmobw"] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_58f2h"] +[ext_resource type="ArrayMesh" uid="uid://cwdxvx27qpdok" path="res://assets/meshes/walls/small_curved_wall_inner.tres" id="2_2wepk"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_11pkl"] +data = PackedVector3Array(-7.2513, 2.5, -9.9671, -4.6854, -0.5, -9.4567, -7.2513, -0.5, -9.9671, -7.2513, 2.5, -9.9671, -4.6854, 2.5, -9.4567, -4.6854, -0.5, -9.4567, -9.8618, 2.5, -10.1382, -7.2513, -0.5, -9.9671, -9.8618, -0.5, -10.1382, -9.8618, 2.5, -10.1382, -7.2513, 2.5, -9.9671, -7.2513, -0.5, -9.9671, -4.6854, 2.5, -9.4567, -2.2081, -0.5, -8.6158, -4.6854, -0.5, -9.4567, -4.6854, 2.5, -9.4567, -2.2081, 2.5, -8.6158, -2.2081, -0.5, -8.6158, 0.1382, 2.5, -7.4587, 2.3134, -0.5, -6.0053, 0.1382, -0.5, -7.4587, 0.1382, 2.5, -7.4587, 2.3134, 2.5, -6.0053, 2.3134, -0.5, -6.0053, -2.2081, 2.5, -8.6158, 0.1382, -0.5, -7.4587, -2.2081, -0.5, -8.6158, -2.2081, 2.5, -8.6158, 0.1382, 2.5, -7.4587, 0.1382, -0.5, -7.4587, 2.3134, 2.5, -6.0053, 4.2803, -0.5, -4.2803, 2.3134, -0.5, -6.0053, 2.3134, 2.5, -6.0053, 4.2803, 2.5, -4.2803, 4.2803, -0.5, -4.2803, 6.0053, 2.5, -2.3134, 7.4587, -0.5, -0.1382, 6.0053, -0.5, -2.3134, 6.0053, 2.5, -2.3134, 7.4587, 2.5, -0.1382, 7.4587, -0.5, -0.1382, 4.2803, 2.5, -4.2803, 6.0053, -0.5, -2.3134, 4.2803, -0.5, -4.2803, 4.2803, 2.5, -4.2803, 6.0053, 2.5, -2.3134, 6.0053, -0.5, -2.3134, 7.4587, 2.5, -0.1382, 8.6158, -0.5, 2.2081, 7.4587, -0.5, -0.1382, 7.4587, 2.5, -0.1382, 8.6158, 2.5, 2.2081, 8.6158, -0.5, 2.2081, 9.4567, 2.5, 4.6854, 9.9671, -0.5, 7.2513, 9.4567, -0.5, 4.6854, 9.4567, 2.5, 4.6854, 9.9671, 2.5, 7.2513, 9.9671, -0.5, 7.2513, 8.6158, 2.5, 2.2081, 9.4567, -0.5, 4.6854, 8.6158, -0.5, 2.2081, 8.6158, 2.5, 2.2081, 9.4567, 2.5, 4.6854, 9.4567, -0.5, 4.6854, 9.9671, 2.5, 7.2513, 10.1382, -0.5, 9.8618, 9.9671, -0.5, 7.2513, 9.9671, 2.5, 7.2513, 10.1382, 2.5, 9.8618, 10.1382, -0.5, 9.8618, -7.1208, 2.5, -10.9585, -4.4266, -0.5, -10.4226, -4.4266, 2.5, -10.4226, -7.1208, 2.5, -10.9585, -7.1208, -0.5, -10.9585, -4.4266, -0.5, -10.4226, -9.8618, 2.5, -11.1382, -7.1208, -0.5, -10.9585, -7.1208, 2.5, -10.9585, -9.8618, 2.5, -11.1382, -9.8618, -0.5, -11.1382, -7.1208, -0.5, -10.9585, -4.4266, 2.5, -10.4226, -1.8255, -0.5, -9.5397, -1.8255, 2.5, -9.5397, -4.4266, 2.5, -10.4226, -4.4266, -0.5, -10.4226, -1.8255, -0.5, -9.5397, 0.6382, 2.5, -8.3247, 2.9222, -0.5, -6.7986, 2.9222, 2.5, -6.7986, 0.6382, 2.5, -8.3247, 0.6382, -0.5, -8.3247, 2.9222, -0.5, -6.7986, -1.8255, 2.5, -9.5397, 0.6382, -0.5, -8.3247, 0.6382, 2.5, -8.3247, -1.8255, 2.5, -9.5397, -1.8255, -0.5, -9.5397, 0.6382, -0.5, -8.3247, 2.9222, 2.5, -6.7986, 4.9874, -0.5, -4.9874, 4.9874, 2.5, -4.9874, 2.9222, 2.5, -6.7986, 2.9222, -0.5, -6.7986, 4.9874, -0.5, -4.9874, 6.7986, 2.5, -2.9222, 8.3247, -0.5, -0.6382, 8.3247, 2.5, -0.6382, 6.7986, 2.5, -2.9222, 6.7986, -0.5, -2.9222, 8.3247, -0.5, -0.6382, 4.9874, 2.5, -4.9874, 6.7986, -0.5, -2.9222, 6.7986, 2.5, -2.9222, 4.9874, 2.5, -4.9874, 4.9874, -0.5, -4.9874, 6.7986, -0.5, -2.9222, 8.3247, 2.5, -0.6382, 9.5397, -0.5, 1.8254, 9.5397, 2.5, 1.8254, 8.3247, 2.5, -0.6382, 8.3247, -0.5, -0.6382, 9.5397, -0.5, 1.8254, 10.4226, 2.5, 4.4266, 10.9585, -0.5, 7.1207, 10.9585, 2.5, 7.1207, 10.4226, 2.5, 4.4266, 10.4226, -0.5, 4.4266, 10.9585, -0.5, 7.1207, 9.5397, 2.5, 1.8254, 10.4226, -0.5, 4.4266, 10.4226, 2.5, 4.4266, 9.5397, 2.5, 1.8254, 9.5397, -0.5, 1.8254, 10.4226, -0.5, 4.4266, 10.9585, 2.5, 7.1207, 11.1382, -0.5, 9.8618, 11.1382, 2.5, 9.8618, 10.9585, 2.5, 7.1207, 10.9585, -0.5, 7.1207, 11.1382, -0.5, 9.8618, 0.1382, 2.5, -7.4587, 2.9222, 2.5, -6.7986, 2.3134, 2.5, -6.0053, 0.1382, 2.5, -7.4587, 0.6382, 2.5, -8.3247, 2.9222, 2.5, -6.7986, 8.6158, 2.5, 2.2081, 10.4226, 2.5, 4.4266, 9.4567, 2.5, 4.6854, 8.6158, 2.5, 2.2081, 9.5397, 2.5, 1.8254, 10.4226, 2.5, 4.4266, -4.6854, 2.5, -9.4567, -1.8255, 2.5, -9.5397, -2.2081, 2.5, -8.6158, -4.6854, 2.5, -9.4567, -4.4266, 2.5, -10.4226, -1.8255, 2.5, -9.5397, 7.4587, -0.5, -0.1382, 6.7986, -0.5, -2.9222, 6.0053, -0.5, -2.3134, 7.4587, -0.5, -0.1382, 8.3247, -0.5, -0.6382, 6.7986, -0.5, -2.9222, -2.2081, -0.5, -8.6158, -4.4266, -0.5, -10.4226, -4.6854, -0.5, -9.4567, -2.2081, -0.5, -8.6158, -1.8255, -0.5, -9.5397, -4.4266, -0.5, -10.4226, 6.0053, 2.5, -2.3134, 8.3247, 2.5, -0.6382, 7.4587, 2.5, -0.1382, 6.0053, 2.5, -2.3134, 6.7986, 2.5, -2.9222, 8.3247, 2.5, -0.6382, -9.8618, 2.5, -10.1382, -7.1208, 2.5, -10.9585, -7.2513, 2.5, -9.9671, -9.8618, 2.5, -10.1382, -9.8618, 2.5, -11.1382, -7.1208, 2.5, -10.9585, 2.3134, 2.5, -6.0053, 4.9874, 2.5, -4.9874, 4.2803, 2.5, -4.2803, 2.3134, 2.5, -6.0053, 2.9222, 2.5, -6.7986, 4.9874, 2.5, -4.9874, 9.9671, -0.5, 7.2513, 10.4226, -0.5, 4.4266, 9.4567, -0.5, 4.6854, 9.9671, -0.5, 7.2513, 10.9585, -0.5, 7.1207, 10.4226, -0.5, 4.4266, -7.2513, -0.5, -9.9671, -9.8618, -0.5, -11.1382, -9.8618, -0.5, -10.1382, -7.2513, -0.5, -9.9671, -7.1208, -0.5, -10.9585, -9.8618, -0.5, -11.1382, 4.2803, -0.5, -4.2803, 2.9222, -0.5, -6.7986, 2.3134, -0.5, -6.0053, 4.2803, -0.5, -4.2803, 4.9874, -0.5, -4.9874, 2.9222, -0.5, -6.7986, 9.4567, 2.5, 4.6854, 10.9585, 2.5, 7.1207, 9.9671, 2.5, 7.2513, 9.4567, 2.5, 4.6854, 10.4226, 2.5, 4.4266, 10.9585, 2.5, 7.1207, -2.2081, 2.5, -8.6158, 0.6382, 2.5, -8.3247, 0.1382, 2.5, -7.4587, -2.2081, 2.5, -8.6158, -1.8255, 2.5, -9.5397, 0.6382, 2.5, -8.3247, 7.4587, 2.5, -0.1382, 9.5397, 2.5, 1.8254, 8.6158, 2.5, 2.2081, 7.4587, 2.5, -0.1382, 8.3247, 2.5, -0.6382, 9.5397, 2.5, 1.8254, 10.1382, 2.5, 9.8618, 11.1382, -0.5, 9.8618, 10.1382, -0.5, 9.8618, 10.1382, 2.5, 9.8618, 11.1382, 2.5, 9.8618, 11.1382, -0.5, 9.8618, 0.1382, -0.5, -7.4587, -1.8255, -0.5, -9.5397, -2.2081, -0.5, -8.6158, 0.1382, -0.5, -7.4587, 0.6382, -0.5, -8.3247, -1.8255, -0.5, -9.5397, 8.6158, -0.5, 2.2081, 8.3247, -0.5, -0.6382, 7.4587, -0.5, -0.1382, 8.6158, -0.5, 2.2081, 9.5397, -0.5, 1.8254, 8.3247, -0.5, -0.6382, -4.6854, -0.5, -9.4567, -7.1208, -0.5, -10.9585, -7.2513, -0.5, -9.9671, -4.6854, -0.5, -9.4567, -4.4266, -0.5, -10.4226, -7.1208, -0.5, -10.9585, 4.2803, 2.5, -4.2803, 6.7986, 2.5, -2.9222, 6.0053, 2.5, -2.3134, 4.2803, 2.5, -4.2803, 4.9874, 2.5, -4.9874, 6.7986, 2.5, -2.9222, 9.9671, 2.5, 7.2513, 11.1382, 2.5, 9.8618, 10.1382, 2.5, 9.8618, 9.9671, 2.5, 7.2513, 10.9585, 2.5, 7.1207, 11.1382, 2.5, 9.8618, -7.2513, 2.5, -9.9671, -4.4266, 2.5, -10.4226, -4.6854, 2.5, -9.4567, -7.2513, 2.5, -9.9671, -7.1208, 2.5, -10.9585, -4.4266, 2.5, -10.4226, 6.0053, -0.5, -2.3134, 4.9874, -0.5, -4.9874, 4.2803, -0.5, -4.2803, 6.0053, -0.5, -2.3134, 6.7986, -0.5, -2.9222, 4.9874, -0.5, -4.9874, 10.1382, -0.5, 9.8618, 10.9585, -0.5, 7.1207, 9.9671, -0.5, 7.2513, 10.1382, -0.5, 9.8618, 11.1382, -0.5, 9.8618, 10.9585, -0.5, 7.1207, 2.3134, -0.5, -6.0053, 0.6382, -0.5, -8.3247, 0.1382, -0.5, -7.4587, 2.3134, -0.5, -6.0053, 2.9222, -0.5, -6.7986, 0.6382, -0.5, -8.3247, 9.4567, -0.5, 4.6854, 9.5397, -0.5, 1.8254, 8.6158, -0.5, 2.2081, 9.4567, -0.5, 4.6854, 10.4226, -0.5, 4.4266, 9.5397, -0.5, 1.8254, -9.8618, -0.5, -10.1382, -9.8618, 2.5, -11.1382, -9.8618, 2.5, -10.1382, -9.8618, -0.5, -10.1382, -9.8618, -0.5, -11.1382, -9.8618, 2.5, -11.1382) + +[node name="flat_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_58f2h") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.0613899, 0, 0.122786) +mesh = ExtResource("2_2wepk") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +shape = SubResource("ConcavePolygonShape3D_11pkl") diff --git a/assets/blocks/walls/tall_corner_diagonal_wall.tscn b/assets/blocks/walls/tall_corner_diagonal_wall.tscn new file mode 100644 index 0000000..0ac1a00 --- /dev/null +++ b/assets/blocks/walls/tall_corner_diagonal_wall.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3 uid="uid://cvagg3inem8cy"] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_q6ubx"] +[ext_resource type="ArrayMesh" uid="uid://c4d2oixq5f5uq" path="res://assets/meshes/walls/tall_corner_diagonal_wall.tres" id="2_jshw1"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_ud3fk"] +points = PackedVector3Array(-5.00071, -0.5, -5, -5.00071, 2.4998, -5, 5, -0.5, 4.99966, -5.70711, -0.5, -4.2936, -5.70711, 2.4998, -4.2936, 5, 5, 4.99966, 4.29255, -0.5, 5.70711, 4.29255, 5, 5.70711) + +[node name="tall_corner_diagonal_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_q6ubx") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +editor_description = "cant use boxmesh cuz uvs wierd" +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +mesh = ExtResource("2_jshw1") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +shape = SubResource("ConvexPolygonShape3D_ud3fk") diff --git a/assets/blocks/walls/tall_diagonal_wall.tscn b/assets/blocks/walls/tall_diagonal_wall.tscn new file mode 100644 index 0000000..361e522 --- /dev/null +++ b/assets/blocks/walls/tall_diagonal_wall.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_sidsm"] +[ext_resource type="ArrayMesh" uid="uid://pe8b3dso12w3" path="res://assets/meshes/walls/tall_diagonal_wall.tres" id="2_xt8ec"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_s8eep"] +points = PackedVector3Array(5, 7.5, 6, 5, 7.5, 5, -5, 2.5, 6, 5, -0.5, 6, 5, -0.5, 5, -5, 2.5, 5, -5, -0.5, 6, -5, -0.5, 5) + +[node name="tall_diagonal_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_sidsm") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0) +mesh = ExtResource("2_xt8ec") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0) +visible = false +shape = SubResource("ConvexPolygonShape3D_s8eep") diff --git a/assets/blocks/walls/tall_wall.tscn b/assets/blocks/walls/tall_wall.tscn new file mode 100644 index 0000000..615a879 --- /dev/null +++ b/assets/blocks/walls/tall_wall.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3 uid="uid://8mjs78vkeleb"] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_xbiyt"] +[ext_resource type="ArrayMesh" uid="uid://dfs62b7cohday" path="res://assets/meshes/walls/tall_wall.tres" id="2_kc1g3"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_n6nfl"] +size = Vector3(10, 5.5, 1) + +[node name="flat_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_xbiyt") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +editor_description = "cant use boxmesh cuz uvs wierd" +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +mesh = ExtResource("2_kc1g3") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.25, -5.5) +shape = SubResource("BoxShape3D_n6nfl") diff --git a/assets/blocks/walls/turn_wall.tscn b/assets/blocks/walls/turn_wall.tscn new file mode 100644 index 0000000..5fe5598 --- /dev/null +++ b/assets/blocks/walls/turn_wall.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://bfe6ps3cjf37j"] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_o1ifj"] +[ext_resource type="ArrayMesh" uid="uid://d27ytirksdd4d" path="res://assets/meshes/walls/turn_wall.tres" id="2_xc7vs"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ahxbf"] +data = PackedVector3Array(1.4789, -0.5, -3.1402, 1, -0.5, -4.6603, 0.5, -0.5, -3.7942, 1.4789, -0.5, -3.1402, 2.0876, -0.5, -3.9335, 1, -0.5, -4.6603, 4.923, -0.5, 2.8253, 5, 2.4, 4, 5, -0.5, 4, 4.923, -0.5, 2.8253, 4.923, 2.3, 2.8253, 5, 2.4, 4, -5, -0.5, -5, -5, 2.5, -6, -5, 2.5, -5, -5, -0.5, -5, -5, -0.5, -6, -5, 2.5, -6, 0.5, 2, -3.7942, 2.0876, 2.5, -3.9335, 1.4789, 1.9, -3.1402, 0.5, 2, -3.7942, 1, 2.5, -4.6603, 2.0876, 2.5, -3.9335, -2.8253, -0.5, -4.923, -3.9673, -0.5, -5.9995, -4, -0.5, -5, -2.8253, -0.5, -4.923, -2.6947, -0.5, -5.9144, -3.9673, -0.5, -5.9995, 4.6933, -0.5, 1.6706, 5.2388, -0.5, 0.1732, 4.3149, -0.5, 0.5558, 4.6933, -0.5, 1.6706, 5.6593, -0.5, 1.4118, 5.2388, -0.5, 0.1732, -4, 2.4, -5, -2.6947, 2.5, -5.9144, -2.8253, 2.3, -4.923, -4, 2.4, -5, -3.9673, 2.5, -5.9995, -2.6947, 2.5, -5.9144, 4.3149, 2.1, 0.5558, 5.6593, 2.5, 1.4118, 4.6933, 2.2, 1.6706, 4.3149, 2.1, 0.5558, 5.2388, 2.5, 0.1732, 5.6593, 2.5, 1.4118, 2.364, -0.5, -2.364, 2.0876, -0.5, -3.9335, 1.4789, -0.5, -3.1402, 2.364, -0.5, -2.364, 3.0711, -0.5, -3.0711, 2.0876, -0.5, -3.9335, 1.4789, 1.9, -3.1402, 3.0711, 2.5, -3.0711, 2.364, 1.9, -2.364, 1.4789, 1.9, -3.1402, 2.0876, 2.5, -3.9335, 3.0711, 2.5, -3.0711, -1.6706, -0.5, -4.6933, -2.6947, -0.5, -5.9144, -2.8253, -0.5, -4.923, -1.6706, -0.5, -4.6933, -1.4118, -0.5, -5.6593, -2.6947, -0.5, -5.9144, 4.923, -0.5, 2.8253, 5.6593, -0.5, 1.4118, 4.6933, -0.5, 1.6706, 4.923, -0.5, 2.8253, 5.9144, -0.5, 2.6947, 5.6593, -0.5, 1.4118, -2.8253, 2.3, -4.923, -1.4118, 2.5, -5.6593, -1.6706, 2.2, -4.6933, -2.8253, 2.3, -4.923, -2.6947, 2.5, -5.9144, -1.4118, 2.5, -5.6593, 4.6933, 2.2, 1.6706, 5.9144, 2.5, 2.6947, 4.923, 2.3, 2.8253, 4.6933, 2.2, 1.6706, 5.6593, 2.5, 1.4118, 5.9144, 2.5, 2.6947, 3.1402, -0.5, -1.4789, 3.0711, -0.5, -3.0711, 2.364, -0.5, -2.364, 3.1402, -0.5, -1.4789, 3.9335, -0.5, -2.0876, 3.0711, -0.5, -3.0711, 5.9995, -0.5, 3.9673, 6, 2.5, 5, 5.9995, 2.5, 3.9673, 5.9995, -0.5, 3.9673, 6, -0.5, 5, 6, 2.5, 5, -5, -0.5, -6, -3.9673, 2.5, -5.9995, -5, 2.5, -6, -5, -0.5, -6, -3.9673, -0.5, -5.9995, -3.9673, 2.5, -5.9995, 5.9995, 2.5, 3.9673, 5.9144, -0.5, 2.6947, 5.9995, -0.5, 3.9673, 5.9995, 2.5, 3.9673, 5.9144, 2.5, 2.6947, 5.9144, -0.5, 2.6947, 5.9144, 2.5, 2.6947, 5.6593, -0.5, 1.4118, 5.9144, -0.5, 2.6947, 5.9144, 2.5, 2.6947, 5.6593, 2.5, 1.4118, 5.6593, -0.5, 1.4118, 5.6593, 2.5, 1.4118, 5.2388, -0.5, 0.1732, 5.6593, -0.5, 1.4118, 5.6593, 2.5, 1.4118, 5.2388, 2.5, 0.1732, 5.2388, -0.5, 0.1732, 5.2388, 2.5, 0.1732, 4.6603, -0.5, -1, 5.2388, -0.5, 0.1732, 5.2388, 2.5, 0.1732, 4.6603, 2.5, -1, 4.6603, -0.5, -1, 4.6603, 2.5, -1, 3.9335, -0.5, -2.0876, 4.6603, -0.5, -1, 4.6603, 2.5, -1, 3.9335, 2.5, -2.0876, 3.9335, -0.5, -2.0876, 3.9335, 2.5, -2.0876, 3.0711, -0.5, -3.0711, 3.9335, -0.5, -2.0876, 3.9335, 2.5, -2.0876, 3.0711, 2.5, -3.0711, 3.0711, -0.5, -3.0711, 3.0711, 2.5, -3.0711, 2.0876, -0.5, -3.9335, 3.0711, -0.5, -3.0711, 3.0711, 2.5, -3.0711, 2.0876, 2.5, -3.9335, 2.0876, -0.5, -3.9335, 2.0876, 2.5, -3.9335, 1, -0.5, -4.6603, 2.0876, -0.5, -3.9335, 2.0876, 2.5, -3.9335, 1, 2.5, -4.6603, 1, -0.5, -4.6603, 1, 2.5, -4.6603, -0.1732, -0.5, -5.2388, 1, -0.5, -4.6603, 1, 2.5, -4.6603, -0.1732, 2.5, -5.2388, -0.1732, -0.5, -5.2388, -0.1732, 2.5, -5.2388, -1.4118, -0.5, -5.6593, -0.1732, -0.5, -5.2388, -0.1732, 2.5, -5.2388, -1.4118, 2.5, -5.6593, -1.4118, -0.5, -5.6593, -1.4118, 2.5, -5.6593, -2.6947, -0.5, -5.9144, -1.4118, -0.5, -5.6593, -1.4118, 2.5, -5.6593, -2.6947, 2.5, -5.9144, -2.6947, -0.5, -5.9144, -2.6947, 2.5, -5.9144, -3.9673, -0.5, -5.9995, -2.6947, -0.5, -5.9144, -2.6947, 2.5, -5.9144, -3.9673, 2.5, -5.9995, -3.9673, -0.5, -5.9995, 3.7942, 2, -0.5, 5.2388, 2.5, 0.1732, 4.3149, 2.1, 0.5558, 3.7942, 2, -0.5, 4.6603, 2.5, -1, 5.2388, 2.5, 0.1732, -4, -0.5, -5, -5, -0.5, -6, -5, -0.5, -5, -4, -0.5, -5, -3.9673, -0.5, -5.9995, -5, -0.5, -6, 5, 2.5, 5, 6, -0.5, 5, 5, -0.5, 5, 5, 2.5, 5, 6, 2.5, 5, 6, -0.5, 5, 4.3149, -0.5, 0.5558, 4.6603, -0.5, -1, 3.7942, -0.5, -0.5, 4.3149, -0.5, 0.5558, 5.2388, -0.5, 0.1732, 4.6603, -0.5, -1, 5, -0.5, 5, 5.9995, -0.5, 3.9673, 5, -0.5, 4, 5, -0.5, 5, 6, -0.5, 5, 5.9995, -0.5, 3.9673, -0.5558, 2.1, -4.3149, 1, 2.5, -4.6603, 0.5, 2, -3.7942, -0.5558, 2.1, -4.3149, -0.1732, 2.5, -5.2388, 1, 2.5, -4.6603, -5, 2.5, -5, -3.9673, 2.5, -5.9995, -4, 2.4, -5, -5, 2.5, -5, -5, 2.5, -6, -3.9673, 2.5, -5.9995, 0.5, -0.5, -3.7942, -0.1732, -0.5, -5.2388, -0.5558, -0.5, -4.3149, 0.5, -0.5, -3.7942, 1, -0.5, -4.6603, -0.1732, -0.5, -5.2388, 3.1402, 1.9, -1.4789, 4.6603, 2.5, -1, 3.7942, 2, -0.5, 3.1402, 1.9, -1.4789, 3.9335, 2.5, -2.0876, 4.6603, 2.5, -1, 5, 2.4, 4, 6, 2.5, 5, 5, 2.5, 5, 5, 2.4, 4, 5.9995, 2.5, 3.9673, 6, 2.5, 5, 4.923, 2.3, 2.8253, 5.9995, 2.5, 3.9673, 5, 2.4, 4, 4.923, 2.3, 2.8253, 5.9144, 2.5, 2.6947, 5.9995, 2.5, 3.9673, 3.7942, -0.5, -0.5, 3.9335, -0.5, -2.0876, 3.1402, -0.5, -1.4789, 3.7942, -0.5, -0.5, 4.6603, -0.5, -1, 3.9335, -0.5, -2.0876, -1.6706, 2.2, -4.6933, -0.1732, 2.5, -5.2388, -0.5558, 2.1, -4.3149, -1.6706, 2.2, -4.6933, -1.4118, 2.5, -5.6593, -0.1732, 2.5, -5.2388, 5, -0.5, 4, 5.9144, -0.5, 2.6947, 4.923, -0.5, 2.8253, 5, -0.5, 4, 5.9995, -0.5, 3.9673, 5.9144, -0.5, 2.6947, -0.5558, -0.5, -4.3149, -1.4118, -0.5, -5.6593, -1.6706, -0.5, -4.6933, -0.5558, -0.5, -4.3149, -0.1732, -0.5, -5.2388, -1.4118, -0.5, -5.6593, 2.364, 1.9, -2.364, 3.9335, 2.5, -2.0876, 3.1402, 1.9, -1.4789, 2.364, 1.9, -2.364, 3.0711, 2.5, -3.0711, 3.9335, 2.5, -2.0876, -2.8253, -0.5, -4.923, -1.6706, 2.2, -4.6933, -1.6706, -0.5, -4.6933, -2.8253, -0.5, -4.923, -2.8253, 2.3, -4.923, -1.6706, 2.2, -4.6933, -1.6706, -0.5, -4.6933, -0.5558, 2.1, -4.3149, -0.5558, -0.5, -4.3149, -1.6706, -0.5, -4.6933, -1.6706, 2.2, -4.6933, -0.5558, 2.1, -4.3149, -0.5558, -0.5, -4.3149, 0.5, 2, -3.7942, 0.5, -0.5, -3.7942, -0.5558, -0.5, -4.3149, -0.5558, 2.1, -4.3149, 0.5, 2, -3.7942, 0.5, -0.5, -3.7942, 1.4789, 1.9, -3.1402, 1.4789, -0.5, -3.1402, 0.5, -0.5, -3.7942, 0.5, 2, -3.7942, 1.4789, 1.9, -3.1402, 1.4789, -0.5, -3.1402, 2.364, 1.9, -2.364, 2.364, -0.5, -2.364, 1.4789, -0.5, -3.1402, 1.4789, 1.9, -3.1402, 2.364, 1.9, -2.364, 2.364, -0.5, -2.364, 3.1402, 1.9, -1.4789, 3.1402, -0.5, -1.4789, 2.364, -0.5, -2.364, 2.364, 1.9, -2.364, 3.1402, 1.9, -1.4789, 3.1402, -0.5, -1.4789, 3.7942, 2, -0.5, 3.7942, -0.5, -0.5, 3.1402, -0.5, -1.4789, 3.1402, 1.9, -1.4789, 3.7942, 2, -0.5, 3.7942, -0.5, -0.5, 4.3149, 2.1, 0.5558, 4.3149, -0.5, 0.5558, 3.7942, -0.5, -0.5, 3.7942, 2, -0.5, 4.3149, 2.1, 0.5558, 4.3149, -0.5, 0.5558, 4.6933, 2.2, 1.6706, 4.6933, -0.5, 1.6706, 4.3149, -0.5, 0.5558, 4.3149, 2.1, 0.5558, 4.6933, 2.2, 1.6706, 4.6933, -0.5, 1.6706, 4.923, 2.3, 2.8253, 4.923, -0.5, 2.8253, 4.6933, -0.5, 1.6706, 4.6933, 2.2, 1.6706, 4.923, 2.3, 2.8253, 5, 2.4, 4, 5, -0.5, 5, 5, -0.5, 4, 5, 2.4, 4, 5, 2.5, 5, 5, -0.5, 5, -4, -0.5, -5, -2.8253, 2.3, -4.923, -2.8253, -0.5, -4.923, -4, -0.5, -5, -4, 2.4, -5, -2.8253, 2.3, -4.923, -5, -0.5, -5, -4, 2.4, -5, -4, -0.5, -5, -5, -0.5, -5, -5, 2.5, -5, -4, 2.4, -5) + +[node name="turn_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_o1ifj") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +mesh = ExtResource("2_xc7vs") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +visible = false +shape = SubResource("ConcavePolygonShape3D_ahxbf") diff --git a/assets/blocks/walls/turn_wall_inner.tscn b/assets/blocks/walls/turn_wall_inner.tscn new file mode 100644 index 0000000..cf3f19a --- /dev/null +++ b/assets/blocks/walls/turn_wall_inner.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3 uid="uid://bm34lkdsai4fq"] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_41e1s"] +[ext_resource type="ArrayMesh" uid="uid://bx645tiy0eiik" path="res://assets/meshes/walls/turn_wall_inner.tres" id="2_a5kcq"] + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_uwi24"] +data = PackedVector3Array(-9.8618, -0.5, -0.1382, -8.5565, 2.5, -0.0526, -9.8618, 2.5, -0.1382, -9.8618, -0.5, -0.1382, -8.5565, -0.5, -0.0526, -8.5565, 2.5, -0.0526, -7.2736, -0.5, 0.2025, -6.035, 2.5, 0.623, -7.2736, 2.5, 0.2025, -7.2736, -0.5, 0.2025, -6.035, -0.5, 0.623, -6.035, 2.5, 0.623, -8.5565, -0.5, -0.0526, -7.2736, 2.5, 0.2025, -8.5565, 2.5, -0.0526, -8.5565, -0.5, -0.0526, -7.2736, -0.5, 0.2025, -7.2736, 2.5, 0.2025, -6.035, -0.5, 0.623, -4.8618, 2.5, 1.2015, -6.035, 2.5, 0.623, -6.035, -0.5, 0.623, -4.8618, -0.5, 1.2015, -4.8618, 2.5, 1.2015, -4.8618, -0.5, 1.2015, -3.7742, 2.5, 1.9283, -4.8618, 2.5, 1.2015, -4.8618, -0.5, 1.2015, -3.7742, -0.5, 1.9283, -3.7742, 2.5, 1.9283, -3.7742, -0.5, 1.9283, -2.7907, 2.5, 2.7907, -3.7742, 2.5, 1.9283, -3.7742, -0.5, 1.9283, -2.7907, -0.5, 2.7907, -2.7907, 2.5, 2.7907, -2.7907, -0.5, 2.7907, -1.9283, 2.5, 3.7742, -2.7907, 2.5, 2.7907, -2.7907, -0.5, 2.7907, -1.9283, -0.5, 3.7742, -1.9283, 2.5, 3.7742, -1.9283, -0.5, 3.7742, -1.2015, 2.5, 4.8618, -1.9283, 2.5, 3.7742, -1.9283, -0.5, 3.7742, -1.2015, -0.5, 4.8618, -1.2015, 2.5, 4.8618, -1.2015, -0.5, 4.8618, -0.623, 2.5, 6.035, -1.2015, 2.5, 4.8618, -1.2015, -0.5, 4.8618, -0.623, -0.5, 6.035, -0.623, 2.5, 6.035, -0.623, -0.5, 6.035, -0.2025, 2.5, 7.2736, -0.623, 2.5, 6.035, -0.623, -0.5, 6.035, -0.2025, -0.5, 7.2736, -0.2025, 2.5, 7.2736, -0.2025, -0.5, 7.2736, 0.0526, 2.5, 8.5565, -0.2025, 2.5, 7.2736, -0.2025, -0.5, 7.2736, 0.0526, -0.5, 8.5565, 0.0526, 2.5, 8.5565, 0.0526, -0.5, 8.5565, 0.1382, 2.5, 9.8618, 0.0526, 2.5, 8.5565, 0.0526, -0.5, 8.5565, 0.1382, -0.5, 9.8618, 0.1382, 2.5, 9.8618, -9.8618, -0.5, 0.8618, -8.6871, 2.5, 0.9388, -8.6871, -0.5, 0.9388, -9.8618, -0.5, 0.8618, -9.8618, 2.5, 0.8618, -8.6871, 2.5, 0.9388, -7.5324, -0.5, 1.1685, -6.4177, 2.5, 1.5469, -6.4177, -0.5, 1.5469, -7.5324, -0.5, 1.1685, -7.5324, 2.5, 1.1685, -6.4177, 2.5, 1.5469, -8.6871, -0.5, 0.9388, -7.5324, 2.5, 1.1685, -7.5324, -0.5, 1.1685, -8.6871, -0.5, 0.9388, -8.6871, 2.5, 0.9388, -7.5324, 2.5, 1.1685, -6.4177, -0.5, 1.5469, -5.3618, 2.5, 2.0676, -5.3618, -0.5, 2.0676, -6.4177, -0.5, 1.5469, -6.4177, 2.5, 1.5469, -5.3618, 2.5, 2.0676, -5.3618, -0.5, 2.0676, -4.3829, 2.5, 2.7216, -4.3829, -0.5, 2.7216, -5.3618, -0.5, 2.0676, -5.3618, 2.5, 2.0676, -4.3829, 2.5, 2.7216, -4.3829, -0.5, 2.7216, -3.4978, 2.5, 3.4978, -3.4978, -0.5, 3.4978, -4.3829, -0.5, 2.7216, -4.3829, 2.5, 2.7216, -3.4978, 2.5, 3.4978, -3.4978, -0.5, 3.4978, -2.7216, 2.5, 4.3829, -2.7216, -0.5, 4.3829, -3.4978, -0.5, 3.4978, -3.4978, 2.5, 3.4978, -2.7216, 2.5, 4.3829, -2.7216, -0.5, 4.3829, -2.0676, 2.5, 5.3618, -2.0676, -0.5, 5.3618, -2.7216, -0.5, 4.3829, -2.7216, 2.5, 4.3829, -2.0676, 2.5, 5.3618, -2.0676, -0.5, 5.3618, -1.5469, 2.5, 6.4176, -1.5469, -0.5, 6.4176, -2.0676, -0.5, 5.3618, -2.0676, 2.5, 5.3618, -1.5469, 2.5, 6.4176, -1.5469, -0.5, 6.4176, -1.1685, 2.5, 7.5324, -1.1685, -0.5, 7.5324, -1.5469, -0.5, 6.4176, -1.5469, 2.5, 6.4176, -1.1685, 2.5, 7.5324, -1.1685, -0.5, 7.5324, -0.9388, 2.5, 8.6871, -0.9388, -0.5, 8.6871, -1.1685, -0.5, 7.5324, -1.1685, 2.5, 7.5324, -0.9388, 2.5, 8.6871, -0.9388, -0.5, 8.6871, -0.8618, 2.5, 9.8618, -0.8618, -0.5, 9.8618, -0.9388, -0.5, 8.6871, -0.9388, 2.5, 8.6871, -0.8618, 2.5, 9.8618, -8.5565, -0.5, -0.0526, -7.5324, -0.5, 1.1685, -7.2736, -0.5, 0.2025, -8.5565, -0.5, -0.0526, -8.6871, -0.5, 0.9388, -7.5324, -0.5, 1.1685, -2.7907, -0.5, 2.7907, -2.7216, -0.5, 4.3829, -1.9283, -0.5, 3.7742, -2.7907, -0.5, 2.7907, -3.4978, -0.5, 3.4978, -2.7216, -0.5, 4.3829, 0.0526, -0.5, 8.5565, -0.8618, -0.5, 9.8618, 0.1382, -0.5, 9.8618, 0.0526, -0.5, 8.5565, -0.9388, -0.5, 8.6871, -0.8618, -0.5, 9.8618, -3.7742, 2.5, 1.9283, -5.3618, 2.5, 2.0676, -4.8618, 2.5, 1.2015, -3.7742, 2.5, 1.9283, -4.3829, 2.5, 2.7216, -5.3618, 2.5, 2.0676, -0.623, -0.5, 6.035, -1.1685, -0.5, 7.5324, -0.2025, -0.5, 7.2736, -0.623, -0.5, 6.035, -1.5469, -0.5, 6.4176, -1.1685, -0.5, 7.5324, -9.8618, 2.5, -0.1382, -9.8618, -0.5, 0.8618, -9.8618, -0.5, -0.1382, -9.8618, 2.5, -0.1382, -9.8618, 2.5, 0.8618, -9.8618, -0.5, 0.8618, -4.8618, -0.5, 1.2015, -4.3829, -0.5, 2.7216, -3.7742, -0.5, 1.9283, -4.8618, -0.5, 1.2015, -5.3618, -0.5, 2.0676, -4.3829, -0.5, 2.7216, -0.2025, 2.5, 7.2736, -1.5469, 2.5, 6.4176, -0.623, 2.5, 6.035, -0.2025, 2.5, 7.2736, -1.1685, 2.5, 7.5324, -1.5469, 2.5, 6.4176, -6.035, 2.5, 0.623, -7.5324, 2.5, 1.1685, -7.2736, 2.5, 0.2025, -6.035, 2.5, 0.623, -6.4177, 2.5, 1.5469, -7.5324, 2.5, 1.1685, -1.2015, 2.5, 4.8618, -2.7216, 2.5, 4.3829, -1.9283, 2.5, 3.7742, -1.2015, 2.5, 4.8618, -2.0676, 2.5, 5.3618, -2.7216, 2.5, 4.3829, -7.2736, -0.5, 0.2025, -6.4177, -0.5, 1.5469, -6.035, -0.5, 0.623, -7.2736, -0.5, 0.2025, -7.5324, -0.5, 1.1685, -6.4177, -0.5, 1.5469, -1.9283, -0.5, 3.7742, -2.0676, -0.5, 5.3618, -1.2015, -0.5, 4.8618, -1.9283, -0.5, 3.7742, -2.7216, -0.5, 4.3829, -2.0676, -0.5, 5.3618, -8.5565, 2.5, -0.0526, -9.8618, 2.5, 0.8618, -9.8618, 2.5, -0.1382, -8.5565, 2.5, -0.0526, -8.6871, 2.5, 0.9388, -9.8618, 2.5, 0.8618, -2.7907, 2.5, 2.7907, -4.3829, 2.5, 2.7216, -3.7742, 2.5, 1.9283, -2.7907, 2.5, 2.7907, -3.4978, 2.5, 3.4978, -4.3829, 2.5, 2.7216, 0.0526, 2.5, 8.5565, -1.1685, 2.5, 7.5324, -0.2025, 2.5, 7.2736, 0.0526, 2.5, 8.5565, -0.9388, 2.5, 8.6871, -1.1685, 2.5, 7.5324, -9.8618, -0.5, -0.1382, -8.6871, -0.5, 0.9388, -8.5565, -0.5, -0.0526, -9.8618, -0.5, -0.1382, -9.8618, -0.5, 0.8618, -8.6871, -0.5, 0.9388, -3.7742, -0.5, 1.9283, -3.4978, -0.5, 3.4978, -2.7907, -0.5, 2.7907, -3.7742, -0.5, 1.9283, -4.3829, -0.5, 2.7216, -3.4978, -0.5, 3.4978, -0.2025, -0.5, 7.2736, -0.9388, -0.5, 8.6871, 0.0526, -0.5, 8.5565, -0.2025, -0.5, 7.2736, -1.1685, -0.5, 7.5324, -0.9388, -0.5, 8.6871, -4.8618, 2.5, 1.2015, -6.4177, 2.5, 1.5469, -6.035, 2.5, 0.623, -4.8618, 2.5, 1.2015, -5.3618, 2.5, 2.0676, -6.4177, 2.5, 1.5469, -0.623, 2.5, 6.035, -2.0676, 2.5, 5.3618, -1.2015, 2.5, 4.8618, -0.623, 2.5, 6.035, -1.5469, 2.5, 6.4176, -2.0676, 2.5, 5.3618, 0.1382, -0.5, 9.8618, -0.8618, 2.5, 9.8618, 0.1382, 2.5, 9.8618, 0.1382, -0.5, 9.8618, -0.8618, -0.5, 9.8618, -0.8618, 2.5, 9.8618, -6.035, -0.5, 0.623, -5.3618, -0.5, 2.0676, -4.8618, -0.5, 1.2015, -6.035, -0.5, 0.623, -6.4177, -0.5, 1.5469, -5.3618, -0.5, 2.0676, -1.2015, -0.5, 4.8618, -1.5469, -0.5, 6.4176, -0.623, -0.5, 6.035, -1.2015, -0.5, 4.8618, -2.0676, -0.5, 5.3618, -1.5469, -0.5, 6.4176, -7.2736, 2.5, 0.2025, -8.6871, 2.5, 0.9388, -8.5565, 2.5, -0.0526, -7.2736, 2.5, 0.2025, -7.5324, 2.5, 1.1685, -8.6871, 2.5, 0.9388, -1.9283, 2.5, 3.7742, -3.4978, 2.5, 3.4978, -2.7907, 2.5, 2.7907, -1.9283, 2.5, 3.7742, -2.7216, 2.5, 4.3829, -3.4978, 2.5, 3.4978, 0.1382, 2.5, 9.8618, -0.9388, 2.5, 8.6871, 0.0526, 2.5, 8.5565, 0.1382, 2.5, 9.8618, -0.8618, 2.5, 9.8618, -0.9388, 2.5, 8.6871) + +[node name="turn_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_41e1s") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.173262, 0, 0.138609) +mesh = ExtResource("2_a5kcq") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.173262, 0, 0.138609) +shape = SubResource("ConcavePolygonShape3D_uwi24") diff --git a/assets/blocks/walls/x_wall.tscn b/assets/blocks/walls/x_wall.tscn new file mode 100644 index 0000000..a1865c1 --- /dev/null +++ b/assets/blocks/walls/x_wall.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=4 format=3 uid="uid://bxodo0cs3ewce"] + +[ext_resource type="Script" path="res://classes/wall.gd" id="1_iglgm"] +[ext_resource type="ArrayMesh" uid="uid://b7vu2ekwlvagf" path="res://assets/meshes/walls/x_wall.tres" id="2_rjvwv"] + +[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_vv844"] +points = PackedVector3Array(4.99985, -0.5, -5, 6, -0.5, -5, 3.5, -0.5, 0, 4.99985, 2.5, -5, 6, 2.5, -5, 6, -0.5, 5, 4.99985, -0.5, 5, 3.5, 2.5, 0, 6, 2.5, 5, 4.99985, 2.5, 5) + +[node name="x_wall" type="StaticBody3D" node_paths=PackedStringArray("mesh")] +collision_mask = 0 +input_ray_pickable = false +script = ExtResource("1_iglgm") +mesh = NodePath("mesh") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +mesh = ExtResource("2_rjvwv") + +[node name="collision" type="CollisionShape3D" parent="."] +editor_description = "this collision is inaccurate but should be fine" +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) +shape = SubResource("ConvexPolygonShape3D_vv844") diff --git a/assets/cars/cruella/cruella.blend b/assets/cars/cruella/cruella.blend Binary files differindex 19497b7..c9bc00f 100644 --- a/assets/cars/cruella/cruella.blend +++ b/assets/cars/cruella/cruella.blend diff --git a/assets/cars/engine.gd b/assets/cars/engine.gd index 911965e..09d1fe8 100644 --- a/assets/cars/engine.gd +++ b/assets/cars/engine.gd @@ -1,16 +1,24 @@ -extends EngineNoise +extends AudioStreamPlayer3D +class_name EngineNoise -@onready var car = get_parent().get_parent(); -@onready var player: AudioStreamPlayer3D = get_parent(); +@onready var strem: EngineStream = stream +@onready var car = get_parent() +var volume: float = 1: set = set_v, get = get_v func _ready() -> void: set_process(false) for i in 4: await RenderingServer.frame_post_draw # buffer underrun causes it to stop, and the cpu is busy when loading the track and rendering and stuff. https://github.com/godotengine/godot/pull/73162 - player.play() - set_stream(player.get_stream_playback()) + play() + strem.set_stream(get_stream_playback()) set_process(true) func _process(_d: float): - set_rpm(car.engine_rpm) - update() + strem.engine_rpm = car.engine_rpm + strem.update() + +func set_v(v: float) -> void: + strem.engine_volume = v + +func get_v() -> float: + return strem.engine_volume diff --git a/assets/cars/engine.tscn b/assets/cars/engine.tscn index 598833b..6135ed0 100644 --- a/assets/cars/engine.tscn +++ b/assets/cars/engine.tscn @@ -1,27 +1,12 @@ -[gd_scene load_steps=4 format=3 uid="uid://ceocarryg6o86"] +[gd_scene load_steps=3 format=3 uid="uid://ceocarryg6o86"] [ext_resource type="Script" path="res://assets/cars/engine.gd" id="1_12n5h"] -[sub_resource type="AudioStreamGenerator" id="AudioStreamGenerator_qo6ul"] -mix_rate = 30000.0 -buffer_length = 0.2 - -[sub_resource type="GDScript" id="GDScript_dvwcc"] -resource_name = "engine_inbetween" -script/source = "extends AudioStreamPlayer3D - -@onready var gen: EngineNoise = $generator - -@onready var volume: float: # not decibels - set(v): - volume = v - gen.set_volume(v) -" +[sub_resource type="EngineStream" id="EngineStream_8vj1r"] +mix_rate = 20000.0 +buffer_length = 0.1 [node name="Engine" type="AudioStreamPlayer3D"] -stream = SubResource("AudioStreamGenerator_qo6ul") +stream = SubResource("EngineStream_8vj1r") doppler_tracking = 2 -script = SubResource("GDScript_dvwcc") - -[node name="generator" type="EngineNoise" parent="."] script = ExtResource("1_12n5h") diff --git a/assets/cars/kenney_sedan/ghost.tscn b/assets/cars/kenney_sedan/ghost.tscn index da6f59f..a217e57 100644 --- a/assets/cars/kenney_sedan/ghost.tscn +++ b/assets/cars/kenney_sedan/ghost.tscn @@ -381,4 +381,7 @@ skeleton = NodePath("") [node name="particles" parent="fr" instance=ExtResource("4_4uffx")] transform = Transform3D(2.33967, 0, 0, 0, 2.33967, 0, 0, 0, 2.33967, 0.7019, 0.7019, -1.54418) +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(0.34778, -0.676755, 0.648885, 0, 0.692088, 0.721814, -0.937576, -0.251032, 0.240694, 2.04217, 2.1612, 3.66584) + [node name="Engine" parent="." instance=ExtResource("4_ku3bs")] diff --git a/assets/cars/kenney_sedan/sedan.tscn b/assets/cars/kenney_sedan/sedan.tscn index e24be28..b897942 100644 --- a/assets/cars/kenney_sedan/sedan.tscn +++ b/assets/cars/kenney_sedan/sedan.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=23 format=3 uid="uid://c157wew5y33bo"] +[gd_scene load_steps=24 format=3 uid="uid://c157wew5y33bo"] [ext_resource type="Script" path="res://classes/car.gd" id="1_pdccm"] [ext_resource type="Material" uid="uid://b6d4vebgc2y88" path="res://assets/cars/kenney_sedan/red_paint.tres" id="2_luxc5"] @@ -10,7 +10,7 @@ [sub_resource type="PhysicsMaterial" id="PhysicsMaterial_hs0do"] friction = 0.7 -bounce = 0.7 +bounce = 0.09 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8bpd4"] resource_name = "plastic" @@ -323,16 +323,24 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_8qmjc") -[sub_resource type="BoxShape3D" id="BoxShape3D_cknfd"] -size = Vector3(2.9, 2.1, 5.5) +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_uyq1o"] +radius = 0.845291 +height = 5.12084 + +[sub_resource type="BoxShape3D" id="BoxShape3D_mkjgy"] +size = Vector3(2.353, 3.44463, 1) [node name="Sedan" type="VehicleBody3D"] collision_layer = 2 collision_mask = 3 mass = 1000.0 center_of_mass_mode = 1 +center_of_mass = Vector3(0, 0.3, 0) physics_material_override = SubResource("PhysicsMaterial_hs0do") gravity_scale = 3.0 +continuous_cd = true +max_contacts_reported = 4 +contact_monitor = true can_sleep = false script = ExtResource("1_pdccm") @@ -352,7 +360,6 @@ use_as_traction = true wheel_radius = 0.7 wheel_rest_length = 0.4 wheel_friction_slip = 1.8 -suspension_travel = 0.2 suspension_stiffness = 50.0 suspension_max_force = 18000.0 damping_compression = 0.8 @@ -372,7 +379,6 @@ use_as_traction = true wheel_radius = 0.7 wheel_rest_length = 0.4 wheel_friction_slip = 1.8 -suspension_travel = 0.2 suspension_stiffness = 50.0 suspension_max_force = 18000.0 damping_compression = 0.8 @@ -394,7 +400,6 @@ use_as_steering = true wheel_radius = 0.7 wheel_rest_length = 0.4 wheel_friction_slip = 2.0 -suspension_travel = 0.2 suspension_stiffness = 50.0 suspension_max_force = 18000.0 damping_compression = 0.8 @@ -413,7 +418,6 @@ use_as_steering = true wheel_radius = 0.7 wheel_rest_length = 0.4 wheel_friction_slip = 2.0 -suspension_travel = 0.2 suspension_stiffness = 50.0 suspension_max_force = 18000.0 damping_compression = 0.8 @@ -426,10 +430,6 @@ skeleton = NodePath("") [node name="particles" parent="fr" instance=ExtResource("4_axi2x")] -[node name="Coll" type="CollisionShape3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.48339, 0) -shape = SubResource("BoxShape3D_cknfd") - [node name="Engine" parent="." instance=ExtResource("4_gseqg")] [node name="Gearbox" type="Node3D" parent="."] @@ -443,4 +443,12 @@ volume_db = -25.0 stream = ExtResource("19_stkh0") volume_db = -10.0 +[node name="coll1" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.25229, 0) +shape = SubResource("CapsuleShape3D_uyq1o") + +[node name="coll2" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 2.01516, 0.558206) +shape = SubResource("BoxShape3D_mkjgy") + [connection signal="shifted" from="." to="Gearbox" method="_on_sedan_shifted"] diff --git a/assets/cars/sparks.gd b/assets/cars/sparks.gd new file mode 100644 index 0000000..f25dde3 --- /dev/null +++ b/assets/cars/sparks.gd @@ -0,0 +1,4 @@ +extends GPUParticles3D + +func _ready() -> void: + get_tree().create_timer(lifetime+.5).timeout.connect(queue_free) diff --git a/assets/cars/sparks.tscn b/assets/cars/sparks.tscn new file mode 100644 index 0000000..164c09a --- /dev/null +++ b/assets/cars/sparks.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=5 format=3 uid="uid://bg1gm56iyns8a"] + +[ext_resource type="Script" path="res://assets/cars/sparks.gd" id="1_34m1u"] + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_7tl5g"] +spread = 10.0 +flatness = 0.15 +gravity = Vector3(0, -0.5, 0) +initial_velocity_min = 0.5 +initial_velocity_max = 20.0 +linear_accel_min = 0.01 +linear_accel_max = 4.09 +scale_min = 0.5 +scale_max = 1.5 +hue_variation_min = 0.59 +hue_variation_max = 0.59 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0lec5"] +shading_mode = 0 +albedo_color = Color(1, 0.784314, 0.231373, 1) + +[sub_resource type="CylinderMesh" id="CylinderMesh_tbgsw"] +material = SubResource("StandardMaterial3D_0lec5") +top_radius = 0.02 +bottom_radius = 0.02 +height = 0.04 +radial_segments = 8 + +[node name="crash" type="GPUParticles3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.98517, 2.26511, 0) +emitting = false +amount = 10 +lifetime = 2.0 +one_shot = true +explosiveness = 1.0 +randomness = 0.1 +process_material = SubResource("ParticleProcessMaterial_7tl5g") +draw_pass_1 = SubResource("CylinderMesh_tbgsw") +script = ExtResource("1_34m1u") diff --git a/assets/mats/grass.tres b/assets/mats/grass.tres index 0e63a35..965836a 100644 --- a/assets/mats/grass.tres +++ b/assets/mats/grass.tres @@ -7,5 +7,5 @@ albedo_texture = ExtResource("1_2pspn") emission = Color(0, 0.0745098, 0.219608, 1) emission_energy_multiplier = 16.0 ao_light_affect = 0.33 -uv1_scale = Vector3(100, 100, 100) +uv1_scale = Vector3(5, 5, 5) texture_filter = 0 diff --git a/assets/mats/grass_highlight.tres b/assets/mats/grass_highlight.tres new file mode 100644 index 0000000..f853942 --- /dev/null +++ b/assets/mats/grass_highlight.tres @@ -0,0 +1,12 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bh4mpm1s6ngh2"] + +[ext_resource type="Texture2D" uid="uid://dyk71hogwv01g" path="res://assets/textures/grass.png" id="1_o8n4b"] + +[resource] +albedo_color = Color(1.5, 1.5, 1.5, 1) +albedo_texture = ExtResource("1_o8n4b") +emission = Color(0, 0.0745098, 0.219608, 1) +emission_energy_multiplier = 16.0 +ao_light_affect = 0.33 +uv1_scale = Vector3(100, 100, 100) +texture_filter = 0 diff --git a/assets/mats/outline.tres b/assets/mats/outline.tres index e516864..fa483df 100644 --- a/assets/mats/outline.tres +++ b/assets/mats/outline.tres @@ -6,4 +6,4 @@ shading_mode = 0 albedo_color = Color(0, 0, 0, 1) disable_receive_shadows = true grow = true -grow_amount = 2.0 +grow_amount = 1.0 diff --git a/assets/mats/outline_highlight.tres b/assets/mats/outline_highlight.tres new file mode 100644 index 0000000..52dd325 --- /dev/null +++ b/assets/mats/outline_highlight.tres @@ -0,0 +1,9 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://t7fn8554gl6p"] + +[resource] +cull_mode = 1 +shading_mode = 0 +albedo_color = Color(0.92549, 0.886275, 0, 1) +disable_receive_shadows = true +grow = true +grow_amount = 1.0 diff --git a/assets/mats/platform.material b/assets/mats/platform.material Binary files differnew file mode 100644 index 0000000..20ebb99 --- /dev/null +++ b/assets/mats/platform.material diff --git a/assets/mats/platform_highlight.material b/assets/mats/platform_highlight.material Binary files differnew file mode 100644 index 0000000..bdafbba --- /dev/null +++ b/assets/mats/platform_highlight.material diff --git a/assets/mats/ring_checkpoint_highlight.tres b/assets/mats/ring_checkpoint_highlight.tres new file mode 100644 index 0000000..9027acf --- /dev/null +++ b/assets/mats/ring_checkpoint_highlight.tres @@ -0,0 +1,12 @@ +[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://dnbtk72slm1xd"] + +[ext_resource type="Texture2D" uid="uid://bvpakhb1dybl1" path="res://assets/textures/checkpoint.png" id="1_aitu8"] +[ext_resource type="Material" uid="uid://t7fn8554gl6p" path="res://assets/mats/outline_highlight.tres" id="2_njx8e"] + +[resource] +next_pass = ExtResource("2_njx8e") +albedo_color = Color(1.5, 1.5, 1.5, 1) +albedo_texture = ExtResource("1_aitu8") +metallic_specular = 0.0 +uv1_scale = Vector3(8, 8, 8) +texture_filter = 0 diff --git a/assets/mats/ring_finish_highlight.tres b/assets/mats/ring_finish_highlight.tres new file mode 100644 index 0000000..9100c30 --- /dev/null +++ b/assets/mats/ring_finish_highlight.tres @@ -0,0 +1,12 @@ +[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://djl4cvi3wxk1y"] + +[ext_resource type="Texture2D" uid="uid://c4e2s06xl4u0x" path="res://assets/textures/finish.png" id="1_jl8u5"] +[ext_resource type="Material" uid="uid://t7fn8554gl6p" path="res://assets/mats/outline_highlight.tres" id="2_pm0cf"] + +[resource] +next_pass = ExtResource("2_pm0cf") +albedo_color = Color(1.5, 1.5, 1.5, 1) +albedo_texture = ExtResource("1_jl8u5") +metallic_specular = 0.0 +uv1_scale = Vector3(8, 8, 8) +texture_filter = 0 diff --git a/assets/mats/ring_start_highlight.tres b/assets/mats/ring_start_highlight.tres new file mode 100644 index 0000000..ff76201 --- /dev/null +++ b/assets/mats/ring_start_highlight.tres @@ -0,0 +1,12 @@ +[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://bv86ngwyxh7jf"] + +[ext_resource type="Texture2D" uid="uid://bt35gqul2twf6" path="res://assets/textures/start.png" id="1_cn0cg"] +[ext_resource type="Material" uid="uid://t7fn8554gl6p" path="res://assets/mats/outline_highlight.tres" id="2_wwty5"] + +[resource] +next_pass = ExtResource("2_wwty5") +albedo_color = Color(1.5, 1.5, 1.5, 1) +albedo_texture = ExtResource("1_cn0cg") +metallic_specular = 0.0 +uv1_scale = Vector3(8, 8, 8) +texture_filter = 0 diff --git a/assets/mats/road.tres b/assets/mats/road.tres index 85db5d5..662ece1 100644 --- a/assets/mats/road.tres +++ b/assets/mats/road.tres @@ -5,5 +5,5 @@ [resource] albedo_texture = ExtResource("1_hqst8") metallic_specular = 0.0 -uv1_scale = Vector3(8, 8, 8) +uv1_scale = Vector3(2, 2, 2) texture_filter = 0 diff --git a/assets/mats/road_highlight.tres b/assets/mats/road_highlight.tres new file mode 100644 index 0000000..95a94e1 --- /dev/null +++ b/assets/mats/road_highlight.tres @@ -0,0 +1,10 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cgahye6xlgwga"] + +[ext_resource type="Texture2D" uid="uid://2fjjxft1ip57" path="res://assets/textures/road.png" id="1_k1hyl"] + +[resource] +albedo_color = Color(1.5, 1.5, 1.5, 1) +albedo_texture = ExtResource("1_k1hyl") +metallic_specular = 0.0 +uv1_scale = Vector3(8, 8, 8) +texture_filter = 0 diff --git a/assets/mats/shader_sky.tres b/assets/mats/shader_sky.tres index 67e4b53..4526979 100644 --- a/assets/mats/shader_sky.tres +++ b/assets/mats/shader_sky.tres @@ -62,9 +62,9 @@ shader_parameter/cloud_noise1 = SubResource("NoiseTexture_uhc2h") shader_parameter/cloud_noise2 = SubResource("NoiseTexture_vkbkn") shader_parameter/day_bottom_color = Color(0.4, 1, 1, 1) shader_parameter/day_top_color = Color(0, 0.8, 1, 1) -shader_parameter/offset_horizon = 0.4 +shader_parameter/offset_horizon = 0.236 shader_parameter/horizon_intensity = -0.443 -shader_parameter/sun_set = Color(0.56, 0.24, 0, 1) +shader_parameter/sun_set = Color(0.87451, 0.388235, 0, 1) shader_parameter/horizon_color_day = Color(0.57, 0.53, 0.26, 1) shader_parameter/horizon_color_night = Color(0.09, 0.16, 0.04, 1) shader_parameter/moon_color = Color(1, 1, 1, 1) @@ -73,18 +73,18 @@ shader_parameter/moon_crescent = -0.085 shader_parameter/dark_falloff = 3.915 shader_parameter/night_bottom_color = Color(0, 0, 0.2, 1) shader_parameter/night_top_color = Color(0, 0, 0, 1) -shader_parameter/stars_speed = 0.02 -shader_parameter/stars_cutoff = 0.744 +shader_parameter/stars_speed = 0.01 +shader_parameter/stars_cutoff = 0.69 shader_parameter/stars_sky_color = Color(0, 0.11, 0.05, 1) shader_parameter/offset_stars = 0.015 -shader_parameter/stars_intensity = -2.998 -shader_parameter/star_falloff = 1.485 +shader_parameter/stars_intensity = -2.829 +shader_parameter/star_falloff = 1.0 shader_parameter/stars_fade_modulation = 0.91 shader_parameter/stars_texture = SubResource("NoiseTexture_d3r0e") shader_parameter/base_noise = ExtResource("2_mnx47") shader_parameter/sun_color = Color(1, 1, 1, 1) -shader_parameter/sun_radius = 0.4 +shader_parameter/sun_radius = 0.3 shader_parameter/flat_sun = true shader_parameter/enable_horizon_fade = true shader_parameter/horizon_fade_size = 0.2 -shader_parameter/horizon_fade_blend = 0.2 +shader_parameter/horizon_fade_blend = 0.1 diff --git a/assets/mats/wall.tres b/assets/mats/wall.tres index 5074300..4e33966 100644 --- a/assets/mats/wall.tres +++ b/assets/mats/wall.tres @@ -1,8 +1,8 @@ -[gd_resource type="StandardMaterial3D" load_steps=2 format=3] +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dd3673p284fqe"] [ext_resource type="Texture2D" uid="uid://b1re5kwpgdg07" path="res://assets/textures/wall.png" id="1_0m2od"] [resource] albedo_texture = ExtResource("1_0m2od") -uv1_scale = Vector3(0.2, 0.2, 0.2) +uv1_scale = Vector3(16, 16, 16) texture_filter = 0 diff --git a/assets/mats/wall_highlight.tres b/assets/mats/wall_highlight.tres new file mode 100644 index 0000000..2adbe2a --- /dev/null +++ b/assets/mats/wall_highlight.tres @@ -0,0 +1,9 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://swcqd28aeu4n"] + +[ext_resource type="Texture2D" uid="uid://b1re5kwpgdg07" path="res://assets/textures/wall.png" id="1_s407v"] + +[resource] +albedo_color = Color(1.5, 1.5, 1.5, 1) +albedo_texture = ExtResource("1_s407v") +uv1_scale = Vector3(16, 16, 16) +texture_filter = 0 diff --git a/assets/meshes/checkpoint.tres b/assets/meshes/checkpoint.tres index b065f89..891be0f 100644 --- a/assets/meshes/checkpoint.tres +++ b/assets/meshes/checkpoint.tres @@ -4,7 +4,7 @@ [resource] material = ExtResource("1_64nbs") -inner_radius = 25.0 -outer_radius = 40.0 +inner_radius = 12.0 +outer_radius = 17.0 rings = 32 ring_segments = 16 diff --git a/assets/meshes/platforms/corner.mesh b/assets/meshes/platforms/corner.mesh Binary files differnew file mode 100644 index 0000000..04a5839 --- /dev/null +++ b/assets/meshes/platforms/corner.mesh diff --git a/assets/meshes/platforms/depression.tres b/assets/meshes/platforms/depression.tres new file mode 100644 index 0000000..a54bce1 --- /dev/null +++ b/assets/meshes/platforms/depression.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://d07uut724gmam"] + +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="1_lp6gg"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_q85ss"] +_surfaces = [{ +"aabb": AABB(-5, -3, -5, 10, 3.5, 10), +"format": 4097, +"index_count": 288, +"index_data": PackedByteArray(8, 0, 3, 0, 13, 0, 8, 0, 2, 0, 3, 0, 20, 0, 7, 0, 25, 0, 20, 0, 6, 0, 7, 0, 14, 0, 5, 0, 19, 0, 14, 0, 4, 0, 5, 0, 26, 0, 1, 0, 31, 0, 26, 0, 0, 0, 1, 0, 47, 0, 4, 0, 14, 0, 47, 0, 28, 0, 4, 0, 38, 0, 1, 0, 11, 0, 38, 0, 31, 0, 1, 0, 23, 0, 13, 0, 3, 0, 23, 0, 32, 0, 13, 0, 32, 0, 12, 0, 13, 0, 32, 0, 35, 0, 12, 0, 35, 0, 11, 0, 12, 0, 35, 0, 38, 0, 11, 0, 20, 0, 16, 0, 6, 0, 20, 0, 41, 0, 16, 0, 41, 0, 15, 0, 16, 0, 41, 0, 44, 0, 15, 0, 44, 0, 14, 0, 15, 0, 44, 0, 47, 0, 14, 0, 6, 0, 17, 0, 7, 0, 6, 0, 16, 0, 17, 0, 16, 0, 18, 0, 17, 0, 16, 0, 15, 0, 18, 0, 15, 0, 19, 0, 18, 0, 15, 0, 14, 0, 19, 0, 0, 0, 11, 0, 1, 0, 0, 0, 10, 0, 11, 0, 10, 0, 12, 0, 11, 0, 10, 0, 9, 0, 12, 0, 9, 0, 13, 0, 12, 0, 9, 0, 8, 0, 13, 0, 9, 0, 49, 0, 46, 0, 9, 0, 10, 0, 49, 0, 46, 0, 48, 0, 45, 0, 46, 0, 49, 0, 48, 0, 45, 0, 47, 0, 44, 0, 45, 0, 48, 0, 47, 0, 8, 0, 46, 0, 43, 0, 8, 0, 9, 0, 46, 0, 43, 0, 45, 0, 42, 0, 43, 0, 46, 0, 45, 0, 42, 0, 44, 0, 41, 0, 42, 0, 45, 0, 44, 0, 2, 0, 43, 0, 22, 0, 2, 0, 8, 0, 43, 0, 22, 0, 42, 0, 21, 0, 22, 0, 43, 0, 42, 0, 21, 0, 41, 0, 20, 0, 21, 0, 42, 0, 41, 0, 18, 0, 40, 0, 37, 0, 18, 0, 19, 0, 40, 0, 37, 0, 39, 0, 36, 0, 37, 0, 40, 0, 39, 0, 36, 0, 38, 0, 35, 0, 36, 0, 39, 0, 38, 0, 17, 0, 37, 0, 34, 0, 17, 0, 18, 0, 37, 0, 34, 0, 36, 0, 33, 0, 34, 0, 37, 0, 36, 0, 33, 0, 35, 0, 32, 0, 33, 0, 36, 0, 35, 0, 7, 0, 34, 0, 25, 0, 7, 0, 17, 0, 34, 0, 25, 0, 33, 0, 24, 0, 25, 0, 34, 0, 33, 0, 24, 0, 32, 0, 23, 0, 24, 0, 33, 0, 32, 0, 19, 0, 29, 0, 40, 0, 19, 0, 5, 0, 29, 0, 40, 0, 30, 0, 39, 0, 40, 0, 29, 0, 30, 0, 39, 0, 31, 0, 38, 0, 39, 0, 30, 0, 31, 0, 10, 0, 26, 0, 49, 0, 10, 0, 0, 0, 26, 0, 49, 0, 27, 0, 48, 0, 49, 0, 26, 0, 27, 0, 48, 0, 28, 0, 47, 0, 48, 0, 27, 0, 28, 0, 4, 0, 29, 0, 5, 0, 4, 0, 28, 0, 29, 0, 28, 0, 30, 0, 29, 0, 28, 0, 27, 0, 30, 0, 27, 0, 31, 0, 30, 0, 27, 0, 26, 0, 31, 0, 2, 0, 23, 0, 3, 0, 2, 0, 22, 0, 23, 0, 22, 0, 24, 0, 23, 0, 22, 0, 21, 0, 24, 0, 21, 0, 25, 0, 24, 0, 21, 0, 20, 0, 25, 0), +"lods": [0.230532, PackedByteArray(10, 0, 3, 0, 13, 0, 10, 0, 2, 0, 3, 0, 0, 0, 10, 0, 13, 0, 0, 0, 13, 0, 1, 0, 20, 0, 7, 0, 23, 0, 20, 0, 6, 0, 7, 0, 2, 0, 20, 0, 23, 0, 2, 0, 23, 0, 3, 0, 14, 0, 5, 0, 18, 0, 14, 0, 4, 0, 5, 0, 6, 0, 14, 0, 18, 0, 6, 0, 18, 0, 7, 0, 26, 0, 1, 0, 31, 0, 26, 0, 0, 0, 1, 0, 4, 0, 26, 0, 31, 0, 4, 0, 31, 0, 5, 0, 14, 0, 26, 0, 4, 0, 10, 0, 26, 0, 14, 0, 10, 0, 0, 0, 26, 0, 20, 0, 10, 0, 14, 0, 2, 0, 10, 0, 20, 0, 20, 0, 14, 0, 6, 0, 31, 0, 1, 0, 13, 0, 18, 0, 31, 0, 13, 0, 18, 0, 5, 0, 31, 0, 23, 0, 18, 0, 13, 0, 7, 0, 18, 0, 23, 0, 23, 0, 13, 0, 3, 0), 0.246172, PackedByteArray(8, 0, 3, 0, 13, 0, 8, 0, 2, 0, 3, 0, 10, 0, 8, 0, 13, 0, 10, 0, 13, 0, 12, 0, 10, 0, 12, 0, 11, 0, 0, 0, 10, 0, 11, 0, 0, 0, 11, 0, 1, 0, 20, 0, 7, 0, 25, 0, 20, 0, 6, 0, 7, 0, 21, 0, 20, 0, 25, 0, 21, 0, 25, 0, 24, 0, 22, 0, 21, 0, 24, 0, 22, 0, 24, 0, 23, 0, 2, 0, 22, 0, 23, 0, 2, 0, 23, 0, 3, 0, 14, 0, 5, 0, 19, 0, 14, 0, 4, 0, 5, 0, 15, 0, 14, 0, 19, 0, 15, 0, 19, 0, 18, 0, 16, 0, 15, 0, 18, 0, 6, 0, 16, 0, 18, 0, 6, 0, 18, 0, 7, 0, 26, 0, 1, 0, 31, 0, 26, 0, 0, 0, 1, 0, 27, 0, 26, 0, 31, 0, 27, 0, 31, 0, 30, 0, 28, 0, 27, 0, 30, 0, 28, 0, 30, 0, 29, 0, 4, 0, 28, 0, 29, 0, 4, 0, 29, 0, 5, 0, 14, 0, 28, 0, 4, 0, 10, 0, 28, 0, 14, 0, 10, 0, 27, 0, 28, 0, 10, 0, 26, 0, 27, 0, 10, 0, 0, 0, 26, 0, 22, 0, 10, 0, 14, 0, 8, 0, 10, 0, 22, 0, 2, 0, 8, 0, 22, 0, 22, 0, 14, 0, 20, 0, 21, 0, 22, 0, 20, 0, 20, 0, 14, 0, 15, 0, 20, 0, 15, 0, 16, 0, 20, 0, 16, 0, 6, 0, 31, 0, 1, 0, 11, 0, 13, 0, 31, 0, 11, 0, 13, 0, 11, 0, 12, 0, 25, 0, 31, 0, 13, 0, 24, 0, 25, 0, 13, 0, 24, 0, 13, 0, 23, 0, 23, 0, 13, 0, 3, 0, 18, 0, 31, 0, 25, 0, 7, 0, 18, 0, 25, 0, 18, 0, 30, 0, 31, 0, 18, 0, 29, 0, 30, 0, 19, 0, 29, 0, 18, 0, 19, 0, 5, 0, 29, 0)], +"primitive": 3, +"vertex_count": 50, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 192, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 0, 128, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 0, 128, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 192, 0, 0, 160, 64, 0, 0, 24, 192, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 224, 191, 0, 0, 0, 128, 0, 0, 160, 64, 0, 0, 144, 191, 0, 0, 32, 192, 0, 0, 160, 64, 0, 0, 0, 190, 0, 0, 32, 192, 0, 0, 160, 64, 0, 0, 64, 191, 0, 0, 0, 128, 0, 0, 160, 64, 0, 0, 176, 191, 0, 0, 32, 64, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 32, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 32, 192, 0, 0, 144, 191, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 224, 191, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 24, 192, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 176, 191, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 64, 191, 0, 0, 160, 64, 0, 0, 32, 192, 0, 0, 0, 190, 0, 0, 160, 64, 0, 0, 32, 192, 0, 0, 176, 62, 0, 0, 32, 192, 0, 0, 0, 0, 0, 0, 64, 62, 0, 0, 32, 192, 0, 0, 32, 64, 0, 0, 0, 61, 0, 0, 32, 192, 0, 0, 32, 192, 0, 0, 64, 62, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 128, 0, 0, 32, 64, 0, 0, 224, 190, 0, 0, 0, 128, 0, 0, 32, 192, 0, 0, 0, 61, 0, 0, 32, 64, 0, 0, 0, 0, 0, 0, 224, 190, 0, 0, 32, 64, 0, 0, 32, 64, 0, 0, 104, 191, 0, 0, 32, 64, 0, 0, 32, 64, 0, 0, 120, 191, 0, 0, 32, 192, 0, 0, 0, 0, 0, 0, 80, 191, 0, 0, 32, 192, 0, 0, 32, 192, 0, 0, 40, 191, 0, 0, 32, 192, 0, 0, 32, 64, 0, 0, 184, 191, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0, 128, 0, 0, 32, 192, 0, 0, 80, 191, 0, 0, 0, 128, 0, 0, 32, 64, 0, 0, 244, 191, 0, 0, 32, 64, 0, 0, 0, 0, 0, 0, 184, 191, 0, 0, 32, 64, 0, 0, 32, 192, 0, 0, 120, 191, 0, 0, 32, 64) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "depression_Cube_001" +_surfaces = [{ +"aabb": AABB(-5, -3, -5, 10, 3.5, 10), +"attribute_data": PackedByteArray(0, 0, 0, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 128, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 224, 62, 0, 0, 192, 62, 0, 0, 80, 63, 0, 0, 0, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 96, 63, 0, 0, 0, 62, 0, 0, 160, 62, 0, 0, 192, 62, 0, 0, 112, 63, 0, 0, 32, 63, 0, 0, 112, 63, 0, 0, 96, 63, 0, 0, 160, 62, 0, 0, 32, 63, 0, 0, 96, 63, 0, 0, 96, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 80, 63, 0, 0, 96, 63, 0, 0, 224, 62, 0, 0, 192, 62, 0, 0, 160, 62, 0, 0, 192, 62, 0, 0, 160, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 224, 62, 0, 0, 192, 62, 0, 0, 224, 62, 0, 0, 32, 63, 0, 0, 224, 62, 0, 0, 32, 63, 0, 0, 224, 62, 0, 0, 32, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 160, 62, 0, 0, 32, 63, 0, 0, 160, 62, 0, 0, 160, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 16, 63, 255, 255, 127, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 64, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 48, 63, 0, 0, 32, 63, 0, 0, 48, 63, 0, 0, 80, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 16, 63, 0, 0, 48, 63, 0, 0, 0, 63, 0, 0, 64, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 61, 0, 0, 128, 62, 0, 0, 128, 62, 0, 0, 192, 62, 4, 0, 0, 62, 0, 0, 160, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 64, 62, 0, 0, 32, 63, 0, 0, 64, 62, 0, 0, 48, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 61, 0, 0, 80, 63, 0, 0, 128, 62, 0, 0, 80, 63, 0, 0, 224, 62, 0, 0, 64, 63, 0, 0, 224, 62, 0, 0, 48, 63, 0, 0, 224, 62, 0, 0, 80, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 48, 63, 0, 0, 192, 62, 0, 0, 80, 63, 0, 0, 160, 62, 0, 0, 64, 63, 0, 0, 160, 62, 0, 0, 48, 63, 0, 0, 160, 62, 0, 0, 160, 62, 0, 0, 224, 62, 255, 255, 127, 62, 0, 0, 224, 62, 0, 0, 64, 62, 0, 0, 224, 62, 0, 0, 160, 62, 0, 0, 192, 62, 255, 255, 127, 62, 0, 0, 192, 62, 0, 0, 64, 62, 0, 0, 192, 62, 0, 0, 160, 62, 0, 0, 160, 62, 255, 255, 127, 62, 0, 0, 160, 62, 0, 0, 64, 62, 0, 0, 160, 62), +"format": 4119, +"index_count": 288, +"index_data": PackedByteArray(25, 0, 9, 0, 34, 0, 25, 0, 7, 0, 9, 0, 49, 0, 21, 0, 58, 0, 49, 0, 19, 0, 21, 0, 37, 0, 17, 0, 47, 0, 37, 0, 14, 0, 17, 0, 61, 0, 3, 0, 70, 0, 61, 0, 1, 0, 3, 0, 87, 0, 12, 0, 36, 0, 87, 0, 64, 0, 12, 0, 78, 0, 5, 0, 31, 0, 78, 0, 71, 0, 5, 0, 55, 0, 35, 0, 11, 0, 55, 0, 72, 0, 35, 0, 72, 0, 33, 0, 35, 0, 72, 0, 75, 0, 33, 0, 75, 0, 31, 0, 33, 0, 75, 0, 78, 0, 31, 0, 48, 0, 40, 0, 18, 0, 48, 0, 81, 0, 40, 0, 81, 0, 38, 0, 40, 0, 81, 0, 84, 0, 38, 0, 84, 0, 36, 0, 38, 0, 84, 0, 87, 0, 36, 0, 20, 0, 43, 0, 23, 0, 20, 0, 41, 0, 43, 0, 41, 0, 45, 0, 43, 0, 41, 0, 39, 0, 45, 0, 39, 0, 47, 0, 45, 0, 39, 0, 37, 0, 47, 0, 2, 0, 30, 0, 4, 0, 2, 0, 29, 0, 30, 0, 29, 0, 32, 0, 30, 0, 29, 0, 27, 0, 32, 0, 27, 0, 34, 0, 32, 0, 27, 0, 25, 0, 34, 0, 26, 0, 89, 0, 86, 0, 26, 0, 28, 0, 89, 0, 86, 0, 88, 0, 85, 0, 86, 0, 89, 0, 88, 0, 85, 0, 87, 0, 84, 0, 85, 0, 88, 0, 87, 0, 24, 0, 86, 0, 83, 0, 24, 0, 26, 0, 86, 0, 83, 0, 85, 0, 82, 0, 83, 0, 86, 0, 85, 0, 82, 0, 84, 0, 81, 0, 82, 0, 85, 0, 84, 0, 6, 0, 83, 0, 52, 0, 6, 0, 24, 0, 83, 0, 52, 0, 82, 0, 50, 0, 52, 0, 83, 0, 82, 0, 50, 0, 81, 0, 48, 0, 50, 0, 82, 0, 81, 0, 44, 0, 80, 0, 77, 0, 44, 0, 46, 0, 80, 0, 77, 0, 79, 0, 76, 0, 77, 0, 80, 0, 79, 0, 76, 0, 78, 0, 75, 0, 76, 0, 79, 0, 78, 0, 42, 0, 77, 0, 74, 0, 42, 0, 44, 0, 77, 0, 74, 0, 76, 0, 73, 0, 74, 0, 77, 0, 76, 0, 73, 0, 75, 0, 72, 0, 73, 0, 76, 0, 75, 0, 22, 0, 74, 0, 59, 0, 22, 0, 42, 0, 74, 0, 59, 0, 73, 0, 57, 0, 59, 0, 74, 0, 73, 0, 57, 0, 72, 0, 55, 0, 57, 0, 73, 0, 72, 0, 46, 0, 67, 0, 80, 0, 46, 0, 16, 0, 67, 0, 80, 0, 69, 0, 79, 0, 80, 0, 67, 0, 69, 0, 79, 0, 71, 0, 78, 0, 79, 0, 69, 0, 71, 0, 28, 0, 60, 0, 89, 0, 28, 0, 0, 0, 60, 0, 89, 0, 62, 0, 88, 0, 89, 0, 60, 0, 62, 0, 88, 0, 64, 0, 87, 0, 88, 0, 62, 0, 64, 0, 13, 0, 66, 0, 15, 0, 13, 0, 65, 0, 66, 0, 65, 0, 68, 0, 66, 0, 65, 0, 63, 0, 68, 0, 63, 0, 70, 0, 68, 0, 63, 0, 61, 0, 70, 0, 8, 0, 54, 0, 10, 0, 8, 0, 53, 0, 54, 0, 53, 0, 56, 0, 54, 0, 53, 0, 51, 0, 56, 0, 51, 0, 58, 0, 56, 0, 51, 0, 49, 0, 58, 0), +"lods": [0.230532, PackedByteArray(29, 0, 9, 0, 34, 0, 29, 0, 7, 0, 9, 0, 2, 0, 29, 0, 34, 0, 2, 0, 34, 0, 4, 0, 49, 0, 21, 0, 54, 0, 49, 0, 19, 0, 21, 0, 8, 0, 49, 0, 54, 0, 8, 0, 54, 0, 10, 0, 37, 0, 17, 0, 45, 0, 37, 0, 14, 0, 17, 0, 20, 0, 37, 0, 45, 0, 20, 0, 45, 0, 23, 0, 61, 0, 3, 0, 70, 0, 61, 0, 1, 0, 3, 0, 13, 0, 61, 0, 70, 0, 13, 0, 70, 0, 15, 0, 36, 0, 60, 0, 12, 0, 28, 0, 60, 0, 36, 0, 28, 0, 0, 0, 60, 0, 48, 0, 28, 0, 36, 0, 6, 0, 28, 0, 48, 0, 48, 0, 36, 0, 18, 0, 71, 0, 5, 0, 35, 0, 44, 0, 71, 0, 35, 0, 44, 0, 16, 0, 71, 0, 55, 0, 44, 0, 35, 0, 22, 0, 44, 0, 55, 0, 55, 0, 35, 0, 11, 0), 0.246172, PackedByteArray(25, 0, 9, 0, 34, 0, 25, 0, 7, 0, 9, 0, 29, 0, 25, 0, 34, 0, 29, 0, 34, 0, 32, 0, 29, 0, 32, 0, 30, 0, 2, 0, 29, 0, 30, 0, 2, 0, 30, 0, 4, 0, 49, 0, 21, 0, 58, 0, 49, 0, 19, 0, 21, 0, 51, 0, 49, 0, 58, 0, 51, 0, 58, 0, 56, 0, 53, 0, 51, 0, 56, 0, 53, 0, 56, 0, 54, 0, 8, 0, 53, 0, 54, 0, 8, 0, 54, 0, 10, 0, 37, 0, 17, 0, 47, 0, 37, 0, 14, 0, 17, 0, 39, 0, 37, 0, 47, 0, 39, 0, 47, 0, 45, 0, 41, 0, 39, 0, 45, 0, 20, 0, 41, 0, 45, 0, 20, 0, 45, 0, 23, 0, 61, 0, 3, 0, 70, 0, 61, 0, 1, 0, 3, 0, 63, 0, 61, 0, 70, 0, 63, 0, 70, 0, 68, 0, 65, 0, 63, 0, 68, 0, 65, 0, 68, 0, 66, 0, 13, 0, 65, 0, 66, 0, 13, 0, 66, 0, 15, 0, 36, 0, 64, 0, 12, 0, 28, 0, 64, 0, 36, 0, 28, 0, 62, 0, 64, 0, 28, 0, 60, 0, 62, 0, 28, 0, 0, 0, 60, 0, 52, 0, 28, 0, 36, 0, 24, 0, 28, 0, 52, 0, 6, 0, 24, 0, 52, 0, 52, 0, 36, 0, 48, 0, 50, 0, 52, 0, 48, 0, 48, 0, 36, 0, 38, 0, 48, 0, 38, 0, 40, 0, 48, 0, 40, 0, 18, 0, 71, 0, 5, 0, 31, 0, 35, 0, 71, 0, 31, 0, 35, 0, 31, 0, 33, 0, 59, 0, 71, 0, 35, 0, 57, 0, 59, 0, 35, 0, 57, 0, 35, 0, 55, 0, 55, 0, 35, 0, 11, 0, 44, 0, 71, 0, 59, 0, 22, 0, 44, 0, 59, 0, 44, 0, 69, 0, 71, 0, 44, 0, 67, 0, 69, 0, 46, 0, 67, 0, 44, 0, 46, 0, 16, 0, 67, 0)], +"material": ExtResource("1_lp6gg"), +"primitive": 3, +"vertex_count": 90, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 101, 102, 102, 22, 240, 232, 132, 180, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 102, 150, 101, 230, 249, 22, 124, 203, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 121, 120, 195, 3, 30, 252, 15, 190, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 194, 131, 120, 248, 253, 3, 238, 193, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 9, 89, 122, 19, 5, 233, 129, 180, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 122, 147, 9, 217, 250, 22, 207, 203, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 101, 102, 50, 3, 80, 252, 192, 189, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 192, 50, 131, 101, 230, 226, 3, 239, 193, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 192, 7, 117, 78, 7, 106, 248, 60, 188, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 0, 128, 181, 110, 212, 13, 187, 241, 228, 184, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 64, 10, 105, 172, 19, 194, 235, 231, 181, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 64, 172, 147, 10, 233, 59, 20, 22, 202, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 0, 128, 212, 141, 180, 238, 66, 14, 25, 199, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 192, 78, 135, 7, 245, 147, 7, 193, 195, 0, 0, 160, 64, 0, 0, 24, 192, 0, 0, 32, 64, 249, 90, 30, 17, 215, 235, 191, 181, 0, 0, 160, 64, 0, 0, 24, 192, 0, 0, 32, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 224, 191, 0, 0, 0, 128, 55, 95, 243, 11, 213, 241, 187, 184, 0, 0, 160, 64, 0, 0, 224, 191, 0, 0, 0, 128, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 144, 191, 0, 0, 32, 192, 225, 99, 68, 6, 138, 248, 18, 188, 0, 0, 160, 64, 0, 0, 144, 191, 0, 0, 32, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 190, 0, 0, 32, 192, 68, 134, 224, 227, 157, 7, 254, 195, 0, 0, 160, 64, 0, 0, 0, 190, 0, 0, 32, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 191, 0, 0, 0, 128, 243, 139, 55, 223, 77, 14, 83, 199, 0, 0, 160, 64, 0, 0, 64, 191, 0, 0, 0, 128, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 176, 191, 0, 0, 32, 64, 30, 145, 249, 218, 71, 20, 77, 202, 0, 0, 160, 64, 0, 0, 176, 191, 0, 0, 32, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 160, 192, 10, 105, 72, 3, 49, 252, 234, 189, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 160, 192, 181, 110, 117, 3, 39, 252, 244, 189, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 160, 192, 7, 117, 168, 3, 32, 252, 0, 190, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 32, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 32, 192, 0, 0, 0, 63, 0, 0, 160, 192, 168, 131, 7, 245, 253, 3, 238, 193, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 160, 192, 117, 131, 180, 238, 20, 4, 235, 193, 0, 0, 32, 64, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 32, 64, 0, 0, 0, 63, 0, 0, 160, 192, 71, 131, 10, 233, 39, 4, 230, 193, 0, 0, 32, 192, 0, 0, 144, 191, 0, 0, 160, 64, 225, 99, 217, 21, 240, 232, 132, 180, 0, 0, 32, 192, 0, 0, 144, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 0, 0, 0, 0, 224, 191, 0, 0, 160, 64, 55, 95, 212, 20, 216, 232, 132, 180, 0, 0, 0, 0, 0, 0, 224, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 254, 255, 0, 0, 32, 64, 0, 0, 24, 192, 0, 0, 160, 64, 249, 90, 231, 19, 189, 232, 131, 180, 0, 0, 32, 64, 0, 0, 24, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 254, 255, 0, 0, 32, 64, 0, 0, 176, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 32, 64, 0, 0, 176, 191, 0, 0, 160, 64, 230, 147, 249, 218, 248, 22, 158, 203, 0, 0, 0, 0, 0, 0, 64, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 254, 255, 0, 0, 0, 0, 0, 0, 64, 191, 0, 0, 160, 64, 211, 148, 55, 223, 245, 22, 146, 203, 0, 0, 32, 192, 0, 0, 0, 190, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 254, 255, 0, 0, 32, 192, 0, 0, 0, 190, 0, 0, 160, 64, 216, 149, 224, 227, 246, 22, 134, 203, 0, 0, 32, 192, 0, 0, 176, 62, 0, 0, 32, 192, 26, 135, 201, 241, 133, 7, 194, 195, 0, 0, 0, 0, 0, 0, 64, 62, 0, 0, 32, 192, 185, 134, 205, 235, 132, 7, 193, 195, 0, 0, 32, 64, 0, 0, 0, 61, 0, 0, 32, 192, 101, 134, 105, 230, 135, 7, 195, 195, 0, 0, 32, 192, 0, 0, 64, 62, 0, 0, 0, 128, 118, 141, 205, 235, 54, 14, 26, 199, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 128, 202, 140, 105, 230, 54, 14, 26, 199, 0, 0, 32, 64, 0, 0, 224, 190, 0, 0, 0, 128, 45, 140, 138, 225, 52, 14, 26, 199, 0, 0, 32, 192, 0, 0, 0, 61, 0, 0, 32, 64, 47, 147, 105, 230, 50, 20, 24, 202, 0, 0, 0, 0, 0, 0, 224, 190, 0, 0, 32, 64, 70, 146, 138, 225, 50, 20, 24, 202, 0, 0, 32, 64, 0, 0, 104, 191, 0, 0, 32, 64, 112, 145, 28, 221, 50, 20, 24, 202, 0, 0, 32, 64, 0, 0, 120, 191, 0, 0, 32, 192, 105, 102, 102, 6, 120, 248, 59, 188, 0, 0, 0, 0, 0, 0, 80, 191, 0, 0, 32, 192, 206, 107, 186, 6, 122, 248, 60, 188, 0, 0, 32, 192, 0, 0, 40, 191, 0, 0, 32, 192, 201, 113, 26, 7, 121, 248, 60, 188, 0, 0, 32, 64, 0, 0, 184, 191, 0, 0, 0, 128, 139, 97, 45, 12, 202, 241, 228, 184, 0, 0, 0, 0, 0, 0, 144, 191, 0, 0, 0, 128, 106, 102, 202, 12, 200, 241, 228, 184, 0, 0, 32, 192, 0, 0, 80, 191, 0, 0, 0, 128, 206, 107, 119, 13, 200, 241, 228, 184, 0, 0, 32, 64, 0, 0, 244, 191, 0, 0, 32, 64, 28, 93, 113, 17, 204, 235, 230, 181, 0, 0, 0, 0, 0, 0, 184, 191, 0, 0, 32, 64, 139, 97, 70, 18, 204, 235, 229, 181, 0, 0, 32, 192, 0, 0, 120, 191, 0, 0, 32, 64, 105, 102, 47, 19, 204, 235, 230, 181) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_q85ss") diff --git a/assets/meshes/platforms/diagonal.tres b/assets/meshes/platforms/diagonal.tres new file mode 100644 index 0000000..cd64e14 --- /dev/null +++ b/assets/meshes/platforms/diagonal.tres @@ -0,0 +1,31 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://nw0f20urbu50"] + +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="1_a348c"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_s5wrq"] +_surfaces = [{ +"aabb": AABB(-5, -3, -5, 10, 3.5, 10), +"format": 4097, +"index_count": 36, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 7, 0, 3, 0, 2, 0, 6, 0, 7, 0, 6, 0, 5, 0, 7, 0, 6, 0, 4, 0, 5, 0, 4, 0, 1, 0, 5, 0, 4, 0, 0, 0, 1, 0, 2, 0, 4, 0, 6, 0, 2, 0, 0, 0, 4, 0, 7, 0, 1, 0, 3, 0, 7, 0, 5, 0, 1, 0), +"primitive": 3, +"vertex_count": 8, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 192) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "diagonal_Cube_001" +_surfaces = [{ +"aabb": AABB(-5, -3, -5, 10, 3.5, 10), +"attribute_data": PackedByteArray(0, 0, 0, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 128, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63), +"format": 4119, +"index_count": 36, +"index_data": PackedByteArray(2, 0, 9, 0, 4, 0, 2, 0, 7, 0, 9, 0, 8, 0, 21, 0, 10, 0, 8, 0, 19, 0, 21, 0, 20, 0, 17, 0, 23, 0, 20, 0, 14, 0, 17, 0, 13, 0, 3, 0, 15, 0, 13, 0, 1, 0, 3, 0, 6, 0, 12, 0, 18, 0, 6, 0, 0, 0, 12, 0, 22, 0, 5, 0, 11, 0, 22, 0, 16, 0, 5, 0), +"material": ExtResource("1_a348c"), +"primitive": 3, +"vertex_count": 24, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 102, 102, 152, 25, 102, 230, 50, 179, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 152, 153, 102, 230, 152, 25, 203, 204, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 102, 102, 152, 25, 102, 230, 50, 179, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 152, 153, 102, 230, 152, 25, 203, 204, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 102, 102, 152, 25, 102, 230, 50, 179, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 152, 153, 102, 230, 152, 25, 203, 204, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 192, 102, 102, 152, 25, 102, 230, 50, 179, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 192, 152, 153, 102, 230, 152, 25, 203, 204, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_s5wrq") diff --git a/assets/meshes/platforms/poke.tres b/assets/meshes/platforms/poke.tres new file mode 100644 index 0000000..e1cdafe --- /dev/null +++ b/assets/meshes/platforms/poke.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://7h6mvi4idtq1"] + +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="1_rdbra"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_q7end"] +_surfaces = [{ +"aabb": AABB(-5, -0.5, -5, 10, 3.5, 10), +"format": 4097, +"index_count": 288, +"index_data": PackedByteArray(29, 0, 4, 0, 28, 0, 29, 0, 5, 0, 4, 0, 11, 0, 0, 0, 10, 0, 11, 0, 1, 0, 0, 0, 49, 0, 3, 0, 23, 0, 49, 0, 13, 0, 3, 0, 23, 0, 2, 0, 22, 0, 23, 0, 3, 0, 2, 0, 17, 0, 6, 0, 16, 0, 17, 0, 7, 0, 6, 0, 38, 0, 2, 0, 8, 0, 38, 0, 22, 0, 2, 0, 26, 0, 10, 0, 0, 0, 26, 0, 32, 0, 10, 0, 32, 0, 9, 0, 10, 0, 32, 0, 35, 0, 9, 0, 35, 0, 8, 0, 9, 0, 35, 0, 38, 0, 8, 0, 5, 0, 14, 0, 4, 0, 5, 0, 19, 0, 14, 0, 19, 0, 15, 0, 14, 0, 19, 0, 18, 0, 15, 0, 18, 0, 16, 0, 15, 0, 18, 0, 17, 0, 16, 0, 31, 0, 11, 0, 43, 0, 31, 0, 1, 0, 11, 0, 43, 0, 12, 0, 46, 0, 43, 0, 11, 0, 12, 0, 46, 0, 13, 0, 49, 0, 46, 0, 12, 0, 13, 0, 3, 0, 8, 0, 2, 0, 3, 0, 13, 0, 8, 0, 13, 0, 9, 0, 8, 0, 13, 0, 12, 0, 9, 0, 12, 0, 10, 0, 9, 0, 12, 0, 11, 0, 10, 0, 18, 0, 47, 0, 17, 0, 18, 0, 44, 0, 47, 0, 44, 0, 48, 0, 47, 0, 44, 0, 45, 0, 48, 0, 45, 0, 49, 0, 48, 0, 45, 0, 46, 0, 49, 0, 19, 0, 44, 0, 18, 0, 19, 0, 41, 0, 44, 0, 41, 0, 45, 0, 44, 0, 41, 0, 42, 0, 45, 0, 42, 0, 46, 0, 45, 0, 42, 0, 43, 0, 46, 0, 5, 0, 41, 0, 19, 0, 5, 0, 29, 0, 41, 0, 29, 0, 42, 0, 41, 0, 29, 0, 30, 0, 42, 0, 30, 0, 43, 0, 42, 0, 30, 0, 31, 0, 43, 0, 15, 0, 40, 0, 37, 0, 15, 0, 16, 0, 40, 0, 37, 0, 39, 0, 36, 0, 37, 0, 40, 0, 39, 0, 36, 0, 38, 0, 35, 0, 36, 0, 39, 0, 38, 0, 14, 0, 37, 0, 34, 0, 14, 0, 15, 0, 37, 0, 34, 0, 36, 0, 33, 0, 34, 0, 37, 0, 36, 0, 33, 0, 35, 0, 32, 0, 33, 0, 36, 0, 35, 0, 4, 0, 34, 0, 28, 0, 4, 0, 14, 0, 34, 0, 28, 0, 33, 0, 27, 0, 28, 0, 34, 0, 33, 0, 27, 0, 32, 0, 26, 0, 27, 0, 33, 0, 32, 0, 16, 0, 20, 0, 40, 0, 16, 0, 6, 0, 20, 0, 40, 0, 21, 0, 39, 0, 40, 0, 20, 0, 21, 0, 39, 0, 22, 0, 38, 0, 39, 0, 21, 0, 22, 0, 7, 0, 20, 0, 6, 0, 7, 0, 25, 0, 20, 0, 25, 0, 21, 0, 20, 0, 25, 0, 24, 0, 21, 0, 24, 0, 22, 0, 21, 0, 24, 0, 23, 0, 22, 0, 17, 0, 25, 0, 7, 0, 17, 0, 47, 0, 25, 0, 47, 0, 24, 0, 25, 0, 47, 0, 48, 0, 24, 0, 48, 0, 23, 0, 24, 0, 48, 0, 49, 0, 23, 0, 1, 0, 26, 0, 0, 0, 1, 0, 31, 0, 26, 0, 31, 0, 27, 0, 26, 0, 31, 0, 30, 0, 27, 0, 30, 0, 28, 0, 27, 0, 30, 0, 29, 0, 28, 0), +"lods": [0.230045, PackedByteArray(29, 0, 4, 0, 28, 0, 29, 0, 5, 0, 4, 0, 30, 0, 29, 0, 28, 0, 30, 0, 28, 0, 27, 0, 31, 0, 30, 0, 27, 0, 31, 0, 27, 0, 26, 0, 1, 0, 31, 0, 26, 0, 1, 0, 26, 0, 0, 0, 11, 0, 0, 0, 10, 0, 11, 0, 1, 0, 0, 0, 12, 0, 11, 0, 10, 0, 12, 0, 10, 0, 9, 0, 13, 0, 12, 0, 9, 0, 13, 0, 9, 0, 8, 0, 3, 0, 13, 0, 8, 0, 3, 0, 8, 0, 2, 0, 13, 0, 3, 0, 23, 0, 25, 0, 13, 0, 23, 0, 25, 0, 23, 0, 24, 0, 17, 0, 25, 0, 7, 0, 18, 0, 25, 0, 17, 0, 18, 0, 19, 0, 25, 0, 19, 0, 13, 0, 25, 0, 5, 0, 29, 0, 19, 0, 29, 0, 30, 0, 19, 0, 19, 0, 11, 0, 13, 0, 30, 0, 11, 0, 19, 0, 11, 0, 12, 0, 13, 0, 30, 0, 31, 0, 11, 0, 31, 0, 1, 0, 11, 0, 23, 0, 2, 0, 22, 0, 23, 0, 3, 0, 2, 0, 24, 0, 23, 0, 22, 0, 24, 0, 22, 0, 21, 0, 25, 0, 24, 0, 21, 0, 7, 0, 25, 0, 21, 0, 7, 0, 21, 0, 6, 0, 17, 0, 6, 0, 15, 0, 17, 0, 7, 0, 6, 0, 18, 0, 17, 0, 15, 0, 19, 0, 18, 0, 15, 0, 19, 0, 15, 0, 14, 0, 5, 0, 19, 0, 14, 0, 5, 0, 14, 0, 4, 0, 26, 0, 10, 0, 0, 0, 27, 0, 10, 0, 26, 0, 27, 0, 9, 0, 10, 0, 27, 0, 2, 0, 9, 0, 9, 0, 2, 0, 8, 0, 14, 0, 2, 0, 27, 0, 28, 0, 14, 0, 27, 0, 4, 0, 14, 0, 28, 0, 14, 0, 15, 0, 2, 0, 15, 0, 21, 0, 2, 0, 2, 0, 21, 0, 22, 0, 15, 0, 6, 0, 21, 0)], +"primitive": 3, +"vertex_count": 50, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 192, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 0, 128, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 0, 128, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 0, 128, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 32, 192, 0, 0, 160, 64, 0, 0, 24, 64, 0, 0, 32, 192, 0, 0, 160, 64, 0, 0, 224, 63, 0, 0, 0, 128, 0, 0, 160, 64, 0, 0, 144, 63, 0, 0, 32, 64, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 32, 192, 0, 0, 144, 63, 0, 0, 160, 192, 0, 0, 0, 0, 0, 0, 224, 63, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 24, 64, 0, 0, 160, 192, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 32, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 32, 64, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 32, 64, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 32, 64, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 128, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 0, 128, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 32, 192, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 32, 192, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 32, 192, 0, 0, 32, 64, 0, 0, 120, 63, 0, 0, 32, 64, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 32, 64, 0, 0, 32, 192, 0, 0, 40, 63, 0, 0, 32, 64, 0, 0, 32, 64, 0, 0, 184, 63, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 144, 63, 0, 0, 0, 128, 0, 0, 32, 192, 0, 0, 80, 63, 0, 0, 0, 128, 0, 0, 32, 64, 0, 0, 244, 63, 0, 0, 32, 192, 0, 0, 0, 0, 0, 0, 184, 63, 0, 0, 32, 192, 0, 0, 32, 192, 0, 0, 120, 63, 0, 0, 32, 192) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "poke_Cube_001" +_surfaces = [{ +"aabb": AABB(-5, -0.5, -5, 10, 3.5, 10), +"attribute_data": PackedByteArray(0, 0, 0, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 128, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 224, 62, 0, 0, 192, 62, 0, 0, 80, 63, 0, 0, 0, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 96, 63, 0, 0, 0, 62, 0, 0, 160, 62, 0, 0, 192, 62, 0, 0, 112, 63, 0, 0, 32, 63, 0, 0, 112, 63, 0, 0, 96, 63, 0, 0, 160, 62, 0, 0, 32, 63, 0, 0, 96, 63, 0, 0, 96, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 80, 63, 0, 0, 96, 63, 0, 0, 224, 62, 0, 0, 192, 62, 0, 0, 160, 62, 0, 0, 192, 62, 0, 0, 160, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 224, 62, 0, 0, 192, 62, 0, 0, 224, 62, 0, 0, 32, 63, 0, 0, 224, 62, 0, 0, 32, 63, 0, 0, 224, 62, 0, 0, 32, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 160, 62, 0, 0, 32, 63, 0, 0, 160, 62, 0, 0, 160, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 16, 63, 255, 255, 127, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 64, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 48, 63, 0, 0, 32, 63, 0, 0, 48, 63, 0, 0, 80, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 16, 63, 0, 0, 48, 63, 0, 0, 0, 63, 0, 0, 64, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 61, 0, 0, 128, 62, 0, 0, 128, 62, 0, 0, 192, 62, 4, 0, 0, 62, 0, 0, 160, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 64, 62, 0, 0, 32, 63, 0, 0, 64, 62, 0, 0, 48, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 0, 62, 0, 0, 64, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 61, 0, 0, 80, 63, 0, 0, 128, 62, 0, 0, 64, 62, 0, 0, 160, 62, 0, 0, 128, 62, 0, 0, 160, 62, 0, 0, 160, 62, 0, 0, 160, 62, 0, 0, 64, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 160, 62, 0, 0, 192, 62, 0, 0, 64, 62, 0, 0, 224, 62, 0, 0, 128, 62, 0, 0, 224, 62, 0, 0, 160, 62, 0, 0, 224, 62, 0, 0, 48, 63, 0, 0, 160, 62, 0, 0, 64, 63, 0, 0, 160, 62, 0, 0, 80, 63, 0, 0, 160, 62, 0, 0, 48, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 80, 63, 0, 0, 192, 62, 0, 0, 48, 63, 0, 0, 224, 62, 0, 0, 64, 63, 0, 0, 224, 62, 0, 0, 80, 63, 0, 0, 224, 62), +"format": 4119, +"index_count": 288, +"index_data": PackedByteArray(66, 0, 13, 0, 65, 0, 66, 0, 16, 0, 13, 0, 30, 0, 2, 0, 29, 0, 30, 0, 4, 0, 2, 0, 89, 0, 11, 0, 55, 0, 89, 0, 35, 0, 11, 0, 54, 0, 8, 0, 53, 0, 54, 0, 10, 0, 8, 0, 43, 0, 20, 0, 41, 0, 43, 0, 23, 0, 20, 0, 78, 0, 6, 0, 24, 0, 78, 0, 52, 0, 6, 0, 60, 0, 28, 0, 0, 0, 60, 0, 72, 0, 28, 0, 72, 0, 26, 0, 28, 0, 72, 0, 75, 0, 26, 0, 75, 0, 24, 0, 26, 0, 75, 0, 78, 0, 24, 0, 17, 0, 37, 0, 14, 0, 17, 0, 47, 0, 37, 0, 47, 0, 39, 0, 37, 0, 47, 0, 45, 0, 39, 0, 45, 0, 41, 0, 39, 0, 45, 0, 43, 0, 41, 0, 71, 0, 31, 0, 83, 0, 71, 0, 5, 0, 31, 0, 83, 0, 33, 0, 86, 0, 83, 0, 31, 0, 33, 0, 86, 0, 35, 0, 89, 0, 86, 0, 33, 0, 35, 0, 9, 0, 25, 0, 7, 0, 9, 0, 34, 0, 25, 0, 34, 0, 27, 0, 25, 0, 34, 0, 32, 0, 27, 0, 32, 0, 29, 0, 27, 0, 32, 0, 30, 0, 29, 0, 44, 0, 87, 0, 42, 0, 44, 0, 84, 0, 87, 0, 84, 0, 88, 0, 87, 0, 84, 0, 85, 0, 88, 0, 85, 0, 89, 0, 88, 0, 85, 0, 86, 0, 89, 0, 46, 0, 84, 0, 44, 0, 46, 0, 81, 0, 84, 0, 81, 0, 85, 0, 84, 0, 81, 0, 82, 0, 85, 0, 82, 0, 86, 0, 85, 0, 82, 0, 83, 0, 86, 0, 15, 0, 81, 0, 46, 0, 15, 0, 67, 0, 81, 0, 67, 0, 82, 0, 81, 0, 67, 0, 69, 0, 82, 0, 69, 0, 83, 0, 82, 0, 69, 0, 71, 0, 83, 0, 38, 0, 80, 0, 77, 0, 38, 0, 40, 0, 80, 0, 77, 0, 79, 0, 76, 0, 77, 0, 80, 0, 79, 0, 76, 0, 78, 0, 75, 0, 76, 0, 79, 0, 78, 0, 36, 0, 77, 0, 74, 0, 36, 0, 38, 0, 77, 0, 74, 0, 76, 0, 73, 0, 74, 0, 77, 0, 76, 0, 73, 0, 75, 0, 72, 0, 73, 0, 76, 0, 75, 0, 12, 0, 74, 0, 64, 0, 12, 0, 36, 0, 74, 0, 64, 0, 73, 0, 62, 0, 64, 0, 74, 0, 73, 0, 62, 0, 72, 0, 60, 0, 62, 0, 73, 0, 72, 0, 40, 0, 48, 0, 80, 0, 40, 0, 18, 0, 48, 0, 80, 0, 50, 0, 79, 0, 80, 0, 48, 0, 50, 0, 79, 0, 52, 0, 78, 0, 79, 0, 50, 0, 52, 0, 22, 0, 49, 0, 19, 0, 22, 0, 58, 0, 49, 0, 58, 0, 51, 0, 49, 0, 58, 0, 56, 0, 51, 0, 56, 0, 53, 0, 51, 0, 56, 0, 54, 0, 53, 0, 42, 0, 59, 0, 21, 0, 42, 0, 87, 0, 59, 0, 87, 0, 57, 0, 59, 0, 87, 0, 88, 0, 57, 0, 88, 0, 55, 0, 57, 0, 88, 0, 89, 0, 55, 0, 3, 0, 61, 0, 1, 0, 3, 0, 70, 0, 61, 0, 70, 0, 63, 0, 61, 0, 70, 0, 68, 0, 63, 0, 68, 0, 65, 0, 63, 0, 68, 0, 66, 0, 65, 0), +"lods": [0.230045, PackedByteArray(66, 0, 13, 0, 65, 0, 66, 0, 16, 0, 13, 0, 68, 0, 66, 0, 65, 0, 68, 0, 65, 0, 63, 0, 70, 0, 68, 0, 63, 0, 70, 0, 63, 0, 61, 0, 3, 0, 70, 0, 61, 0, 3, 0, 61, 0, 1, 0, 30, 0, 2, 0, 29, 0, 30, 0, 4, 0, 2, 0, 32, 0, 30, 0, 29, 0, 32, 0, 29, 0, 27, 0, 34, 0, 32, 0, 27, 0, 34, 0, 27, 0, 25, 0, 9, 0, 34, 0, 25, 0, 9, 0, 25, 0, 7, 0, 35, 0, 11, 0, 55, 0, 59, 0, 35, 0, 55, 0, 59, 0, 55, 0, 57, 0, 42, 0, 59, 0, 21, 0, 44, 0, 59, 0, 42, 0, 44, 0, 46, 0, 59, 0, 46, 0, 35, 0, 59, 0, 15, 0, 67, 0, 46, 0, 67, 0, 69, 0, 46, 0, 46, 0, 31, 0, 35, 0, 69, 0, 31, 0, 46, 0, 31, 0, 33, 0, 35, 0, 69, 0, 71, 0, 31, 0, 71, 0, 5, 0, 31, 0, 54, 0, 8, 0, 53, 0, 54, 0, 10, 0, 8, 0, 56, 0, 54, 0, 53, 0, 56, 0, 53, 0, 51, 0, 58, 0, 56, 0, 51, 0, 22, 0, 58, 0, 51, 0, 22, 0, 51, 0, 19, 0, 43, 0, 20, 0, 39, 0, 43, 0, 23, 0, 20, 0, 45, 0, 43, 0, 39, 0, 47, 0, 45, 0, 39, 0, 47, 0, 39, 0, 37, 0, 17, 0, 47, 0, 37, 0, 17, 0, 37, 0, 14, 0, 60, 0, 28, 0, 0, 0, 62, 0, 28, 0, 60, 0, 62, 0, 26, 0, 28, 0, 62, 0, 6, 0, 26, 0, 26, 0, 6, 0, 24, 0, 36, 0, 6, 0, 62, 0, 64, 0, 36, 0, 62, 0, 12, 0, 36, 0, 64, 0, 36, 0, 38, 0, 6, 0, 38, 0, 50, 0, 6, 0, 6, 0, 50, 0, 52, 0, 38, 0, 18, 0, 50, 0)], +"material": ExtResource("1_rdbra"), +"primitive": 3, +"vertex_count": 90, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 60, 124, 120, 248, 222, 3, 0, 190, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 152, 105, 101, 230, 249, 22, 130, 180, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 64, 204, 124, 101, 230, 224, 3, 14, 190, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 192, 132, 108, 9, 217, 159, 23, 130, 180, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 0, 128, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 32, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 64, 176, 120, 7, 245, 132, 7, 53, 188, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 0, 128, 43, 114, 180, 238, 52, 14, 221, 184, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 32, 192, 82, 108, 10, 233, 46, 20, 225, 181, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 32, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 32, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 0, 128, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 0, 128, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 32, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 32, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 24, 64, 0, 0, 32, 192, 224, 110, 249, 218, 156, 20, 219, 181, 0, 0, 160, 64, 0, 0, 24, 64, 0, 0, 32, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 224, 63, 0, 0, 0, 128, 11, 116, 55, 223, 168, 14, 216, 184, 0, 0, 160, 64, 0, 0, 224, 63, 0, 0, 0, 128, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 144, 63, 0, 0, 32, 64, 186, 121, 224, 227, 255, 7, 48, 188, 0, 0, 160, 64, 0, 0, 144, 63, 0, 0, 32, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 32, 192, 0, 0, 144, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 32, 192, 0, 0, 144, 63, 0, 0, 160, 192, 38, 106, 224, 227, 14, 23, 132, 180, 0, 0, 0, 0, 0, 0, 224, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 0, 0, 0, 0, 224, 63, 0, 0, 160, 192, 43, 107, 55, 223, 37, 23, 132, 180, 0, 0, 32, 64, 0, 0, 24, 64, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 32, 64, 0, 0, 24, 64, 0, 0, 160, 192, 24, 108, 249, 218, 62, 23, 131, 180, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 254, 255, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 254, 255, 0, 0, 32, 64, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 32, 64, 0, 0, 0, 63, 0, 0, 160, 64, 183, 124, 10, 233, 205, 3, 235, 189, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 254, 255, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 160, 64, 137, 124, 180, 238, 215, 3, 244, 189, 0, 0, 32, 192, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 254, 255, 0, 0, 32, 192, 0, 0, 0, 63, 0, 0, 160, 64, 86, 124, 7, 245, 222, 3, 0, 190, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 32, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 32, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 32, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 0, 128, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 0, 128, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 0, 128, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 192, 0, 0, 0, 191, 0, 0, 32, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 32, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 64, 0, 0, 0, 191, 0, 0, 32, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 32, 64, 0, 0, 120, 63, 0, 0, 32, 64, 153, 121, 105, 230, 135, 7, 59, 188, 0, 0, 0, 0, 0, 0, 80, 63, 0, 0, 32, 64, 69, 121, 205, 235, 133, 7, 60, 188, 0, 0, 32, 192, 0, 0, 40, 63, 0, 0, 32, 64, 228, 120, 201, 241, 134, 7, 60, 188, 0, 0, 32, 64, 0, 0, 184, 63, 0, 0, 0, 128, 209, 115, 138, 225, 54, 14, 228, 184, 0, 0, 0, 0, 0, 0, 144, 63, 0, 0, 0, 128, 52, 115, 105, 230, 54, 14, 228, 184, 0, 0, 32, 192, 0, 0, 80, 63, 0, 0, 0, 128, 136, 114, 205, 235, 54, 14, 228, 184, 0, 0, 32, 64, 0, 0, 244, 63, 0, 0, 32, 192, 142, 110, 28, 221, 51, 20, 230, 181, 0, 0, 0, 0, 0, 0, 184, 63, 0, 0, 32, 192, 184, 109, 138, 225, 51, 20, 229, 181, 0, 0, 32, 192, 0, 0, 120, 63, 0, 0, 32, 192, 207, 108, 105, 230, 50, 20, 230, 181) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_q7end") diff --git a/assets/meshes/platforms/poke_corner.tres b/assets/meshes/platforms/poke_corner.tres new file mode 100644 index 0000000..95d96d0 --- /dev/null +++ b/assets/meshes/platforms/poke_corner.tres @@ -0,0 +1,31 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://buyff2c3guxdj"] + +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="1_r2n3h"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_257m7"] +_surfaces = [{ +"aabb": AABB(-5, -0.5, -5, 10, 3.5, 10), +"format": 4097, +"index_count": 24, +"index_data": PackedByteArray(1, 0, 2, 0, 0, 0, 1, 0, 3, 0, 2, 0, 0, 0, 5, 0, 1, 0, 0, 0, 4, 0, 5, 0, 4, 0, 3, 0, 5, 0, 4, 0, 2, 0, 3, 0, 1, 0, 5, 0, 3, 0, 0, 0, 2, 0, 4, 0), +"primitive": 3, +"vertex_count": 6, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 192) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "poke_corner_Cube_001" +_surfaces = [{ +"aabb": AABB(-5, -0.5, -5, 10, 3.5, 10), +"attribute_data": PackedByteArray(0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63), +"format": 4119, +"index_count": 24, +"index_data": PackedByteArray(3, 0, 6, 0, 0, 0, 3, 0, 9, 0, 6, 0, 2, 0, 15, 0, 4, 0, 2, 0, 13, 0, 15, 0, 14, 0, 11, 0, 17, 0, 14, 0, 8, 0, 11, 0, 5, 0, 16, 0, 10, 0, 1, 0, 7, 0, 12, 0), +"material": ExtResource("1_r2n3h"), +"primitive": 3, +"vertex_count": 18, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 63, 255, 127, 243, 188, 243, 60, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 63, 255, 127, 226, 182, 226, 54, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 152, 153, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 63, 255, 127, 248, 131, 248, 3, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 64, 255, 63, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 64, 152, 153, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 192, 152, 153, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_257m7") diff --git a/assets/meshes/platforms/ramp.tres b/assets/meshes/platforms/ramp.tres new file mode 100644 index 0000000..b2721f0 --- /dev/null +++ b/assets/meshes/platforms/ramp.tres @@ -0,0 +1,31 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://bf6hiaub2ecc7"] + +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="1_kjodo"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_bw4px"] +_surfaces = [{ +"aabb": AABB(-5, -0.5, -5, 10, 3.5, 10), +"format": 4097, +"index_count": 36, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 7, 0, 3, 0, 2, 0, 6, 0, 7, 0, 6, 0, 5, 0, 7, 0, 6, 0, 4, 0, 5, 0, 4, 0, 1, 0, 5, 0, 4, 0, 0, 0, 1, 0, 2, 0, 4, 0, 6, 0, 2, 0, 0, 0, 4, 0, 7, 0, 1, 0, 3, 0, 7, 0, 5, 0, 1, 0), +"primitive": 3, +"vertex_count": 8, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 192) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "ramp_Cube_001" +_surfaces = [{ +"aabb": AABB(-5, -0.5, -5, 10, 3.5, 10), +"attribute_data": PackedByteArray(0, 0, 0, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 128, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63), +"format": 4119, +"index_count": 36, +"index_data": PackedByteArray(2, 0, 9, 0, 4, 0, 2, 0, 7, 0, 9, 0, 8, 0, 22, 0, 10, 0, 8, 0, 19, 0, 22, 0, 20, 0, 17, 0, 23, 0, 20, 0, 14, 0, 17, 0, 13, 0, 3, 0, 16, 0, 13, 0, 1, 0, 3, 0, 6, 0, 12, 0, 18, 0, 6, 0, 0, 0, 12, 0, 21, 0, 5, 0, 11, 0, 21, 0, 15, 0, 5, 0), +"material": ExtResource("1_kjodo"), +"primitive": 3, +"vertex_count": 24, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 102, 102, 102, 230, 152, 25, 50, 179, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 102, 102, 102, 230, 152, 25, 50, 179, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 64, 102, 102, 102, 230, 152, 25, 50, 179, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 192, 102, 102, 102, 230, 152, 25, 50, 179, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 64, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_bw4px") diff --git a/assets/meshes/platforms/small_wide_turn.tres b/assets/meshes/platforms/small_wide_turn.tres new file mode 100644 index 0000000..8535749 --- /dev/null +++ b/assets/meshes/platforms/small_wide_turn.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://dhvhlj43vxfla"] + +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="1_vbf77"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_qwqmo"] +_surfaces = [{ +"aabb": AABB(-9.8618, -0.5, -10.1382, 20, 1, 20), +"format": 4097, +"index_count": 300, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 7, 0, 10, 0, 11, 0, 7, 0, 6, 0, 10, 0, 3, 0, 6, 0, 7, 0, 3, 0, 2, 0, 6, 0, 0, 0, 5, 0, 4, 0, 0, 0, 1, 0, 5, 0, 8, 0, 13, 0, 12, 0, 8, 0, 9, 0, 13, 0, 4, 0, 9, 0, 8, 0, 4, 0, 5, 0, 9, 0, 11, 0, 14, 0, 15, 0, 11, 0, 10, 0, 14, 0, 19, 0, 22, 0, 23, 0, 19, 0, 18, 0, 22, 0, 15, 0, 18, 0, 19, 0, 15, 0, 14, 0, 18, 0, 12, 0, 17, 0, 16, 0, 12, 0, 13, 0, 17, 0, 16, 0, 21, 0, 20, 0, 16, 0, 17, 0, 21, 0, 23, 0, 26, 0, 27, 0, 23, 0, 22, 0, 26, 0, 20, 0, 25, 0, 24, 0, 20, 0, 21, 0, 25, 0, 31, 0, 34, 0, 35, 0, 31, 0, 30, 0, 34, 0, 27, 0, 30, 0, 31, 0, 27, 0, 26, 0, 30, 0, 24, 0, 29, 0, 28, 0, 24, 0, 25, 0, 29, 0, 28, 0, 33, 0, 32, 0, 28, 0, 29, 0, 33, 0, 35, 0, 38, 0, 39, 0, 35, 0, 34, 0, 38, 0, 32, 0, 37, 0, 36, 0, 32, 0, 33, 0, 37, 0, 43, 0, 46, 0, 47, 0, 43, 0, 42, 0, 46, 0, 39, 0, 42, 0, 43, 0, 39, 0, 38, 0, 42, 0, 36, 0, 41, 0, 40, 0, 36, 0, 37, 0, 41, 0, 40, 0, 45, 0, 44, 0, 40, 0, 41, 0, 45, 0, 2, 0, 10, 0, 6, 0, 10, 0, 18, 0, 14, 0, 18, 0, 26, 0, 22, 0, 26, 0, 34, 0, 30, 0, 34, 0, 42, 0, 38, 0, 42, 0, 50, 0, 46, 0, 50, 0, 44, 0, 48, 0, 50, 0, 40, 0, 44, 0, 34, 0, 50, 0, 42, 0, 18, 0, 34, 0, 26, 0, 2, 0, 18, 0, 10, 0, 4, 0, 2, 0, 0, 0, 8, 0, 2, 0, 4, 0, 2, 0, 34, 0, 18, 0, 34, 0, 40, 0, 50, 0, 34, 0, 36, 0, 40, 0, 8, 0, 34, 0, 2, 0, 12, 0, 34, 0, 8, 0, 34, 0, 32, 0, 36, 0, 34, 0, 28, 0, 32, 0, 16, 0, 34, 0, 12, 0, 20, 0, 34, 0, 16, 0, 34, 0, 24, 0, 28, 0, 34, 0, 20, 0, 24, 0, 48, 0, 51, 0, 50, 0, 48, 0, 49, 0, 51, 0, 45, 0, 51, 0, 49, 0, 51, 0, 43, 0, 47, 0, 43, 0, 35, 0, 39, 0, 35, 0, 27, 0, 31, 0, 27, 0, 19, 0, 23, 0, 19, 0, 11, 0, 15, 0, 11, 0, 3, 0, 7, 0, 3, 0, 5, 0, 1, 0, 3, 0, 9, 0, 5, 0, 19, 0, 3, 0, 11, 0, 35, 0, 19, 0, 27, 0, 51, 0, 35, 0, 43, 0, 41, 0, 51, 0, 45, 0, 37, 0, 51, 0, 41, 0, 51, 0, 19, 0, 35, 0, 19, 0, 9, 0, 3, 0, 19, 0, 13, 0, 9, 0, 37, 0, 19, 0, 51, 0, 33, 0, 19, 0, 37, 0, 19, 0, 17, 0, 13, 0, 19, 0, 21, 0, 17, 0, 29, 0, 19, 0, 33, 0, 19, 0, 25, 0, 21, 0, 25, 0, 19, 0, 29, 0, 47, 0, 50, 0, 51, 0, 47, 0, 46, 0, 50, 0, 44, 0, 49, 0, 48, 0, 44, 0, 45, 0, 49, 0), +"lods": [0.450927, PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 3, 0, 6, 0, 11, 0, 3, 0, 2, 0, 6, 0, 11, 0, 6, 0, 22, 0, 11, 0, 22, 0, 19, 0, 19, 0, 22, 0, 27, 0, 27, 0, 22, 0, 38, 0, 27, 0, 38, 0, 35, 0, 35, 0, 38, 0, 43, 0, 43, 0, 38, 0, 46, 0, 43, 0, 46, 0, 50, 0, 43, 0, 50, 0, 51, 0, 0, 0, 13, 0, 4, 0, 0, 0, 1, 0, 13, 0, 4, 0, 13, 0, 8, 0, 8, 0, 13, 0, 20, 0, 20, 0, 13, 0, 33, 0, 20, 0, 33, 0, 28, 0, 28, 0, 33, 0, 32, 0, 32, 0, 33, 0, 45, 0, 32, 0, 45, 0, 40, 0, 40, 0, 45, 0, 49, 0, 40, 0, 49, 0, 48, 0, 38, 0, 50, 0, 46, 0, 50, 0, 40, 0, 48, 0, 38, 0, 40, 0, 50, 0, 38, 0, 32, 0, 40, 0, 38, 0, 28, 0, 32, 0, 38, 0, 20, 0, 28, 0, 20, 0, 38, 0, 8, 0, 8, 0, 38, 0, 2, 0, 2, 0, 38, 0, 22, 0, 2, 0, 22, 0, 6, 0, 8, 0, 2, 0, 4, 0, 4, 0, 2, 0, 0, 0, 48, 0, 51, 0, 50, 0, 48, 0, 49, 0, 51, 0, 45, 0, 51, 0, 49, 0, 45, 0, 19, 0, 51, 0, 33, 0, 19, 0, 45, 0, 51, 0, 35, 0, 43, 0, 51, 0, 19, 0, 35, 0, 35, 0, 19, 0, 27, 0, 19, 0, 33, 0, 13, 0, 19, 0, 13, 0, 3, 0, 3, 0, 13, 0, 1, 0, 19, 0, 3, 0, 11, 0), 3.03953, PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 3, 0, 6, 0, 19, 0, 3, 0, 2, 0, 6, 0, 19, 0, 22, 0, 50, 0, 0, 0, 33, 0, 8, 0, 0, 0, 1, 0, 33, 0, 8, 0, 33, 0, 40, 0, 40, 0, 33, 0, 49, 0, 40, 0, 49, 0, 48, 0, 19, 0, 6, 0, 22, 0, 19, 0, 50, 0, 51, 0, 50, 0, 40, 0, 48, 0, 22, 0, 40, 0, 50, 0, 22, 0, 8, 0, 40, 0, 8, 0, 22, 0, 2, 0, 2, 0, 22, 0, 6, 0, 8, 0, 2, 0, 0, 0, 48, 0, 51, 0, 50, 0, 48, 0, 49, 0, 51, 0, 33, 0, 51, 0, 49, 0, 33, 0, 19, 0, 51, 0, 19, 0, 33, 0, 3, 0, 3, 0, 33, 0, 1, 0)], +"primitive": 3, +"vertex_count": 52, +"vertex_data": PackedByteArray(243, 201, 29, 193, 255, 255, 255, 190, 192, 131, 13, 190, 243, 201, 29, 193, 0, 0, 0, 63, 192, 131, 13, 190, 243, 201, 29, 193, 255, 255, 255, 190, 15, 54, 34, 193, 243, 201, 29, 193, 0, 0, 0, 63, 15, 54, 34, 193, 152, 231, 8, 193, 255, 255, 255, 190, 128, 164, 87, 189, 152, 231, 8, 193, 0, 0, 0, 63, 128, 164, 87, 189, 125, 10, 232, 192, 255, 255, 255, 190, 58, 121, 31, 193, 125, 10, 232, 192, 0, 0, 0, 63, 58, 121, 31, 193, 113, 193, 232, 192, 255, 255, 255, 190, 64, 103, 79, 62, 113, 193, 232, 192, 0, 0, 0, 63, 64, 103, 79, 62, 252, 238, 149, 192, 255, 255, 255, 190, 182, 78, 23, 193, 252, 238, 149, 192, 0, 0, 0, 63, 182, 78, 23, 193, 120, 30, 193, 192, 255, 255, 255, 190, 64, 125, 31, 63, 120, 30, 193, 192, 0, 0, 0, 63, 64, 125, 31, 63, 22, 82, 13, 192, 255, 255, 255, 190, 72, 218, 9, 193, 22, 82, 13, 192, 0, 0, 0, 63, 72, 218, 9, 193, 228, 147, 155, 192, 255, 255, 255, 190, 64, 204, 153, 63, 228, 147, 155, 192, 0, 0, 0, 63, 64, 204, 153, 63, 128, 131, 13, 62, 255, 255, 255, 190, 192, 173, 238, 192, 128, 131, 13, 62, 0, 0, 0, 63, 192, 173, 238, 192, 78, 140, 113, 192, 255, 255, 255, 190, 104, 209, 246, 63, 78, 140, 113, 192, 0, 0, 0, 63, 104, 209, 246, 63, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 44, 15, 20, 64, 0, 0, 0, 63, 42, 43, 192, 192, 100, 155, 50, 192, 255, 255, 255, 190, 86, 155, 50, 64, 100, 155, 50, 192, 0, 0, 0, 63, 86, 155, 50, 64, 126, 248, 136, 64, 255, 255, 255, 190, 136, 248, 136, 192, 126, 248, 136, 64, 0, 0, 0, 63, 136, 248, 136, 192, 126, 209, 246, 191, 255, 255, 255, 190, 60, 140, 113, 64, 126, 209, 246, 191, 0, 0, 0, 63, 60, 140, 113, 64, 36, 43, 192, 64, 255, 255, 255, 190, 69, 15, 20, 192, 36, 43, 192, 64, 0, 0, 0, 63, 69, 15, 20, 192, 72, 204, 153, 191, 255, 255, 255, 190, 218, 147, 155, 64, 72, 204, 153, 191, 0, 0, 0, 63, 218, 147, 155, 64, 190, 173, 238, 64, 255, 255, 255, 190, 64, 133, 13, 190, 190, 173, 238, 64, 0, 0, 0, 63, 64, 133, 13, 190, 64, 125, 31, 191, 255, 255, 255, 190, 108, 30, 193, 64, 64, 125, 31, 191, 0, 0, 0, 63, 108, 30, 193, 64, 74, 218, 9, 65, 255, 255, 255, 190, 246, 81, 13, 64, 74, 218, 9, 65, 0, 0, 0, 63, 246, 81, 13, 64, 0, 103, 79, 190, 255, 255, 255, 190, 100, 193, 232, 64, 0, 103, 79, 190, 0, 0, 0, 63, 100, 193, 232, 64, 186, 78, 23, 65, 255, 255, 255, 190, 236, 238, 149, 64, 186, 78, 23, 65, 0, 0, 0, 63, 236, 238, 149, 64, 0, 167, 87, 61, 255, 255, 255, 190, 147, 231, 8, 65, 0, 167, 87, 61, 0, 0, 0, 63, 147, 231, 8, 65, 64, 121, 31, 65, 255, 255, 255, 190, 108, 10, 232, 64, 64, 121, 31, 65, 0, 0, 0, 63, 108, 10, 232, 64, 192, 132, 13, 62, 255, 255, 255, 190, 238, 201, 29, 65, 192, 132, 13, 62, 0, 0, 0, 63, 238, 201, 29, 65, 24, 54, 34, 65, 255, 255, 255, 190, 235, 201, 29, 65, 24, 54, 34, 65, 0, 0, 0, 63, 235, 201, 29, 65) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "wide_turn_small-6e237ca1d0f874ac4bdf9eea3a770eab_Cube_004" +_surfaces = [{ +"aabb": AABB(-9.8618, -0.5, -10.1382, 20, 1, 20), +"attribute_data": PackedByteArray(0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63), +"format": 4119, +"index_count": 300, +"index_data": PackedByteArray(0, 0, 9, 0, 3, 0, 0, 0, 6, 0, 9, 0, 19, 0, 25, 0, 27, 0, 19, 0, 17, 0, 25, 0, 11, 0, 17, 0, 19, 0, 11, 0, 8, 0, 17, 0, 1, 0, 14, 0, 12, 0, 1, 0, 4, 0, 14, 0, 20, 0, 30, 0, 28, 0, 20, 0, 22, 0, 30, 0, 12, 0, 22, 0, 20, 0, 12, 0, 14, 0, 22, 0, 27, 0, 33, 0, 35, 0, 27, 0, 25, 0, 33, 0, 43, 0, 49, 0, 51, 0, 43, 0, 41, 0, 49, 0, 35, 0, 41, 0, 43, 0, 35, 0, 33, 0, 41, 0, 28, 0, 38, 0, 36, 0, 28, 0, 30, 0, 38, 0, 36, 0, 46, 0, 44, 0, 36, 0, 38, 0, 46, 0, 51, 0, 57, 0, 59, 0, 51, 0, 49, 0, 57, 0, 44, 0, 54, 0, 52, 0, 44, 0, 46, 0, 54, 0, 67, 0, 73, 0, 75, 0, 67, 0, 65, 0, 73, 0, 59, 0, 65, 0, 67, 0, 59, 0, 57, 0, 65, 0, 52, 0, 62, 0, 60, 0, 52, 0, 54, 0, 62, 0, 60, 0, 70, 0, 68, 0, 60, 0, 62, 0, 70, 0, 75, 0, 81, 0, 83, 0, 75, 0, 73, 0, 81, 0, 68, 0, 78, 0, 76, 0, 68, 0, 70, 0, 78, 0, 91, 0, 97, 0, 99, 0, 91, 0, 89, 0, 97, 0, 83, 0, 89, 0, 91, 0, 83, 0, 81, 0, 89, 0, 76, 0, 86, 0, 84, 0, 76, 0, 78, 0, 86, 0, 84, 0, 94, 0, 92, 0, 84, 0, 86, 0, 94, 0, 7, 0, 24, 0, 16, 0, 24, 0, 40, 0, 32, 0, 40, 0, 56, 0, 48, 0, 56, 0, 72, 0, 64, 0, 72, 0, 88, 0, 80, 0, 88, 0, 106, 0, 96, 0, 106, 0, 93, 0, 101, 0, 106, 0, 85, 0, 93, 0, 72, 0, 106, 0, 88, 0, 40, 0, 72, 0, 56, 0, 7, 0, 40, 0, 24, 0, 13, 0, 7, 0, 2, 0, 21, 0, 7, 0, 13, 0, 7, 0, 72, 0, 40, 0, 72, 0, 85, 0, 106, 0, 72, 0, 77, 0, 85, 0, 21, 0, 72, 0, 7, 0, 29, 0, 72, 0, 21, 0, 72, 0, 69, 0, 77, 0, 72, 0, 61, 0, 69, 0, 37, 0, 72, 0, 29, 0, 45, 0, 72, 0, 37, 0, 72, 0, 53, 0, 61, 0, 72, 0, 45, 0, 53, 0, 102, 0, 109, 0, 107, 0, 102, 0, 104, 0, 109, 0, 95, 0, 110, 0, 105, 0, 110, 0, 90, 0, 98, 0, 90, 0, 74, 0, 82, 0, 74, 0, 58, 0, 66, 0, 58, 0, 42, 0, 50, 0, 42, 0, 26, 0, 34, 0, 26, 0, 10, 0, 18, 0, 10, 0, 15, 0, 5, 0, 10, 0, 23, 0, 15, 0, 42, 0, 10, 0, 26, 0, 74, 0, 42, 0, 58, 0, 110, 0, 74, 0, 90, 0, 87, 0, 110, 0, 95, 0, 79, 0, 110, 0, 87, 0, 110, 0, 42, 0, 74, 0, 42, 0, 23, 0, 10, 0, 42, 0, 31, 0, 23, 0, 79, 0, 42, 0, 110, 0, 71, 0, 42, 0, 79, 0, 42, 0, 39, 0, 31, 0, 42, 0, 47, 0, 39, 0, 63, 0, 42, 0, 71, 0, 42, 0, 55, 0, 47, 0, 55, 0, 42, 0, 63, 0, 99, 0, 108, 0, 111, 0, 99, 0, 97, 0, 108, 0, 92, 0, 103, 0, 100, 0, 92, 0, 94, 0, 103, 0), +"lods": [0.450927, PackedByteArray(0, 0, 9, 0, 3, 0, 0, 0, 6, 0, 9, 0, 11, 0, 17, 0, 27, 0, 11, 0, 8, 0, 17, 0, 27, 0, 17, 0, 119, 0, 27, 0, 120, 0, 43, 0, 43, 0, 120, 0, 59, 0, 59, 0, 120, 0, 121, 0, 59, 0, 81, 0, 75, 0, 75, 0, 81, 0, 91, 0, 91, 0, 81, 0, 97, 0, 91, 0, 97, 0, 108, 0, 91, 0, 108, 0, 111, 0, 1, 0, 30, 0, 12, 0, 1, 0, 4, 0, 30, 0, 12, 0, 30, 0, 20, 0, 20, 0, 30, 0, 44, 0, 44, 0, 30, 0, 70, 0, 44, 0, 70, 0, 60, 0, 60, 0, 70, 0, 68, 0, 68, 0, 70, 0, 94, 0, 68, 0, 94, 0, 84, 0, 84, 0, 94, 0, 103, 0, 84, 0, 103, 0, 100, 0, 80, 0, 106, 0, 96, 0, 106, 0, 85, 0, 101, 0, 80, 0, 85, 0, 106, 0, 80, 0, 69, 0, 85, 0, 80, 0, 61, 0, 69, 0, 80, 0, 45, 0, 61, 0, 45, 0, 80, 0, 21, 0, 21, 0, 80, 0, 7, 0, 7, 0, 80, 0, 48, 0, 7, 0, 48, 0, 16, 0, 21, 0, 7, 0, 13, 0, 13, 0, 7, 0, 2, 0, 102, 0, 109, 0, 107, 0, 102, 0, 104, 0, 109, 0, 95, 0, 110, 0, 105, 0, 95, 0, 42, 0, 110, 0, 71, 0, 42, 0, 95, 0, 110, 0, 74, 0, 90, 0, 110, 0, 42, 0, 74, 0, 74, 0, 42, 0, 58, 0, 42, 0, 71, 0, 31, 0, 42, 0, 31, 0, 10, 0, 10, 0, 31, 0, 5, 0, 42, 0, 10, 0, 26, 0), 3.03953, PackedByteArray(0, 0, 9, 0, 3, 0, 0, 0, 6, 0, 9, 0, 112, 0, 17, 0, 114, 0, 11, 0, 8, 0, 17, 0, 114, 0, 117, 0, 118, 0, 1, 0, 70, 0, 20, 0, 1, 0, 4, 0, 70, 0, 20, 0, 70, 0, 84, 0, 84, 0, 70, 0, 103, 0, 84, 0, 103, 0, 100, 0, 115, 0, 113, 0, 116, 0, 115, 0, 108, 0, 111, 0, 106, 0, 85, 0, 101, 0, 48, 0, 85, 0, 106, 0, 48, 0, 21, 0, 85, 0, 21, 0, 48, 0, 7, 0, 7, 0, 48, 0, 16, 0, 21, 0, 7, 0, 2, 0, 102, 0, 109, 0, 107, 0, 102, 0, 104, 0, 109, 0, 71, 0, 110, 0, 105, 0, 71, 0, 42, 0, 110, 0, 42, 0, 71, 0, 10, 0, 10, 0, 71, 0, 5, 0)], +"material": ExtResource("1_vbf77"), +"primitive": 3, +"vertex_count": 122, +"vertex_data": PackedByteArray(243, 201, 29, 193, 255, 255, 255, 190, 192, 131, 13, 190, 0, 0, 255, 127, 255, 127, 255, 255, 243, 201, 29, 193, 255, 255, 255, 190, 192, 131, 13, 190, 32, 120, 255, 127, 255, 255, 255, 63, 243, 201, 29, 193, 255, 255, 255, 190, 192, 131, 13, 190, 255, 127, 0, 0, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 0, 63, 192, 131, 13, 190, 0, 0, 255, 127, 255, 127, 255, 255, 243, 201, 29, 193, 0, 0, 0, 63, 192, 131, 13, 190, 32, 120, 255, 127, 255, 255, 255, 63, 243, 201, 29, 193, 0, 0, 0, 63, 192, 131, 13, 190, 255, 127, 255, 255, 255, 255, 255, 191, 243, 201, 29, 193, 255, 255, 255, 190, 15, 54, 34, 193, 0, 0, 255, 127, 255, 127, 255, 255, 243, 201, 29, 193, 255, 255, 255, 190, 15, 54, 34, 193, 255, 127, 0, 0, 255, 255, 255, 191, 243, 201, 29, 193, 255, 255, 255, 190, 15, 54, 34, 193, 255, 255, 31, 248, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 0, 63, 15, 54, 34, 193, 0, 0, 255, 127, 255, 127, 255, 255, 243, 201, 29, 193, 0, 0, 0, 63, 15, 54, 34, 193, 255, 127, 255, 255, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 0, 63, 15, 54, 34, 193, 255, 255, 31, 248, 255, 255, 255, 191, 152, 231, 8, 193, 255, 255, 255, 190, 128, 164, 87, 189, 27, 113, 255, 127, 255, 255, 255, 63, 152, 231, 8, 193, 255, 255, 255, 190, 128, 164, 87, 189, 255, 127, 0, 0, 255, 255, 255, 191, 152, 231, 8, 193, 0, 0, 0, 63, 128, 164, 87, 189, 27, 113, 255, 127, 255, 255, 255, 63, 152, 231, 8, 193, 0, 0, 0, 63, 128, 164, 87, 189, 255, 127, 255, 255, 255, 255, 255, 191, 125, 10, 232, 192, 255, 255, 255, 190, 58, 121, 31, 193, 255, 127, 0, 0, 255, 255, 255, 191, 125, 10, 232, 192, 255, 255, 255, 190, 58, 121, 31, 193, 255, 255, 27, 241, 255, 255, 255, 191, 125, 10, 232, 192, 0, 0, 0, 63, 58, 121, 31, 193, 255, 127, 255, 255, 255, 255, 255, 191, 125, 10, 232, 192, 0, 0, 0, 63, 58, 121, 31, 193, 255, 255, 27, 241, 255, 255, 255, 191, 113, 193, 232, 192, 255, 255, 255, 190, 64, 103, 79, 62, 243, 100, 255, 127, 255, 255, 255, 63, 113, 193, 232, 192, 255, 255, 255, 190, 64, 103, 79, 62, 255, 127, 0, 0, 255, 255, 255, 191, 113, 193, 232, 192, 0, 0, 0, 63, 64, 103, 79, 62, 243, 100, 255, 127, 255, 255, 255, 63, 113, 193, 232, 192, 0, 0, 0, 63, 64, 103, 79, 62, 255, 127, 255, 255, 255, 255, 255, 191, 252, 238, 149, 192, 255, 255, 255, 190, 182, 78, 23, 193, 255, 127, 0, 0, 255, 255, 255, 191, 252, 238, 149, 192, 255, 255, 255, 190, 182, 78, 23, 193, 255, 255, 242, 228, 255, 255, 255, 191, 252, 238, 149, 192, 0, 0, 0, 63, 182, 78, 23, 193, 255, 127, 255, 255, 255, 255, 255, 191, 252, 238, 149, 192, 0, 0, 0, 63, 182, 78, 23, 193, 255, 255, 242, 228, 255, 255, 255, 191, 120, 30, 193, 192, 255, 255, 255, 190, 64, 125, 31, 63, 129, 90, 255, 127, 255, 255, 255, 63, 120, 30, 193, 192, 255, 255, 255, 190, 64, 125, 31, 63, 255, 127, 0, 0, 255, 255, 255, 191, 120, 30, 193, 192, 0, 0, 0, 63, 64, 125, 31, 63, 129, 90, 255, 127, 255, 255, 255, 63, 120, 30, 193, 192, 0, 0, 0, 63, 64, 125, 31, 63, 255, 127, 255, 255, 255, 255, 255, 191, 22, 82, 13, 192, 255, 255, 255, 190, 72, 218, 9, 193, 255, 127, 0, 0, 255, 255, 255, 191, 22, 82, 13, 192, 255, 255, 255, 190, 72, 218, 9, 193, 255, 255, 129, 218, 255, 255, 255, 191, 22, 82, 13, 192, 0, 0, 0, 63, 72, 218, 9, 193, 255, 127, 255, 255, 255, 255, 255, 191, 22, 82, 13, 192, 0, 0, 0, 63, 72, 218, 9, 193, 255, 255, 129, 218, 255, 255, 255, 191, 228, 147, 155, 192, 255, 255, 255, 190, 64, 204, 153, 63, 37, 81, 255, 127, 255, 255, 255, 63, 228, 147, 155, 192, 255, 255, 255, 190, 64, 204, 153, 63, 255, 127, 0, 0, 255, 255, 255, 191, 228, 147, 155, 192, 0, 0, 0, 63, 64, 204, 153, 63, 37, 81, 255, 127, 255, 255, 255, 63, 228, 147, 155, 192, 0, 0, 0, 63, 64, 204, 153, 63, 255, 127, 255, 255, 255, 255, 255, 191, 128, 131, 13, 62, 255, 255, 255, 190, 192, 173, 238, 192, 255, 127, 0, 0, 255, 255, 255, 191, 128, 131, 13, 62, 255, 255, 255, 190, 192, 173, 238, 192, 255, 255, 37, 209, 255, 255, 255, 191, 128, 131, 13, 62, 0, 0, 0, 63, 192, 173, 238, 192, 255, 127, 255, 255, 255, 255, 255, 191, 128, 131, 13, 62, 0, 0, 0, 63, 192, 173, 238, 192, 255, 255, 37, 209, 255, 255, 255, 191, 78, 140, 113, 192, 255, 255, 255, 190, 104, 209, 246, 63, 108, 72, 255, 127, 255, 255, 255, 63, 78, 140, 113, 192, 255, 255, 255, 190, 104, 209, 246, 63, 255, 127, 0, 0, 255, 255, 255, 191, 78, 140, 113, 192, 0, 0, 0, 63, 104, 209, 246, 63, 108, 72, 255, 127, 255, 255, 255, 63, 78, 140, 113, 192, 0, 0, 0, 63, 104, 209, 246, 63, 255, 127, 255, 255, 255, 255, 255, 191, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 255, 127, 0, 0, 255, 255, 255, 191, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 255, 255, 108, 200, 255, 255, 255, 191, 44, 15, 20, 64, 0, 0, 0, 63, 42, 43, 192, 192, 255, 127, 255, 255, 255, 255, 255, 191, 44, 15, 20, 64, 0, 0, 0, 63, 42, 43, 192, 192, 255, 255, 108, 200, 255, 255, 255, 191, 100, 155, 50, 192, 255, 255, 255, 190, 86, 155, 50, 64, 255, 63, 255, 127, 255, 255, 255, 63, 100, 155, 50, 192, 255, 255, 255, 190, 86, 155, 50, 64, 255, 127, 0, 0, 255, 255, 255, 191, 100, 155, 50, 192, 0, 0, 0, 63, 86, 155, 50, 64, 255, 63, 255, 127, 255, 255, 255, 63, 100, 155, 50, 192, 0, 0, 0, 63, 86, 155, 50, 64, 255, 127, 255, 255, 255, 255, 255, 191, 126, 248, 136, 64, 255, 255, 255, 190, 136, 248, 136, 192, 255, 127, 0, 0, 255, 255, 255, 191, 126, 248, 136, 64, 255, 255, 255, 190, 136, 248, 136, 192, 255, 255, 255, 191, 255, 255, 255, 191, 126, 248, 136, 64, 0, 0, 0, 63, 136, 248, 136, 192, 255, 127, 255, 255, 255, 255, 255, 191, 126, 248, 136, 64, 0, 0, 0, 63, 136, 248, 136, 192, 255, 255, 255, 191, 255, 255, 255, 191, 126, 209, 246, 191, 255, 255, 255, 190, 60, 140, 113, 64, 146, 55, 255, 127, 255, 255, 255, 63, 126, 209, 246, 191, 255, 255, 255, 190, 60, 140, 113, 64, 255, 127, 0, 0, 255, 255, 255, 191, 126, 209, 246, 191, 0, 0, 0, 63, 60, 140, 113, 64, 146, 55, 255, 127, 255, 255, 255, 63, 126, 209, 246, 191, 0, 0, 0, 63, 60, 140, 113, 64, 255, 127, 255, 255, 255, 255, 255, 191, 36, 43, 192, 64, 255, 255, 255, 190, 69, 15, 20, 192, 255, 127, 0, 0, 255, 255, 255, 191, 36, 43, 192, 64, 255, 255, 255, 190, 69, 15, 20, 192, 255, 255, 146, 183, 255, 255, 255, 191, 36, 43, 192, 64, 0, 0, 0, 63, 69, 15, 20, 192, 255, 127, 255, 255, 255, 255, 255, 191, 36, 43, 192, 64, 0, 0, 0, 63, 69, 15, 20, 192, 255, 255, 146, 183, 255, 255, 255, 191, 72, 204, 153, 191, 255, 255, 255, 190, 218, 147, 155, 64, 217, 46, 255, 127, 255, 255, 255, 63, 72, 204, 153, 191, 255, 255, 255, 190, 218, 147, 155, 64, 255, 127, 0, 0, 255, 255, 255, 191, 72, 204, 153, 191, 0, 0, 0, 63, 218, 147, 155, 64, 217, 46, 255, 127, 255, 255, 255, 63, 72, 204, 153, 191, 0, 0, 0, 63, 218, 147, 155, 64, 255, 127, 255, 255, 255, 255, 255, 191, 190, 173, 238, 64, 255, 255, 255, 190, 64, 133, 13, 190, 255, 127, 0, 0, 255, 255, 255, 191, 190, 173, 238, 64, 255, 255, 255, 190, 64, 133, 13, 190, 255, 255, 217, 174, 255, 255, 255, 191, 190, 173, 238, 64, 0, 0, 0, 63, 64, 133, 13, 190, 255, 127, 255, 255, 255, 255, 255, 191, 190, 173, 238, 64, 0, 0, 0, 63, 64, 133, 13, 190, 255, 255, 217, 174, 255, 255, 255, 191, 64, 125, 31, 191, 255, 255, 255, 190, 108, 30, 193, 64, 125, 37, 255, 127, 255, 255, 255, 63, 64, 125, 31, 191, 255, 255, 255, 190, 108, 30, 193, 64, 255, 127, 0, 0, 255, 255, 255, 191, 64, 125, 31, 191, 0, 0, 0, 63, 108, 30, 193, 64, 125, 37, 255, 127, 255, 255, 255, 63, 64, 125, 31, 191, 0, 0, 0, 63, 108, 30, 193, 64, 255, 127, 255, 255, 255, 255, 255, 191, 74, 218, 9, 65, 255, 255, 255, 190, 246, 81, 13, 64, 255, 127, 0, 0, 255, 255, 255, 191, 74, 218, 9, 65, 255, 255, 255, 190, 246, 81, 13, 64, 255, 255, 125, 165, 255, 255, 255, 191, 74, 218, 9, 65, 0, 0, 0, 63, 246, 81, 13, 64, 255, 127, 255, 255, 255, 255, 255, 191, 74, 218, 9, 65, 0, 0, 0, 63, 246, 81, 13, 64, 255, 255, 125, 165, 255, 255, 255, 191, 0, 103, 79, 190, 255, 255, 255, 190, 100, 193, 232, 64, 12, 27, 255, 127, 255, 255, 255, 63, 0, 103, 79, 190, 255, 255, 255, 190, 100, 193, 232, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 103, 79, 190, 0, 0, 0, 63, 100, 193, 232, 64, 12, 27, 255, 127, 255, 255, 255, 63, 0, 103, 79, 190, 0, 0, 0, 63, 100, 193, 232, 64, 255, 127, 255, 255, 255, 255, 255, 191, 186, 78, 23, 65, 255, 255, 255, 190, 236, 238, 149, 64, 255, 127, 0, 0, 255, 255, 255, 191, 186, 78, 23, 65, 255, 255, 255, 190, 236, 238, 149, 64, 255, 255, 11, 155, 255, 255, 255, 191, 186, 78, 23, 65, 0, 0, 0, 63, 236, 238, 149, 64, 255, 127, 255, 255, 255, 255, 255, 191, 186, 78, 23, 65, 0, 0, 0, 63, 236, 238, 149, 64, 255, 255, 11, 155, 255, 255, 255, 191, 0, 167, 87, 61, 255, 255, 255, 190, 147, 231, 8, 65, 227, 14, 255, 127, 255, 255, 255, 63, 0, 167, 87, 61, 255, 255, 255, 190, 147, 231, 8, 65, 255, 127, 0, 0, 255, 255, 255, 191, 0, 167, 87, 61, 0, 0, 0, 63, 147, 231, 8, 65, 227, 14, 255, 127, 255, 255, 255, 63, 0, 167, 87, 61, 0, 0, 0, 63, 147, 231, 8, 65, 255, 127, 255, 255, 255, 255, 255, 191, 64, 121, 31, 65, 255, 255, 255, 190, 108, 10, 232, 64, 255, 127, 0, 0, 255, 255, 255, 191, 64, 121, 31, 65, 255, 255, 255, 190, 108, 10, 232, 64, 255, 255, 227, 142, 255, 255, 255, 191, 64, 121, 31, 65, 0, 0, 0, 63, 108, 10, 232, 64, 255, 127, 255, 255, 255, 255, 255, 191, 64, 121, 31, 65, 0, 0, 0, 63, 108, 10, 232, 64, 255, 255, 227, 142, 255, 255, 255, 191, 192, 132, 13, 62, 255, 255, 255, 190, 238, 201, 29, 65, 223, 7, 255, 127, 255, 255, 255, 63, 192, 132, 13, 62, 255, 255, 255, 190, 238, 201, 29, 65, 255, 127, 0, 0, 255, 255, 255, 191, 192, 132, 13, 62, 255, 255, 255, 190, 238, 201, 29, 65, 255, 127, 255, 127, 255, 127, 0, 0, 192, 132, 13, 62, 0, 0, 0, 63, 238, 201, 29, 65, 223, 7, 255, 127, 255, 255, 255, 63, 192, 132, 13, 62, 0, 0, 0, 63, 238, 201, 29, 65, 255, 127, 255, 127, 255, 127, 0, 0, 192, 132, 13, 62, 0, 0, 0, 63, 238, 201, 29, 65, 255, 127, 255, 255, 255, 255, 255, 191, 24, 54, 34, 65, 255, 255, 255, 190, 235, 201, 29, 65, 255, 127, 0, 0, 255, 255, 255, 191, 24, 54, 34, 65, 255, 255, 255, 190, 235, 201, 29, 65, 255, 127, 255, 127, 255, 127, 0, 0, 24, 54, 34, 65, 255, 255, 255, 190, 235, 201, 29, 65, 255, 255, 222, 135, 255, 255, 255, 191, 24, 54, 34, 65, 0, 0, 0, 63, 235, 201, 29, 65, 255, 127, 255, 127, 255, 127, 0, 0, 24, 54, 34, 65, 0, 0, 0, 63, 235, 201, 29, 65, 255, 127, 255, 255, 255, 255, 255, 191, 24, 54, 34, 65, 0, 0, 0, 63, 235, 201, 29, 65, 255, 255, 222, 135, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 0, 63, 15, 54, 34, 193, 5, 208, 1, 247, 255, 255, 255, 191, 125, 10, 232, 192, 255, 255, 255, 190, 58, 121, 31, 193, 175, 217, 238, 24, 255, 255, 255, 191, 128, 131, 13, 62, 0, 0, 0, 63, 192, 173, 238, 192, 176, 151, 208, 250, 255, 255, 255, 191, 128, 131, 13, 62, 0, 0, 0, 63, 192, 173, 238, 192, 219, 251, 254, 62, 255, 255, 255, 191, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 89, 237, 252, 38, 255, 255, 255, 191, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 26, 157, 215, 242, 255, 255, 255, 191, 24, 54, 34, 65, 255, 255, 255, 190, 235, 201, 29, 65, 184, 130, 195, 254, 255, 255, 255, 191, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 163, 202, 154, 21, 255, 255, 255, 191, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 232, 245, 171, 49, 255, 255, 255, 191, 74, 218, 9, 65, 255, 255, 255, 190, 246, 81, 13, 64, 73, 195, 71, 36, 255, 255, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_qwqmo") diff --git a/assets/meshes/platforms/turn.tres b/assets/meshes/platforms/turn.tres new file mode 100644 index 0000000..e56d5ac --- /dev/null +++ b/assets/meshes/platforms/turn.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://dgxce0yrvqmg5"] + +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="1_nyynq"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_5b2tc"] +_surfaces = [{ +"aabb": AABB(-5, -0.5, -5, 10, 1, 10), +"format": 4097, +"index_count": 180, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 7, 0, 5, 0, 19, 0, 7, 0, 4, 0, 5, 0, 5, 0, 21, 0, 19, 0, 21, 0, 23, 0, 22, 0, 23, 0, 25, 0, 24, 0, 25, 0, 27, 0, 26, 0, 27, 0, 29, 0, 28, 0, 29, 0, 31, 0, 30, 0, 31, 0, 3, 0, 20, 0, 3, 0, 5, 0, 1, 0, 5, 0, 23, 0, 21, 0, 23, 0, 27, 0, 25, 0, 27, 0, 31, 0, 29, 0, 31, 0, 5, 0, 3, 0, 5, 0, 27, 0, 23, 0, 27, 0, 5, 0, 31, 0, 4, 0, 1, 0, 5, 0, 4, 0, 0, 0, 1, 0, 2, 0, 20, 0, 3, 0, 2, 0, 6, 0, 20, 0, 19, 0, 18, 0, 7, 0, 19, 0, 21, 0, 18, 0, 21, 0, 17, 0, 18, 0, 21, 0, 22, 0, 17, 0, 22, 0, 16, 0, 17, 0, 22, 0, 23, 0, 16, 0, 23, 0, 15, 0, 16, 0, 23, 0, 24, 0, 15, 0, 24, 0, 14, 0, 15, 0, 24, 0, 25, 0, 14, 0, 25, 0, 13, 0, 14, 0, 25, 0, 26, 0, 13, 0, 26, 0, 12, 0, 13, 0, 26, 0, 27, 0, 12, 0, 27, 0, 11, 0, 12, 0, 27, 0, 28, 0, 11, 0, 28, 0, 10, 0, 11, 0, 28, 0, 29, 0, 10, 0, 29, 0, 9, 0, 10, 0, 29, 0, 30, 0, 9, 0, 30, 0, 8, 0, 9, 0, 30, 0, 31, 0, 8, 0, 31, 0, 6, 0, 8, 0, 31, 0, 20, 0, 6, 0, 0, 0, 6, 0, 2, 0, 6, 0, 9, 0, 8, 0, 9, 0, 11, 0, 10, 0, 11, 0, 13, 0, 12, 0, 13, 0, 15, 0, 14, 0, 15, 0, 17, 0, 16, 0, 17, 0, 7, 0, 18, 0, 7, 0, 0, 0, 4, 0, 0, 0, 9, 0, 6, 0, 9, 0, 13, 0, 11, 0, 13, 0, 17, 0, 15, 0, 17, 0, 0, 0, 7, 0, 0, 0, 13, 0, 9, 0, 13, 0, 0, 0, 17, 0), +"lods": [0.396738, PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 7, 0, 5, 0, 19, 0, 7, 0, 4, 0, 5, 0, 19, 0, 14, 0, 7, 0, 19, 0, 22, 0, 14, 0, 22, 0, 24, 0, 14, 0, 24, 0, 25, 0, 14, 0, 25, 0, 10, 0, 14, 0, 25, 0, 28, 0, 10, 0, 28, 0, 8, 0, 10, 0, 28, 0, 30, 0, 8, 0, 2, 0, 8, 0, 30, 0, 2, 0, 30, 0, 3, 0, 19, 0, 24, 0, 22, 0, 5, 0, 24, 0, 19, 0, 5, 0, 25, 0, 24, 0, 25, 0, 5, 0, 30, 0, 25, 0, 30, 0, 28, 0, 30, 0, 5, 0, 3, 0, 3, 0, 5, 0, 1, 0, 4, 0, 1, 0, 5, 0, 4, 0, 0, 0, 1, 0, 0, 0, 8, 0, 2, 0, 0, 0, 10, 0, 8, 0, 10, 0, 0, 0, 14, 0, 14, 0, 0, 0, 7, 0, 7, 0, 0, 0, 4, 0), 1.82825, PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 7, 0, 5, 0, 28, 0, 28, 0, 14, 0, 7, 0, 7, 0, 4, 0, 5, 0, 3, 0, 5, 0, 1, 0, 28, 0, 5, 0, 3, 0, 4, 0, 1, 0, 5, 0, 4, 0, 0, 0, 1, 0, 2, 0, 28, 0, 3, 0, 2, 0, 14, 0, 28, 0, 0, 0, 14, 0, 2, 0, 14, 0, 0, 0, 7, 0, 7, 0, 0, 0, 4, 0)], +"primitive": 3, +"vertex_count": 32, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 128, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 128, 64, 34, 209, 52, 192, 0, 0, 0, 191, 64, 137, 157, 192, 40, 215, 213, 191, 0, 0, 0, 191, 200, 47, 150, 192, 32, 76, 14, 191, 0, 0, 0, 191, 202, 19, 138, 192, 0, 0, 0, 63, 0, 0, 0, 191, 164, 212, 114, 192, 12, 75, 189, 63, 0, 0, 0, 191, 180, 248, 72, 192, 34, 75, 23, 64, 0, 0, 0, 191, 34, 75, 23, 192, 180, 248, 72, 64, 0, 0, 0, 191, 12, 75, 189, 191, 164, 212, 114, 64, 0, 0, 0, 191, 0, 0, 0, 191, 202, 19, 138, 64, 0, 0, 0, 191, 32, 76, 14, 63, 200, 47, 150, 64, 0, 0, 0, 191, 40, 215, 213, 63, 64, 137, 157, 64, 0, 0, 0, 191, 34, 209, 52, 64, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 128, 64, 0, 0, 128, 192, 0, 0, 0, 63, 0, 0, 160, 192, 64, 137, 157, 64, 0, 0, 0, 63, 34, 209, 52, 64, 200, 47, 150, 64, 0, 0, 0, 63, 40, 215, 213, 63, 202, 19, 138, 64, 0, 0, 0, 63, 32, 76, 14, 63, 164, 212, 114, 64, 0, 0, 0, 63, 0, 0, 0, 191, 180, 248, 72, 64, 0, 0, 0, 63, 12, 75, 189, 191, 34, 75, 23, 64, 0, 0, 0, 63, 34, 75, 23, 192, 12, 75, 189, 63, 0, 0, 0, 63, 180, 248, 72, 192, 0, 0, 0, 63, 0, 0, 0, 63, 164, 212, 114, 192, 32, 76, 14, 191, 0, 0, 0, 63, 202, 19, 138, 192, 40, 215, 213, 191, 0, 0, 0, 63, 200, 47, 150, 192, 34, 209, 52, 192, 0, 0, 0, 63, 64, 137, 157, 192) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "turn_Cube001" +_surfaces = [{ +"aabb": AABB(-5, -0.5, -5, 10, 1, 10), +"attribute_data": PackedByteArray(0, 0, 0, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 96, 63, 0, 0, 128, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 154, 153, 25, 62, 0, 0, 0, 63, 0, 0, 192, 62, 154, 153, 57, 63, 255, 255, 191, 62, 206, 204, 140, 62, 0, 0, 192, 62, 206, 204, 140, 62, 89, 172, 55, 62, 180, 3, 255, 62, 0, 0, 192, 62, 234, 20, 50, 63, 94, 59, 85, 62, 28, 19, 252, 62, 0, 0, 192, 62, 40, 177, 42, 63, 50, 197, 113, 62, 28, 59, 247, 62, 0, 0, 192, 62, 180, 142, 35, 63, 103, 102, 134, 62, 236, 144, 240, 62, 0, 0, 192, 62, 205, 204, 28, 63, 232, 237, 146, 62, 188, 49, 232, 62, 0, 0, 192, 62, 12, 137, 22, 63, 57, 66, 158, 62, 60, 66, 222, 62, 0, 0, 192, 62, 0, 0, 0, 63, 188, 49, 168, 62, 232, 237, 210, 62, 0, 0, 192, 62, 232, 237, 210, 62, 238, 144, 176, 62, 102, 102, 198, 62, 0, 0, 192, 62, 104, 102, 198, 62, 30, 59, 183, 62, 152, 226, 184, 62, 0, 0, 192, 62, 152, 226, 184, 62, 28, 19, 188, 62, 176, 157, 170, 62, 1, 0, 192, 62, 174, 157, 170, 62, 179, 3, 191, 62, 46, 214, 155, 62, 0, 0, 192, 62, 44, 214, 155, 62, 0, 0, 32, 63, 206, 204, 140, 62, 0, 0, 32, 63, 206, 204, 140, 62, 0, 0, 32, 63, 154, 153, 57, 63, 153, 153, 89, 63, 0, 0, 0, 63, 0, 0, 32, 63, 44, 214, 155, 62, 38, 126, 32, 63, 46, 214, 155, 62, 0, 0, 32, 63, 176, 157, 170, 62, 114, 246, 33, 63, 176, 157, 170, 62, 0, 0, 32, 63, 152, 226, 184, 62, 112, 98, 36, 63, 152, 226, 184, 62, 0, 0, 32, 63, 104, 102, 198, 62, 138, 183, 39, 63, 102, 102, 198, 62, 0, 0, 32, 63, 232, 237, 210, 62, 33, 231, 43, 63, 232, 237, 210, 62, 0, 0, 32, 63, 0, 0, 0, 63, 228, 222, 48, 63, 58, 66, 222, 62, 0, 0, 32, 63, 12, 137, 22, 63, 11, 137, 54, 63, 190, 49, 232, 62, 0, 0, 32, 63, 205, 204, 28, 63, 204, 204, 60, 63, 240, 144, 240, 62, 0, 0, 32, 63, 180, 142, 35, 63, 180, 142, 67, 63, 30, 59, 247, 62, 0, 0, 32, 63, 40, 177, 42, 63, 40, 177, 74, 63, 28, 19, 252, 62, 0, 0, 32, 63, 234, 20, 50, 63, 233, 20, 82, 63, 180, 3, 255, 62, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 128, 62, 255, 255, 191, 62, 206, 204, 140, 62, 255, 255, 191, 62, 206, 204, 140, 62, 0, 0, 192, 62, 232, 237, 210, 62, 0, 0, 192, 62, 232, 237, 210, 62, 0, 0, 32, 63, 205, 204, 28, 63, 0, 0, 32, 63, 205, 204, 28, 63, 0, 0, 192, 62, 232, 237, 210, 62), +"format": 4119, +"index_count": 180, +"index_data": PackedByteArray(2, 0, 9, 0, 4, 0, 2, 0, 7, 0, 9, 0, 20, 0, 17, 0, 45, 0, 20, 0, 14, 0, 17, 0, 16, 0, 49, 0, 44, 0, 49, 0, 53, 0, 51, 0, 53, 0, 57, 0, 55, 0, 57, 0, 61, 0, 59, 0, 61, 0, 65, 0, 63, 0, 65, 0, 69, 0, 67, 0, 69, 0, 11, 0, 47, 0, 11, 0, 16, 0, 5, 0, 16, 0, 53, 0, 49, 0, 53, 0, 61, 0, 57, 0, 61, 0, 69, 0, 65, 0, 69, 0, 16, 0, 11, 0, 16, 0, 61, 0, 53, 0, 61, 0, 16, 0, 69, 0, 13, 0, 3, 0, 15, 0, 13, 0, 1, 0, 3, 0, 8, 0, 46, 0, 10, 0, 8, 0, 19, 0, 46, 0, 45, 0, 43, 0, 20, 0, 45, 0, 48, 0, 43, 0, 48, 0, 41, 0, 43, 0, 48, 0, 50, 0, 41, 0, 50, 0, 39, 0, 41, 0, 50, 0, 52, 0, 39, 0, 52, 0, 37, 0, 39, 0, 52, 0, 54, 0, 37, 0, 54, 0, 35, 0, 37, 0, 54, 0, 56, 0, 35, 0, 56, 0, 33, 0, 35, 0, 56, 0, 58, 0, 33, 0, 58, 0, 31, 0, 33, 0, 58, 0, 60, 0, 31, 0, 60, 0, 29, 0, 31, 0, 60, 0, 62, 0, 29, 0, 62, 0, 27, 0, 29, 0, 62, 0, 64, 0, 27, 0, 64, 0, 25, 0, 27, 0, 64, 0, 66, 0, 25, 0, 66, 0, 23, 0, 25, 0, 66, 0, 68, 0, 23, 0, 68, 0, 19, 0, 23, 0, 68, 0, 46, 0, 19, 0, 0, 0, 18, 0, 6, 0, 18, 0, 24, 0, 22, 0, 24, 0, 28, 0, 26, 0, 28, 0, 32, 0, 30, 0, 32, 0, 36, 0, 34, 0, 36, 0, 40, 0, 38, 0, 40, 0, 21, 0, 42, 0, 21, 0, 0, 0, 12, 0, 0, 0, 24, 0, 18, 0, 24, 0, 32, 0, 28, 0, 32, 0, 40, 0, 36, 0, 40, 0, 0, 0, 21, 0, 0, 0, 32, 0, 24, 0, 32, 0, 0, 0, 40, 0), +"lods": [0.396738, PackedByteArray(2, 0, 9, 0, 4, 0, 2, 0, 7, 0, 9, 0, 20, 0, 17, 0, 45, 0, 20, 0, 14, 0, 17, 0, 45, 0, 35, 0, 20, 0, 45, 0, 50, 0, 78, 0, 50, 0, 54, 0, 35, 0, 54, 0, 56, 0, 35, 0, 56, 0, 27, 0, 35, 0, 56, 0, 62, 0, 27, 0, 62, 0, 23, 0, 27, 0, 62, 0, 66, 0, 23, 0, 8, 0, 23, 0, 66, 0, 8, 0, 66, 0, 10, 0, 44, 0, 55, 0, 51, 0, 16, 0, 55, 0, 44, 0, 16, 0, 57, 0, 55, 0, 57, 0, 16, 0, 67, 0, 57, 0, 67, 0, 63, 0, 67, 0, 16, 0, 11, 0, 11, 0, 16, 0, 5, 0, 13, 0, 3, 0, 15, 0, 13, 0, 1, 0, 3, 0, 0, 0, 22, 0, 6, 0, 0, 0, 26, 0, 22, 0, 26, 0, 0, 0, 34, 0, 34, 0, 0, 0, 21, 0, 21, 0, 0, 0, 12, 0), 1.82825, PackedByteArray(2, 0, 9, 0, 4, 0, 2, 0, 7, 0, 9, 0, 72, 0, 71, 0, 76, 0, 76, 0, 75, 0, 73, 0, 20, 0, 14, 0, 17, 0, 11, 0, 16, 0, 5, 0, 63, 0, 16, 0, 11, 0, 13, 0, 3, 0, 15, 0, 13, 0, 1, 0, 3, 0, 8, 0, 62, 0, 10, 0, 70, 0, 74, 0, 77, 0, 0, 0, 34, 0, 6, 0, 34, 0, 0, 0, 21, 0, 21, 0, 0, 0, 12, 0)], +"material": ExtResource("1_nyynq"), +"primitive": 3, +"vertex_count": 79, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 254, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 255, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 64, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 128, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 128, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 240, 251, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 128, 64, 255, 255, 13, 132, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 128, 64, 255, 127, 0, 0, 254, 255, 255, 191, 34, 209, 52, 192, 0, 0, 0, 191, 64, 137, 157, 192, 255, 127, 0, 0, 254, 255, 255, 191, 34, 209, 52, 192, 0, 0, 0, 191, 64, 137, 157, 192, 255, 255, 27, 241, 255, 127, 255, 255, 40, 215, 213, 191, 0, 0, 0, 191, 200, 47, 150, 192, 255, 127, 0, 0, 255, 255, 255, 191, 40, 215, 213, 191, 0, 0, 0, 191, 200, 47, 150, 192, 255, 255, 242, 228, 255, 127, 255, 255, 32, 76, 14, 191, 0, 0, 0, 191, 202, 19, 138, 192, 255, 127, 0, 0, 255, 255, 255, 191, 32, 76, 14, 191, 0, 0, 0, 191, 202, 19, 138, 192, 255, 255, 129, 218, 255, 127, 255, 255, 0, 0, 0, 63, 0, 0, 0, 191, 164, 212, 114, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 0, 63, 0, 0, 0, 191, 164, 212, 114, 192, 255, 255, 37, 209, 255, 127, 255, 255, 12, 75, 189, 63, 0, 0, 0, 191, 180, 248, 72, 192, 255, 127, 0, 0, 255, 255, 255, 191, 12, 75, 189, 63, 0, 0, 0, 191, 180, 248, 72, 192, 255, 255, 108, 200, 255, 127, 255, 255, 34, 75, 23, 64, 0, 0, 0, 191, 34, 75, 23, 192, 255, 127, 0, 0, 255, 255, 255, 191, 34, 75, 23, 64, 0, 0, 0, 191, 34, 75, 23, 192, 255, 255, 255, 191, 255, 127, 255, 255, 180, 248, 72, 64, 0, 0, 0, 191, 12, 75, 189, 191, 255, 127, 0, 0, 255, 255, 255, 191, 180, 248, 72, 64, 0, 0, 0, 191, 12, 75, 189, 191, 255, 255, 146, 183, 255, 127, 255, 255, 164, 212, 114, 64, 0, 0, 0, 191, 0, 0, 0, 191, 255, 127, 0, 0, 255, 255, 255, 191, 164, 212, 114, 64, 0, 0, 0, 191, 0, 0, 0, 191, 255, 255, 217, 174, 255, 127, 255, 255, 202, 19, 138, 64, 0, 0, 0, 191, 32, 76, 14, 63, 255, 127, 0, 0, 255, 255, 255, 191, 202, 19, 138, 64, 0, 0, 0, 191, 32, 76, 14, 63, 255, 255, 125, 165, 255, 127, 254, 255, 200, 47, 150, 64, 0, 0, 0, 191, 40, 215, 213, 63, 255, 127, 0, 0, 255, 255, 255, 191, 200, 47, 150, 64, 0, 0, 0, 191, 40, 215, 213, 63, 255, 255, 11, 155, 255, 127, 254, 255, 64, 137, 157, 64, 0, 0, 0, 191, 34, 209, 52, 64, 255, 127, 0, 0, 254, 255, 255, 191, 64, 137, 157, 64, 0, 0, 0, 191, 34, 209, 52, 64, 255, 255, 227, 142, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 128, 64, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 128, 64, 255, 255, 13, 132, 255, 127, 255, 255, 0, 0, 128, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 255, 240, 251, 255, 127, 255, 255, 0, 0, 128, 192, 0, 0, 0, 63, 0, 0, 160, 192, 255, 127, 255, 255, 0, 0, 255, 191, 64, 137, 157, 64, 0, 0, 0, 63, 34, 209, 52, 64, 255, 255, 227, 142, 255, 127, 254, 255, 64, 137, 157, 64, 0, 0, 0, 63, 34, 209, 52, 64, 255, 127, 255, 255, 0, 0, 255, 191, 200, 47, 150, 64, 0, 0, 0, 63, 40, 215, 213, 63, 255, 255, 11, 155, 255, 127, 254, 255, 200, 47, 150, 64, 0, 0, 0, 63, 40, 215, 213, 63, 255, 127, 255, 255, 0, 0, 255, 191, 202, 19, 138, 64, 0, 0, 0, 63, 32, 76, 14, 63, 255, 255, 125, 165, 255, 127, 255, 255, 202, 19, 138, 64, 0, 0, 0, 63, 32, 76, 14, 63, 255, 127, 255, 255, 0, 0, 255, 191, 164, 212, 114, 64, 0, 0, 0, 63, 0, 0, 0, 191, 255, 255, 217, 174, 255, 127, 255, 255, 164, 212, 114, 64, 0, 0, 0, 63, 0, 0, 0, 191, 255, 127, 255, 255, 0, 0, 255, 191, 180, 248, 72, 64, 0, 0, 0, 63, 12, 75, 189, 191, 255, 255, 146, 183, 255, 127, 255, 255, 180, 248, 72, 64, 0, 0, 0, 63, 12, 75, 189, 191, 255, 127, 255, 255, 0, 0, 255, 191, 34, 75, 23, 64, 0, 0, 0, 63, 34, 75, 23, 192, 255, 255, 255, 191, 255, 127, 255, 255, 34, 75, 23, 64, 0, 0, 0, 63, 34, 75, 23, 192, 255, 127, 255, 255, 0, 0, 255, 191, 12, 75, 189, 63, 0, 0, 0, 63, 180, 248, 72, 192, 255, 255, 108, 200, 255, 127, 255, 255, 12, 75, 189, 63, 0, 0, 0, 63, 180, 248, 72, 192, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 0, 63, 0, 0, 0, 63, 164, 212, 114, 192, 255, 255, 37, 209, 255, 127, 255, 255, 0, 0, 0, 63, 0, 0, 0, 63, 164, 212, 114, 192, 255, 127, 255, 255, 0, 0, 255, 191, 32, 76, 14, 191, 0, 0, 0, 63, 202, 19, 138, 192, 255, 255, 129, 218, 255, 127, 255, 255, 32, 76, 14, 191, 0, 0, 0, 63, 202, 19, 138, 192, 255, 127, 255, 255, 0, 0, 255, 191, 40, 215, 213, 191, 0, 0, 0, 63, 200, 47, 150, 192, 255, 255, 242, 228, 255, 127, 255, 255, 40, 215, 213, 191, 0, 0, 0, 63, 200, 47, 150, 192, 255, 127, 255, 255, 0, 0, 255, 191, 34, 209, 52, 192, 0, 0, 0, 63, 64, 137, 157, 192, 255, 255, 27, 241, 255, 127, 255, 255, 34, 209, 52, 192, 0, 0, 0, 63, 64, 137, 157, 192, 255, 127, 255, 255, 0, 0, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 31, 143, 76, 4, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 63, 0, 0, 160, 64, 166, 176, 138, 210, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 128, 64, 145, 210, 11, 181, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 128, 64, 145, 141, 240, 247, 255, 127, 255, 255, 180, 248, 72, 64, 0, 0, 0, 191, 12, 75, 189, 191, 14, 140, 106, 4, 255, 127, 255, 255, 180, 248, 72, 64, 0, 0, 0, 191, 12, 75, 189, 191, 118, 189, 245, 220, 255, 127, 255, 255, 0, 0, 0, 63, 0, 0, 0, 63, 164, 212, 114, 192, 9, 144, 48, 244, 255, 127, 255, 255, 0, 0, 0, 63, 0, 0, 0, 63, 164, 212, 114, 192, 64, 179, 11, 17, 255, 127, 255, 255, 180, 248, 72, 64, 0, 0, 0, 191, 12, 75, 189, 191, 27, 213, 155, 61, 255, 127, 255, 255) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_5b2tc") diff --git a/assets/meshes/platforms/wide_turn.tres b/assets/meshes/platforms/wide_turn.tres new file mode 100644 index 0000000..b079a53 --- /dev/null +++ b/assets/meshes/platforms/wide_turn.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://1uh80csnupve"] + +[ext_resource type="Material" uid="uid://cwyjtikumcq3k" path="res://assets/mats/platform.material" id="1_cn4c6"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_jt4yp"] +_surfaces = [{ +"aabb": AABB(-25, -5, -25, 30, 1, 30), +"format": 4097, +"index_count": 300, +"index_data": PackedByteArray(0, 0, 3, 0, 2, 0, 0, 0, 1, 0, 3, 0, 2, 0, 5, 0, 4, 0, 2, 0, 3, 0, 5, 0, 4, 0, 7, 0, 6, 0, 4, 0, 5, 0, 7, 0, 6, 0, 9, 0, 8, 0, 6, 0, 7, 0, 9, 0, 8, 0, 11, 0, 10, 0, 8, 0, 9, 0, 11, 0, 10, 0, 13, 0, 12, 0, 10, 0, 11, 0, 13, 0, 12, 0, 15, 0, 14, 0, 12, 0, 13, 0, 15, 0, 14, 0, 17, 0, 16, 0, 14, 0, 15, 0, 17, 0, 16, 0, 19, 0, 18, 0, 16, 0, 17, 0, 19, 0, 18, 0, 21, 0, 20, 0, 18, 0, 19, 0, 21, 0, 20, 0, 23, 0, 22, 0, 20, 0, 21, 0, 23, 0, 22, 0, 25, 0, 24, 0, 22, 0, 23, 0, 25, 0, 26, 0, 29, 0, 27, 0, 26, 0, 28, 0, 29, 0, 28, 0, 31, 0, 29, 0, 28, 0, 30, 0, 31, 0, 30, 0, 33, 0, 31, 0, 30, 0, 32, 0, 33, 0, 32, 0, 35, 0, 33, 0, 32, 0, 34, 0, 35, 0, 34, 0, 37, 0, 35, 0, 34, 0, 36, 0, 37, 0, 36, 0, 39, 0, 37, 0, 36, 0, 38, 0, 39, 0, 38, 0, 41, 0, 39, 0, 38, 0, 40, 0, 41, 0, 40, 0, 43, 0, 41, 0, 40, 0, 42, 0, 43, 0, 42, 0, 45, 0, 43, 0, 42, 0, 44, 0, 45, 0, 44, 0, 47, 0, 45, 0, 44, 0, 46, 0, 47, 0, 46, 0, 49, 0, 47, 0, 46, 0, 48, 0, 49, 0, 48, 0, 51, 0, 49, 0, 48, 0, 50, 0, 51, 0, 22, 0, 46, 0, 20, 0, 22, 0, 48, 0, 46, 0, 7, 0, 35, 0, 9, 0, 7, 0, 33, 0, 35, 0, 17, 0, 45, 0, 19, 0, 17, 0, 43, 0, 45, 0, 25, 0, 50, 0, 24, 0, 25, 0, 51, 0, 50, 0, 8, 0, 32, 0, 6, 0, 8, 0, 34, 0, 32, 0, 18, 0, 42, 0, 16, 0, 18, 0, 44, 0, 42, 0, 3, 0, 31, 0, 5, 0, 3, 0, 29, 0, 31, 0, 13, 0, 41, 0, 15, 0, 13, 0, 39, 0, 41, 0, 23, 0, 51, 0, 25, 0, 23, 0, 49, 0, 51, 0, 4, 0, 28, 0, 2, 0, 4, 0, 30, 0, 28, 0, 14, 0, 38, 0, 12, 0, 14, 0, 40, 0, 38, 0, 24, 0, 48, 0, 22, 0, 24, 0, 50, 0, 48, 0, 9, 0, 37, 0, 11, 0, 9, 0, 35, 0, 37, 0, 19, 0, 47, 0, 21, 0, 19, 0, 45, 0, 47, 0, 0, 0, 27, 0, 1, 0, 0, 0, 26, 0, 27, 0, 10, 0, 34, 0, 8, 0, 10, 0, 36, 0, 34, 0, 20, 0, 44, 0, 18, 0, 20, 0, 46, 0, 44, 0, 5, 0, 33, 0, 7, 0, 5, 0, 31, 0, 33, 0, 15, 0, 43, 0, 17, 0, 15, 0, 41, 0, 43, 0, 6, 0, 30, 0, 4, 0, 6, 0, 32, 0, 30, 0, 16, 0, 40, 0, 14, 0, 16, 0, 42, 0, 40, 0, 1, 0, 29, 0, 3, 0, 1, 0, 27, 0, 29, 0, 11, 0, 39, 0, 13, 0, 11, 0, 37, 0, 39, 0, 21, 0, 49, 0, 23, 0, 21, 0, 47, 0, 49, 0, 2, 0, 26, 0, 0, 0, 2, 0, 28, 0, 26, 0, 12, 0, 36, 0, 10, 0, 12, 0, 38, 0, 36, 0), +"lods": [0.256613, PackedByteArray(0, 0, 3, 0, 4, 0, 0, 0, 1, 0, 3, 0, 4, 0, 3, 0, 9, 0, 4, 0, 9, 0, 6, 0, 6, 0, 9, 0, 11, 0, 6, 0, 11, 0, 10, 0, 10, 0, 11, 0, 13, 0, 10, 0, 13, 0, 14, 0, 14, 0, 13, 0, 17, 0, 14, 0, 17, 0, 18, 0, 18, 0, 17, 0, 23, 0, 18, 0, 23, 0, 22, 0, 22, 0, 23, 0, 25, 0, 22, 0, 25, 0, 24, 0, 26, 0, 31, 0, 27, 0, 26, 0, 28, 0, 31, 0, 28, 0, 33, 0, 31, 0, 28, 0, 34, 0, 33, 0, 34, 0, 37, 0, 33, 0, 34, 0, 36, 0, 37, 0, 36, 0, 38, 0, 37, 0, 38, 0, 41, 0, 37, 0, 38, 0, 42, 0, 41, 0, 42, 0, 45, 0, 41, 0, 42, 0, 48, 0, 45, 0, 48, 0, 49, 0, 45, 0, 48, 0, 51, 0, 49, 0, 48, 0, 50, 0, 51, 0, 22, 0, 48, 0, 18, 0, 24, 0, 48, 0, 22, 0, 24, 0, 50, 0, 48, 0, 18, 0, 48, 0, 42, 0, 18, 0, 42, 0, 14, 0, 14, 0, 42, 0, 38, 0, 14, 0, 38, 0, 10, 0, 10, 0, 38, 0, 36, 0, 10, 0, 36, 0, 34, 0, 10, 0, 34, 0, 6, 0, 6, 0, 34, 0, 28, 0, 6, 0, 28, 0, 4, 0, 4, 0, 28, 0, 26, 0, 4, 0, 26, 0, 0, 0, 17, 0, 41, 0, 45, 0, 13, 0, 41, 0, 17, 0, 17, 0, 45, 0, 23, 0, 13, 0, 37, 0, 41, 0, 11, 0, 37, 0, 13, 0, 9, 0, 37, 0, 11, 0, 9, 0, 33, 0, 37, 0, 3, 0, 33, 0, 9, 0, 23, 0, 45, 0, 49, 0, 23, 0, 49, 0, 51, 0, 23, 0, 51, 0, 25, 0, 3, 0, 31, 0, 33, 0, 1, 0, 31, 0, 3, 0, 1, 0, 27, 0, 31, 0, 25, 0, 50, 0, 24, 0, 25, 0, 51, 0, 50, 0, 0, 0, 27, 0, 1, 0, 0, 0, 26, 0, 27, 0), 1.80771, PackedByteArray(0, 0, 3, 0, 6, 0, 0, 0, 1, 0, 3, 0, 6, 0, 3, 0, 13, 0, 6, 0, 13, 0, 14, 0, 14, 0, 13, 0, 23, 0, 14, 0, 23, 0, 25, 0, 14, 0, 25, 0, 24, 0, 26, 0, 33, 0, 27, 0, 26, 0, 34, 0, 33, 0, 34, 0, 41, 0, 33, 0, 34, 0, 48, 0, 41, 0, 48, 0, 51, 0, 41, 0, 48, 0, 50, 0, 51, 0, 25, 0, 50, 0, 24, 0, 25, 0, 51, 0, 50, 0, 23, 0, 51, 0, 25, 0, 23, 0, 41, 0, 51, 0, 24, 0, 48, 0, 14, 0, 24, 0, 50, 0, 48, 0, 14, 0, 48, 0, 34, 0, 14, 0, 34, 0, 6, 0, 6, 0, 34, 0, 26, 0, 6, 0, 26, 0, 0, 0, 13, 0, 33, 0, 41, 0, 0, 0, 27, 0, 1, 0, 0, 0, 26, 0, 27, 0, 3, 0, 33, 0, 13, 0, 13, 0, 41, 0, 23, 0, 1, 0, 33, 0, 3, 0, 1, 0, 27, 0, 33, 0)], +"primitive": 3, +"vertex_count": 52, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 160, 64, 173, 121, 165, 192, 0, 0, 160, 192, 42, 237, 24, 64, 125, 201, 151, 64, 0, 0, 160, 192, 132, 199, 138, 63, 183, 206, 181, 192, 0, 0, 160, 192, 144, 157, 52, 190, 220, 147, 126, 64, 0, 0, 160, 192, 194, 238, 48, 192, 149, 183, 208, 192, 0, 0, 160, 192, 190, 213, 41, 192, 68, 217, 45, 64, 0, 0, 160, 192, 76, 96, 207, 192, 104, 190, 245, 192, 0, 0, 160, 192, 6, 0, 160, 192, 52, 19, 123, 63, 0, 0, 160, 192, 3, 0, 32, 193, 128, 32, 18, 193, 0, 0, 160, 192, 128, 155, 229, 192, 245, 133, 153, 191, 0, 0, 160, 192, 159, 52, 84, 193, 210, 185, 45, 193, 0, 0, 160, 192, 52, 70, 18, 193, 230, 90, 114, 192, 0, 0, 160, 192, 166, 180, 129, 193, 70, 50, 77, 193, 0, 0, 160, 192, 134, 223, 45, 193, 207, 150, 215, 192, 0, 0, 160, 192, 164, 103, 150, 193, 3, 0, 112, 193, 0, 0, 160, 192, 210, 32, 69, 193, 3, 0, 32, 193, 0, 0, 160, 192, 158, 216, 167, 193, 76, 197, 138, 193, 0, 0, 160, 192, 60, 164, 87, 193, 225, 79, 88, 193, 0, 0, 160, 192, 46, 187, 181, 193, 202, 150, 158, 193, 0, 0, 160, 192, 171, 24, 101, 193, 44, 226, 137, 193, 0, 0, 160, 192, 130, 210, 191, 193, 170, 29, 179, 193, 0, 0, 160, 192, 48, 67, 109, 193, 126, 172, 168, 193, 0, 0, 160, 192, 102, 242, 197, 193, 4, 0, 200, 193, 0, 0, 160, 192, 7, 0, 112, 193, 6, 0, 200, 193, 0, 0, 160, 192, 6, 0, 200, 193, 0, 0, 160, 192, 0, 0, 128, 192, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 128, 192, 0, 0, 160, 64, 173, 121, 165, 192, 0, 0, 128, 192, 42, 237, 24, 64, 125, 201, 151, 64, 0, 0, 128, 192, 132, 199, 138, 63, 183, 206, 181, 192, 0, 0, 128, 192, 144, 157, 52, 190, 220, 147, 126, 64, 0, 0, 128, 192, 194, 238, 48, 192, 149, 183, 208, 192, 0, 0, 128, 192, 190, 213, 41, 192, 68, 217, 45, 64, 0, 0, 128, 192, 76, 96, 207, 192, 104, 190, 245, 192, 0, 0, 128, 192, 6, 0, 160, 192, 52, 19, 123, 63, 0, 0, 128, 192, 3, 0, 32, 193, 128, 32, 18, 193, 0, 0, 128, 192, 128, 155, 229, 192, 245, 133, 153, 191, 0, 0, 128, 192, 159, 52, 84, 193, 210, 185, 45, 193, 0, 0, 128, 192, 52, 70, 18, 193, 230, 90, 114, 192, 0, 0, 128, 192, 166, 180, 129, 193, 70, 50, 77, 193, 0, 0, 128, 192, 134, 223, 45, 193, 207, 150, 215, 192, 0, 0, 128, 192, 164, 103, 150, 193, 3, 0, 112, 193, 0, 0, 128, 192, 210, 32, 69, 193, 3, 0, 32, 193, 0, 0, 128, 192, 158, 216, 167, 193, 76, 197, 138, 193, 0, 0, 128, 192, 60, 164, 87, 193, 225, 79, 88, 193, 0, 0, 128, 192, 46, 187, 181, 193, 202, 150, 158, 193, 0, 0, 128, 192, 171, 24, 101, 193, 44, 226, 137, 193, 0, 0, 128, 192, 130, 210, 191, 193, 170, 29, 179, 193, 0, 0, 128, 192, 48, 67, 109, 193, 126, 172, 168, 193, 0, 0, 128, 192, 102, 242, 197, 193, 4, 0, 200, 193, 0, 0, 128, 192, 7, 0, 112, 193, 6, 0, 200, 193, 0, 0, 128, 192, 6, 0, 200, 193) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "wide_turn-2-c480f470ca883b94516a2580e8704fd7_Cube_005" +_surfaces = [{ +"aabb": AABB(-25, -5, -25, 30, 1, 30), +"attribute_data": PackedByteArray(0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63), +"format": 4119, +"index_count": 300, +"index_data": PackedByteArray(1, 0, 8, 0, 7, 0, 1, 0, 3, 0, 8, 0, 7, 0, 12, 0, 11, 0, 7, 0, 8, 0, 12, 0, 11, 0, 16, 0, 15, 0, 11, 0, 12, 0, 16, 0, 15, 0, 20, 0, 19, 0, 15, 0, 16, 0, 20, 0, 19, 0, 24, 0, 23, 0, 19, 0, 20, 0, 24, 0, 23, 0, 28, 0, 27, 0, 23, 0, 24, 0, 28, 0, 27, 0, 32, 0, 31, 0, 27, 0, 28, 0, 32, 0, 31, 0, 36, 0, 35, 0, 31, 0, 32, 0, 36, 0, 35, 0, 40, 0, 39, 0, 35, 0, 36, 0, 40, 0, 39, 0, 44, 0, 43, 0, 39, 0, 40, 0, 44, 0, 43, 0, 48, 0, 47, 0, 43, 0, 44, 0, 48, 0, 47, 0, 54, 0, 52, 0, 47, 0, 48, 0, 54, 0, 58, 0, 64, 0, 60, 0, 58, 0, 63, 0, 64, 0, 63, 0, 68, 0, 64, 0, 63, 0, 67, 0, 68, 0, 67, 0, 72, 0, 68, 0, 67, 0, 71, 0, 72, 0, 71, 0, 76, 0, 72, 0, 71, 0, 75, 0, 76, 0, 75, 0, 80, 0, 76, 0, 75, 0, 79, 0, 80, 0, 79, 0, 84, 0, 80, 0, 79, 0, 83, 0, 84, 0, 83, 0, 88, 0, 84, 0, 83, 0, 87, 0, 88, 0, 87, 0, 92, 0, 88, 0, 87, 0, 91, 0, 92, 0, 91, 0, 96, 0, 92, 0, 91, 0, 95, 0, 96, 0, 95, 0, 100, 0, 96, 0, 95, 0, 99, 0, 100, 0, 99, 0, 104, 0, 100, 0, 99, 0, 103, 0, 104, 0, 103, 0, 110, 0, 104, 0, 103, 0, 108, 0, 110, 0, 46, 0, 98, 0, 42, 0, 46, 0, 102, 0, 98, 0, 17, 0, 77, 0, 21, 0, 17, 0, 73, 0, 77, 0, 37, 0, 97, 0, 41, 0, 37, 0, 93, 0, 97, 0, 53, 0, 106, 0, 50, 0, 53, 0, 109, 0, 106, 0, 18, 0, 70, 0, 14, 0, 18, 0, 74, 0, 70, 0, 38, 0, 90, 0, 34, 0, 38, 0, 94, 0, 90, 0, 9, 0, 69, 0, 13, 0, 9, 0, 65, 0, 69, 0, 29, 0, 89, 0, 33, 0, 29, 0, 85, 0, 89, 0, 49, 0, 111, 0, 55, 0, 49, 0, 105, 0, 111, 0, 10, 0, 62, 0, 6, 0, 10, 0, 66, 0, 62, 0, 30, 0, 82, 0, 26, 0, 30, 0, 86, 0, 82, 0, 51, 0, 102, 0, 46, 0, 51, 0, 107, 0, 102, 0, 21, 0, 81, 0, 25, 0, 21, 0, 77, 0, 81, 0, 41, 0, 101, 0, 45, 0, 41, 0, 97, 0, 101, 0, 2, 0, 59, 0, 4, 0, 2, 0, 57, 0, 59, 0, 22, 0, 74, 0, 18, 0, 22, 0, 78, 0, 74, 0, 42, 0, 94, 0, 38, 0, 42, 0, 98, 0, 94, 0, 13, 0, 73, 0, 17, 0, 13, 0, 69, 0, 73, 0, 33, 0, 93, 0, 37, 0, 33, 0, 89, 0, 93, 0, 14, 0, 66, 0, 10, 0, 14, 0, 70, 0, 66, 0, 34, 0, 86, 0, 30, 0, 34, 0, 90, 0, 86, 0, 5, 0, 65, 0, 9, 0, 5, 0, 61, 0, 65, 0, 25, 0, 85, 0, 29, 0, 25, 0, 81, 0, 85, 0, 45, 0, 105, 0, 49, 0, 45, 0, 101, 0, 105, 0, 6, 0, 56, 0, 0, 0, 6, 0, 62, 0, 56, 0, 26, 0, 78, 0, 22, 0, 26, 0, 82, 0, 78, 0), +"lods": [0.256613, PackedByteArray(1, 0, 8, 0, 11, 0, 1, 0, 3, 0, 8, 0, 11, 0, 8, 0, 20, 0, 11, 0, 20, 0, 15, 0, 15, 0, 20, 0, 24, 0, 15, 0, 24, 0, 23, 0, 23, 0, 24, 0, 28, 0, 23, 0, 28, 0, 31, 0, 31, 0, 28, 0, 36, 0, 31, 0, 36, 0, 39, 0, 39, 0, 36, 0, 48, 0, 39, 0, 48, 0, 47, 0, 47, 0, 48, 0, 54, 0, 47, 0, 54, 0, 52, 0, 58, 0, 68, 0, 60, 0, 58, 0, 63, 0, 68, 0, 63, 0, 72, 0, 68, 0, 63, 0, 75, 0, 72, 0, 75, 0, 80, 0, 72, 0, 75, 0, 79, 0, 80, 0, 79, 0, 83, 0, 80, 0, 83, 0, 88, 0, 80, 0, 83, 0, 91, 0, 88, 0, 91, 0, 96, 0, 88, 0, 91, 0, 103, 0, 96, 0, 103, 0, 104, 0, 96, 0, 103, 0, 110, 0, 104, 0, 103, 0, 108, 0, 110, 0, 46, 0, 102, 0, 38, 0, 51, 0, 102, 0, 46, 0, 51, 0, 107, 0, 102, 0, 38, 0, 102, 0, 90, 0, 38, 0, 90, 0, 30, 0, 30, 0, 90, 0, 82, 0, 30, 0, 82, 0, 22, 0, 22, 0, 82, 0, 78, 0, 22, 0, 78, 0, 74, 0, 22, 0, 74, 0, 14, 0, 14, 0, 74, 0, 62, 0, 14, 0, 62, 0, 10, 0, 10, 0, 62, 0, 56, 0, 10, 0, 56, 0, 0, 0, 37, 0, 89, 0, 97, 0, 29, 0, 89, 0, 37, 0, 128, 0, 97, 0, 129, 0, 29, 0, 81, 0, 89, 0, 25, 0, 81, 0, 29, 0, 21, 0, 81, 0, 25, 0, 21, 0, 73, 0, 81, 0, 126, 0, 73, 0, 127, 0, 49, 0, 97, 0, 105, 0, 49, 0, 105, 0, 111, 0, 49, 0, 111, 0, 55, 0, 9, 0, 69, 0, 73, 0, 5, 0, 69, 0, 9, 0, 5, 0, 61, 0, 69, 0, 53, 0, 106, 0, 50, 0, 53, 0, 109, 0, 106, 0, 2, 0, 59, 0, 4, 0, 2, 0, 57, 0, 59, 0), 1.80771, PackedByteArray(1, 0, 8, 0, 15, 0, 1, 0, 3, 0, 8, 0, 15, 0, 8, 0, 28, 0, 15, 0, 28, 0, 31, 0, 31, 0, 28, 0, 48, 0, 31, 0, 48, 0, 54, 0, 31, 0, 54, 0, 52, 0, 58, 0, 72, 0, 60, 0, 58, 0, 75, 0, 72, 0, 75, 0, 88, 0, 72, 0, 75, 0, 103, 0, 88, 0, 103, 0, 110, 0, 88, 0, 103, 0, 108, 0, 110, 0, 53, 0, 106, 0, 50, 0, 53, 0, 109, 0, 106, 0, 49, 0, 111, 0, 55, 0, 117, 0, 122, 0, 125, 0, 51, 0, 102, 0, 30, 0, 51, 0, 107, 0, 102, 0, 30, 0, 102, 0, 74, 0, 30, 0, 74, 0, 14, 0, 14, 0, 74, 0, 56, 0, 14, 0, 56, 0, 0, 0, 115, 0, 119, 0, 123, 0, 2, 0, 59, 0, 4, 0, 2, 0, 57, 0, 59, 0, 113, 0, 120, 0, 116, 0, 116, 0, 124, 0, 118, 0, 112, 0, 121, 0, 114, 0, 5, 0, 61, 0, 73, 0)], +"material": ExtResource("1_cn4c6"), +"primitive": 3, +"vertex_count": 130, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 160, 64, 223, 7, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 160, 64, 255, 255, 222, 135, 255, 255, 255, 191, 173, 121, 165, 192, 0, 0, 160, 192, 42, 237, 24, 64, 227, 14, 255, 127, 255, 255, 255, 191, 173, 121, 165, 192, 0, 0, 160, 192, 42, 237, 24, 64, 255, 127, 0, 0, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 160, 192, 132, 199, 138, 63, 255, 127, 0, 0, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 160, 192, 132, 199, 138, 63, 255, 255, 227, 142, 255, 255, 255, 191, 183, 206, 181, 192, 0, 0, 160, 192, 144, 157, 52, 190, 12, 27, 255, 127, 255, 255, 255, 191, 183, 206, 181, 192, 0, 0, 160, 192, 144, 157, 52, 190, 255, 127, 0, 0, 255, 255, 255, 191, 220, 147, 126, 64, 0, 0, 160, 192, 194, 238, 48, 192, 255, 127, 0, 0, 255, 255, 255, 191, 220, 147, 126, 64, 0, 0, 160, 192, 194, 238, 48, 192, 255, 255, 11, 155, 255, 255, 255, 191, 149, 183, 208, 192, 0, 0, 160, 192, 190, 213, 41, 192, 125, 37, 255, 127, 255, 255, 255, 191, 149, 183, 208, 192, 0, 0, 160, 192, 190, 213, 41, 192, 255, 127, 0, 0, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 160, 192, 76, 96, 207, 192, 255, 127, 0, 0, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 160, 192, 76, 96, 207, 192, 255, 255, 125, 165, 255, 255, 255, 191, 104, 190, 245, 192, 0, 0, 160, 192, 6, 0, 160, 192, 217, 46, 255, 127, 255, 255, 255, 191, 104, 190, 245, 192, 0, 0, 160, 192, 6, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 52, 19, 123, 63, 0, 0, 160, 192, 3, 0, 32, 193, 255, 127, 0, 0, 255, 255, 255, 191, 52, 19, 123, 63, 0, 0, 160, 192, 3, 0, 32, 193, 255, 255, 217, 174, 255, 255, 255, 191, 128, 32, 18, 193, 0, 0, 160, 192, 128, 155, 229, 192, 146, 55, 255, 127, 255, 255, 255, 191, 128, 32, 18, 193, 0, 0, 160, 192, 128, 155, 229, 192, 255, 127, 0, 0, 255, 255, 255, 191, 245, 133, 153, 191, 0, 0, 160, 192, 159, 52, 84, 193, 255, 127, 0, 0, 255, 255, 255, 191, 245, 133, 153, 191, 0, 0, 160, 192, 159, 52, 84, 193, 255, 255, 146, 183, 255, 255, 255, 191, 210, 185, 45, 193, 0, 0, 160, 192, 52, 70, 18, 193, 255, 63, 255, 127, 255, 255, 255, 191, 210, 185, 45, 193, 0, 0, 160, 192, 52, 70, 18, 193, 255, 127, 0, 0, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 160, 192, 166, 180, 129, 193, 255, 127, 0, 0, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 160, 192, 166, 180, 129, 193, 255, 255, 255, 191, 255, 255, 255, 191, 70, 50, 77, 193, 0, 0, 160, 192, 134, 223, 45, 193, 108, 72, 255, 127, 255, 255, 255, 191, 70, 50, 77, 193, 0, 0, 160, 192, 134, 223, 45, 193, 255, 127, 0, 0, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 160, 192, 164, 103, 150, 193, 255, 127, 0, 0, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 160, 192, 164, 103, 150, 193, 255, 255, 108, 200, 255, 255, 255, 191, 3, 0, 112, 193, 0, 0, 160, 192, 210, 32, 69, 193, 37, 81, 255, 127, 255, 255, 255, 191, 3, 0, 112, 193, 0, 0, 160, 192, 210, 32, 69, 193, 255, 127, 0, 0, 255, 255, 255, 191, 3, 0, 32, 193, 0, 0, 160, 192, 158, 216, 167, 193, 255, 127, 0, 0, 255, 255, 255, 191, 3, 0, 32, 193, 0, 0, 160, 192, 158, 216, 167, 193, 255, 255, 37, 209, 255, 255, 255, 191, 76, 197, 138, 193, 0, 0, 160, 192, 60, 164, 87, 193, 129, 90, 255, 127, 255, 255, 255, 191, 76, 197, 138, 193, 0, 0, 160, 192, 60, 164, 87, 193, 255, 127, 0, 0, 255, 255, 255, 191, 225, 79, 88, 193, 0, 0, 160, 192, 46, 187, 181, 193, 255, 127, 0, 0, 255, 255, 255, 191, 225, 79, 88, 193, 0, 0, 160, 192, 46, 187, 181, 193, 255, 255, 129, 218, 255, 255, 255, 191, 202, 150, 158, 193, 0, 0, 160, 192, 171, 24, 101, 193, 243, 100, 255, 127, 255, 255, 255, 191, 202, 150, 158, 193, 0, 0, 160, 192, 171, 24, 101, 193, 255, 127, 0, 0, 255, 255, 255, 191, 44, 226, 137, 193, 0, 0, 160, 192, 130, 210, 191, 193, 255, 127, 0, 0, 255, 255, 255, 191, 44, 226, 137, 193, 0, 0, 160, 192, 130, 210, 191, 193, 255, 255, 242, 228, 255, 255, 255, 191, 170, 29, 179, 193, 0, 0, 160, 192, 48, 67, 109, 193, 27, 113, 255, 127, 255, 255, 255, 191, 170, 29, 179, 193, 0, 0, 160, 192, 48, 67, 109, 193, 255, 127, 0, 0, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 160, 192, 102, 242, 197, 193, 255, 127, 0, 0, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 160, 192, 102, 242, 197, 193, 255, 255, 27, 241, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 160, 192, 7, 0, 112, 193, 0, 0, 255, 127, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 160, 192, 7, 0, 112, 193, 32, 120, 255, 127, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 160, 192, 7, 0, 112, 193, 255, 127, 0, 0, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 160, 192, 6, 0, 200, 193, 0, 0, 255, 127, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 160, 192, 6, 0, 200, 193, 255, 127, 0, 0, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 160, 192, 6, 0, 200, 193, 255, 255, 31, 248, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 128, 192, 0, 0, 160, 64, 223, 7, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 128, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 128, 192, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 128, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 128, 192, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 128, 192, 0, 0, 160, 64, 255, 255, 222, 135, 255, 255, 255, 191, 173, 121, 165, 192, 0, 0, 128, 192, 42, 237, 24, 64, 227, 14, 255, 127, 255, 255, 255, 191, 173, 121, 165, 192, 0, 0, 128, 192, 42, 237, 24, 64, 255, 127, 255, 255, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 128, 192, 132, 199, 138, 63, 255, 127, 255, 255, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 128, 192, 132, 199, 138, 63, 255, 255, 227, 142, 255, 255, 255, 191, 183, 206, 181, 192, 0, 0, 128, 192, 144, 157, 52, 190, 12, 27, 255, 127, 255, 255, 255, 191, 183, 206, 181, 192, 0, 0, 128, 192, 144, 157, 52, 190, 255, 127, 255, 255, 255, 255, 255, 191, 220, 147, 126, 64, 0, 0, 128, 192, 194, 238, 48, 192, 255, 127, 255, 255, 255, 255, 255, 191, 220, 147, 126, 64, 0, 0, 128, 192, 194, 238, 48, 192, 255, 255, 11, 155, 255, 255, 255, 191, 149, 183, 208, 192, 0, 0, 128, 192, 190, 213, 41, 192, 125, 37, 255, 127, 255, 255, 255, 191, 149, 183, 208, 192, 0, 0, 128, 192, 190, 213, 41, 192, 255, 127, 255, 255, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 128, 192, 76, 96, 207, 192, 255, 127, 255, 255, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 128, 192, 76, 96, 207, 192, 255, 255, 125, 165, 255, 255, 255, 191, 104, 190, 245, 192, 0, 0, 128, 192, 6, 0, 160, 192, 217, 46, 255, 127, 255, 255, 255, 191, 104, 190, 245, 192, 0, 0, 128, 192, 6, 0, 160, 192, 255, 127, 255, 255, 255, 255, 255, 191, 52, 19, 123, 63, 0, 0, 128, 192, 3, 0, 32, 193, 255, 127, 255, 255, 255, 255, 255, 191, 52, 19, 123, 63, 0, 0, 128, 192, 3, 0, 32, 193, 255, 255, 217, 174, 255, 255, 255, 191, 128, 32, 18, 193, 0, 0, 128, 192, 128, 155, 229, 192, 146, 55, 255, 127, 255, 255, 255, 191, 128, 32, 18, 193, 0, 0, 128, 192, 128, 155, 229, 192, 255, 127, 255, 255, 255, 255, 255, 191, 245, 133, 153, 191, 0, 0, 128, 192, 159, 52, 84, 193, 255, 127, 255, 255, 255, 255, 255, 191, 245, 133, 153, 191, 0, 0, 128, 192, 159, 52, 84, 193, 255, 255, 146, 183, 255, 255, 255, 191, 210, 185, 45, 193, 0, 0, 128, 192, 52, 70, 18, 193, 255, 63, 255, 127, 255, 255, 255, 191, 210, 185, 45, 193, 0, 0, 128, 192, 52, 70, 18, 193, 255, 127, 255, 255, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 128, 192, 166, 180, 129, 193, 255, 127, 255, 255, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 128, 192, 166, 180, 129, 193, 255, 255, 255, 191, 255, 255, 255, 191, 70, 50, 77, 193, 0, 0, 128, 192, 134, 223, 45, 193, 108, 72, 255, 127, 255, 255, 255, 191, 70, 50, 77, 193, 0, 0, 128, 192, 134, 223, 45, 193, 255, 127, 255, 255, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 128, 192, 164, 103, 150, 193, 255, 127, 255, 255, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 128, 192, 164, 103, 150, 193, 255, 255, 108, 200, 255, 255, 255, 191, 3, 0, 112, 193, 0, 0, 128, 192, 210, 32, 69, 193, 37, 81, 255, 127, 255, 255, 255, 191, 3, 0, 112, 193, 0, 0, 128, 192, 210, 32, 69, 193, 255, 127, 255, 255, 255, 255, 255, 191, 3, 0, 32, 193, 0, 0, 128, 192, 158, 216, 167, 193, 255, 127, 255, 255, 255, 255, 255, 191, 3, 0, 32, 193, 0, 0, 128, 192, 158, 216, 167, 193, 255, 255, 37, 209, 255, 255, 255, 191, 76, 197, 138, 193, 0, 0, 128, 192, 60, 164, 87, 193, 129, 90, 255, 127, 255, 255, 255, 191, 76, 197, 138, 193, 0, 0, 128, 192, 60, 164, 87, 193, 255, 127, 255, 255, 255, 255, 255, 191, 225, 79, 88, 193, 0, 0, 128, 192, 46, 187, 181, 193, 255, 127, 255, 255, 255, 255, 255, 191, 225, 79, 88, 193, 0, 0, 128, 192, 46, 187, 181, 193, 255, 255, 129, 218, 255, 255, 255, 191, 202, 150, 158, 193, 0, 0, 128, 192, 171, 24, 101, 193, 243, 100, 255, 127, 255, 255, 255, 191, 202, 150, 158, 193, 0, 0, 128, 192, 171, 24, 101, 193, 255, 127, 255, 255, 255, 255, 255, 191, 44, 226, 137, 193, 0, 0, 128, 192, 130, 210, 191, 193, 255, 127, 255, 255, 255, 255, 255, 191, 44, 226, 137, 193, 0, 0, 128, 192, 130, 210, 191, 193, 255, 255, 242, 228, 255, 255, 255, 191, 170, 29, 179, 193, 0, 0, 128, 192, 48, 67, 109, 193, 27, 113, 255, 127, 255, 255, 255, 191, 170, 29, 179, 193, 0, 0, 128, 192, 48, 67, 109, 193, 255, 127, 255, 255, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 128, 192, 102, 242, 197, 193, 255, 127, 255, 255, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 128, 192, 102, 242, 197, 193, 255, 255, 27, 241, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 128, 192, 7, 0, 112, 193, 0, 0, 255, 127, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 128, 192, 7, 0, 112, 193, 32, 120, 255, 127, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 128, 192, 7, 0, 112, 193, 255, 127, 255, 255, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 128, 192, 6, 0, 200, 193, 0, 0, 255, 127, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 128, 192, 6, 0, 200, 193, 255, 127, 255, 255, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 128, 192, 6, 0, 200, 193, 255, 255, 31, 248, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 160, 64, 220, 201, 73, 190, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 160, 192, 132, 199, 138, 63, 219, 132, 160, 3, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 160, 192, 132, 199, 138, 63, 89, 226, 144, 170, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 160, 192, 166, 180, 129, 193, 66, 214, 128, 210, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 160, 192, 166, 180, 129, 193, 144, 144, 230, 7, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 160, 192, 102, 242, 197, 193, 88, 162, 182, 251, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 160, 192, 102, 242, 197, 193, 116, 131, 130, 1, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 128, 192, 76, 96, 207, 192, 16, 170, 122, 232, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 128, 192, 76, 96, 207, 192, 203, 145, 223, 12, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 128, 192, 76, 96, 207, 192, 203, 164, 203, 223, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 128, 192, 164, 103, 150, 193, 17, 133, 74, 255, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 128, 192, 164, 103, 150, 193, 218, 191, 8, 225, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 128, 192, 164, 103, 150, 193, 160, 180, 15, 23, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 128, 192, 6, 0, 200, 193, 42, 158, 249, 252, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 160, 192, 132, 199, 138, 63, 183, 182, 143, 39, 255, 255, 255, 191, 52, 19, 123, 63, 0, 0, 160, 192, 3, 0, 32, 193, 177, 188, 212, 42, 255, 255, 255, 191, 3, 0, 32, 193, 0, 0, 160, 192, 158, 216, 167, 193, 90, 207, 175, 24, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 160, 192, 102, 242, 197, 193, 248, 186, 2, 15, 255, 255, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_jt4yp") diff --git a/assets/meshes/platforms/x.mesh b/assets/meshes/platforms/x.mesh Binary files differnew file mode 100644 index 0000000..e5d8b61 --- /dev/null +++ b/assets/meshes/platforms/x.mesh diff --git a/assets/meshes/ring_finish.tres b/assets/meshes/ring_finish.tres index 5901c9a..b9d82ce 100644 --- a/assets/meshes/ring_finish.tres +++ b/assets/meshes/ring_finish.tres @@ -4,7 +4,7 @@ [resource] material = ExtResource("1_wa3lo") -inner_radius = 25.0 -outer_radius = 40.0 +inner_radius = 12.0 +outer_radius = 17.0 rings = 32 ring_segments = 16 diff --git a/assets/meshes/ring_start.tres b/assets/meshes/ring_start.tres index e3621e9..15e4fae 100644 --- a/assets/meshes/ring_start.tres +++ b/assets/meshes/ring_start.tres @@ -4,7 +4,7 @@ [resource] material = ExtResource("1_hr1sx") -inner_radius = 25.0 -outer_radius = 40.0 +inner_radius = 12.0 +outer_radius = 17.0 rings = 32 ring_segments = 16 diff --git a/assets/meshes/tree_bottom.tres b/assets/meshes/tree_bottom.tres new file mode 100644 index 0000000..90f3454 --- /dev/null +++ b/assets/meshes/tree_bottom.tres @@ -0,0 +1,28 @@ +[gd_resource type="ArrayMesh" load_steps=2 format=3 uid="uid://wpn040a4trym"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_grsbj"] +_surfaces = [{ +"aabb": AABB(-1, -1.5, -1, 2, 3, 2), +"format": 4097, +"index_count": 72, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 1, 0, 23, 0, 22, 0, 0, 0, 1, 0), +"primitive": 3, +"vertex_count": 24, +"vertex_data": PackedByteArray(0, 0, 0, 0, 0, 0, 192, 191, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 192, 63, 0, 0, 128, 191, 0, 0, 0, 63, 0, 0, 192, 191, 215, 179, 93, 191, 0, 0, 0, 63, 0, 0, 192, 63, 215, 179, 93, 191, 215, 179, 93, 63, 0, 0, 192, 191, 0, 0, 0, 191, 215, 179, 93, 63, 0, 0, 192, 63, 0, 0, 0, 191, 0, 0, 128, 63, 0, 0, 192, 191, 0, 0, 0, 128, 0, 0, 128, 63, 0, 0, 192, 63, 0, 0, 0, 128, 215, 179, 93, 63, 0, 0, 192, 191, 0, 0, 0, 63, 215, 179, 93, 63, 0, 0, 192, 63, 0, 0, 0, 63, 0, 0, 0, 63, 0, 0, 192, 191, 215, 179, 93, 63, 0, 0, 0, 63, 0, 0, 192, 63, 215, 179, 93, 63, 0, 0, 0, 0, 0, 0, 192, 191, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 192, 63, 0, 0, 128, 63, 0, 0, 0, 191, 0, 0, 192, 191, 215, 179, 93, 63, 0, 0, 0, 191, 0, 0, 192, 63, 215, 179, 93, 63, 215, 179, 93, 191, 0, 0, 192, 191, 0, 0, 0, 63, 215, 179, 93, 191, 0, 0, 192, 63, 0, 0, 0, 63, 0, 0, 128, 191, 0, 0, 192, 191, 0, 0, 0, 128, 0, 0, 128, 191, 0, 0, 192, 63, 0, 0, 0, 128, 215, 179, 93, 191, 0, 0, 192, 191, 0, 0, 0, 191, 215, 179, 93, 191, 0, 0, 192, 63, 0, 0, 0, 191, 0, 0, 0, 191, 0, 0, 192, 191, 215, 179, 93, 191, 0, 0, 0, 191, 0, 0, 192, 63, 215, 179, 93, 191) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "tree_Cylinder002" +_surfaces = [{ +"aabb": AABB(-1, -1.5, -1, 2, 3, 2), +"attribute_data": PackedByteArray(0, 0, 160, 51, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 128, 63, 0, 0, 160, 51, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 171, 170, 106, 63, 0, 0, 128, 63, 171, 170, 106, 63, 0, 0, 0, 0, 86, 85, 85, 63, 0, 0, 128, 63, 86, 85, 85, 63, 0, 0, 0, 0, 1, 0, 64, 63, 0, 0, 128, 63, 1, 0, 64, 63, 0, 0, 0, 0, 172, 170, 42, 63, 0, 0, 128, 63, 172, 170, 42, 63, 0, 0, 0, 0, 87, 85, 21, 63, 0, 0, 128, 63, 87, 85, 21, 63, 0, 0, 0, 0, 2, 0, 0, 63, 0, 0, 128, 63, 2, 0, 0, 63, 0, 0, 0, 0, 89, 85, 213, 62, 0, 0, 128, 63, 89, 85, 213, 62, 0, 0, 0, 0, 174, 170, 170, 62, 0, 0, 128, 63, 174, 170, 170, 62, 0, 0, 0, 0, 3, 0, 128, 62, 0, 0, 128, 63, 3, 0, 128, 62, 0, 0, 0, 0, 176, 170, 42, 62, 0, 0, 128, 63, 176, 170, 42, 62, 0, 0, 0, 0, 181, 170, 170, 61, 0, 0, 128, 63, 181, 170, 170, 61, 0, 0, 0, 0), +"format": 4119, +"index_count": 72, +"index_data": PackedByteArray(1, 0, 5, 0, 3, 0, 1, 0, 4, 0, 5, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 24, 0, 2, 0, 25, 0, 24, 0, 0, 0, 2, 0), +"primitive": 3, +"vertex_count": 26, +"vertex_data": PackedByteArray(0, 0, 0, 0, 0, 0, 192, 191, 0, 0, 128, 191, 255, 255, 255, 255, 0, 0, 255, 191, 0, 0, 0, 0, 0, 0, 192, 191, 0, 0, 128, 191, 255, 255, 255, 255, 0, 0, 255, 191, 0, 0, 0, 0, 0, 0, 192, 63, 0, 0, 128, 191, 255, 255, 255, 255, 0, 0, 255, 191, 0, 0, 0, 0, 0, 0, 192, 63, 0, 0, 128, 191, 255, 255, 255, 255, 0, 0, 255, 191, 0, 0, 0, 63, 0, 0, 192, 191, 215, 179, 93, 191, 255, 255, 37, 209, 0, 0, 108, 215, 0, 0, 0, 63, 0, 0, 192, 63, 215, 179, 93, 191, 255, 255, 37, 209, 0, 0, 108, 215, 215, 179, 93, 63, 0, 0, 192, 191, 0, 0, 0, 191, 255, 255, 217, 174, 0, 0, 146, 232, 215, 179, 93, 63, 0, 0, 192, 63, 0, 0, 0, 191, 255, 255, 217, 174, 0, 0, 146, 232, 0, 0, 128, 63, 0, 0, 192, 191, 0, 0, 0, 128, 255, 255, 255, 127, 255, 255, 255, 255, 0, 0, 128, 63, 0, 0, 192, 63, 0, 0, 0, 128, 255, 255, 255, 127, 255, 255, 255, 255, 215, 179, 93, 63, 0, 0, 192, 191, 0, 0, 0, 63, 37, 209, 255, 127, 255, 255, 146, 232, 215, 179, 93, 63, 0, 0, 192, 63, 0, 0, 0, 63, 37, 209, 255, 127, 255, 255, 146, 232, 0, 0, 0, 63, 0, 0, 192, 191, 215, 179, 93, 63, 217, 174, 255, 127, 255, 255, 108, 215, 0, 0, 0, 63, 0, 0, 192, 63, 215, 179, 93, 63, 217, 174, 255, 127, 255, 255, 108, 215, 0, 0, 0, 0, 0, 0, 192, 191, 0, 0, 128, 63, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 192, 63, 0, 0, 128, 63, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 0, 191, 0, 0, 192, 191, 215, 179, 93, 63, 37, 81, 255, 127, 37, 209, 255, 191, 0, 0, 0, 191, 0, 0, 192, 63, 215, 179, 93, 63, 37, 81, 255, 127, 37, 209, 255, 191, 215, 179, 93, 191, 0, 0, 192, 191, 0, 0, 0, 63, 217, 46, 255, 127, 217, 174, 255, 191, 215, 179, 93, 191, 0, 0, 192, 63, 0, 0, 0, 63, 217, 46, 255, 127, 217, 174, 255, 191, 0, 0, 128, 191, 0, 0, 192, 191, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 255, 191, 0, 0, 128, 191, 0, 0, 192, 63, 0, 0, 0, 128, 0, 0, 255, 127, 255, 127, 255, 191, 215, 179, 93, 191, 0, 0, 192, 191, 0, 0, 0, 191, 0, 0, 217, 174, 37, 81, 255, 191, 215, 179, 93, 191, 0, 0, 192, 63, 0, 0, 0, 191, 0, 0, 217, 174, 37, 81, 255, 191, 0, 0, 0, 191, 0, 0, 192, 191, 215, 179, 93, 191, 0, 0, 37, 209, 217, 46, 255, 191, 0, 0, 0, 191, 0, 0, 192, 63, 215, 179, 93, 191, 0, 0, 37, 209, 217, 46, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_grsbj") diff --git a/assets/meshes/tree_top.mesh b/assets/meshes/tree_top.mesh Binary files differnew file mode 100644 index 0000000..999106c --- /dev/null +++ b/assets/meshes/tree_top.mesh diff --git a/assets/meshes/walls/corner_wall.tres b/assets/meshes/walls/corner_wall.tres new file mode 100644 index 0000000..1c1abd9 --- /dev/null +++ b/assets/meshes/walls/corner_wall.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://tdpui03o1a0i"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_600u4"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_yvypb"] +_surfaces = [{ +"aabb": AABB(-5, -0.5, -6.00711, 11.0071, 3.00001, 11.0071), +"format": 4097, +"index_count": 36, +"index_data": PackedByteArray(2, 0, 0, 0, 3, 0, 2, 0, 1, 0, 0, 0, 3, 0, 7, 0, 5, 0, 3, 0, 0, 0, 7, 0, 7, 0, 1, 0, 6, 0, 7, 0, 0, 0, 1, 0, 5, 0, 6, 0, 4, 0, 5, 0, 7, 0, 6, 0, 5, 0, 2, 0, 3, 0, 5, 0, 4, 0, 2, 0, 4, 0, 1, 0, 2, 0, 4, 0, 6, 0, 1, 0), +"lods": [3.18117, PackedByteArray(4, 0, 0, 0, 5, 0, 4, 0, 1, 0, 0, 0, 5, 0, 6, 0, 4, 0, 5, 0, 7, 0, 6, 0, 5, 0, 0, 0, 7, 0, 7, 0, 1, 0, 6, 0, 7, 0, 0, 0, 1, 0, 4, 0, 6, 0, 1, 0)], +"primitive": 3, +"vertex_count": 8, +"vertex_data": PackedByteArray(200, 197, 159, 192, 0, 0, 32, 64, 55, 58, 192, 192, 200, 197, 159, 192, 0, 0, 0, 191, 55, 58, 192, 192, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 55, 58, 192, 64, 0, 0, 0, 191, 200, 197, 159, 64, 55, 58, 192, 64, 0, 0, 32, 64, 200, 197, 159, 64) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "corner_wall_Cube001" +_surfaces = [{ +"aabb": AABB(-5, -0.5, -6.00711, 11.0071, 3.00001, 11.0071), +"attribute_data": PackedByteArray(0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62), +"format": 4119, +"index_count": 36, +"index_data": PackedByteArray(6, 0, 0, 0, 9, 0, 6, 0, 3, 0, 0, 0, 11, 0, 21, 0, 16, 0, 11, 0, 1, 0, 21, 0, 23, 0, 5, 0, 20, 0, 23, 0, 2, 0, 5, 0, 17, 0, 19, 0, 14, 0, 17, 0, 22, 0, 19, 0, 15, 0, 7, 0, 10, 0, 15, 0, 12, 0, 7, 0, 13, 0, 4, 0, 8, 0, 13, 0, 18, 0, 4, 0), +"lods": [3.18117, PackedByteArray(26, 0, 24, 0, 27, 0, 26, 0, 25, 0, 24, 0, 27, 0, 19, 0, 26, 0, 27, 0, 22, 0, 19, 0, 16, 0, 1, 0, 21, 0, 23, 0, 5, 0, 20, 0, 23, 0, 2, 0, 5, 0, 13, 0, 18, 0, 4, 0)], +"material": ExtResource("1_600u4"), +"primitive": 3, +"vertex_count": 28, +"vertex_data": PackedByteArray(200, 197, 159, 192, 0, 0, 32, 64, 55, 58, 192, 192, 0, 0, 230, 128, 255, 255, 255, 191, 200, 197, 159, 192, 0, 0, 32, 64, 55, 58, 192, 192, 255, 127, 255, 255, 255, 255, 255, 191, 200, 197, 159, 192, 0, 0, 32, 64, 55, 58, 192, 192, 255, 255, 255, 191, 92, 15, 214, 227, 200, 197, 159, 192, 0, 0, 0, 191, 55, 58, 192, 192, 0, 0, 230, 128, 255, 255, 255, 191, 200, 197, 159, 192, 0, 0, 0, 191, 55, 58, 192, 192, 255, 127, 0, 0, 255, 255, 255, 191, 200, 197, 159, 192, 0, 0, 0, 191, 55, 58, 192, 192, 255, 255, 255, 191, 107, 24, 25, 230, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 230, 128, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 63, 255, 127, 125, 26, 96, 25, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 230, 128, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 255, 63, 255, 127, 178, 16, 211, 27, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 63, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 230, 128, 255, 127, 255, 255, 255, 63, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 63, 255, 127, 38, 106, 118, 5, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 230, 128, 255, 127, 255, 255, 255, 63, 55, 58, 192, 64, 0, 0, 0, 191, 200, 197, 159, 64, 255, 127, 0, 0, 255, 255, 255, 191, 55, 58, 192, 64, 0, 0, 0, 191, 200, 197, 159, 64, 230, 128, 255, 127, 255, 255, 255, 63, 55, 58, 192, 64, 0, 0, 0, 191, 200, 197, 159, 64, 255, 255, 255, 191, 255, 127, 255, 255, 55, 58, 192, 64, 0, 0, 32, 64, 200, 197, 159, 64, 255, 127, 255, 255, 255, 255, 255, 191, 55, 58, 192, 64, 0, 0, 32, 64, 200, 197, 159, 64, 230, 128, 255, 127, 255, 255, 255, 63, 55, 58, 192, 64, 0, 0, 32, 64, 200, 197, 159, 64, 255, 255, 255, 191, 218, 107, 245, 250, 200, 197, 159, 192, 0, 0, 32, 64, 55, 58, 192, 192, 255, 63, 255, 127, 255, 255, 255, 191, 200, 197, 159, 192, 0, 0, 0, 191, 55, 58, 192, 192, 255, 63, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 221, 80, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 233, 101, 255, 127, 38, 106, 118, 5) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_yvypb") diff --git a/assets/meshes/walls/diagonal_wall.tres b/assets/meshes/walls/diagonal_wall.tres new file mode 100644 index 0000000..4fd63e0 --- /dev/null +++ b/assets/meshes/walls/diagonal_wall.tres @@ -0,0 +1,31 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://8dvooynpliqm"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_yjiff"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_ts74p"] +_surfaces = [{ +"aabb": AABB(-5, -3, 5, 10, 5.5, 1), +"format": 4097, +"index_count": 36, +"index_data": PackedByteArray(2, 0, 1, 0, 0, 0, 2, 0, 3, 0, 1, 0, 6, 0, 5, 0, 7, 0, 6, 0, 4, 0, 5, 0, 2, 0, 7, 0, 3, 0, 2, 0, 6, 0, 7, 0, 0, 0, 6, 0, 2, 0, 0, 0, 4, 0, 6, 0, 1, 0, 4, 0, 0, 0, 1, 0, 5, 0, 4, 0, 3, 0, 5, 0, 1, 0, 3, 0, 7, 0, 5, 0), +"primitive": 3, +"vertex_count": 8, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 64, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 192, 64) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "wall_diagonal_Cube_002" +_surfaces = [{ +"aabb": AABB(-5, -3, 5, 10, 5.5, 1), +"attribute_data": PackedByteArray(0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62), +"format": 4119, +"index_count": 36, +"index_data": PackedByteArray(7, 0, 4, 0, 2, 0, 7, 0, 9, 0, 4, 0, 19, 0, 16, 0, 21, 0, 19, 0, 14, 0, 16, 0, 8, 0, 23, 0, 11, 0, 8, 0, 20, 0, 23, 0, 1, 0, 18, 0, 6, 0, 1, 0, 13, 0, 18, 0, 3, 0, 12, 0, 0, 0, 3, 0, 15, 0, 12, 0, 10, 0, 17, 0, 5, 0, 10, 0, 22, 0, 17, 0), +"material": ExtResource("1_yjiff"), +"primitive": 3, +"vertex_count": 24, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 102, 102, 152, 25, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 64, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 64, 152, 153, 102, 230, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 102, 102, 152, 25, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 160, 64, 255, 255, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 160, 64, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 160, 64, 152, 153, 102, 230, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 160, 64, 255, 255, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 64, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 64, 102, 102, 152, 25, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 64, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 64, 152, 153, 102, 230, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 192, 64, 102, 102, 152, 25, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 192, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 64, 192, 0, 0, 192, 64, 255, 255, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 192, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 192, 64, 152, 153, 102, 230, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 0, 0, 0, 192, 64, 255, 255, 255, 127, 255, 255, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_ts74p") diff --git a/assets/meshes/walls/flat_wall.mesh b/assets/meshes/walls/flat_wall.mesh Binary files differnew file mode 100644 index 0000000..35dd03a --- /dev/null +++ b/assets/meshes/walls/flat_wall.mesh diff --git a/assets/meshes/walls/large_curved_wall.tres b/assets/meshes/walls/large_curved_wall.tres new file mode 100644 index 0000000..ed562ea --- /dev/null +++ b/assets/meshes/walls/large_curved_wall.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://dtexmiikiu1om"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_2l2lr"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_k5wpl"] +_surfaces = [{ +"aabb": AABB(-25, -5, -25.9979, 30.9979, 3, 30.9979), +"format": 4097, +"index_count": 300, +"index_data": PackedByteArray(3, 0, 17, 0, 16, 0, 3, 0, 4, 0, 17, 0, 8, 0, 22, 0, 21, 0, 8, 0, 9, 0, 22, 0, 1, 0, 15, 0, 14, 0, 1, 0, 2, 0, 15, 0, 6, 0, 20, 0, 19, 0, 6, 0, 7, 0, 20, 0, 11, 0, 25, 0, 24, 0, 11, 0, 12, 0, 25, 0, 4, 0, 18, 0, 17, 0, 4, 0, 5, 0, 18, 0, 9, 0, 23, 0, 22, 0, 9, 0, 10, 0, 23, 0, 2, 0, 16, 0, 15, 0, 2, 0, 3, 0, 16, 0, 7, 0, 21, 0, 20, 0, 7, 0, 8, 0, 21, 0, 0, 0, 14, 0, 13, 0, 0, 0, 1, 0, 14, 0, 5, 0, 19, 0, 18, 0, 5, 0, 6, 0, 19, 0, 10, 0, 24, 0, 23, 0, 10, 0, 11, 0, 24, 0, 29, 0, 43, 0, 30, 0, 29, 0, 42, 0, 43, 0, 34, 0, 48, 0, 35, 0, 34, 0, 47, 0, 48, 0, 27, 0, 41, 0, 28, 0, 27, 0, 40, 0, 41, 0, 32, 0, 46, 0, 33, 0, 32, 0, 45, 0, 46, 0, 37, 0, 51, 0, 38, 0, 37, 0, 50, 0, 51, 0, 30, 0, 44, 0, 31, 0, 30, 0, 43, 0, 44, 0, 35, 0, 49, 0, 36, 0, 35, 0, 48, 0, 49, 0, 28, 0, 42, 0, 29, 0, 28, 0, 41, 0, 42, 0, 33, 0, 47, 0, 34, 0, 33, 0, 46, 0, 47, 0, 26, 0, 40, 0, 27, 0, 26, 0, 39, 0, 40, 0, 31, 0, 45, 0, 32, 0, 31, 0, 44, 0, 45, 0, 36, 0, 50, 0, 37, 0, 36, 0, 49, 0, 50, 0, 13, 0, 26, 0, 0, 0, 13, 0, 39, 0, 26, 0, 16, 0, 41, 0, 15, 0, 16, 0, 42, 0, 41, 0, 7, 0, 34, 0, 8, 0, 7, 0, 33, 0, 34, 0, 24, 0, 49, 0, 23, 0, 24, 0, 50, 0, 49, 0, 0, 0, 27, 0, 1, 0, 0, 0, 26, 0, 27, 0, 17, 0, 42, 0, 16, 0, 17, 0, 43, 0, 42, 0, 8, 0, 35, 0, 9, 0, 8, 0, 34, 0, 35, 0, 25, 0, 50, 0, 24, 0, 25, 0, 51, 0, 50, 0, 1, 0, 28, 0, 2, 0, 1, 0, 27, 0, 28, 0, 18, 0, 43, 0, 17, 0, 18, 0, 44, 0, 43, 0, 9, 0, 36, 0, 10, 0, 9, 0, 35, 0, 36, 0, 2, 0, 29, 0, 3, 0, 2, 0, 28, 0, 29, 0, 19, 0, 44, 0, 18, 0, 19, 0, 45, 0, 44, 0, 10, 0, 37, 0, 11, 0, 10, 0, 36, 0, 37, 0, 3, 0, 30, 0, 4, 0, 3, 0, 29, 0, 30, 0, 20, 0, 45, 0, 19, 0, 20, 0, 46, 0, 45, 0, 11, 0, 38, 0, 12, 0, 11, 0, 37, 0, 38, 0, 4, 0, 31, 0, 5, 0, 4, 0, 30, 0, 31, 0, 21, 0, 46, 0, 20, 0, 21, 0, 47, 0, 46, 0, 14, 0, 39, 0, 13, 0, 14, 0, 40, 0, 39, 0, 5, 0, 32, 0, 6, 0, 5, 0, 31, 0, 32, 0, 22, 0, 47, 0, 21, 0, 22, 0, 48, 0, 47, 0, 15, 0, 40, 0, 14, 0, 15, 0, 41, 0, 40, 0, 12, 0, 51, 0, 25, 0, 12, 0, 38, 0, 51, 0, 6, 0, 33, 0, 7, 0, 6, 0, 32, 0, 33, 0, 23, 0, 48, 0, 22, 0, 23, 0, 49, 0, 48, 0), +"lods": [1.35022, PackedByteArray(6, 0, 8, 0, 19, 0, 8, 0, 24, 0, 19, 0, 6, 0, 19, 0, 17, 0, 8, 0, 11, 0, 24, 0, 11, 0, 25, 0, 24, 0, 11, 0, 12, 0, 25, 0, 2, 0, 6, 0, 17, 0, 2, 0, 17, 0, 14, 0, 0, 0, 2, 0, 14, 0, 0, 0, 14, 0, 13, 0, 27, 0, 40, 0, 43, 0, 26, 0, 40, 0, 27, 0, 26, 0, 39, 0, 40, 0, 27, 0, 43, 0, 30, 0, 30, 0, 43, 0, 45, 0, 30, 0, 45, 0, 32, 0, 32, 0, 45, 0, 47, 0, 32, 0, 47, 0, 34, 0, 34, 0, 47, 0, 49, 0, 34, 0, 49, 0, 37, 0, 37, 0, 49, 0, 51, 0, 37, 0, 51, 0, 38, 0, 13, 0, 26, 0, 0, 0, 13, 0, 39, 0, 26, 0, 17, 0, 43, 0, 14, 0, 19, 0, 43, 0, 17, 0, 14, 0, 43, 0, 40, 0, 14, 0, 40, 0, 39, 0, 14, 0, 39, 0, 13, 0, 19, 0, 45, 0, 43, 0, 24, 0, 45, 0, 19, 0, 24, 0, 47, 0, 45, 0, 24, 0, 49, 0, 47, 0, 25, 0, 49, 0, 24, 0, 25, 0, 51, 0, 49, 0, 8, 0, 32, 0, 34, 0, 8, 0, 34, 0, 37, 0, 6, 0, 32, 0, 8, 0, 8, 0, 37, 0, 11, 0, 11, 0, 37, 0, 38, 0, 11, 0, 38, 0, 12, 0, 6, 0, 30, 0, 32, 0, 2, 0, 30, 0, 6, 0, 2, 0, 27, 0, 30, 0, 0, 0, 27, 0, 2, 0, 0, 0, 26, 0, 27, 0, 12, 0, 51, 0, 25, 0, 12, 0, 38, 0, 51, 0), 3.44322, PackedByteArray(6, 0, 25, 0, 19, 0, 6, 0, 12, 0, 25, 0, 0, 0, 6, 0, 19, 0, 0, 0, 19, 0, 13, 0, 37, 0, 51, 0, 38, 0, 37, 0, 45, 0, 51, 0, 32, 0, 45, 0, 37, 0, 30, 0, 45, 0, 32, 0, 26, 0, 45, 0, 30, 0, 26, 0, 39, 0, 45, 0, 13, 0, 26, 0, 0, 0, 13, 0, 39, 0, 26, 0, 6, 0, 32, 0, 37, 0, 6, 0, 37, 0, 38, 0, 6, 0, 38, 0, 12, 0, 6, 0, 30, 0, 32, 0, 0, 0, 30, 0, 6, 0, 0, 0, 26, 0, 30, 0, 25, 0, 45, 0, 19, 0, 25, 0, 51, 0, 45, 0, 19, 0, 45, 0, 39, 0, 19, 0, 39, 0, 13, 0, 12, 0, 51, 0, 25, 0, 12, 0, 38, 0, 51, 0)], +"primitive": 3, +"vertex_count": 52, +"vertex_data": PackedByteArray(0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 160, 64, 125, 201, 151, 64, 0, 0, 160, 192, 132, 199, 138, 63, 220, 147, 126, 64, 0, 0, 160, 192, 194, 238, 48, 192, 68, 217, 45, 64, 0, 0, 160, 192, 76, 96, 207, 192, 52, 19, 123, 63, 0, 0, 160, 192, 3, 0, 32, 193, 245, 133, 153, 191, 0, 0, 160, 192, 159, 52, 84, 193, 230, 90, 114, 192, 0, 0, 160, 192, 166, 180, 129, 193, 207, 150, 215, 192, 0, 0, 160, 192, 164, 103, 150, 193, 3, 0, 32, 193, 0, 0, 160, 192, 158, 216, 167, 193, 225, 79, 88, 193, 0, 0, 160, 192, 46, 187, 181, 193, 44, 226, 137, 193, 0, 0, 160, 192, 130, 210, 191, 193, 126, 172, 168, 193, 0, 0, 160, 192, 102, 242, 197, 193, 6, 0, 200, 193, 0, 0, 160, 192, 6, 0, 200, 193, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 125, 201, 151, 64, 0, 0, 0, 192, 132, 199, 138, 63, 220, 147, 126, 64, 0, 0, 0, 192, 194, 238, 48, 192, 68, 217, 45, 64, 0, 0, 0, 192, 76, 96, 207, 192, 52, 19, 123, 63, 0, 0, 0, 192, 3, 0, 32, 193, 245, 133, 153, 191, 0, 0, 0, 192, 159, 52, 84, 193, 230, 90, 114, 192, 0, 0, 0, 192, 166, 180, 129, 193, 207, 150, 215, 192, 0, 0, 0, 192, 164, 103, 150, 193, 3, 0, 32, 193, 0, 0, 0, 192, 158, 216, 167, 193, 225, 79, 88, 193, 0, 0, 0, 192, 46, 187, 181, 193, 44, 226, 137, 193, 0, 0, 0, 192, 130, 210, 191, 193, 126, 172, 168, 193, 0, 0, 0, 192, 102, 242, 197, 193, 6, 0, 200, 193, 0, 0, 0, 192, 6, 0, 200, 193, 118, 238, 191, 64, 0, 0, 160, 192, 0, 0, 160, 64, 104, 131, 183, 64, 0, 0, 160, 192, 222, 36, 116, 63, 203, 50, 158, 64, 0, 0, 160, 192, 64, 127, 65, 192, 28, 250, 104, 64, 0, 0, 160, 192, 61, 159, 219, 192, 134, 99, 236, 63, 0, 0, 160, 192, 3, 0, 40, 193, 108, 229, 207, 190, 0, 0, 160, 192, 28, 242, 93, 193, 169, 25, 69, 192, 0, 0, 160, 192, 206, 92, 135, 193, 213, 27, 196, 192, 0, 0, 160, 192, 110, 192, 156, 193, 3, 0, 24, 193, 0, 0, 160, 192, 61, 198, 174, 193, 104, 48, 82, 193, 0, 0, 160, 192, 73, 31, 189, 193, 28, 208, 135, 193, 0, 0, 160, 192, 185, 140, 199, 193, 45, 161, 167, 193, 0, 0, 160, 192, 225, 224, 205, 193, 0, 0, 200, 193, 0, 0, 160, 192, 163, 251, 207, 193, 118, 238, 191, 64, 0, 0, 0, 192, 0, 0, 160, 64, 104, 131, 183, 64, 0, 0, 0, 192, 222, 36, 116, 63, 203, 50, 158, 64, 0, 0, 0, 192, 64, 127, 65, 192, 28, 250, 104, 64, 0, 0, 0, 192, 61, 159, 219, 192, 134, 99, 236, 63, 0, 0, 0, 192, 3, 0, 40, 193, 108, 229, 207, 190, 0, 0, 0, 192, 28, 242, 93, 193, 169, 25, 69, 192, 0, 0, 0, 192, 206, 92, 135, 193, 213, 27, 196, 192, 0, 0, 0, 192, 110, 192, 156, 193, 3, 0, 24, 193, 0, 0, 0, 192, 61, 198, 174, 193, 104, 48, 82, 193, 0, 0, 0, 192, 73, 31, 189, 193, 28, 208, 135, 193, 0, 0, 0, 192, 185, 140, 199, 193, 45, 161, 167, 193, 0, 0, 0, 192, 225, 224, 205, 193, 0, 0, 200, 193, 0, 0, 0, 192, 163, 251, 207, 193) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "wide_turn-2-c480f470ca883b94516a2580e8704fd7_Cube_008" +_surfaces = [{ +"aabb": AABB(-25, -5, -25.9979, 30.9979, 3, 30.9979), +"attribute_data": PackedByteArray(0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63), +"format": 4119, +"index_count": 300, +"index_data": PackedByteArray(7, 0, 37, 0, 35, 0, 7, 0, 9, 0, 37, 0, 17, 0, 47, 0, 45, 0, 17, 0, 19, 0, 47, 0, 3, 0, 33, 0, 31, 0, 3, 0, 5, 0, 33, 0, 13, 0, 43, 0, 41, 0, 13, 0, 15, 0, 43, 0, 23, 0, 54, 0, 51, 0, 23, 0, 26, 0, 54, 0, 9, 0, 39, 0, 37, 0, 9, 0, 11, 0, 39, 0, 19, 0, 49, 0, 47, 0, 19, 0, 21, 0, 49, 0, 5, 0, 35, 0, 33, 0, 5, 0, 7, 0, 35, 0, 15, 0, 45, 0, 43, 0, 15, 0, 17, 0, 45, 0, 0, 0, 31, 0, 28, 0, 0, 0, 3, 0, 31, 0, 11, 0, 41, 0, 39, 0, 11, 0, 13, 0, 41, 0, 21, 0, 51, 0, 49, 0, 21, 0, 23, 0, 51, 0, 64, 0, 94, 0, 66, 0, 64, 0, 92, 0, 94, 0, 74, 0, 104, 0, 76, 0, 74, 0, 102, 0, 104, 0, 60, 0, 90, 0, 62, 0, 60, 0, 88, 0, 90, 0, 70, 0, 100, 0, 72, 0, 70, 0, 98, 0, 100, 0, 80, 0, 111, 0, 83, 0, 80, 0, 108, 0, 111, 0, 66, 0, 96, 0, 68, 0, 66, 0, 94, 0, 96, 0, 76, 0, 106, 0, 78, 0, 76, 0, 104, 0, 106, 0, 62, 0, 92, 0, 64, 0, 62, 0, 90, 0, 92, 0, 72, 0, 102, 0, 74, 0, 72, 0, 100, 0, 102, 0, 58, 0, 88, 0, 60, 0, 58, 0, 86, 0, 88, 0, 68, 0, 98, 0, 70, 0, 68, 0, 96, 0, 98, 0, 78, 0, 108, 0, 80, 0, 78, 0, 106, 0, 108, 0, 29, 0, 57, 0, 2, 0, 29, 0, 84, 0, 57, 0, 36, 0, 89, 0, 34, 0, 36, 0, 91, 0, 89, 0, 16, 0, 73, 0, 18, 0, 16, 0, 71, 0, 73, 0, 52, 0, 105, 0, 50, 0, 52, 0, 107, 0, 105, 0, 1, 0, 59, 0, 4, 0, 1, 0, 56, 0, 59, 0, 38, 0, 91, 0, 36, 0, 38, 0, 93, 0, 91, 0, 18, 0, 75, 0, 20, 0, 18, 0, 73, 0, 75, 0, 55, 0, 107, 0, 52, 0, 55, 0, 110, 0, 107, 0, 4, 0, 61, 0, 6, 0, 4, 0, 59, 0, 61, 0, 40, 0, 93, 0, 38, 0, 40, 0, 95, 0, 93, 0, 20, 0, 77, 0, 22, 0, 20, 0, 75, 0, 77, 0, 6, 0, 63, 0, 8, 0, 6, 0, 61, 0, 63, 0, 42, 0, 95, 0, 40, 0, 42, 0, 97, 0, 95, 0, 22, 0, 79, 0, 24, 0, 22, 0, 77, 0, 79, 0, 8, 0, 65, 0, 10, 0, 8, 0, 63, 0, 65, 0, 44, 0, 97, 0, 42, 0, 44, 0, 99, 0, 97, 0, 24, 0, 82, 0, 27, 0, 24, 0, 79, 0, 82, 0, 10, 0, 67, 0, 12, 0, 10, 0, 65, 0, 67, 0, 46, 0, 99, 0, 44, 0, 46, 0, 101, 0, 99, 0, 32, 0, 85, 0, 30, 0, 32, 0, 87, 0, 85, 0, 12, 0, 69, 0, 14, 0, 12, 0, 67, 0, 69, 0, 48, 0, 101, 0, 46, 0, 48, 0, 103, 0, 101, 0, 34, 0, 87, 0, 32, 0, 34, 0, 89, 0, 87, 0, 25, 0, 109, 0, 53, 0, 25, 0, 81, 0, 109, 0, 14, 0, 71, 0, 16, 0, 14, 0, 69, 0, 71, 0, 50, 0, 103, 0, 48, 0, 50, 0, 105, 0, 103, 0), +"lods": [1.35022, PackedByteArray(13, 0, 17, 0, 41, 0, 17, 0, 51, 0, 41, 0, 13, 0, 41, 0, 37, 0, 17, 0, 23, 0, 51, 0, 23, 0, 54, 0, 51, 0, 23, 0, 26, 0, 54, 0, 5, 0, 13, 0, 37, 0, 5, 0, 37, 0, 31, 0, 0, 0, 5, 0, 31, 0, 0, 0, 31, 0, 28, 0, 60, 0, 88, 0, 94, 0, 58, 0, 88, 0, 60, 0, 58, 0, 86, 0, 88, 0, 60, 0, 94, 0, 66, 0, 66, 0, 94, 0, 98, 0, 66, 0, 98, 0, 70, 0, 70, 0, 98, 0, 102, 0, 70, 0, 102, 0, 74, 0, 74, 0, 102, 0, 106, 0, 74, 0, 106, 0, 80, 0, 80, 0, 106, 0, 111, 0, 80, 0, 111, 0, 83, 0, 29, 0, 57, 0, 2, 0, 29, 0, 84, 0, 57, 0, 38, 0, 93, 0, 32, 0, 42, 0, 93, 0, 38, 0, 32, 0, 93, 0, 87, 0, 32, 0, 87, 0, 85, 0, 32, 0, 85, 0, 30, 0, 42, 0, 97, 0, 93, 0, 52, 0, 97, 0, 42, 0, 52, 0, 101, 0, 97, 0, 52, 0, 105, 0, 101, 0, 55, 0, 105, 0, 52, 0, 55, 0, 110, 0, 105, 0, 18, 0, 69, 0, 73, 0, 18, 0, 73, 0, 79, 0, 14, 0, 69, 0, 18, 0, 18, 0, 79, 0, 24, 0, 24, 0, 79, 0, 82, 0, 24, 0, 82, 0, 27, 0, 14, 0, 65, 0, 69, 0, 6, 0, 65, 0, 14, 0, 6, 0, 59, 0, 65, 0, 1, 0, 59, 0, 6, 0, 1, 0, 56, 0, 59, 0, 25, 0, 109, 0, 53, 0, 25, 0, 81, 0, 109, 0), 3.44322, PackedByteArray(13, 0, 54, 0, 41, 0, 13, 0, 26, 0, 54, 0, 0, 0, 13, 0, 41, 0, 0, 0, 41, 0, 28, 0, 80, 0, 111, 0, 83, 0, 80, 0, 98, 0, 111, 0, 70, 0, 98, 0, 80, 0, 66, 0, 98, 0, 70, 0, 58, 0, 112, 0, 66, 0, 58, 0, 86, 0, 113, 0, 29, 0, 57, 0, 2, 0, 29, 0, 84, 0, 57, 0, 14, 0, 69, 0, 79, 0, 14, 0, 79, 0, 82, 0, 14, 0, 82, 0, 27, 0, 14, 0, 65, 0, 69, 0, 1, 0, 65, 0, 14, 0, 1, 0, 56, 0, 65, 0, 55, 0, 97, 0, 42, 0, 55, 0, 110, 0, 97, 0, 42, 0, 97, 0, 85, 0, 42, 0, 85, 0, 30, 0, 25, 0, 109, 0, 53, 0, 25, 0, 81, 0, 109, 0)], +"material": ExtResource("1_2l2lr"), +"primitive": 3, +"vertex_count": 114, +"vertex_data": PackedByteArray(0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 160, 64, 223, 7, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 160, 192, 132, 199, 138, 63, 227, 14, 255, 127, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 160, 192, 132, 199, 138, 63, 255, 127, 0, 0, 255, 255, 255, 191, 220, 147, 126, 64, 0, 0, 160, 192, 194, 238, 48, 192, 12, 27, 255, 127, 255, 255, 255, 191, 220, 147, 126, 64, 0, 0, 160, 192, 194, 238, 48, 192, 255, 127, 0, 0, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 160, 192, 76, 96, 207, 192, 125, 37, 255, 127, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 160, 192, 76, 96, 207, 192, 255, 127, 0, 0, 255, 255, 255, 191, 52, 19, 123, 63, 0, 0, 160, 192, 3, 0, 32, 193, 217, 46, 255, 127, 255, 255, 255, 191, 52, 19, 123, 63, 0, 0, 160, 192, 3, 0, 32, 193, 255, 127, 0, 0, 255, 255, 255, 191, 245, 133, 153, 191, 0, 0, 160, 192, 159, 52, 84, 193, 146, 55, 255, 127, 255, 255, 255, 191, 245, 133, 153, 191, 0, 0, 160, 192, 159, 52, 84, 193, 255, 127, 0, 0, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 160, 192, 166, 180, 129, 193, 255, 63, 255, 127, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 160, 192, 166, 180, 129, 193, 255, 127, 0, 0, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 160, 192, 164, 103, 150, 193, 108, 72, 255, 127, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 160, 192, 164, 103, 150, 193, 255, 127, 0, 0, 255, 255, 255, 191, 3, 0, 32, 193, 0, 0, 160, 192, 158, 216, 167, 193, 37, 81, 255, 127, 255, 255, 255, 191, 3, 0, 32, 193, 0, 0, 160, 192, 158, 216, 167, 193, 255, 127, 0, 0, 255, 255, 255, 191, 225, 79, 88, 193, 0, 0, 160, 192, 46, 187, 181, 193, 129, 90, 255, 127, 255, 255, 255, 191, 225, 79, 88, 193, 0, 0, 160, 192, 46, 187, 181, 193, 255, 127, 0, 0, 255, 255, 255, 191, 44, 226, 137, 193, 0, 0, 160, 192, 130, 210, 191, 193, 243, 100, 255, 127, 255, 255, 255, 191, 44, 226, 137, 193, 0, 0, 160, 192, 130, 210, 191, 193, 255, 127, 0, 0, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 160, 192, 102, 242, 197, 193, 27, 113, 255, 127, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 160, 192, 102, 242, 197, 193, 255, 127, 0, 0, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 160, 192, 6, 0, 200, 193, 0, 0, 255, 127, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 160, 192, 6, 0, 200, 193, 32, 120, 255, 127, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 160, 192, 6, 0, 200, 193, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 223, 7, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 0, 192, 132, 199, 138, 63, 227, 14, 255, 127, 255, 255, 255, 191, 125, 201, 151, 64, 0, 0, 0, 192, 132, 199, 138, 63, 255, 127, 255, 255, 255, 255, 255, 191, 220, 147, 126, 64, 0, 0, 0, 192, 194, 238, 48, 192, 12, 27, 255, 127, 255, 255, 255, 191, 220, 147, 126, 64, 0, 0, 0, 192, 194, 238, 48, 192, 255, 127, 255, 255, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 0, 192, 76, 96, 207, 192, 125, 37, 255, 127, 255, 255, 255, 191, 68, 217, 45, 64, 0, 0, 0, 192, 76, 96, 207, 192, 255, 127, 255, 255, 255, 255, 255, 191, 52, 19, 123, 63, 0, 0, 0, 192, 3, 0, 32, 193, 217, 46, 255, 127, 255, 255, 255, 191, 52, 19, 123, 63, 0, 0, 0, 192, 3, 0, 32, 193, 255, 127, 255, 255, 255, 255, 255, 191, 245, 133, 153, 191, 0, 0, 0, 192, 159, 52, 84, 193, 146, 55, 255, 127, 255, 255, 255, 191, 245, 133, 153, 191, 0, 0, 0, 192, 159, 52, 84, 193, 255, 127, 255, 255, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 0, 192, 166, 180, 129, 193, 255, 63, 255, 127, 255, 255, 255, 191, 230, 90, 114, 192, 0, 0, 0, 192, 166, 180, 129, 193, 255, 127, 255, 255, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 0, 192, 164, 103, 150, 193, 108, 72, 255, 127, 255, 255, 255, 191, 207, 150, 215, 192, 0, 0, 0, 192, 164, 103, 150, 193, 255, 127, 255, 255, 255, 255, 255, 191, 3, 0, 32, 193, 0, 0, 0, 192, 158, 216, 167, 193, 37, 81, 255, 127, 255, 255, 255, 191, 3, 0, 32, 193, 0, 0, 0, 192, 158, 216, 167, 193, 255, 127, 255, 255, 255, 255, 255, 191, 225, 79, 88, 193, 0, 0, 0, 192, 46, 187, 181, 193, 129, 90, 255, 127, 255, 255, 255, 191, 225, 79, 88, 193, 0, 0, 0, 192, 46, 187, 181, 193, 255, 127, 255, 255, 255, 255, 255, 191, 44, 226, 137, 193, 0, 0, 0, 192, 130, 210, 191, 193, 243, 100, 255, 127, 255, 255, 255, 191, 44, 226, 137, 193, 0, 0, 0, 192, 130, 210, 191, 193, 255, 127, 255, 255, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 0, 192, 102, 242, 197, 193, 27, 113, 255, 127, 255, 255, 255, 191, 126, 172, 168, 193, 0, 0, 0, 192, 102, 242, 197, 193, 255, 127, 255, 255, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 0, 192, 6, 0, 200, 193, 0, 0, 255, 127, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 0, 192, 6, 0, 200, 193, 32, 120, 255, 127, 255, 255, 255, 191, 6, 0, 200, 193, 0, 0, 0, 192, 6, 0, 200, 193, 255, 127, 255, 255, 255, 255, 255, 191, 118, 238, 191, 64, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 118, 238, 191, 64, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 118, 238, 191, 64, 0, 0, 160, 192, 0, 0, 160, 64, 255, 255, 208, 135, 255, 255, 255, 191, 104, 131, 183, 64, 0, 0, 160, 192, 222, 36, 116, 63, 255, 127, 0, 0, 255, 255, 255, 191, 104, 131, 183, 64, 0, 0, 160, 192, 222, 36, 116, 63, 255, 255, 221, 142, 255, 255, 255, 191, 203, 50, 158, 64, 0, 0, 160, 192, 64, 127, 65, 192, 255, 127, 0, 0, 255, 255, 255, 191, 203, 50, 158, 64, 0, 0, 160, 192, 64, 127, 65, 192, 255, 255, 11, 155, 255, 255, 255, 191, 28, 250, 104, 64, 0, 0, 160, 192, 61, 159, 219, 192, 255, 127, 0, 0, 255, 255, 255, 191, 28, 250, 104, 64, 0, 0, 160, 192, 61, 159, 219, 192, 255, 255, 125, 165, 255, 255, 255, 191, 134, 99, 236, 63, 0, 0, 160, 192, 3, 0, 40, 193, 255, 127, 0, 0, 255, 255, 255, 191, 134, 99, 236, 63, 0, 0, 160, 192, 3, 0, 40, 193, 255, 255, 217, 174, 255, 255, 255, 191, 108, 229, 207, 190, 0, 0, 160, 192, 28, 242, 93, 193, 255, 127, 0, 0, 255, 255, 255, 191, 108, 229, 207, 190, 0, 0, 160, 192, 28, 242, 93, 193, 255, 255, 146, 183, 255, 255, 255, 191, 169, 25, 69, 192, 0, 0, 160, 192, 206, 92, 135, 193, 255, 127, 0, 0, 255, 255, 255, 191, 169, 25, 69, 192, 0, 0, 160, 192, 206, 92, 135, 193, 255, 255, 255, 191, 255, 255, 255, 191, 213, 27, 196, 192, 0, 0, 160, 192, 110, 192, 156, 193, 255, 127, 0, 0, 255, 255, 255, 191, 213, 27, 196, 192, 0, 0, 160, 192, 110, 192, 156, 193, 255, 255, 108, 200, 255, 255, 255, 191, 3, 0, 24, 193, 0, 0, 160, 192, 61, 198, 174, 193, 255, 127, 0, 0, 255, 255, 255, 191, 3, 0, 24, 193, 0, 0, 160, 192, 61, 198, 174, 193, 255, 255, 37, 209, 255, 255, 255, 191, 104, 48, 82, 193, 0, 0, 160, 192, 73, 31, 189, 193, 255, 127, 0, 0, 255, 255, 255, 191, 104, 48, 82, 193, 0, 0, 160, 192, 73, 31, 189, 193, 255, 255, 129, 218, 255, 255, 255, 191, 28, 208, 135, 193, 0, 0, 160, 192, 185, 140, 199, 193, 255, 127, 0, 0, 255, 255, 255, 191, 28, 208, 135, 193, 0, 0, 160, 192, 185, 140, 199, 193, 255, 255, 242, 228, 255, 255, 255, 191, 45, 161, 167, 193, 0, 0, 160, 192, 225, 224, 205, 193, 255, 127, 0, 0, 255, 255, 255, 191, 45, 161, 167, 193, 0, 0, 160, 192, 225, 224, 205, 193, 255, 255, 32, 241, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 160, 192, 163, 251, 207, 193, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 160, 192, 163, 251, 207, 193, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 160, 192, 163, 251, 207, 193, 255, 255, 46, 248, 255, 255, 255, 191, 118, 238, 191, 64, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 118, 238, 191, 64, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 118, 238, 191, 64, 0, 0, 0, 192, 0, 0, 160, 64, 255, 255, 208, 135, 255, 255, 255, 191, 104, 131, 183, 64, 0, 0, 0, 192, 222, 36, 116, 63, 255, 127, 255, 255, 255, 255, 255, 191, 104, 131, 183, 64, 0, 0, 0, 192, 222, 36, 116, 63, 255, 255, 221, 142, 255, 255, 255, 191, 203, 50, 158, 64, 0, 0, 0, 192, 64, 127, 65, 192, 255, 127, 255, 255, 255, 255, 255, 191, 203, 50, 158, 64, 0, 0, 0, 192, 64, 127, 65, 192, 255, 255, 11, 155, 255, 255, 255, 191, 28, 250, 104, 64, 0, 0, 0, 192, 61, 159, 219, 192, 255, 127, 255, 255, 255, 255, 255, 191, 28, 250, 104, 64, 0, 0, 0, 192, 61, 159, 219, 192, 255, 255, 125, 165, 255, 255, 255, 191, 134, 99, 236, 63, 0, 0, 0, 192, 3, 0, 40, 193, 255, 127, 255, 255, 255, 255, 255, 191, 134, 99, 236, 63, 0, 0, 0, 192, 3, 0, 40, 193, 255, 255, 217, 174, 255, 255, 255, 191, 108, 229, 207, 190, 0, 0, 0, 192, 28, 242, 93, 193, 255, 127, 255, 255, 255, 255, 255, 191, 108, 229, 207, 190, 0, 0, 0, 192, 28, 242, 93, 193, 255, 255, 146, 183, 255, 255, 255, 191, 169, 25, 69, 192, 0, 0, 0, 192, 206, 92, 135, 193, 255, 127, 255, 255, 255, 255, 255, 191, 169, 25, 69, 192, 0, 0, 0, 192, 206, 92, 135, 193, 255, 255, 255, 191, 255, 255, 255, 191, 213, 27, 196, 192, 0, 0, 0, 192, 110, 192, 156, 193, 255, 127, 255, 255, 255, 255, 255, 191, 213, 27, 196, 192, 0, 0, 0, 192, 110, 192, 156, 193, 255, 255, 108, 200, 255, 255, 255, 191, 3, 0, 24, 193, 0, 0, 0, 192, 61, 198, 174, 193, 255, 127, 255, 255, 255, 255, 255, 191, 3, 0, 24, 193, 0, 0, 0, 192, 61, 198, 174, 193, 255, 255, 37, 209, 255, 255, 255, 191, 104, 48, 82, 193, 0, 0, 0, 192, 73, 31, 189, 193, 255, 127, 255, 255, 255, 255, 255, 191, 104, 48, 82, 193, 0, 0, 0, 192, 73, 31, 189, 193, 255, 255, 129, 218, 255, 255, 255, 191, 28, 208, 135, 193, 0, 0, 0, 192, 185, 140, 199, 193, 255, 127, 255, 255, 255, 255, 255, 191, 28, 208, 135, 193, 0, 0, 0, 192, 185, 140, 199, 193, 255, 255, 242, 228, 255, 255, 255, 191, 45, 161, 167, 193, 0, 0, 0, 192, 225, 224, 205, 193, 255, 127, 255, 255, 255, 255, 255, 191, 45, 161, 167, 193, 0, 0, 0, 192, 225, 224, 205, 193, 255, 255, 32, 241, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 0, 192, 163, 251, 207, 193, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 0, 192, 163, 251, 207, 193, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 0, 192, 163, 251, 207, 193, 255, 255, 46, 248, 255, 255, 255, 191, 169, 25, 69, 192, 0, 0, 0, 192, 206, 92, 135, 193, 255, 226, 116, 195, 255, 255, 255, 191, 169, 25, 69, 192, 0, 0, 0, 192, 206, 92, 135, 193, 255, 255, 193, 139, 255, 255, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_k5wpl") diff --git a/assets/meshes/walls/small_curved_wall.tres b/assets/meshes/walls/small_curved_wall.tres new file mode 100644 index 0000000..f20aafd --- /dev/null +++ b/assets/meshes/walls/small_curved_wall.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://cpisquk518aee"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_cxqsh"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_4fq5t"] +_surfaces = [{ +"aabb": AABB(-25, -5, -15, 20, 3, 20), +"format": 4097, +"index_count": 300, +"index_data": PackedByteArray(11, 0, 23, 0, 24, 0, 11, 0, 10, 0, 23, 0, 4, 0, 16, 0, 17, 0, 4, 0, 3, 0, 16, 0, 9, 0, 21, 0, 22, 0, 9, 0, 8, 0, 21, 0, 2, 0, 14, 0, 15, 0, 2, 0, 1, 0, 14, 0, 7, 0, 19, 0, 20, 0, 7, 0, 6, 0, 19, 0, 12, 0, 24, 0, 25, 0, 12, 0, 11, 0, 24, 0, 5, 0, 17, 0, 18, 0, 5, 0, 4, 0, 17, 0, 10, 0, 22, 0, 23, 0, 10, 0, 9, 0, 22, 0, 3, 0, 15, 0, 16, 0, 3, 0, 2, 0, 15, 0, 8, 0, 20, 0, 21, 0, 8, 0, 7, 0, 20, 0, 1, 0, 13, 0, 14, 0, 1, 0, 0, 0, 13, 0, 6, 0, 18, 0, 19, 0, 6, 0, 5, 0, 18, 0, 37, 0, 49, 0, 36, 0, 37, 0, 50, 0, 49, 0, 30, 0, 42, 0, 29, 0, 30, 0, 43, 0, 42, 0, 35, 0, 47, 0, 34, 0, 35, 0, 48, 0, 47, 0, 28, 0, 40, 0, 27, 0, 28, 0, 41, 0, 40, 0, 33, 0, 45, 0, 32, 0, 33, 0, 46, 0, 45, 0, 38, 0, 50, 0, 37, 0, 38, 0, 51, 0, 50, 0, 31, 0, 43, 0, 30, 0, 31, 0, 44, 0, 43, 0, 36, 0, 48, 0, 35, 0, 36, 0, 49, 0, 48, 0, 29, 0, 41, 0, 28, 0, 29, 0, 42, 0, 41, 0, 34, 0, 46, 0, 33, 0, 34, 0, 47, 0, 46, 0, 27, 0, 39, 0, 26, 0, 27, 0, 40, 0, 39, 0, 32, 0, 44, 0, 31, 0, 32, 0, 45, 0, 44, 0, 11, 0, 36, 0, 10, 0, 11, 0, 37, 0, 36, 0, 4, 0, 29, 0, 3, 0, 4, 0, 30, 0, 29, 0, 19, 0, 46, 0, 20, 0, 19, 0, 45, 0, 46, 0, 12, 0, 37, 0, 11, 0, 12, 0, 38, 0, 37, 0, 25, 0, 38, 0, 12, 0, 25, 0, 51, 0, 38, 0, 5, 0, 30, 0, 4, 0, 5, 0, 31, 0, 30, 0, 20, 0, 47, 0, 21, 0, 20, 0, 46, 0, 47, 0, 13, 0, 40, 0, 14, 0, 13, 0, 39, 0, 40, 0, 6, 0, 31, 0, 5, 0, 6, 0, 32, 0, 31, 0, 21, 0, 48, 0, 22, 0, 21, 0, 47, 0, 48, 0, 0, 0, 39, 0, 13, 0, 0, 0, 26, 0, 39, 0, 14, 0, 41, 0, 15, 0, 14, 0, 40, 0, 41, 0, 7, 0, 32, 0, 6, 0, 7, 0, 33, 0, 32, 0, 22, 0, 49, 0, 23, 0, 22, 0, 48, 0, 49, 0, 15, 0, 42, 0, 16, 0, 15, 0, 41, 0, 42, 0, 8, 0, 33, 0, 7, 0, 8, 0, 34, 0, 33, 0, 23, 0, 50, 0, 24, 0, 23, 0, 49, 0, 50, 0, 1, 0, 26, 0, 0, 0, 1, 0, 27, 0, 26, 0, 16, 0, 43, 0, 17, 0, 16, 0, 42, 0, 43, 0, 9, 0, 34, 0, 8, 0, 9, 0, 35, 0, 34, 0, 24, 0, 51, 0, 25, 0, 24, 0, 50, 0, 51, 0, 2, 0, 27, 0, 1, 0, 2, 0, 28, 0, 27, 0, 17, 0, 44, 0, 18, 0, 17, 0, 43, 0, 44, 0, 10, 0, 35, 0, 9, 0, 10, 0, 36, 0, 35, 0, 3, 0, 28, 0, 2, 0, 3, 0, 29, 0, 28, 0, 18, 0, 45, 0, 19, 0, 18, 0, 44, 0, 45, 0), +"lods": [0.714366, PackedByteArray(12, 0, 23, 0, 25, 0, 12, 0, 11, 0, 23, 0, 11, 0, 22, 0, 23, 0, 11, 0, 8, 0, 22, 0, 8, 0, 20, 0, 22, 0, 8, 0, 6, 0, 20, 0, 6, 0, 18, 0, 20, 0, 6, 0, 3, 0, 18, 0, 3, 0, 17, 0, 18, 0, 3, 0, 15, 0, 17, 0, 3, 0, 13, 0, 15, 0, 3, 0, 0, 0, 13, 0, 35, 0, 50, 0, 33, 0, 36, 0, 50, 0, 35, 0, 38, 0, 50, 0, 36, 0, 38, 0, 51, 0, 50, 0, 33, 0, 50, 0, 45, 0, 33, 0, 45, 0, 31, 0, 31, 0, 45, 0, 40, 0, 31, 0, 40, 0, 28, 0, 28, 0, 40, 0, 39, 0, 28, 0, 39, 0, 26, 0, 12, 0, 36, 0, 11, 0, 12, 0, 38, 0, 36, 0, 11, 0, 36, 0, 35, 0, 11, 0, 35, 0, 8, 0, 8, 0, 35, 0, 33, 0, 8, 0, 33, 0, 6, 0, 6, 0, 33, 0, 31, 0, 6, 0, 31, 0, 3, 0, 3, 0, 31, 0, 28, 0, 3, 0, 28, 0, 26, 0, 3, 0, 26, 0, 0, 0, 25, 0, 38, 0, 12, 0, 25, 0, 51, 0, 38, 0, 20, 0, 50, 0, 22, 0, 22, 0, 50, 0, 23, 0, 23, 0, 50, 0, 51, 0, 23, 0, 51, 0, 25, 0, 20, 0, 45, 0, 50, 0, 18, 0, 45, 0, 20, 0, 17, 0, 45, 0, 18, 0, 15, 0, 45, 0, 17, 0, 15, 0, 40, 0, 45, 0, 13, 0, 40, 0, 15, 0, 13, 0, 39, 0, 40, 0, 0, 0, 39, 0, 13, 0, 0, 0, 26, 0, 39, 0), 5.12897, PackedByteArray(12, 0, 23, 0, 25, 0, 12, 0, 8, 0, 23, 0, 8, 0, 18, 0, 23, 0, 8, 0, 13, 0, 18, 0, 8, 0, 0, 0, 13, 0, 38, 0, 50, 0, 35, 0, 38, 0, 51, 0, 50, 0, 35, 0, 50, 0, 40, 0, 35, 0, 40, 0, 39, 0, 35, 0, 39, 0, 26, 0, 12, 0, 35, 0, 8, 0, 12, 0, 38, 0, 35, 0, 8, 0, 35, 0, 26, 0, 8, 0, 26, 0, 0, 0, 25, 0, 38, 0, 12, 0, 25, 0, 51, 0, 38, 0, 23, 0, 40, 0, 50, 0, 23, 0, 50, 0, 51, 0, 23, 0, 51, 0, 25, 0, 18, 0, 40, 0, 23, 0, 13, 0, 40, 0, 18, 0, 13, 0, 39, 0, 40, 0, 0, 0, 39, 0, 13, 0, 0, 0, 26, 0, 39, 0)], +"primitive": 3, +"vertex_count": 52, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 160, 64, 173, 121, 165, 192, 0, 0, 160, 192, 42, 237, 24, 64, 183, 206, 181, 192, 0, 0, 160, 192, 144, 157, 52, 190, 149, 183, 208, 192, 0, 0, 160, 192, 190, 213, 41, 192, 104, 190, 245, 192, 0, 0, 160, 192, 6, 0, 160, 192, 128, 32, 18, 193, 0, 0, 160, 192, 128, 155, 229, 192, 210, 185, 45, 193, 0, 0, 160, 192, 52, 70, 18, 193, 70, 50, 77, 193, 0, 0, 160, 192, 134, 223, 45, 193, 3, 0, 112, 193, 0, 0, 160, 192, 210, 32, 69, 193, 76, 197, 138, 193, 0, 0, 160, 192, 60, 164, 87, 193, 202, 150, 158, 193, 0, 0, 160, 192, 171, 24, 101, 193, 170, 29, 179, 193, 0, 0, 160, 192, 48, 67, 109, 193, 4, 0, 200, 193, 0, 0, 160, 192, 7, 0, 112, 193, 0, 0, 160, 192, 0, 0, 0, 192, 0, 0, 160, 64, 173, 121, 165, 192, 0, 0, 0, 192, 42, 237, 24, 64, 183, 206, 181, 192, 0, 0, 0, 192, 144, 157, 52, 190, 149, 183, 208, 192, 0, 0, 0, 192, 190, 213, 41, 192, 104, 190, 245, 192, 0, 0, 0, 192, 6, 0, 160, 192, 128, 32, 18, 193, 0, 0, 0, 192, 128, 155, 229, 192, 210, 185, 45, 193, 0, 0, 0, 192, 52, 70, 18, 193, 70, 50, 77, 193, 0, 0, 0, 192, 134, 223, 45, 193, 3, 0, 112, 193, 0, 0, 0, 192, 210, 32, 69, 193, 76, 197, 138, 193, 0, 0, 0, 192, 60, 164, 87, 193, 202, 150, 158, 193, 0, 0, 0, 192, 171, 24, 101, 193, 170, 29, 179, 193, 0, 0, 0, 192, 48, 67, 109, 193, 4, 0, 200, 193, 0, 0, 0, 192, 7, 0, 112, 193, 118, 238, 191, 192, 0, 0, 160, 192, 0, 0, 160, 64, 152, 51, 197, 192, 0, 0, 160, 192, 181, 71, 33, 64, 148, 183, 212, 192, 0, 0, 160, 192, 152, 212, 168, 61, 1, 72, 238, 192, 0, 0, 160, 192, 219, 87, 17, 192, 113, 186, 8, 193, 0, 0, 160, 192, 6, 0, 144, 192, 19, 210, 30, 193, 0, 0, 160, 192, 135, 32, 210, 192, 33, 10, 57, 193, 0, 0, 160, 192, 229, 245, 6, 193, 195, 239, 86, 193, 0, 0, 160, 192, 243, 45, 33, 193, 3, 0, 120, 193, 0, 0, 160, 192, 149, 69, 55, 193, 8, 213, 141, 193, 0, 0, 160, 192, 6, 220, 72, 193, 218, 168, 160, 193, 0, 0, 160, 192, 60, 164, 85, 193, 251, 40, 180, 193, 0, 0, 160, 192, 59, 102, 93, 193, 0, 0, 200, 193, 0, 0, 160, 192, 204, 8, 96, 193, 118, 238, 191, 192, 0, 0, 0, 192, 0, 0, 160, 64, 152, 51, 197, 192, 0, 0, 0, 192, 181, 71, 33, 64, 148, 183, 212, 192, 0, 0, 0, 192, 152, 212, 168, 61, 1, 72, 238, 192, 0, 0, 0, 192, 219, 87, 17, 192, 113, 186, 8, 193, 0, 0, 0, 192, 6, 0, 144, 192, 19, 210, 30, 193, 0, 0, 0, 192, 135, 32, 210, 192, 33, 10, 57, 193, 0, 0, 0, 192, 229, 245, 6, 193, 195, 239, 86, 193, 0, 0, 0, 192, 243, 45, 33, 193, 3, 0, 120, 193, 0, 0, 0, 192, 149, 69, 55, 193, 8, 213, 141, 193, 0, 0, 0, 192, 6, 220, 72, 193, 218, 168, 160, 193, 0, 0, 0, 192, 60, 164, 85, 193, 251, 40, 180, 193, 0, 0, 0, 192, 59, 102, 93, 193, 0, 0, 200, 193, 0, 0, 0, 192, 204, 8, 96, 193) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "wide_turn-2-c480f470ca883b94516a2580e8704fd7_Cube_006" +_surfaces = [{ +"aabb": AABB(-25, -5, -15, 20, 3, 20), +"attribute_data": PackedByteArray(0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63), +"format": 4119, +"index_count": 300, +"index_data": PackedByteArray(24, 0, 50, 0, 52, 0, 24, 0, 22, 0, 50, 0, 10, 0, 36, 0, 38, 0, 10, 0, 8, 0, 36, 0, 20, 0, 46, 0, 48, 0, 20, 0, 18, 0, 46, 0, 6, 0, 32, 0, 34, 0, 6, 0, 4, 0, 32, 0, 16, 0, 42, 0, 44, 0, 16, 0, 14, 0, 42, 0, 27, 0, 52, 0, 55, 0, 27, 0, 24, 0, 52, 0, 12, 0, 38, 0, 40, 0, 12, 0, 10, 0, 38, 0, 22, 0, 48, 0, 50, 0, 22, 0, 20, 0, 48, 0, 8, 0, 34, 0, 36, 0, 8, 0, 6, 0, 34, 0, 18, 0, 44, 0, 46, 0, 18, 0, 16, 0, 44, 0, 4, 0, 30, 0, 32, 0, 4, 0, 2, 0, 30, 0, 14, 0, 40, 0, 42, 0, 14, 0, 12, 0, 40, 0, 79, 0, 105, 0, 77, 0, 79, 0, 107, 0, 105, 0, 65, 0, 91, 0, 63, 0, 65, 0, 93, 0, 91, 0, 75, 0, 101, 0, 73, 0, 75, 0, 103, 0, 101, 0, 61, 0, 87, 0, 59, 0, 61, 0, 89, 0, 87, 0, 71, 0, 97, 0, 69, 0, 71, 0, 99, 0, 97, 0, 82, 0, 107, 0, 79, 0, 82, 0, 110, 0, 107, 0, 67, 0, 93, 0, 65, 0, 67, 0, 95, 0, 93, 0, 77, 0, 103, 0, 75, 0, 77, 0, 105, 0, 103, 0, 63, 0, 89, 0, 61, 0, 63, 0, 91, 0, 89, 0, 73, 0, 99, 0, 71, 0, 73, 0, 101, 0, 99, 0, 59, 0, 84, 0, 56, 0, 59, 0, 87, 0, 84, 0, 69, 0, 95, 0, 67, 0, 69, 0, 97, 0, 95, 0, 23, 0, 78, 0, 21, 0, 23, 0, 80, 0, 78, 0, 9, 0, 64, 0, 7, 0, 9, 0, 66, 0, 64, 0, 41, 0, 100, 0, 43, 0, 41, 0, 98, 0, 100, 0, 26, 0, 80, 0, 23, 0, 26, 0, 83, 0, 80, 0, 53, 0, 81, 0, 25, 0, 53, 0, 109, 0, 81, 0, 11, 0, 66, 0, 9, 0, 11, 0, 68, 0, 66, 0, 43, 0, 102, 0, 45, 0, 43, 0, 100, 0, 102, 0, 29, 0, 88, 0, 31, 0, 29, 0, 86, 0, 88, 0, 13, 0, 68, 0, 11, 0, 13, 0, 70, 0, 68, 0, 45, 0, 104, 0, 47, 0, 45, 0, 102, 0, 104, 0, 1, 0, 85, 0, 28, 0, 1, 0, 58, 0, 85, 0, 31, 0, 90, 0, 33, 0, 31, 0, 88, 0, 90, 0, 15, 0, 70, 0, 13, 0, 15, 0, 72, 0, 70, 0, 47, 0, 106, 0, 49, 0, 47, 0, 104, 0, 106, 0, 33, 0, 92, 0, 35, 0, 33, 0, 90, 0, 92, 0, 17, 0, 72, 0, 15, 0, 17, 0, 74, 0, 72, 0, 49, 0, 108, 0, 51, 0, 49, 0, 106, 0, 108, 0, 3, 0, 57, 0, 0, 0, 3, 0, 60, 0, 57, 0, 35, 0, 94, 0, 37, 0, 35, 0, 92, 0, 94, 0, 19, 0, 74, 0, 17, 0, 19, 0, 76, 0, 74, 0, 51, 0, 111, 0, 54, 0, 51, 0, 108, 0, 111, 0, 5, 0, 60, 0, 3, 0, 5, 0, 62, 0, 60, 0, 37, 0, 96, 0, 39, 0, 37, 0, 94, 0, 96, 0, 21, 0, 76, 0, 19, 0, 21, 0, 78, 0, 76, 0, 7, 0, 62, 0, 5, 0, 7, 0, 64, 0, 62, 0, 39, 0, 98, 0, 41, 0, 39, 0, 96, 0, 98, 0), +"lods": [0.714366, PackedByteArray(27, 0, 50, 0, 55, 0, 27, 0, 24, 0, 50, 0, 24, 0, 48, 0, 50, 0, 24, 0, 18, 0, 48, 0, 18, 0, 44, 0, 48, 0, 18, 0, 14, 0, 44, 0, 14, 0, 40, 0, 44, 0, 14, 0, 8, 0, 40, 0, 8, 0, 38, 0, 40, 0, 8, 0, 34, 0, 38, 0, 8, 0, 30, 0, 34, 0, 8, 0, 2, 0, 30, 0, 75, 0, 107, 0, 71, 0, 77, 0, 107, 0, 75, 0, 82, 0, 107, 0, 77, 0, 82, 0, 110, 0, 107, 0, 71, 0, 107, 0, 97, 0, 71, 0, 97, 0, 67, 0, 67, 0, 97, 0, 87, 0, 67, 0, 87, 0, 61, 0, 61, 0, 87, 0, 84, 0, 61, 0, 84, 0, 56, 0, 26, 0, 78, 0, 23, 0, 26, 0, 83, 0, 78, 0, 23, 0, 78, 0, 76, 0, 23, 0, 76, 0, 17, 0, 17, 0, 76, 0, 72, 0, 17, 0, 72, 0, 13, 0, 13, 0, 72, 0, 68, 0, 13, 0, 68, 0, 7, 0, 7, 0, 68, 0, 62, 0, 7, 0, 62, 0, 57, 0, 7, 0, 57, 0, 0, 0, 53, 0, 81, 0, 25, 0, 53, 0, 109, 0, 81, 0, 43, 0, 108, 0, 47, 0, 47, 0, 108, 0, 49, 0, 49, 0, 108, 0, 111, 0, 49, 0, 111, 0, 54, 0, 43, 0, 98, 0, 108, 0, 39, 0, 98, 0, 43, 0, 37, 0, 98, 0, 39, 0, 33, 0, 98, 0, 37, 0, 33, 0, 88, 0, 98, 0, 29, 0, 88, 0, 33, 0, 29, 0, 86, 0, 88, 0, 1, 0, 85, 0, 28, 0, 1, 0, 58, 0, 85, 0), 5.12897, PackedByteArray(27, 0, 50, 0, 55, 0, 27, 0, 18, 0, 50, 0, 18, 0, 114, 0, 50, 0, 112, 0, 113, 0, 114, 0, 18, 0, 2, 0, 113, 0, 82, 0, 107, 0, 75, 0, 82, 0, 110, 0, 107, 0, 75, 0, 107, 0, 87, 0, 75, 0, 87, 0, 84, 0, 75, 0, 84, 0, 56, 0, 26, 0, 76, 0, 17, 0, 26, 0, 83, 0, 76, 0, 17, 0, 76, 0, 57, 0, 17, 0, 57, 0, 0, 0, 53, 0, 81, 0, 25, 0, 53, 0, 109, 0, 81, 0, 49, 0, 88, 0, 108, 0, 49, 0, 108, 0, 111, 0, 49, 0, 111, 0, 54, 0, 39, 0, 88, 0, 49, 0, 29, 0, 88, 0, 39, 0, 29, 0, 86, 0, 88, 0, 1, 0, 85, 0, 28, 0, 1, 0, 58, 0, 85, 0)], +"material": ExtResource("1_cxqsh"), +"primitive": 3, +"vertex_count": 115, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 160, 64, 255, 255, 222, 135, 255, 255, 255, 191, 173, 121, 165, 192, 0, 0, 160, 192, 42, 237, 24, 64, 255, 127, 0, 0, 255, 255, 255, 191, 173, 121, 165, 192, 0, 0, 160, 192, 42, 237, 24, 64, 255, 255, 227, 142, 255, 255, 255, 191, 183, 206, 181, 192, 0, 0, 160, 192, 144, 157, 52, 190, 255, 127, 0, 0, 255, 255, 255, 191, 183, 206, 181, 192, 0, 0, 160, 192, 144, 157, 52, 190, 255, 255, 11, 155, 255, 255, 255, 191, 149, 183, 208, 192, 0, 0, 160, 192, 190, 213, 41, 192, 255, 127, 0, 0, 255, 255, 255, 191, 149, 183, 208, 192, 0, 0, 160, 192, 190, 213, 41, 192, 255, 255, 125, 165, 255, 255, 255, 191, 104, 190, 245, 192, 0, 0, 160, 192, 6, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 104, 190, 245, 192, 0, 0, 160, 192, 6, 0, 160, 192, 255, 255, 217, 174, 255, 255, 255, 191, 128, 32, 18, 193, 0, 0, 160, 192, 128, 155, 229, 192, 255, 127, 0, 0, 255, 255, 255, 191, 128, 32, 18, 193, 0, 0, 160, 192, 128, 155, 229, 192, 255, 255, 146, 183, 255, 255, 255, 191, 210, 185, 45, 193, 0, 0, 160, 192, 52, 70, 18, 193, 255, 127, 0, 0, 255, 255, 255, 191, 210, 185, 45, 193, 0, 0, 160, 192, 52, 70, 18, 193, 255, 255, 255, 191, 255, 255, 255, 191, 70, 50, 77, 193, 0, 0, 160, 192, 134, 223, 45, 193, 255, 127, 0, 0, 255, 255, 255, 191, 70, 50, 77, 193, 0, 0, 160, 192, 134, 223, 45, 193, 255, 255, 108, 200, 255, 255, 255, 191, 3, 0, 112, 193, 0, 0, 160, 192, 210, 32, 69, 193, 255, 127, 0, 0, 255, 255, 255, 191, 3, 0, 112, 193, 0, 0, 160, 192, 210, 32, 69, 193, 255, 255, 37, 209, 255, 255, 255, 191, 76, 197, 138, 193, 0, 0, 160, 192, 60, 164, 87, 193, 255, 127, 0, 0, 255, 255, 255, 191, 76, 197, 138, 193, 0, 0, 160, 192, 60, 164, 87, 193, 255, 255, 129, 218, 255, 255, 255, 191, 202, 150, 158, 193, 0, 0, 160, 192, 171, 24, 101, 193, 255, 127, 0, 0, 255, 255, 255, 191, 202, 150, 158, 193, 0, 0, 160, 192, 171, 24, 101, 193, 255, 255, 242, 228, 255, 255, 255, 191, 170, 29, 179, 193, 0, 0, 160, 192, 48, 67, 109, 193, 255, 127, 0, 0, 255, 255, 255, 191, 170, 29, 179, 193, 0, 0, 160, 192, 48, 67, 109, 193, 255, 255, 27, 241, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 160, 192, 7, 0, 112, 193, 0, 0, 255, 127, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 160, 192, 7, 0, 112, 193, 255, 127, 0, 0, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 160, 192, 7, 0, 112, 193, 255, 255, 31, 248, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 192, 0, 0, 160, 64, 255, 255, 222, 135, 255, 255, 255, 191, 173, 121, 165, 192, 0, 0, 0, 192, 42, 237, 24, 64, 255, 127, 255, 255, 255, 255, 255, 191, 173, 121, 165, 192, 0, 0, 0, 192, 42, 237, 24, 64, 255, 255, 227, 142, 255, 255, 255, 191, 183, 206, 181, 192, 0, 0, 0, 192, 144, 157, 52, 190, 255, 127, 255, 255, 255, 255, 255, 191, 183, 206, 181, 192, 0, 0, 0, 192, 144, 157, 52, 190, 255, 255, 11, 155, 255, 255, 255, 191, 149, 183, 208, 192, 0, 0, 0, 192, 190, 213, 41, 192, 255, 127, 255, 255, 255, 255, 255, 191, 149, 183, 208, 192, 0, 0, 0, 192, 190, 213, 41, 192, 255, 255, 125, 165, 255, 255, 255, 191, 104, 190, 245, 192, 0, 0, 0, 192, 6, 0, 160, 192, 255, 127, 255, 255, 255, 255, 255, 191, 104, 190, 245, 192, 0, 0, 0, 192, 6, 0, 160, 192, 255, 255, 217, 174, 255, 255, 255, 191, 128, 32, 18, 193, 0, 0, 0, 192, 128, 155, 229, 192, 255, 127, 255, 255, 255, 255, 255, 191, 128, 32, 18, 193, 0, 0, 0, 192, 128, 155, 229, 192, 255, 255, 146, 183, 255, 255, 255, 191, 210, 185, 45, 193, 0, 0, 0, 192, 52, 70, 18, 193, 255, 127, 255, 255, 255, 255, 255, 191, 210, 185, 45, 193, 0, 0, 0, 192, 52, 70, 18, 193, 255, 255, 255, 191, 255, 255, 255, 191, 70, 50, 77, 193, 0, 0, 0, 192, 134, 223, 45, 193, 255, 127, 255, 255, 255, 255, 255, 191, 70, 50, 77, 193, 0, 0, 0, 192, 134, 223, 45, 193, 255, 255, 108, 200, 255, 255, 255, 191, 3, 0, 112, 193, 0, 0, 0, 192, 210, 32, 69, 193, 255, 127, 255, 255, 255, 255, 255, 191, 3, 0, 112, 193, 0, 0, 0, 192, 210, 32, 69, 193, 255, 255, 37, 209, 255, 255, 255, 191, 76, 197, 138, 193, 0, 0, 0, 192, 60, 164, 87, 193, 255, 127, 255, 255, 255, 255, 255, 191, 76, 197, 138, 193, 0, 0, 0, 192, 60, 164, 87, 193, 255, 255, 129, 218, 255, 255, 255, 191, 202, 150, 158, 193, 0, 0, 0, 192, 171, 24, 101, 193, 255, 127, 255, 255, 255, 255, 255, 191, 202, 150, 158, 193, 0, 0, 0, 192, 171, 24, 101, 193, 255, 255, 242, 228, 255, 255, 255, 191, 170, 29, 179, 193, 0, 0, 0, 192, 48, 67, 109, 193, 255, 127, 255, 255, 255, 255, 255, 191, 170, 29, 179, 193, 0, 0, 0, 192, 48, 67, 109, 193, 255, 255, 27, 241, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 0, 192, 7, 0, 112, 193, 0, 0, 255, 127, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 0, 192, 7, 0, 112, 193, 255, 127, 255, 255, 255, 255, 255, 191, 4, 0, 200, 193, 0, 0, 0, 192, 7, 0, 112, 193, 255, 255, 31, 248, 255, 255, 255, 191, 118, 238, 191, 192, 0, 0, 160, 192, 0, 0, 160, 64, 249, 7, 255, 127, 255, 255, 255, 191, 118, 238, 191, 192, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 118, 238, 191, 192, 0, 0, 160, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 152, 51, 197, 192, 0, 0, 160, 192, 181, 71, 33, 64, 240, 14, 255, 127, 255, 255, 255, 191, 152, 51, 197, 192, 0, 0, 160, 192, 181, 71, 33, 64, 255, 127, 0, 0, 255, 255, 255, 191, 148, 183, 212, 192, 0, 0, 160, 192, 152, 212, 168, 61, 12, 27, 255, 127, 255, 255, 255, 191, 148, 183, 212, 192, 0, 0, 160, 192, 152, 212, 168, 61, 255, 127, 0, 0, 255, 255, 255, 191, 1, 72, 238, 192, 0, 0, 160, 192, 219, 87, 17, 192, 125, 37, 255, 127, 255, 255, 255, 191, 1, 72, 238, 192, 0, 0, 160, 192, 219, 87, 17, 192, 255, 127, 0, 0, 255, 255, 255, 191, 113, 186, 8, 193, 0, 0, 160, 192, 6, 0, 144, 192, 217, 46, 255, 127, 255, 255, 255, 191, 113, 186, 8, 193, 0, 0, 160, 192, 6, 0, 144, 192, 255, 127, 0, 0, 255, 255, 255, 191, 19, 210, 30, 193, 0, 0, 160, 192, 135, 32, 210, 192, 146, 55, 255, 127, 255, 255, 255, 191, 19, 210, 30, 193, 0, 0, 160, 192, 135, 32, 210, 192, 255, 127, 0, 0, 255, 255, 255, 191, 33, 10, 57, 193, 0, 0, 160, 192, 229, 245, 6, 193, 255, 63, 255, 127, 255, 255, 255, 191, 33, 10, 57, 193, 0, 0, 160, 192, 229, 245, 6, 193, 255, 127, 0, 0, 255, 255, 255, 191, 195, 239, 86, 193, 0, 0, 160, 192, 243, 45, 33, 193, 108, 72, 255, 127, 255, 255, 255, 191, 195, 239, 86, 193, 0, 0, 160, 192, 243, 45, 33, 193, 255, 127, 0, 0, 255, 255, 255, 191, 3, 0, 120, 193, 0, 0, 160, 192, 149, 69, 55, 193, 37, 81, 255, 127, 255, 255, 255, 191, 3, 0, 120, 193, 0, 0, 160, 192, 149, 69, 55, 193, 255, 127, 0, 0, 255, 255, 255, 191, 8, 213, 141, 193, 0, 0, 160, 192, 6, 220, 72, 193, 129, 90, 255, 127, 255, 255, 255, 191, 8, 213, 141, 193, 0, 0, 160, 192, 6, 220, 72, 193, 255, 127, 0, 0, 255, 255, 255, 191, 218, 168, 160, 193, 0, 0, 160, 192, 60, 164, 85, 193, 243, 100, 255, 127, 255, 255, 255, 191, 218, 168, 160, 193, 0, 0, 160, 192, 60, 164, 85, 193, 255, 127, 0, 0, 255, 255, 255, 191, 251, 40, 180, 193, 0, 0, 160, 192, 59, 102, 93, 193, 15, 113, 255, 127, 255, 255, 255, 191, 251, 40, 180, 193, 0, 0, 160, 192, 59, 102, 93, 193, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 160, 192, 204, 8, 96, 193, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 160, 192, 204, 8, 96, 193, 5, 120, 255, 127, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 160, 192, 204, 8, 96, 193, 255, 127, 0, 0, 255, 255, 255, 191, 118, 238, 191, 192, 0, 0, 0, 192, 0, 0, 160, 64, 249, 7, 255, 127, 255, 255, 255, 191, 118, 238, 191, 192, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 191, 118, 238, 191, 192, 0, 0, 0, 192, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 152, 51, 197, 192, 0, 0, 0, 192, 181, 71, 33, 64, 240, 14, 255, 127, 255, 255, 255, 191, 152, 51, 197, 192, 0, 0, 0, 192, 181, 71, 33, 64, 255, 127, 255, 255, 255, 255, 255, 191, 148, 183, 212, 192, 0, 0, 0, 192, 152, 212, 168, 61, 12, 27, 255, 127, 255, 255, 255, 191, 148, 183, 212, 192, 0, 0, 0, 192, 152, 212, 168, 61, 255, 127, 255, 255, 255, 255, 255, 191, 1, 72, 238, 192, 0, 0, 0, 192, 219, 87, 17, 192, 125, 37, 255, 127, 255, 255, 255, 191, 1, 72, 238, 192, 0, 0, 0, 192, 219, 87, 17, 192, 255, 127, 255, 255, 255, 255, 255, 191, 113, 186, 8, 193, 0, 0, 0, 192, 6, 0, 144, 192, 217, 46, 255, 127, 255, 255, 255, 191, 113, 186, 8, 193, 0, 0, 0, 192, 6, 0, 144, 192, 255, 127, 255, 255, 255, 255, 255, 191, 19, 210, 30, 193, 0, 0, 0, 192, 135, 32, 210, 192, 146, 55, 255, 127, 255, 255, 255, 191, 19, 210, 30, 193, 0, 0, 0, 192, 135, 32, 210, 192, 255, 127, 255, 255, 255, 255, 255, 191, 33, 10, 57, 193, 0, 0, 0, 192, 229, 245, 6, 193, 255, 63, 255, 127, 255, 255, 255, 191, 33, 10, 57, 193, 0, 0, 0, 192, 229, 245, 6, 193, 255, 127, 255, 255, 255, 255, 255, 191, 195, 239, 86, 193, 0, 0, 0, 192, 243, 45, 33, 193, 108, 72, 255, 127, 255, 255, 255, 191, 195, 239, 86, 193, 0, 0, 0, 192, 243, 45, 33, 193, 255, 127, 255, 255, 255, 255, 255, 191, 3, 0, 120, 193, 0, 0, 0, 192, 149, 69, 55, 193, 37, 81, 255, 127, 255, 255, 255, 191, 3, 0, 120, 193, 0, 0, 0, 192, 149, 69, 55, 193, 255, 127, 255, 255, 255, 255, 255, 191, 8, 213, 141, 193, 0, 0, 0, 192, 6, 220, 72, 193, 129, 90, 255, 127, 255, 255, 255, 191, 8, 213, 141, 193, 0, 0, 0, 192, 6, 220, 72, 193, 255, 127, 255, 255, 255, 255, 255, 191, 218, 168, 160, 193, 0, 0, 0, 192, 60, 164, 85, 193, 243, 100, 255, 127, 255, 255, 255, 191, 218, 168, 160, 193, 0, 0, 0, 192, 60, 164, 85, 193, 255, 127, 255, 255, 255, 255, 255, 191, 251, 40, 180, 193, 0, 0, 0, 192, 59, 102, 93, 193, 15, 113, 255, 127, 255, 255, 255, 191, 251, 40, 180, 193, 0, 0, 0, 192, 59, 102, 93, 193, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 0, 192, 204, 8, 96, 193, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 0, 192, 204, 8, 96, 193, 5, 120, 255, 127, 255, 255, 255, 191, 0, 0, 200, 193, 0, 0, 0, 192, 204, 8, 96, 193, 255, 127, 255, 255, 255, 255, 255, 191, 3, 0, 112, 193, 0, 0, 160, 192, 210, 32, 69, 193, 33, 186, 136, 30, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 192, 0, 0, 160, 64, 220, 242, 108, 84, 255, 255, 255, 191, 128, 32, 18, 193, 0, 0, 0, 192, 128, 155, 229, 192, 239, 253, 235, 61, 255, 255, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_4fq5t") diff --git a/assets/meshes/walls/small_curved_wall_inner.tres b/assets/meshes/walls/small_curved_wall_inner.tres new file mode 100644 index 0000000..efd88a0 --- /dev/null +++ b/assets/meshes/walls/small_curved_wall_inner.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://cwdxvx27qpdok"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_dqidi"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_ctsmp"] +_surfaces = [{ +"aabb": AABB(-9.8618, -0.5, -11.1382, 21, 3, 21), +"format": 4097, +"index_count": 300, +"index_data": PackedByteArray(3, 0, 4, 0, 2, 0, 3, 0, 5, 0, 4, 0, 1, 0, 2, 0, 0, 0, 1, 0, 3, 0, 2, 0, 5, 0, 6, 0, 4, 0, 5, 0, 7, 0, 6, 0, 9, 0, 10, 0, 8, 0, 9, 0, 11, 0, 10, 0, 7, 0, 8, 0, 6, 0, 7, 0, 9, 0, 8, 0, 11, 0, 12, 0, 10, 0, 11, 0, 13, 0, 12, 0, 15, 0, 16, 0, 14, 0, 15, 0, 17, 0, 16, 0, 13, 0, 14, 0, 12, 0, 13, 0, 15, 0, 14, 0, 17, 0, 18, 0, 16, 0, 17, 0, 19, 0, 18, 0, 21, 0, 22, 0, 20, 0, 21, 0, 23, 0, 22, 0, 19, 0, 20, 0, 18, 0, 19, 0, 21, 0, 20, 0, 23, 0, 24, 0, 22, 0, 23, 0, 25, 0, 24, 0, 28, 0, 31, 0, 30, 0, 28, 0, 29, 0, 31, 0, 26, 0, 29, 0, 28, 0, 26, 0, 27, 0, 29, 0, 30, 0, 33, 0, 32, 0, 30, 0, 31, 0, 33, 0, 34, 0, 37, 0, 36, 0, 34, 0, 35, 0, 37, 0, 32, 0, 35, 0, 34, 0, 32, 0, 33, 0, 35, 0, 36, 0, 39, 0, 38, 0, 36, 0, 37, 0, 39, 0, 40, 0, 43, 0, 42, 0, 40, 0, 41, 0, 43, 0, 38, 0, 41, 0, 40, 0, 38, 0, 39, 0, 41, 0, 42, 0, 45, 0, 44, 0, 42, 0, 43, 0, 45, 0, 46, 0, 49, 0, 48, 0, 46, 0, 47, 0, 49, 0, 44, 0, 47, 0, 46, 0, 44, 0, 45, 0, 47, 0, 48, 0, 51, 0, 50, 0, 48, 0, 49, 0, 51, 0, 9, 0, 36, 0, 11, 0, 9, 0, 34, 0, 36, 0, 19, 0, 46, 0, 21, 0, 19, 0, 44, 0, 46, 0, 5, 0, 32, 0, 7, 0, 5, 0, 30, 0, 32, 0, 16, 0, 41, 0, 14, 0, 16, 0, 43, 0, 41, 0, 6, 0, 31, 0, 4, 0, 6, 0, 33, 0, 31, 0, 15, 0, 42, 0, 17, 0, 15, 0, 40, 0, 42, 0, 1, 0, 28, 0, 3, 0, 1, 0, 26, 0, 28, 0, 11, 0, 38, 0, 13, 0, 11, 0, 36, 0, 38, 0, 22, 0, 47, 0, 20, 0, 22, 0, 49, 0, 47, 0, 2, 0, 27, 0, 0, 0, 2, 0, 29, 0, 27, 0, 12, 0, 37, 0, 10, 0, 12, 0, 39, 0, 37, 0, 21, 0, 48, 0, 23, 0, 21, 0, 46, 0, 48, 0, 7, 0, 34, 0, 9, 0, 7, 0, 32, 0, 34, 0, 17, 0, 44, 0, 19, 0, 17, 0, 42, 0, 44, 0, 25, 0, 51, 0, 24, 0, 25, 0, 50, 0, 51, 0, 8, 0, 33, 0, 6, 0, 8, 0, 35, 0, 33, 0, 18, 0, 43, 0, 16, 0, 18, 0, 45, 0, 43, 0, 4, 0, 29, 0, 2, 0, 4, 0, 31, 0, 29, 0, 13, 0, 40, 0, 15, 0, 13, 0, 38, 0, 40, 0, 23, 0, 50, 0, 25, 0, 23, 0, 48, 0, 50, 0, 3, 0, 30, 0, 5, 0, 3, 0, 28, 0, 30, 0, 14, 0, 39, 0, 12, 0, 14, 0, 41, 0, 39, 0, 24, 0, 49, 0, 22, 0, 24, 0, 51, 0, 49, 0, 10, 0, 35, 0, 8, 0, 10, 0, 37, 0, 35, 0, 20, 0, 45, 0, 18, 0, 20, 0, 47, 0, 45, 0, 0, 0, 26, 0, 1, 0, 0, 0, 27, 0, 26, 0), +"lods": [0.646547, PackedByteArray(1, 0, 2, 0, 0, 0, 1, 0, 7, 0, 2, 0, 7, 0, 12, 0, 2, 0, 7, 0, 11, 0, 12, 0, 11, 0, 17, 0, 12, 0, 17, 0, 21, 0, 12, 0, 21, 0, 22, 0, 12, 0, 21, 0, 24, 0, 22, 0, 21, 0, 25, 0, 24, 0, 34, 0, 29, 0, 35, 0, 34, 0, 35, 0, 37, 0, 26, 0, 29, 0, 34, 0, 26, 0, 27, 0, 29, 0, 34, 0, 37, 0, 38, 0, 38, 0, 37, 0, 45, 0, 38, 0, 45, 0, 44, 0, 44, 0, 45, 0, 47, 0, 44, 0, 47, 0, 48, 0, 48, 0, 47, 0, 51, 0, 48, 0, 51, 0, 50, 0, 21, 0, 44, 0, 48, 0, 21, 0, 48, 0, 50, 0, 21, 0, 50, 0, 25, 0, 17, 0, 44, 0, 21, 0, 17, 0, 38, 0, 44, 0, 11, 0, 38, 0, 17, 0, 11, 0, 34, 0, 38, 0, 7, 0, 34, 0, 11, 0, 1, 0, 34, 0, 7, 0, 1, 0, 26, 0, 34, 0, 2, 0, 27, 0, 0, 0, 2, 0, 29, 0, 27, 0, 2, 0, 35, 0, 29, 0, 12, 0, 35, 0, 2, 0, 12, 0, 37, 0, 35, 0, 12, 0, 45, 0, 37, 0, 22, 0, 45, 0, 12, 0, 22, 0, 47, 0, 45, 0, 24, 0, 47, 0, 22, 0, 24, 0, 51, 0, 47, 0, 25, 0, 51, 0, 24, 0, 25, 0, 50, 0, 51, 0, 0, 0, 26, 0, 1, 0, 0, 0, 27, 0, 26, 0), 4.68984, PackedByteArray(1, 0, 12, 0, 0, 0, 1, 0, 7, 0, 12, 0, 7, 0, 24, 0, 12, 0, 7, 0, 25, 0, 24, 0, 26, 0, 37, 0, 34, 0, 26, 0, 27, 0, 37, 0, 34, 0, 37, 0, 45, 0, 34, 0, 45, 0, 51, 0, 34, 0, 51, 0, 50, 0, 1, 0, 34, 0, 7, 0, 1, 0, 26, 0, 34, 0, 7, 0, 34, 0, 50, 0, 7, 0, 50, 0, 25, 0, 12, 0, 27, 0, 0, 0, 12, 0, 37, 0, 27, 0, 12, 0, 45, 0, 37, 0, 24, 0, 45, 0, 12, 0, 24, 0, 51, 0, 45, 0, 25, 0, 51, 0, 24, 0, 25, 0, 50, 0, 51, 0, 0, 0, 26, 0, 1, 0, 0, 0, 27, 0, 26, 0)], +"primitive": 3, +"vertex_count": 52, +"vertex_data": PackedByteArray(243, 201, 29, 193, 255, 255, 255, 190, 15, 54, 34, 193, 243, 201, 29, 193, 0, 0, 32, 64, 15, 54, 34, 193, 125, 10, 232, 192, 255, 255, 255, 190, 58, 121, 31, 193, 125, 10, 232, 192, 0, 0, 32, 64, 58, 121, 31, 193, 252, 238, 149, 192, 255, 255, 255, 190, 182, 78, 23, 193, 252, 238, 149, 192, 0, 0, 32, 64, 182, 78, 23, 193, 22, 82, 13, 192, 255, 255, 255, 190, 72, 218, 9, 193, 22, 82, 13, 192, 0, 0, 32, 64, 72, 218, 9, 193, 128, 131, 13, 62, 255, 255, 255, 190, 192, 173, 238, 192, 128, 131, 13, 62, 0, 0, 32, 64, 192, 173, 238, 192, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 44, 15, 20, 64, 0, 0, 32, 64, 42, 43, 192, 192, 126, 248, 136, 64, 255, 255, 255, 190, 136, 248, 136, 192, 126, 248, 136, 64, 0, 0, 32, 64, 136, 248, 136, 192, 36, 43, 192, 64, 255, 255, 255, 190, 69, 15, 20, 192, 36, 43, 192, 64, 0, 0, 32, 64, 69, 15, 20, 192, 190, 173, 238, 64, 255, 255, 255, 190, 64, 133, 13, 190, 190, 173, 238, 64, 0, 0, 32, 64, 64, 133, 13, 190, 74, 218, 9, 65, 255, 255, 255, 190, 246, 81, 13, 64, 74, 218, 9, 65, 0, 0, 32, 64, 246, 81, 13, 64, 186, 78, 23, 65, 255, 255, 255, 190, 236, 238, 149, 64, 186, 78, 23, 65, 0, 0, 32, 64, 236, 238, 149, 64, 64, 121, 31, 65, 255, 255, 255, 190, 108, 10, 232, 64, 64, 121, 31, 65, 0, 0, 32, 64, 108, 10, 232, 64, 24, 54, 34, 65, 255, 255, 255, 190, 235, 201, 29, 65, 24, 54, 34, 65, 0, 0, 32, 64, 235, 201, 29, 65, 243, 201, 29, 193, 0, 0, 32, 64, 14, 54, 50, 193, 243, 201, 29, 193, 254, 255, 255, 190, 14, 54, 50, 193, 57, 221, 227, 192, 0, 0, 32, 64, 47, 86, 47, 193, 57, 221, 227, 192, 255, 255, 255, 190, 47, 86, 47, 193, 190, 166, 141, 192, 0, 0, 32, 64, 37, 195, 38, 193, 190, 166, 141, 192, 255, 255, 255, 190, 37, 195, 38, 193, 106, 168, 233, 191, 0, 0, 32, 64, 126, 162, 24, 193, 106, 168, 233, 191, 255, 255, 255, 190, 126, 162, 24, 193, 219, 96, 35, 63, 0, 0, 32, 64, 30, 50, 5, 193, 219, 96, 35, 63, 255, 255, 255, 190, 30, 50, 5, 193, 30, 5, 59, 64, 0, 0, 32, 64, 81, 142, 217, 192, 30, 5, 59, 64, 255, 255, 255, 190, 81, 142, 217, 192, 28, 153, 159, 64, 0, 0, 32, 64, 39, 153, 159, 192, 28, 153, 159, 64, 255, 255, 255, 190, 39, 153, 159, 192, 74, 142, 217, 64, 0, 0, 32, 64, 58, 5, 59, 192, 74, 142, 217, 64, 255, 255, 255, 190, 58, 5, 59, 192, 28, 50, 5, 65, 0, 0, 32, 64, 88, 97, 35, 191, 28, 50, 5, 65, 255, 255, 255, 190, 88, 97, 35, 191, 128, 162, 24, 65, 0, 0, 32, 64, 34, 168, 233, 63, 128, 162, 24, 65, 255, 255, 255, 190, 34, 168, 233, 63, 41, 195, 38, 65, 0, 0, 32, 64, 172, 166, 141, 64, 41, 195, 38, 65, 255, 255, 255, 190, 172, 166, 141, 64, 53, 86, 47, 65, 0, 0, 32, 64, 38, 221, 227, 64, 53, 86, 47, 65, 255, 255, 255, 190, 38, 221, 227, 64, 13, 54, 50, 65, 0, 0, 32, 64, 241, 201, 29, 65, 13, 54, 50, 65, 254, 255, 255, 190, 241, 201, 29, 65) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "wide_turn_small-6e237ca1d0f874ac4bdf9eea3a770eab_Cube_001" +_surfaces = [{ +"aabb": AABB(-9.8618, -0.5, -11.1382, 21, 3, 21), +"attribute_data": PackedByteArray(0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63), +"format": 4119, +"index_count": 300, +"index_data": PackedByteArray(8, 0, 10, 0, 6, 0, 8, 0, 12, 0, 10, 0, 4, 0, 6, 0, 1, 0, 4, 0, 8, 0, 6, 0, 12, 0, 14, 0, 10, 0, 12, 0, 16, 0, 14, 0, 20, 0, 22, 0, 18, 0, 20, 0, 24, 0, 22, 0, 16, 0, 18, 0, 14, 0, 16, 0, 20, 0, 18, 0, 24, 0, 26, 0, 22, 0, 24, 0, 28, 0, 26, 0, 32, 0, 34, 0, 30, 0, 32, 0, 36, 0, 34, 0, 28, 0, 30, 0, 26, 0, 28, 0, 32, 0, 30, 0, 36, 0, 38, 0, 34, 0, 36, 0, 40, 0, 38, 0, 44, 0, 46, 0, 42, 0, 44, 0, 48, 0, 46, 0, 40, 0, 42, 0, 38, 0, 40, 0, 44, 0, 42, 0, 48, 0, 50, 0, 46, 0, 48, 0, 53, 0, 50, 0, 63, 0, 69, 0, 67, 0, 63, 0, 65, 0, 69, 0, 58, 0, 65, 0, 63, 0, 58, 0, 61, 0, 65, 0, 67, 0, 73, 0, 71, 0, 67, 0, 69, 0, 73, 0, 75, 0, 81, 0, 79, 0, 75, 0, 77, 0, 81, 0, 71, 0, 77, 0, 75, 0, 71, 0, 73, 0, 77, 0, 79, 0, 85, 0, 83, 0, 79, 0, 81, 0, 85, 0, 87, 0, 93, 0, 91, 0, 87, 0, 89, 0, 93, 0, 83, 0, 89, 0, 87, 0, 83, 0, 85, 0, 89, 0, 91, 0, 97, 0, 95, 0, 91, 0, 93, 0, 97, 0, 99, 0, 105, 0, 103, 0, 99, 0, 101, 0, 105, 0, 95, 0, 101, 0, 99, 0, 95, 0, 97, 0, 101, 0, 103, 0, 111, 0, 108, 0, 103, 0, 105, 0, 111, 0, 21, 0, 78, 0, 25, 0, 21, 0, 74, 0, 78, 0, 41, 0, 98, 0, 45, 0, 41, 0, 94, 0, 98, 0, 13, 0, 70, 0, 17, 0, 13, 0, 66, 0, 70, 0, 35, 0, 88, 0, 31, 0, 35, 0, 92, 0, 88, 0, 15, 0, 68, 0, 11, 0, 15, 0, 72, 0, 68, 0, 33, 0, 90, 0, 37, 0, 33, 0, 86, 0, 90, 0, 5, 0, 62, 0, 9, 0, 5, 0, 57, 0, 62, 0, 25, 0, 82, 0, 29, 0, 25, 0, 78, 0, 82, 0, 47, 0, 100, 0, 43, 0, 47, 0, 104, 0, 100, 0, 7, 0, 60, 0, 2, 0, 7, 0, 64, 0, 60, 0, 27, 0, 80, 0, 23, 0, 27, 0, 84, 0, 80, 0, 45, 0, 102, 0, 49, 0, 45, 0, 98, 0, 102, 0, 17, 0, 74, 0, 21, 0, 17, 0, 70, 0, 74, 0, 37, 0, 94, 0, 41, 0, 37, 0, 90, 0, 94, 0, 54, 0, 110, 0, 52, 0, 54, 0, 106, 0, 110, 0, 19, 0, 72, 0, 15, 0, 19, 0, 76, 0, 72, 0, 39, 0, 92, 0, 35, 0, 39, 0, 96, 0, 92, 0, 11, 0, 64, 0, 7, 0, 11, 0, 68, 0, 64, 0, 29, 0, 86, 0, 33, 0, 29, 0, 82, 0, 86, 0, 49, 0, 107, 0, 55, 0, 49, 0, 102, 0, 107, 0, 9, 0, 66, 0, 13, 0, 9, 0, 62, 0, 66, 0, 31, 0, 84, 0, 27, 0, 31, 0, 88, 0, 84, 0, 51, 0, 104, 0, 47, 0, 51, 0, 109, 0, 104, 0, 23, 0, 76, 0, 19, 0, 23, 0, 80, 0, 76, 0, 43, 0, 96, 0, 39, 0, 43, 0, 100, 0, 96, 0, 0, 0, 56, 0, 3, 0, 0, 0, 59, 0, 56, 0), +"lods": [0.646547, PackedByteArray(4, 0, 6, 0, 1, 0, 4, 0, 16, 0, 6, 0, 16, 0, 26, 0, 6, 0, 16, 0, 24, 0, 26, 0, 24, 0, 36, 0, 26, 0, 36, 0, 44, 0, 26, 0, 44, 0, 46, 0, 26, 0, 44, 0, 50, 0, 46, 0, 44, 0, 53, 0, 50, 0, 75, 0, 65, 0, 77, 0, 75, 0, 77, 0, 81, 0, 58, 0, 65, 0, 75, 0, 58, 0, 61, 0, 65, 0, 75, 0, 81, 0, 83, 0, 83, 0, 81, 0, 97, 0, 83, 0, 97, 0, 95, 0, 95, 0, 97, 0, 101, 0, 95, 0, 101, 0, 103, 0, 103, 0, 101, 0, 111, 0, 103, 0, 111, 0, 108, 0, 45, 0, 94, 0, 102, 0, 45, 0, 102, 0, 107, 0, 45, 0, 107, 0, 55, 0, 37, 0, 94, 0, 45, 0, 37, 0, 82, 0, 94, 0, 25, 0, 82, 0, 37, 0, 25, 0, 74, 0, 82, 0, 17, 0, 74, 0, 25, 0, 5, 0, 74, 0, 17, 0, 5, 0, 57, 0, 74, 0, 7, 0, 60, 0, 2, 0, 7, 0, 64, 0, 60, 0, 7, 0, 76, 0, 64, 0, 27, 0, 76, 0, 7, 0, 27, 0, 80, 0, 76, 0, 27, 0, 96, 0, 80, 0, 47, 0, 96, 0, 27, 0, 47, 0, 100, 0, 96, 0, 51, 0, 100, 0, 47, 0, 51, 0, 109, 0, 100, 0, 54, 0, 110, 0, 52, 0, 54, 0, 106, 0, 110, 0, 0, 0, 56, 0, 3, 0, 0, 0, 59, 0, 56, 0), 4.68984, PackedByteArray(4, 0, 26, 0, 1, 0, 4, 0, 16, 0, 26, 0, 16, 0, 50, 0, 26, 0, 16, 0, 53, 0, 50, 0, 58, 0, 81, 0, 75, 0, 58, 0, 61, 0, 81, 0, 75, 0, 81, 0, 97, 0, 75, 0, 97, 0, 111, 0, 75, 0, 111, 0, 108, 0, 5, 0, 74, 0, 17, 0, 5, 0, 57, 0, 74, 0, 17, 0, 74, 0, 107, 0, 17, 0, 107, 0, 55, 0, 27, 0, 60, 0, 2, 0, 27, 0, 80, 0, 60, 0, 27, 0, 96, 0, 80, 0, 51, 0, 96, 0, 27, 0, 51, 0, 109, 0, 96, 0, 54, 0, 110, 0, 52, 0, 54, 0, 106, 0, 110, 0, 0, 0, 56, 0, 3, 0, 0, 0, 59, 0, 56, 0)], +"material": ExtResource("1_dqidi"), +"primitive": 3, +"vertex_count": 112, +"vertex_data": PackedByteArray(243, 201, 29, 193, 255, 255, 255, 190, 15, 54, 34, 193, 0, 0, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 255, 255, 255, 190, 15, 54, 34, 193, 32, 120, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 255, 255, 255, 190, 15, 54, 34, 193, 255, 127, 0, 0, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 15, 54, 34, 193, 0, 0, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 15, 54, 34, 193, 32, 120, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 15, 54, 34, 193, 255, 127, 255, 255, 255, 255, 255, 191, 125, 10, 232, 192, 255, 255, 255, 190, 58, 121, 31, 193, 27, 113, 255, 127, 255, 255, 255, 191, 125, 10, 232, 192, 255, 255, 255, 190, 58, 121, 31, 193, 255, 127, 0, 0, 255, 255, 255, 191, 125, 10, 232, 192, 0, 0, 32, 64, 58, 121, 31, 193, 27, 113, 255, 127, 255, 255, 255, 191, 125, 10, 232, 192, 0, 0, 32, 64, 58, 121, 31, 193, 255, 127, 255, 255, 255, 255, 255, 191, 252, 238, 149, 192, 255, 255, 255, 190, 182, 78, 23, 193, 243, 100, 255, 127, 255, 255, 255, 191, 252, 238, 149, 192, 255, 255, 255, 190, 182, 78, 23, 193, 255, 127, 0, 0, 255, 255, 255, 191, 252, 238, 149, 192, 0, 0, 32, 64, 182, 78, 23, 193, 243, 100, 255, 127, 255, 255, 255, 191, 252, 238, 149, 192, 0, 0, 32, 64, 182, 78, 23, 193, 255, 127, 255, 255, 255, 255, 255, 191, 22, 82, 13, 192, 255, 255, 255, 190, 72, 218, 9, 193, 129, 90, 255, 127, 255, 255, 255, 191, 22, 82, 13, 192, 255, 255, 255, 190, 72, 218, 9, 193, 255, 127, 0, 0, 255, 255, 255, 191, 22, 82, 13, 192, 0, 0, 32, 64, 72, 218, 9, 193, 129, 90, 255, 127, 255, 255, 255, 191, 22, 82, 13, 192, 0, 0, 32, 64, 72, 218, 9, 193, 255, 127, 255, 255, 255, 255, 255, 191, 128, 131, 13, 62, 255, 255, 255, 190, 192, 173, 238, 192, 37, 81, 255, 127, 255, 255, 255, 191, 128, 131, 13, 62, 255, 255, 255, 190, 192, 173, 238, 192, 255, 127, 0, 0, 255, 255, 255, 191, 128, 131, 13, 62, 0, 0, 32, 64, 192, 173, 238, 192, 37, 81, 255, 127, 255, 255, 255, 191, 128, 131, 13, 62, 0, 0, 32, 64, 192, 173, 238, 192, 255, 127, 255, 255, 255, 255, 255, 191, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 108, 72, 255, 127, 255, 255, 255, 191, 44, 15, 20, 64, 255, 255, 255, 190, 42, 43, 192, 192, 255, 127, 0, 0, 255, 255, 255, 191, 44, 15, 20, 64, 0, 0, 32, 64, 42, 43, 192, 192, 108, 72, 255, 127, 255, 255, 255, 191, 44, 15, 20, 64, 0, 0, 32, 64, 42, 43, 192, 192, 255, 127, 255, 255, 255, 255, 255, 191, 126, 248, 136, 64, 255, 255, 255, 190, 136, 248, 136, 192, 255, 63, 255, 127, 255, 255, 255, 191, 126, 248, 136, 64, 255, 255, 255, 190, 136, 248, 136, 192, 255, 127, 0, 0, 255, 255, 255, 191, 126, 248, 136, 64, 0, 0, 32, 64, 136, 248, 136, 192, 255, 63, 255, 127, 255, 255, 255, 191, 126, 248, 136, 64, 0, 0, 32, 64, 136, 248, 136, 192, 255, 127, 255, 255, 255, 255, 255, 191, 36, 43, 192, 64, 255, 255, 255, 190, 69, 15, 20, 192, 146, 55, 255, 127, 255, 255, 255, 191, 36, 43, 192, 64, 255, 255, 255, 190, 69, 15, 20, 192, 255, 127, 0, 0, 255, 255, 255, 191, 36, 43, 192, 64, 0, 0, 32, 64, 69, 15, 20, 192, 146, 55, 255, 127, 255, 255, 255, 191, 36, 43, 192, 64, 0, 0, 32, 64, 69, 15, 20, 192, 255, 127, 255, 255, 255, 255, 255, 191, 190, 173, 238, 64, 255, 255, 255, 190, 64, 133, 13, 190, 217, 46, 255, 127, 255, 255, 255, 191, 190, 173, 238, 64, 255, 255, 255, 190, 64, 133, 13, 190, 255, 127, 0, 0, 255, 255, 255, 191, 190, 173, 238, 64, 0, 0, 32, 64, 64, 133, 13, 190, 217, 46, 255, 127, 255, 255, 255, 191, 190, 173, 238, 64, 0, 0, 32, 64, 64, 133, 13, 190, 255, 127, 255, 255, 255, 255, 255, 191, 74, 218, 9, 65, 255, 255, 255, 190, 246, 81, 13, 64, 125, 37, 255, 127, 255, 255, 255, 191, 74, 218, 9, 65, 255, 255, 255, 190, 246, 81, 13, 64, 255, 127, 0, 0, 255, 255, 255, 191, 74, 218, 9, 65, 0, 0, 32, 64, 246, 81, 13, 64, 125, 37, 255, 127, 255, 255, 255, 191, 74, 218, 9, 65, 0, 0, 32, 64, 246, 81, 13, 64, 255, 127, 255, 255, 255, 255, 255, 191, 186, 78, 23, 65, 255, 255, 255, 190, 236, 238, 149, 64, 12, 27, 255, 127, 255, 255, 255, 191, 186, 78, 23, 65, 255, 255, 255, 190, 236, 238, 149, 64, 255, 127, 0, 0, 255, 255, 255, 191, 186, 78, 23, 65, 0, 0, 32, 64, 236, 238, 149, 64, 12, 27, 255, 127, 255, 255, 255, 191, 186, 78, 23, 65, 0, 0, 32, 64, 236, 238, 149, 64, 255, 127, 255, 255, 255, 255, 255, 191, 64, 121, 31, 65, 255, 255, 255, 190, 108, 10, 232, 64, 227, 14, 255, 127, 255, 255, 255, 191, 64, 121, 31, 65, 255, 255, 255, 190, 108, 10, 232, 64, 255, 127, 0, 0, 255, 255, 255, 191, 64, 121, 31, 65, 0, 0, 32, 64, 108, 10, 232, 64, 227, 14, 255, 127, 255, 255, 255, 191, 64, 121, 31, 65, 0, 0, 32, 64, 108, 10, 232, 64, 255, 127, 255, 255, 255, 255, 255, 191, 24, 54, 34, 65, 255, 255, 255, 190, 235, 201, 29, 65, 223, 7, 255, 127, 255, 255, 255, 191, 24, 54, 34, 65, 255, 255, 255, 190, 235, 201, 29, 65, 255, 127, 0, 0, 255, 255, 255, 191, 24, 54, 34, 65, 255, 255, 255, 190, 235, 201, 29, 65, 255, 127, 255, 127, 255, 255, 255, 191, 24, 54, 34, 65, 0, 0, 32, 64, 235, 201, 29, 65, 223, 7, 255, 127, 255, 255, 255, 191, 24, 54, 34, 65, 0, 0, 32, 64, 235, 201, 29, 65, 255, 127, 255, 127, 255, 255, 255, 191, 24, 54, 34, 65, 0, 0, 32, 64, 235, 201, 29, 65, 255, 127, 255, 255, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 14, 54, 50, 193, 0, 0, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 14, 54, 50, 193, 255, 127, 255, 255, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 14, 54, 50, 193, 255, 255, 31, 248, 255, 255, 255, 191, 243, 201, 29, 193, 254, 255, 255, 190, 14, 54, 50, 193, 0, 0, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 254, 255, 255, 190, 14, 54, 50, 193, 255, 127, 0, 0, 255, 255, 255, 191, 243, 201, 29, 193, 254, 255, 255, 190, 14, 54, 50, 193, 255, 255, 31, 248, 255, 255, 255, 191, 57, 221, 227, 192, 0, 0, 32, 64, 47, 86, 47, 193, 255, 127, 255, 255, 255, 255, 255, 191, 57, 221, 227, 192, 0, 0, 32, 64, 47, 86, 47, 193, 255, 255, 27, 241, 255, 255, 255, 191, 57, 221, 227, 192, 255, 255, 255, 190, 47, 86, 47, 193, 255, 127, 0, 0, 255, 255, 255, 191, 57, 221, 227, 192, 255, 255, 255, 190, 47, 86, 47, 193, 255, 255, 27, 241, 255, 255, 255, 191, 190, 166, 141, 192, 0, 0, 32, 64, 37, 195, 38, 193, 255, 127, 255, 255, 255, 255, 255, 191, 190, 166, 141, 192, 0, 0, 32, 64, 37, 195, 38, 193, 255, 255, 242, 228, 255, 255, 255, 191, 190, 166, 141, 192, 255, 255, 255, 190, 37, 195, 38, 193, 255, 127, 0, 0, 255, 255, 255, 191, 190, 166, 141, 192, 255, 255, 255, 190, 37, 195, 38, 193, 255, 255, 242, 228, 255, 255, 255, 191, 106, 168, 233, 191, 0, 0, 32, 64, 126, 162, 24, 193, 255, 127, 255, 255, 255, 255, 255, 191, 106, 168, 233, 191, 0, 0, 32, 64, 126, 162, 24, 193, 255, 255, 129, 218, 255, 255, 255, 191, 106, 168, 233, 191, 255, 255, 255, 190, 126, 162, 24, 193, 255, 127, 0, 0, 255, 255, 255, 191, 106, 168, 233, 191, 255, 255, 255, 190, 126, 162, 24, 193, 255, 255, 129, 218, 255, 255, 255, 191, 219, 96, 35, 63, 0, 0, 32, 64, 30, 50, 5, 193, 255, 127, 255, 255, 255, 255, 255, 191, 219, 96, 35, 63, 0, 0, 32, 64, 30, 50, 5, 193, 255, 255, 37, 209, 255, 255, 255, 191, 219, 96, 35, 63, 255, 255, 255, 190, 30, 50, 5, 193, 255, 127, 0, 0, 255, 255, 255, 191, 219, 96, 35, 63, 255, 255, 255, 190, 30, 50, 5, 193, 255, 255, 37, 209, 255, 255, 255, 191, 30, 5, 59, 64, 0, 0, 32, 64, 81, 142, 217, 192, 255, 127, 255, 255, 255, 255, 255, 191, 30, 5, 59, 64, 0, 0, 32, 64, 81, 142, 217, 192, 255, 255, 108, 200, 255, 255, 255, 191, 30, 5, 59, 64, 255, 255, 255, 190, 81, 142, 217, 192, 255, 127, 0, 0, 255, 255, 255, 191, 30, 5, 59, 64, 255, 255, 255, 190, 81, 142, 217, 192, 255, 255, 108, 200, 255, 255, 255, 191, 28, 153, 159, 64, 0, 0, 32, 64, 39, 153, 159, 192, 255, 127, 255, 255, 255, 255, 255, 191, 28, 153, 159, 64, 0, 0, 32, 64, 39, 153, 159, 192, 255, 255, 255, 191, 255, 255, 255, 191, 28, 153, 159, 64, 255, 255, 255, 190, 39, 153, 159, 192, 255, 127, 0, 0, 255, 255, 255, 191, 28, 153, 159, 64, 255, 255, 255, 190, 39, 153, 159, 192, 255, 255, 255, 191, 255, 255, 255, 191, 74, 142, 217, 64, 0, 0, 32, 64, 58, 5, 59, 192, 255, 127, 255, 255, 255, 255, 255, 191, 74, 142, 217, 64, 0, 0, 32, 64, 58, 5, 59, 192, 255, 255, 146, 183, 255, 255, 255, 191, 74, 142, 217, 64, 255, 255, 255, 190, 58, 5, 59, 192, 255, 127, 0, 0, 255, 255, 255, 191, 74, 142, 217, 64, 255, 255, 255, 190, 58, 5, 59, 192, 255, 255, 146, 183, 255, 255, 255, 191, 28, 50, 5, 65, 0, 0, 32, 64, 88, 97, 35, 191, 255, 127, 255, 255, 255, 255, 255, 191, 28, 50, 5, 65, 0, 0, 32, 64, 88, 97, 35, 191, 255, 255, 217, 174, 255, 255, 255, 191, 28, 50, 5, 65, 255, 255, 255, 190, 88, 97, 35, 191, 255, 127, 0, 0, 255, 255, 255, 191, 28, 50, 5, 65, 255, 255, 255, 190, 88, 97, 35, 191, 255, 255, 217, 174, 255, 255, 255, 191, 128, 162, 24, 65, 0, 0, 32, 64, 34, 168, 233, 63, 255, 127, 255, 255, 255, 255, 255, 191, 128, 162, 24, 65, 0, 0, 32, 64, 34, 168, 233, 63, 255, 255, 125, 165, 255, 255, 255, 191, 128, 162, 24, 65, 255, 255, 255, 190, 34, 168, 233, 63, 255, 127, 0, 0, 255, 255, 255, 191, 128, 162, 24, 65, 255, 255, 255, 190, 34, 168, 233, 63, 255, 255, 125, 165, 255, 255, 255, 191, 41, 195, 38, 65, 0, 0, 32, 64, 172, 166, 141, 64, 255, 127, 255, 255, 255, 255, 255, 191, 41, 195, 38, 65, 0, 0, 32, 64, 172, 166, 141, 64, 255, 255, 11, 155, 255, 255, 255, 191, 41, 195, 38, 65, 255, 255, 255, 190, 172, 166, 141, 64, 255, 127, 0, 0, 255, 255, 255, 191, 41, 195, 38, 65, 255, 255, 255, 190, 172, 166, 141, 64, 255, 255, 11, 155, 255, 255, 255, 191, 53, 86, 47, 65, 0, 0, 32, 64, 38, 221, 227, 64, 255, 127, 255, 255, 255, 255, 255, 191, 53, 86, 47, 65, 0, 0, 32, 64, 38, 221, 227, 64, 255, 255, 227, 142, 255, 255, 255, 191, 53, 86, 47, 65, 255, 255, 255, 190, 38, 221, 227, 64, 255, 127, 0, 0, 255, 255, 255, 191, 53, 86, 47, 65, 255, 255, 255, 190, 38, 221, 227, 64, 255, 255, 227, 142, 255, 255, 255, 191, 13, 54, 50, 65, 0, 0, 32, 64, 241, 201, 29, 65, 255, 127, 255, 127, 255, 255, 255, 191, 13, 54, 50, 65, 0, 0, 32, 64, 241, 201, 29, 65, 255, 127, 255, 255, 255, 255, 255, 191, 13, 54, 50, 65, 0, 0, 32, 64, 241, 201, 29, 65, 255, 255, 222, 135, 255, 255, 255, 191, 13, 54, 50, 65, 254, 255, 255, 190, 241, 201, 29, 65, 255, 127, 0, 0, 255, 255, 255, 191, 13, 54, 50, 65, 254, 255, 255, 190, 241, 201, 29, 65, 255, 127, 255, 127, 255, 255, 255, 191, 13, 54, 50, 65, 254, 255, 255, 190, 241, 201, 29, 65, 255, 255, 222, 135, 255, 255, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_ctsmp") diff --git a/assets/meshes/walls/tall_corner_diagonal_wall.tres b/assets/meshes/walls/tall_corner_diagonal_wall.tres new file mode 100644 index 0000000..584f6d2 --- /dev/null +++ b/assets/meshes/walls/tall_corner_diagonal_wall.tres @@ -0,0 +1,31 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://c4d2oixq5f5uq"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_550vy"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_hu103"] +_surfaces = [{ +"aabb": AABB(-5.70711, -0.5, -5, 10.7071, 5.5, 10.7071), +"format": 4097, +"index_count": 36, +"index_data": PackedByteArray(1, 0, 2, 0, 3, 0, 1, 0, 0, 0, 2, 0, 0, 0, 6, 0, 2, 0, 0, 0, 5, 0, 6, 0, 4, 0, 6, 0, 5, 0, 4, 0, 7, 0, 6, 0, 1, 0, 5, 0, 0, 0, 1, 0, 4, 0, 5, 0, 2, 0, 7, 0, 3, 0, 2, 0, 6, 0, 7, 0, 3, 0, 4, 0, 1, 0, 3, 0, 7, 0, 4, 0), +"primitive": 3, +"vertex_count": 8, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 158, 160, 182, 192, 0, 0, 32, 64, 98, 95, 137, 192, 158, 160, 182, 192, 0, 0, 0, 191, 98, 95, 137, 192, 98, 95, 137, 64, 0, 0, 0, 191, 158, 160, 182, 64, 98, 95, 137, 64, 0, 0, 160, 64, 158, 160, 182, 64) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "tall_corner_diagonal_wall_Cube_001" +_surfaces = [{ +"aabb": AABB(-5.70711, -0.5, -5, 10.7071, 5.5, 10.7071), +"attribute_data": PackedByteArray(0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62), +"format": 4119, +"index_count": 36, +"index_data": PackedByteArray(5, 0, 7, 0, 10, 0, 5, 0, 2, 0, 7, 0, 1, 0, 19, 0, 6, 0, 1, 0, 17, 0, 19, 0, 13, 0, 18, 0, 16, 0, 13, 0, 21, 0, 18, 0, 3, 0, 15, 0, 0, 0, 3, 0, 12, 0, 15, 0, 8, 0, 23, 0, 11, 0, 8, 0, 20, 0, 23, 0, 9, 0, 14, 0, 4, 0, 9, 0, 22, 0, 14, 0), +"material": ExtResource("1_550vy"), +"primitive": 3, +"vertex_count": 24, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 255, 191, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 191, 166, 183, 88, 200, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 255, 191, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 101, 102, 49, 243, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 255, 255, 255, 191, 69, 175, 185, 208, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 191, 235, 138, 18, 245, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 191, 255, 127, 255, 255, 255, 63, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 101, 102, 49, 243, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 255, 255, 255, 191, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 255, 191, 255, 127, 255, 255, 255, 63, 158, 160, 182, 192, 0, 0, 32, 64, 98, 95, 137, 192, 0, 0, 255, 191, 255, 255, 255, 191, 158, 160, 182, 192, 0, 0, 32, 64, 98, 95, 137, 192, 255, 63, 255, 127, 69, 175, 69, 47, 158, 160, 182, 192, 0, 0, 32, 64, 98, 95, 137, 192, 101, 102, 49, 243, 255, 255, 255, 191, 158, 160, 182, 192, 0, 0, 0, 191, 98, 95, 137, 192, 0, 0, 255, 191, 255, 255, 255, 191, 158, 160, 182, 192, 0, 0, 0, 191, 98, 95, 137, 192, 255, 63, 255, 127, 166, 183, 166, 55, 158, 160, 182, 192, 0, 0, 0, 191, 98, 95, 137, 192, 255, 127, 0, 0, 255, 255, 255, 191, 98, 95, 137, 64, 0, 0, 0, 191, 158, 160, 182, 64, 255, 63, 255, 127, 235, 138, 236, 10, 98, 95, 137, 64, 0, 0, 0, 191, 158, 160, 182, 64, 255, 127, 0, 0, 255, 255, 255, 191, 98, 95, 137, 64, 0, 0, 0, 191, 158, 160, 182, 64, 255, 191, 255, 127, 255, 255, 255, 63, 98, 95, 137, 64, 0, 0, 160, 64, 158, 160, 182, 64, 255, 63, 255, 127, 255, 127, 0, 0, 98, 95, 137, 64, 0, 0, 160, 64, 158, 160, 182, 64, 101, 102, 49, 243, 255, 255, 255, 191, 98, 95, 137, 64, 0, 0, 160, 64, 158, 160, 182, 64, 255, 191, 255, 127, 255, 255, 255, 63) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_hu103") diff --git a/assets/meshes/walls/tall_diagonal_wall.tres b/assets/meshes/walls/tall_diagonal_wall.tres new file mode 100644 index 0000000..0ec2a89 --- /dev/null +++ b/assets/meshes/walls/tall_diagonal_wall.tres @@ -0,0 +1,31 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://pe8b3dso12w3"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_rcumi"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_lku0s"] +_surfaces = [{ +"aabb": AABB(-5, -0.5, 5, 10, 5.5, 1), +"format": 4097, +"index_count": 36, +"index_data": PackedByteArray(1, 0, 7, 0, 0, 0, 1, 0, 6, 0, 7, 0, 4, 0, 2, 0, 5, 0, 4, 0, 3, 0, 2, 0, 5, 0, 6, 0, 1, 0, 5, 0, 2, 0, 6, 0, 4, 0, 1, 0, 0, 0, 4, 0, 5, 0, 1, 0, 3, 0, 6, 0, 2, 0, 3, 0, 7, 0, 6, 0, 0, 0, 3, 0, 4, 0, 0, 0, 7, 0, 3, 0), +"primitive": 3, +"vertex_count": 8, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 64, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 64) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "tall_diagonal_wall_Cube_001" +_surfaces = [{ +"aabb": AABB(-5, -0.5, 5, 10, 5.5, 1), +"attribute_data": PackedByteArray(0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 32, 63, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0, 0, 0, 192, 62, 0, 0, 0, 0), +"format": 4119, +"index_count": 36, +"index_data": PackedByteArray(3, 0, 21, 0, 0, 0, 3, 0, 18, 0, 21, 0, 14, 0, 8, 0, 17, 0, 14, 0, 11, 0, 8, 0, 15, 0, 19, 0, 4, 0, 15, 0, 6, 0, 19, 0, 13, 0, 5, 0, 2, 0, 13, 0, 16, 0, 5, 0, 10, 0, 20, 0, 7, 0, 10, 0, 23, 0, 20, 0, 1, 0, 9, 0, 12, 0, 1, 0, 22, 0, 9, 0), +"material": ExtResource("1_rcumi"), +"primitive": 3, +"vertex_count": 24, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 64, 102, 102, 102, 230, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 64, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 192, 64, 102, 102, 102, 230, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 192, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 192, 64, 255, 255, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 192, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 192, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 192, 64, 255, 255, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 127, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 102, 102, 102, 230, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 255, 255, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 64, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 64, 102, 102, 102, 230, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 64, 255, 127, 255, 127, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 64, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 64, 255, 127, 255, 127, 255, 127, 255, 255) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_lku0s") diff --git a/assets/meshes/walls/tall_wall.tres b/assets/meshes/walls/tall_wall.tres new file mode 100644 index 0000000..86073bf --- /dev/null +++ b/assets/meshes/walls/tall_wall.tres @@ -0,0 +1,31 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://dfs62b7cohday"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_6ybn6"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_nhmc7"] +_surfaces = [{ +"aabb": AABB(5, -0.5, -5, 1.00001, 5.50001, 10), +"format": 4097, +"index_count": 36, +"index_data": PackedByteArray(7, 0, 2, 0, 5, 0, 7, 0, 0, 0, 2, 0, 5, 0, 3, 0, 4, 0, 5, 0, 2, 0, 3, 0, 6, 0, 5, 0, 4, 0, 6, 0, 7, 0, 5, 0, 4, 0, 1, 0, 6, 0, 4, 0, 3, 0, 1, 0, 1, 0, 2, 0, 0, 0, 1, 0, 3, 0, 2, 0, 6, 0, 0, 0, 7, 0, 6, 0, 1, 0, 0, 0), +"primitive": 3, +"vertex_count": 8, +"vertex_data": PackedByteArray(0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 192) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "tall_wall_Cube_001" +_surfaces = [{ +"aabb": AABB(5, -0.5, -5, 1.00001, 5.50001, 10), +"attribute_data": PackedByteArray(0, 0, 12, 63, 0, 0, 0, 63, 0, 0, 12, 63, 0, 0, 0, 63, 0, 0, 12, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 12, 63, 0, 0, 128, 62, 0, 0, 12, 63, 0, 0, 128, 62, 0, 0, 12, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 12, 63, 0, 0, 128, 62, 0, 0, 12, 63, 0, 0, 128, 62, 0, 0, 12, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 12, 63, 0, 0, 0, 63, 0, 0, 12, 63, 0, 0, 0, 63, 0, 0, 12, 63, 0, 0, 0, 63), +"format": 4119, +"index_count": 36, +"index_data": PackedByteArray(23, 0, 7, 0, 17, 0, 23, 0, 1, 0, 7, 0, 16, 0, 10, 0, 14, 0, 16, 0, 6, 0, 10, 0, 18, 0, 15, 0, 12, 0, 18, 0, 21, 0, 15, 0, 13, 0, 3, 0, 19, 0, 13, 0, 9, 0, 3, 0, 5, 0, 8, 0, 2, 0, 5, 0, 11, 0, 8, 0, 20, 0, 0, 0, 22, 0, 20, 0, 4, 0, 0, 0), +"material": ExtResource("1_6ybn6"), +"primitive": 3, +"vertex_count": 24, +"vertex_data": PackedByteArray(0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 160, 192, 255, 255, 255, 255, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 160, 192, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 160, 64, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 255, 127, 255, 127, 255, 255, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 192, 0, 0, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 192, 255, 255, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 160, 192, 255, 127, 255, 255, 255, 255, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_nhmc7") diff --git a/assets/meshes/walls/turn_wall.tres b/assets/meshes/walls/turn_wall.tres new file mode 100644 index 0000000..2d5ab6c --- /dev/null +++ b/assets/meshes/walls/turn_wall.tres @@ -0,0 +1,35 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://d27ytirksdd4d"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_x5dc7"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_i708r"] +_surfaces = [{ +"aabb": AABB(-5, -0.5, -6, 11, 3, 11), +"format": 4097, +"index_count": 348, +"index_data": PackedByteArray(10, 0, 39, 0, 9, 0, 10, 0, 40, 0, 39, 0, 16, 0, 17, 0, 5, 0, 16, 0, 19, 0, 17, 0, 0, 0, 31, 0, 1, 0, 0, 0, 30, 0, 31, 0, 26, 0, 55, 0, 25, 0, 26, 0, 56, 0, 55, 0, 6, 0, 34, 0, 4, 0, 6, 0, 36, 0, 34, 0, 15, 0, 44, 0, 14, 0, 15, 0, 45, 0, 44, 0, 18, 0, 59, 0, 29, 0, 18, 0, 48, 0, 59, 0, 21, 0, 50, 0, 20, 0, 21, 0, 51, 0, 50, 0, 11, 0, 40, 0, 10, 0, 11, 0, 41, 0, 40, 0, 25, 0, 54, 0, 24, 0, 25, 0, 55, 0, 54, 0, 7, 0, 36, 0, 6, 0, 7, 0, 37, 0, 36, 0, 16, 0, 45, 0, 15, 0, 16, 0, 46, 0, 45, 0, 29, 0, 58, 0, 28, 0, 29, 0, 59, 0, 58, 0, 20, 0, 49, 0, 19, 0, 20, 0, 50, 0, 49, 0, 12, 0, 41, 0, 11, 0, 12, 0, 42, 0, 41, 0, 35, 0, 33, 0, 47, 0, 35, 0, 32, 0, 33, 0, 30, 0, 48, 0, 31, 0, 30, 0, 34, 0, 48, 0, 47, 0, 46, 0, 35, 0, 47, 0, 49, 0, 46, 0, 49, 0, 45, 0, 46, 0, 49, 0, 50, 0, 45, 0, 50, 0, 44, 0, 45, 0, 50, 0, 51, 0, 44, 0, 51, 0, 43, 0, 44, 0, 51, 0, 52, 0, 43, 0, 52, 0, 42, 0, 43, 0, 52, 0, 53, 0, 42, 0, 53, 0, 41, 0, 42, 0, 53, 0, 54, 0, 41, 0, 54, 0, 40, 0, 41, 0, 54, 0, 55, 0, 40, 0, 55, 0, 39, 0, 40, 0, 55, 0, 56, 0, 39, 0, 56, 0, 38, 0, 39, 0, 56, 0, 57, 0, 38, 0, 57, 0, 37, 0, 38, 0, 57, 0, 58, 0, 37, 0, 58, 0, 36, 0, 37, 0, 58, 0, 59, 0, 36, 0, 59, 0, 34, 0, 36, 0, 59, 0, 48, 0, 34, 0, 22, 0, 51, 0, 21, 0, 22, 0, 52, 0, 51, 0, 4, 0, 30, 0, 0, 0, 4, 0, 34, 0, 30, 0, 3, 0, 32, 0, 2, 0, 3, 0, 33, 0, 32, 0, 14, 0, 43, 0, 13, 0, 14, 0, 44, 0, 43, 0, 2, 0, 35, 0, 5, 0, 2, 0, 32, 0, 35, 0, 27, 0, 56, 0, 26, 0, 27, 0, 57, 0, 56, 0, 1, 0, 48, 0, 18, 0, 1, 0, 31, 0, 48, 0, 9, 0, 38, 0, 8, 0, 9, 0, 39, 0, 38, 0, 23, 0, 52, 0, 22, 0, 23, 0, 53, 0, 52, 0, 17, 0, 33, 0, 3, 0, 17, 0, 47, 0, 33, 0, 19, 0, 47, 0, 17, 0, 19, 0, 49, 0, 47, 0, 13, 0, 42, 0, 12, 0, 13, 0, 43, 0, 42, 0, 28, 0, 57, 0, 27, 0, 28, 0, 58, 0, 57, 0, 5, 0, 46, 0, 16, 0, 5, 0, 35, 0, 46, 0, 8, 0, 37, 0, 7, 0, 8, 0, 38, 0, 37, 0, 24, 0, 53, 0, 23, 0, 24, 0, 54, 0, 53, 0, 6, 0, 28, 0, 7, 0, 6, 0, 29, 0, 28, 0, 7, 0, 27, 0, 8, 0, 7, 0, 28, 0, 27, 0, 8, 0, 26, 0, 9, 0, 8, 0, 27, 0, 26, 0, 9, 0, 25, 0, 10, 0, 9, 0, 26, 0, 25, 0, 10, 0, 24, 0, 11, 0, 10, 0, 25, 0, 24, 0, 11, 0, 23, 0, 12, 0, 11, 0, 24, 0, 23, 0, 12, 0, 22, 0, 13, 0, 12, 0, 23, 0, 22, 0, 13, 0, 21, 0, 14, 0, 13, 0, 22, 0, 21, 0, 14, 0, 20, 0, 15, 0, 14, 0, 21, 0, 20, 0, 15, 0, 19, 0, 16, 0, 15, 0, 20, 0, 19, 0, 17, 0, 2, 0, 5, 0, 17, 0, 3, 0, 2, 0, 4, 0, 29, 0, 6, 0, 4, 0, 18, 0, 29, 0, 0, 0, 18, 0, 4, 0, 0, 0, 1, 0, 18, 0), +"lods": [0.481844, PackedByteArray(14, 0, 19, 0, 5, 0, 19, 0, 2, 0, 5, 0, 19, 0, 3, 0, 2, 0, 14, 0, 23, 0, 19, 0, 12, 0, 23, 0, 14, 0, 11, 0, 23, 0, 12, 0, 11, 0, 24, 0, 23, 0, 11, 0, 25, 0, 24, 0, 7, 0, 25, 0, 11, 0, 7, 0, 28, 0, 25, 0, 0, 0, 28, 0, 7, 0, 0, 0, 1, 0, 28, 0, 0, 0, 31, 0, 1, 0, 0, 0, 30, 0, 31, 0, 11, 0, 42, 0, 40, 0, 11, 0, 40, 0, 38, 0, 12, 0, 42, 0, 11, 0, 11, 0, 38, 0, 7, 0, 12, 0, 43, 0, 42, 0, 7, 0, 38, 0, 36, 0, 7, 0, 36, 0, 30, 0, 7, 0, 30, 0, 0, 0, 14, 0, 43, 0, 12, 0, 14, 0, 35, 0, 43, 0, 5, 0, 35, 0, 14, 0, 2, 0, 35, 0, 5, 0, 2, 0, 32, 0, 35, 0, 25, 0, 54, 0, 24, 0, 24, 0, 54, 0, 53, 0, 25, 0, 56, 0, 54, 0, 24, 0, 53, 0, 23, 0, 25, 0, 48, 0, 56, 0, 23, 0, 53, 0, 50, 0, 28, 0, 48, 0, 25, 0, 1, 0, 48, 0, 28, 0, 1, 0, 31, 0, 48, 0, 23, 0, 50, 0, 47, 0, 23, 0, 47, 0, 19, 0, 19, 0, 47, 0, 33, 0, 19, 0, 33, 0, 3, 0, 35, 0, 33, 0, 47, 0, 35, 0, 32, 0, 33, 0, 47, 0, 50, 0, 35, 0, 50, 0, 43, 0, 35, 0, 50, 0, 53, 0, 43, 0, 53, 0, 42, 0, 43, 0, 53, 0, 54, 0, 42, 0, 54, 0, 40, 0, 42, 0, 54, 0, 56, 0, 40, 0, 56, 0, 38, 0, 40, 0, 56, 0, 48, 0, 38, 0, 48, 0, 36, 0, 38, 0, 30, 0, 36, 0, 48, 0, 30, 0, 48, 0, 31, 0, 3, 0, 32, 0, 2, 0, 3, 0, 33, 0, 32, 0), 1.34331, PackedByteArray(0, 0, 31, 0, 1, 0, 0, 0, 30, 0, 31, 0, 25, 0, 53, 0, 24, 0, 24, 0, 53, 0, 23, 0, 23, 0, 53, 0, 33, 0, 23, 0, 33, 0, 3, 0, 25, 0, 48, 0, 53, 0, 1, 0, 48, 0, 25, 0, 1, 0, 31, 0, 48, 0, 35, 0, 33, 0, 53, 0, 35, 0, 32, 0, 33, 0, 53, 0, 40, 0, 35, 0, 53, 0, 48, 0, 40, 0, 30, 0, 40, 0, 48, 0, 30, 0, 48, 0, 31, 0, 12, 0, 30, 0, 0, 0, 12, 0, 40, 0, 30, 0, 12, 0, 35, 0, 40, 0, 2, 0, 35, 0, 12, 0, 2, 0, 32, 0, 35, 0, 3, 0, 32, 0, 2, 0, 3, 0, 33, 0, 32, 0, 12, 0, 25, 0, 24, 0, 12, 0, 24, 0, 23, 0, 0, 0, 25, 0, 12, 0, 0, 0, 1, 0, 25, 0, 23, 0, 2, 0, 12, 0, 23, 0, 3, 0, 2, 0)], +"name": "Material.002", +"primitive": 3, +"vertex_count": 60, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 128, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 128, 64, 34, 209, 52, 192, 0, 0, 0, 191, 64, 137, 157, 192, 40, 215, 213, 191, 0, 0, 0, 191, 200, 47, 150, 192, 32, 76, 14, 191, 0, 0, 0, 191, 202, 19, 138, 192, 0, 0, 0, 63, 0, 0, 0, 191, 164, 212, 114, 192, 12, 75, 189, 63, 0, 0, 0, 191, 180, 248, 72, 192, 34, 75, 23, 64, 0, 0, 0, 191, 34, 75, 23, 192, 180, 248, 72, 64, 0, 0, 0, 191, 12, 75, 189, 191, 164, 212, 114, 64, 0, 0, 0, 191, 0, 0, 0, 191, 202, 19, 138, 64, 0, 0, 0, 191, 32, 76, 14, 63, 200, 47, 150, 64, 0, 0, 0, 191, 40, 215, 213, 63, 64, 137, 157, 64, 0, 0, 0, 191, 34, 209, 52, 64, 0, 0, 160, 64, 154, 153, 25, 64, 0, 0, 128, 64, 0, 0, 128, 192, 154, 153, 25, 64, 0, 0, 160, 192, 64, 137, 157, 64, 51, 51, 19, 64, 34, 209, 52, 64, 200, 47, 150, 64, 205, 204, 12, 64, 40, 215, 213, 63, 202, 19, 138, 64, 102, 102, 6, 64, 32, 76, 14, 63, 164, 212, 114, 64, 0, 0, 0, 64, 0, 0, 0, 191, 180, 248, 72, 64, 51, 51, 243, 63, 12, 75, 189, 191, 34, 75, 23, 64, 51, 51, 243, 63, 34, 75, 23, 192, 12, 75, 189, 63, 51, 51, 243, 63, 180, 248, 72, 192, 0, 0, 0, 63, 0, 0, 0, 64, 164, 212, 114, 192, 32, 76, 14, 191, 102, 102, 6, 64, 202, 19, 138, 192, 40, 215, 213, 191, 205, 204, 12, 64, 200, 47, 150, 192, 34, 209, 52, 192, 51, 51, 19, 64, 64, 137, 157, 192, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 192, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 192, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 64, 239, 231, 125, 192, 0, 0, 0, 191, 157, 251, 191, 192, 157, 251, 191, 64, 0, 0, 0, 191, 239, 231, 125, 64, 152, 118, 44, 192, 0, 0, 0, 191, 43, 67, 189, 192, 43, 182, 180, 191, 0, 0, 0, 191, 165, 24, 181, 192, 78, 82, 49, 190, 0, 0, 0, 191, 54, 164, 167, 192, 1, 0, 128, 63, 0, 0, 0, 191, 205, 32, 149, 192, 121, 155, 5, 64, 0, 0, 0, 191, 1, 191, 123, 192, 95, 140, 68, 64, 0, 0, 0, 191, 95, 140, 68, 192, 1, 191, 123, 64, 0, 0, 0, 191, 121, 155, 5, 192, 205, 32, 149, 64, 0, 0, 0, 191, 1, 0, 128, 191, 54, 164, 167, 64, 0, 0, 0, 191, 78, 82, 49, 62, 165, 24, 181, 64, 0, 0, 0, 191, 43, 182, 180, 63, 43, 67, 189, 64, 0, 0, 0, 191, 152, 118, 44, 64, 157, 251, 191, 64, 0, 0, 32, 64, 239, 231, 125, 64, 239, 231, 125, 192, 0, 0, 32, 64, 157, 251, 191, 192, 43, 67, 189, 64, 0, 0, 32, 64, 152, 118, 44, 64, 165, 24, 181, 64, 0, 0, 32, 64, 43, 182, 180, 63, 54, 164, 167, 64, 0, 0, 32, 64, 78, 82, 49, 62, 205, 32, 149, 64, 0, 0, 32, 64, 1, 0, 128, 191, 1, 191, 123, 64, 0, 0, 32, 64, 121, 155, 5, 192, 95, 140, 68, 64, 0, 0, 32, 64, 95, 140, 68, 192, 121, 155, 5, 64, 0, 0, 32, 64, 1, 191, 123, 192, 1, 0, 128, 63, 0, 0, 32, 64, 205, 32, 149, 192, 78, 82, 49, 190, 0, 0, 32, 64, 54, 164, 167, 192, 43, 182, 180, 191, 0, 0, 32, 64, 165, 24, 181, 192, 152, 118, 44, 192, 0, 0, 32, 64, 43, 67, 189, 192) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "turn_wall_Cube001" +_surfaces = [{ +"aabb": AABB(-5, -0.5, -6, 11, 3, 11), +"attribute_data": PackedByteArray(0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 154, 153, 25, 62, 0, 0, 0, 63, 154, 153, 25, 62, 0, 0, 0, 63, 0, 0, 192, 62, 206, 204, 140, 62, 0, 0, 192, 62, 206, 204, 140, 62, 89, 172, 55, 62, 180, 3, 255, 62, 89, 172, 55, 62, 180, 3, 255, 62, 94, 59, 85, 62, 28, 19, 252, 62, 94, 59, 85, 62, 28, 19, 252, 62, 50, 197, 113, 62, 28, 59, 247, 62, 50, 197, 113, 62, 28, 59, 247, 62, 103, 102, 134, 62, 236, 144, 240, 62, 103, 102, 134, 62, 236, 144, 240, 62, 232, 237, 146, 62, 188, 49, 232, 62, 232, 237, 146, 62, 188, 49, 232, 62, 57, 66, 158, 62, 60, 66, 222, 62, 57, 66, 158, 62, 60, 66, 222, 62, 188, 49, 168, 62, 232, 237, 210, 62, 188, 49, 168, 62, 232, 237, 210, 62, 238, 144, 176, 62, 102, 102, 198, 62, 238, 144, 176, 62, 102, 102, 198, 62, 30, 59, 183, 62, 152, 226, 184, 62, 30, 59, 183, 62, 152, 226, 184, 62, 28, 19, 188, 62, 176, 157, 170, 62, 28, 19, 188, 62, 176, 157, 170, 62, 179, 3, 191, 62, 46, 214, 155, 62, 179, 3, 191, 62, 46, 214, 155, 62, 0, 0, 32, 63, 206, 204, 140, 62, 0, 0, 32, 63, 206, 204, 140, 62, 153, 153, 89, 63, 0, 0, 0, 63, 153, 153, 89, 63, 0, 0, 0, 63, 38, 126, 32, 63, 46, 214, 155, 62, 38, 126, 32, 63, 46, 214, 155, 62, 114, 246, 33, 63, 176, 157, 170, 62, 114, 246, 33, 63, 176, 157, 170, 62, 112, 98, 36, 63, 152, 226, 184, 62, 112, 98, 36, 63, 152, 226, 184, 62, 138, 183, 39, 63, 102, 102, 198, 62, 138, 183, 39, 63, 102, 102, 198, 62, 33, 231, 43, 63, 232, 237, 210, 62, 33, 231, 43, 63, 232, 237, 210, 62, 228, 222, 48, 63, 58, 66, 222, 62, 228, 222, 48, 63, 58, 66, 222, 62, 11, 137, 54, 63, 190, 49, 232, 62, 11, 137, 54, 63, 190, 49, 232, 62, 204, 204, 60, 63, 240, 144, 240, 62, 204, 204, 60, 63, 240, 144, 240, 62, 180, 142, 67, 63, 30, 59, 247, 62, 180, 142, 67, 63, 30, 59, 247, 62, 40, 177, 74, 63, 28, 19, 252, 62, 40, 177, 74, 63, 28, 19, 252, 62, 233, 20, 82, 63, 180, 3, 255, 62, 233, 20, 82, 63, 180, 3, 255, 62, 0, 0, 0, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 192, 62, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 32, 63, 0, 0, 64, 63, 0, 0, 96, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 154, 153, 25, 62, 0, 0, 0, 63, 0, 0, 192, 62, 154, 153, 57, 63, 255, 255, 191, 62, 206, 204, 140, 62, 0, 0, 192, 62, 206, 204, 140, 62, 89, 172, 55, 62, 180, 3, 255, 62, 0, 0, 192, 62, 234, 20, 50, 63, 94, 59, 85, 62, 28, 19, 252, 62, 0, 0, 192, 62, 40, 177, 42, 63, 50, 197, 113, 62, 28, 59, 247, 62, 0, 0, 192, 62, 180, 142, 35, 63, 103, 102, 134, 62, 236, 144, 240, 62, 0, 0, 192, 62, 205, 204, 28, 63, 232, 237, 146, 62, 188, 49, 232, 62, 0, 0, 192, 62, 12, 137, 22, 63, 57, 66, 158, 62, 60, 66, 222, 62, 0, 0, 192, 62, 0, 0, 0, 63, 188, 49, 168, 62, 232, 237, 210, 62, 0, 0, 192, 62, 232, 237, 210, 62, 238, 144, 176, 62, 102, 102, 198, 62, 0, 0, 192, 62, 104, 102, 198, 62, 30, 59, 183, 62, 152, 226, 184, 62, 0, 0, 192, 62, 152, 226, 184, 62, 28, 19, 188, 62, 176, 157, 170, 62, 1, 0, 192, 62, 174, 157, 170, 62, 179, 3, 191, 62, 46, 214, 155, 62, 0, 0, 192, 62, 44, 214, 155, 62, 0, 0, 32, 63, 206, 204, 140, 62, 0, 0, 32, 63, 206, 204, 140, 62, 0, 0, 32, 63, 154, 153, 57, 63, 153, 153, 89, 63, 0, 0, 0, 63, 0, 0, 32, 63, 44, 214, 155, 62, 38, 126, 32, 63, 46, 214, 155, 62, 0, 0, 32, 63, 176, 157, 170, 62, 114, 246, 33, 63, 176, 157, 170, 62, 0, 0, 32, 63, 152, 226, 184, 62, 112, 98, 36, 63, 152, 226, 184, 62, 0, 0, 32, 63, 104, 102, 198, 62, 138, 183, 39, 63, 102, 102, 198, 62, 0, 0, 32, 63, 232, 237, 210, 62, 33, 231, 43, 63, 232, 237, 210, 62, 0, 0, 32, 63, 0, 0, 0, 63, 228, 222, 48, 63, 58, 66, 222, 62, 0, 0, 32, 63, 12, 137, 22, 63, 11, 137, 54, 63, 190, 49, 232, 62, 0, 0, 32, 63, 205, 204, 28, 63, 204, 204, 60, 63, 240, 144, 240, 62, 0, 0, 32, 63, 180, 142, 35, 63, 180, 142, 67, 63, 30, 59, 247, 62, 0, 0, 32, 63, 40, 177, 42, 63, 40, 177, 74, 63, 28, 19, 252, 62, 0, 0, 32, 63, 234, 20, 50, 63, 233, 20, 82, 63, 180, 3, 255, 62, 228, 222, 48, 63, 58, 66, 222, 62, 228, 222, 48, 63, 58, 66, 222, 62), +"format": 4119, +"index_count": 348, +"index_data": PackedByteArray(25, 0, 86, 0, 23, 0, 25, 0, 88, 0, 86, 0, 36, 0, 38, 0, 14, 0, 36, 0, 42, 0, 38, 0, 2, 0, 67, 0, 3, 0, 2, 0, 65, 0, 67, 0, 57, 0, 119, 0, 55, 0, 57, 0, 121, 0, 119, 0, 17, 0, 76, 0, 13, 0, 17, 0, 80, 0, 76, 0, 35, 0, 96, 0, 33, 0, 35, 0, 98, 0, 96, 0, 41, 0, 127, 0, 63, 0, 41, 0, 105, 0, 127, 0, 47, 0, 109, 0, 45, 0, 47, 0, 111, 0, 109, 0, 27, 0, 88, 0, 25, 0, 27, 0, 90, 0, 88, 0, 55, 0, 117, 0, 53, 0, 55, 0, 119, 0, 117, 0, 19, 0, 80, 0, 17, 0, 19, 0, 82, 0, 80, 0, 37, 0, 98, 0, 35, 0, 37, 0, 100, 0, 98, 0, 63, 0, 125, 0, 61, 0, 63, 0, 127, 0, 125, 0, 45, 0, 107, 0, 43, 0, 45, 0, 109, 0, 107, 0, 29, 0, 90, 0, 27, 0, 29, 0, 92, 0, 90, 0, 78, 0, 75, 0, 103, 0, 78, 0, 72, 0, 75, 0, 66, 0, 104, 0, 68, 0, 66, 0, 77, 0, 104, 0, 103, 0, 101, 0, 78, 0, 103, 0, 106, 0, 101, 0, 106, 0, 99, 0, 101, 0, 106, 0, 108, 0, 99, 0, 108, 0, 97, 0, 99, 0, 108, 0, 110, 0, 97, 0, 110, 0, 95, 0, 97, 0, 110, 0, 112, 0, 95, 0, 112, 0, 93, 0, 95, 0, 112, 0, 114, 0, 93, 0, 114, 0, 91, 0, 93, 0, 114, 0, 116, 0, 91, 0, 116, 0, 89, 0, 91, 0, 116, 0, 118, 0, 89, 0, 118, 0, 87, 0, 89, 0, 118, 0, 120, 0, 87, 0, 120, 0, 85, 0, 87, 0, 120, 0, 122, 0, 85, 0, 122, 0, 83, 0, 85, 0, 122, 0, 124, 0, 83, 0, 124, 0, 81, 0, 83, 0, 124, 0, 126, 0, 81, 0, 126, 0, 77, 0, 81, 0, 126, 0, 104, 0, 77, 0, 49, 0, 111, 0, 47, 0, 49, 0, 113, 0, 111, 0, 13, 0, 64, 0, 0, 0, 13, 0, 76, 0, 64, 0, 11, 0, 71, 0, 8, 0, 11, 0, 74, 0, 71, 0, 33, 0, 94, 0, 31, 0, 33, 0, 96, 0, 94, 0, 7, 0, 79, 0, 15, 0, 7, 0, 70, 0, 79, 0, 59, 0, 121, 0, 57, 0, 59, 0, 123, 0, 121, 0, 5, 0, 105, 0, 41, 0, 5, 0, 69, 0, 105, 0, 23, 0, 84, 0, 21, 0, 23, 0, 86, 0, 84, 0, 51, 0, 113, 0, 49, 0, 51, 0, 115, 0, 113, 0, 39, 0, 73, 0, 10, 0, 39, 0, 102, 0, 73, 0, 43, 0, 102, 0, 39, 0, 43, 0, 107, 0, 102, 0, 31, 0, 92, 0, 29, 0, 31, 0, 94, 0, 92, 0, 61, 0, 123, 0, 59, 0, 61, 0, 125, 0, 123, 0, 15, 0, 100, 0, 37, 0, 15, 0, 79, 0, 100, 0, 21, 0, 82, 0, 19, 0, 21, 0, 84, 0, 82, 0, 53, 0, 115, 0, 51, 0, 53, 0, 117, 0, 115, 0, 16, 0, 60, 0, 18, 0, 16, 0, 62, 0, 60, 0, 18, 0, 58, 0, 20, 0, 18, 0, 60, 0, 58, 0, 20, 0, 56, 0, 22, 0, 20, 0, 58, 0, 56, 0, 22, 0, 54, 0, 24, 0, 22, 0, 56, 0, 54, 0, 24, 0, 52, 0, 26, 0, 24, 0, 54, 0, 52, 0, 26, 0, 50, 0, 28, 0, 26, 0, 52, 0, 50, 0, 28, 0, 48, 0, 30, 0, 28, 0, 50, 0, 48, 0, 30, 0, 46, 0, 32, 0, 30, 0, 48, 0, 46, 0, 32, 0, 44, 0, 34, 0, 32, 0, 46, 0, 44, 0, 34, 0, 42, 0, 36, 0, 34, 0, 44, 0, 42, 0, 38, 0, 6, 0, 14, 0, 38, 0, 9, 0, 6, 0, 12, 0, 62, 0, 16, 0, 12, 0, 40, 0, 62, 0, 1, 0, 40, 0, 12, 0, 1, 0, 4, 0, 40, 0), +"lods": [0.481844, PackedByteArray(32, 0, 42, 0, 14, 0, 42, 0, 6, 0, 14, 0, 42, 0, 9, 0, 6, 0, 32, 0, 50, 0, 42, 0, 28, 0, 50, 0, 32, 0, 26, 0, 50, 0, 28, 0, 26, 0, 52, 0, 50, 0, 26, 0, 54, 0, 52, 0, 18, 0, 54, 0, 26, 0, 18, 0, 60, 0, 54, 0, 1, 0, 60, 0, 18, 0, 1, 0, 4, 0, 60, 0, 2, 0, 67, 0, 3, 0, 2, 0, 65, 0, 67, 0, 27, 0, 92, 0, 88, 0, 27, 0, 88, 0, 84, 0, 29, 0, 92, 0, 27, 0, 27, 0, 84, 0, 19, 0, 29, 0, 94, 0, 92, 0, 19, 0, 84, 0, 80, 0, 19, 0, 80, 0, 64, 0, 19, 0, 64, 0, 0, 0, 33, 0, 94, 0, 29, 0, 33, 0, 79, 0, 94, 0, 15, 0, 79, 0, 33, 0, 7, 0, 79, 0, 15, 0, 7, 0, 70, 0, 79, 0, 55, 0, 117, 0, 129, 0, 129, 0, 117, 0, 115, 0, 55, 0, 121, 0, 117, 0, 129, 0, 115, 0, 51, 0, 55, 0, 105, 0, 121, 0, 51, 0, 115, 0, 109, 0, 61, 0, 105, 0, 55, 0, 5, 0, 105, 0, 61, 0, 5, 0, 69, 0, 105, 0, 51, 0, 109, 0, 102, 0, 51, 0, 102, 0, 43, 0, 43, 0, 102, 0, 73, 0, 43, 0, 73, 0, 10, 0, 78, 0, 75, 0, 103, 0, 78, 0, 72, 0, 75, 0, 103, 0, 108, 0, 78, 0, 108, 0, 95, 0, 78, 0, 108, 0, 114, 0, 95, 0, 114, 0, 93, 0, 95, 0, 114, 0, 116, 0, 93, 0, 116, 0, 89, 0, 93, 0, 116, 0, 120, 0, 89, 0, 120, 0, 85, 0, 89, 0, 120, 0, 104, 0, 85, 0, 104, 0, 81, 0, 85, 0, 66, 0, 81, 0, 104, 0, 66, 0, 104, 0, 68, 0, 11, 0, 71, 0, 8, 0, 11, 0, 74, 0, 71, 0), 1.34331, PackedByteArray(2, 0, 67, 0, 3, 0, 2, 0, 65, 0, 67, 0, 55, 0, 115, 0, 128, 0, 128, 0, 115, 0, 51, 0, 51, 0, 115, 0, 73, 0, 51, 0, 73, 0, 10, 0, 55, 0, 105, 0, 115, 0, 5, 0, 105, 0, 55, 0, 5, 0, 69, 0, 105, 0, 78, 0, 75, 0, 114, 0, 78, 0, 72, 0, 75, 0, 114, 0, 89, 0, 78, 0, 114, 0, 104, 0, 89, 0, 66, 0, 89, 0, 104, 0, 66, 0, 104, 0, 68, 0, 29, 0, 64, 0, 0, 0, 29, 0, 88, 0, 64, 0, 29, 0, 79, 0, 88, 0, 7, 0, 79, 0, 29, 0, 7, 0, 70, 0, 79, 0, 11, 0, 71, 0, 8, 0, 11, 0, 74, 0, 71, 0, 28, 0, 54, 0, 52, 0, 28, 0, 52, 0, 50, 0, 1, 0, 54, 0, 28, 0, 1, 0, 4, 0, 54, 0, 50, 0, 6, 0, 28, 0, 50, 0, 9, 0, 6, 0)], +"material": ExtResource("1_x5dc7"), +"name": "Material.002", +"primitive": 3, +"vertex_count": 130, +"vertex_data": PackedByteArray(0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 255, 127, 209, 160, 104, 16, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 255, 127, 255, 127, 209, 160, 104, 16, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 160, 192, 185, 133, 90, 244, 255, 255, 255, 63, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 91, 116, 21, 250, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 128, 192, 0, 0, 0, 191, 0, 0, 160, 192, 241, 123, 255, 127, 255, 127, 0, 0, 0, 0, 128, 192, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 128, 64, 14, 4, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 128, 64, 255, 127, 0, 0, 255, 255, 255, 191, 34, 209, 52, 192, 0, 0, 0, 191, 64, 137, 157, 192, 27, 113, 255, 127, 255, 127, 0, 0, 34, 209, 52, 192, 0, 0, 0, 191, 64, 137, 157, 192, 255, 127, 0, 0, 255, 255, 255, 191, 40, 215, 213, 191, 0, 0, 0, 191, 200, 47, 150, 192, 243, 100, 255, 127, 255, 127, 0, 0, 40, 215, 213, 191, 0, 0, 0, 191, 200, 47, 150, 192, 255, 127, 0, 0, 255, 255, 255, 191, 32, 76, 14, 191, 0, 0, 0, 191, 202, 19, 138, 192, 129, 90, 255, 127, 255, 127, 0, 0, 32, 76, 14, 191, 0, 0, 0, 191, 202, 19, 138, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 0, 63, 0, 0, 0, 191, 164, 212, 114, 192, 37, 81, 255, 127, 255, 127, 0, 0, 0, 0, 0, 63, 0, 0, 0, 191, 164, 212, 114, 192, 255, 127, 0, 0, 255, 255, 255, 191, 12, 75, 189, 63, 0, 0, 0, 191, 180, 248, 72, 192, 108, 72, 255, 127, 255, 127, 0, 0, 12, 75, 189, 63, 0, 0, 0, 191, 180, 248, 72, 192, 255, 127, 0, 0, 255, 255, 255, 191, 34, 75, 23, 64, 0, 0, 0, 191, 34, 75, 23, 192, 255, 63, 255, 127, 255, 127, 0, 0, 34, 75, 23, 64, 0, 0, 0, 191, 34, 75, 23, 192, 255, 127, 0, 0, 255, 255, 255, 191, 180, 248, 72, 64, 0, 0, 0, 191, 12, 75, 189, 191, 146, 55, 255, 127, 255, 127, 0, 0, 180, 248, 72, 64, 0, 0, 0, 191, 12, 75, 189, 191, 255, 127, 0, 0, 255, 255, 255, 191, 164, 212, 114, 64, 0, 0, 0, 191, 0, 0, 0, 191, 217, 46, 255, 127, 255, 127, 0, 0, 164, 212, 114, 64, 0, 0, 0, 191, 0, 0, 0, 191, 255, 127, 0, 0, 255, 255, 255, 191, 202, 19, 138, 64, 0, 0, 0, 191, 32, 76, 14, 63, 125, 37, 255, 127, 255, 127, 0, 0, 202, 19, 138, 64, 0, 0, 0, 191, 32, 76, 14, 63, 255, 127, 0, 0, 255, 255, 255, 191, 200, 47, 150, 64, 0, 0, 0, 191, 40, 215, 213, 63, 12, 27, 255, 127, 255, 127, 0, 0, 200, 47, 150, 64, 0, 0, 0, 191, 40, 215, 213, 63, 255, 127, 0, 0, 255, 255, 255, 191, 64, 137, 157, 64, 0, 0, 0, 191, 34, 209, 52, 64, 227, 14, 255, 127, 255, 127, 0, 0, 64, 137, 157, 64, 0, 0, 0, 191, 34, 209, 52, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 154, 153, 25, 64, 0, 0, 128, 64, 211, 3, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 154, 153, 25, 64, 0, 0, 128, 64, 19, 112, 141, 244, 255, 255, 255, 191, 0, 0, 128, 192, 154, 153, 25, 64, 0, 0, 160, 192, 43, 124, 255, 127, 110, 145, 252, 8, 0, 0, 128, 192, 154, 153, 25, 64, 0, 0, 160, 192, 121, 132, 19, 240, 255, 255, 255, 63, 64, 137, 157, 64, 51, 51, 19, 64, 34, 209, 52, 64, 135, 14, 255, 127, 255, 127, 0, 0, 64, 137, 157, 64, 51, 51, 19, 64, 34, 209, 52, 64, 111, 105, 141, 234, 255, 255, 255, 191, 200, 47, 150, 64, 205, 204, 12, 64, 40, 215, 213, 63, 191, 26, 255, 127, 255, 127, 0, 0, 200, 47, 150, 64, 205, 204, 12, 64, 40, 215, 213, 63, 110, 99, 105, 223, 255, 255, 255, 63, 202, 19, 138, 64, 102, 102, 6, 64, 32, 76, 14, 63, 57, 37, 255, 127, 255, 127, 0, 0, 202, 19, 138, 64, 102, 102, 6, 64, 32, 76, 14, 63, 79, 95, 42, 213, 255, 255, 255, 63, 164, 212, 114, 64, 0, 0, 0, 64, 0, 0, 0, 191, 154, 46, 255, 127, 255, 127, 0, 0, 164, 212, 114, 64, 0, 0, 0, 64, 0, 0, 0, 191, 99, 93, 167, 204, 255, 255, 255, 63, 180, 248, 72, 64, 51, 51, 243, 63, 12, 75, 189, 191, 118, 55, 255, 127, 255, 127, 0, 0, 180, 248, 72, 64, 51, 51, 243, 63, 12, 75, 189, 191, 220, 94, 16, 199, 255, 255, 255, 63, 34, 75, 23, 64, 51, 51, 243, 63, 34, 75, 23, 192, 255, 63, 255, 127, 255, 127, 0, 0, 34, 75, 23, 64, 51, 51, 243, 63, 34, 75, 23, 192, 158, 98, 61, 197, 255, 255, 255, 63, 12, 75, 189, 63, 51, 51, 243, 63, 180, 248, 72, 192, 137, 72, 255, 127, 255, 127, 0, 0, 12, 75, 189, 63, 51, 51, 243, 63, 180, 248, 72, 192, 51, 104, 16, 199, 255, 255, 255, 63, 0, 0, 0, 63, 0, 0, 0, 64, 164, 212, 114, 192, 100, 81, 255, 127, 255, 127, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 164, 212, 114, 192, 68, 111, 167, 204, 255, 255, 255, 63, 32, 76, 14, 191, 102, 102, 6, 64, 202, 19, 138, 192, 198, 90, 255, 127, 255, 127, 0, 0, 32, 76, 14, 191, 102, 102, 6, 64, 202, 19, 138, 192, 219, 117, 42, 213, 255, 255, 255, 63, 40, 215, 213, 191, 205, 204, 12, 64, 200, 47, 150, 192, 64, 101, 255, 127, 255, 127, 0, 0, 40, 215, 213, 191, 205, 204, 12, 64, 200, 47, 150, 192, 251, 123, 105, 223, 255, 255, 255, 63, 34, 209, 52, 192, 51, 51, 19, 64, 64, 137, 157, 192, 120, 113, 255, 127, 255, 127, 0, 0, 34, 209, 52, 192, 51, 51, 19, 64, 64, 137, 157, 192, 29, 129, 110, 233, 255, 255, 255, 63, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 192, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 0, 191, 0, 0, 192, 192, 255, 255, 238, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 192, 0, 0, 255, 127, 255, 255, 255, 191, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 192, 255, 255, 238, 255, 255, 127, 255, 255, 0, 0, 160, 192, 0, 0, 32, 64, 0, 0, 192, 192, 185, 133, 90, 244, 255, 255, 255, 63, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 15, 128, 255, 127, 255, 255, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 64, 91, 116, 21, 250, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 255, 15, 128, 255, 127, 255, 255, 239, 231, 125, 192, 0, 0, 0, 191, 157, 251, 191, 192, 255, 127, 0, 0, 255, 255, 255, 191, 239, 231, 125, 192, 0, 0, 0, 191, 157, 251, 191, 192, 255, 255, 213, 251, 255, 127, 255, 255, 157, 251, 191, 64, 0, 0, 0, 191, 239, 231, 125, 64, 255, 255, 41, 132, 255, 127, 255, 255, 157, 251, 191, 64, 0, 0, 0, 191, 239, 231, 125, 64, 255, 127, 0, 0, 255, 255, 255, 191, 152, 118, 44, 192, 0, 0, 0, 191, 43, 67, 189, 192, 255, 127, 0, 0, 255, 255, 255, 191, 152, 118, 44, 192, 0, 0, 0, 191, 43, 67, 189, 192, 255, 255, 9, 241, 255, 127, 255, 255, 43, 182, 180, 191, 0, 0, 0, 191, 165, 24, 181, 192, 255, 127, 0, 0, 255, 255, 255, 191, 43, 182, 180, 191, 0, 0, 0, 191, 165, 24, 181, 192, 255, 255, 242, 228, 255, 127, 255, 255, 78, 82, 49, 190, 0, 0, 0, 191, 54, 164, 167, 192, 255, 127, 0, 0, 255, 255, 255, 191, 78, 82, 49, 190, 0, 0, 0, 191, 54, 164, 167, 192, 255, 255, 129, 218, 255, 127, 255, 255, 1, 0, 128, 63, 0, 0, 0, 191, 205, 32, 149, 192, 255, 127, 0, 0, 255, 255, 255, 191, 1, 0, 128, 63, 0, 0, 0, 191, 205, 32, 149, 192, 255, 255, 37, 209, 255, 127, 255, 255, 121, 155, 5, 64, 0, 0, 0, 191, 1, 191, 123, 192, 255, 127, 0, 0, 255, 255, 255, 191, 121, 155, 5, 64, 0, 0, 0, 191, 1, 191, 123, 192, 255, 255, 108, 200, 255, 127, 255, 255, 95, 140, 68, 64, 0, 0, 0, 191, 95, 140, 68, 192, 255, 127, 0, 0, 255, 255, 255, 191, 95, 140, 68, 64, 0, 0, 0, 191, 95, 140, 68, 192, 255, 255, 255, 191, 255, 127, 255, 255, 1, 191, 123, 64, 0, 0, 0, 191, 121, 155, 5, 192, 255, 127, 0, 0, 255, 255, 255, 191, 1, 191, 123, 64, 0, 0, 0, 191, 121, 155, 5, 192, 255, 255, 146, 183, 255, 127, 255, 255, 205, 32, 149, 64, 0, 0, 0, 191, 1, 0, 128, 191, 255, 127, 0, 0, 255, 255, 255, 191, 205, 32, 149, 64, 0, 0, 0, 191, 1, 0, 128, 191, 255, 255, 217, 174, 255, 127, 255, 255, 54, 164, 167, 64, 0, 0, 0, 191, 78, 82, 49, 62, 255, 127, 0, 0, 255, 255, 255, 191, 54, 164, 167, 64, 0, 0, 0, 191, 78, 82, 49, 62, 255, 255, 125, 165, 255, 127, 254, 255, 165, 24, 181, 64, 0, 0, 0, 191, 43, 182, 180, 63, 255, 127, 0, 0, 255, 255, 255, 191, 165, 24, 181, 64, 0, 0, 0, 191, 43, 182, 180, 63, 255, 255, 11, 155, 255, 127, 254, 255, 43, 67, 189, 64, 0, 0, 0, 191, 152, 118, 44, 64, 255, 127, 0, 0, 255, 255, 255, 191, 43, 67, 189, 64, 0, 0, 0, 191, 152, 118, 44, 64, 255, 255, 245, 142, 255, 127, 255, 255, 157, 251, 191, 64, 0, 0, 32, 64, 239, 231, 125, 64, 27, 112, 152, 244, 255, 255, 255, 191, 157, 251, 191, 64, 0, 0, 32, 64, 239, 231, 125, 64, 255, 255, 41, 132, 255, 127, 255, 255, 239, 231, 125, 192, 0, 0, 32, 64, 157, 251, 191, 192, 255, 255, 213, 251, 255, 127, 255, 255, 239, 231, 125, 192, 0, 0, 32, 64, 157, 251, 191, 192, 124, 132, 27, 240, 255, 255, 255, 63, 43, 67, 189, 64, 0, 0, 32, 64, 152, 118, 44, 64, 255, 255, 245, 142, 255, 127, 254, 255, 43, 67, 189, 64, 0, 0, 32, 64, 152, 118, 44, 64, 118, 105, 154, 234, 255, 255, 255, 191, 165, 24, 181, 64, 0, 0, 32, 64, 43, 182, 180, 63, 255, 255, 11, 155, 255, 127, 254, 255, 165, 24, 181, 64, 0, 0, 32, 64, 43, 182, 180, 63, 120, 99, 127, 223, 255, 255, 255, 63, 54, 164, 167, 64, 0, 0, 32, 64, 78, 82, 49, 62, 255, 255, 125, 165, 255, 127, 255, 255, 54, 164, 167, 64, 0, 0, 32, 64, 78, 82, 49, 62, 88, 95, 65, 213, 255, 255, 255, 63, 205, 32, 149, 64, 0, 0, 32, 64, 1, 0, 128, 191, 255, 255, 217, 174, 255, 127, 255, 255, 205, 32, 149, 64, 0, 0, 32, 64, 1, 0, 128, 191, 101, 93, 190, 204, 255, 255, 255, 63, 1, 191, 123, 64, 0, 0, 32, 64, 121, 155, 5, 192, 255, 255, 146, 183, 255, 127, 255, 255, 1, 191, 123, 64, 0, 0, 32, 64, 121, 155, 5, 192, 214, 94, 23, 199, 255, 255, 255, 63, 95, 140, 68, 64, 0, 0, 32, 64, 95, 140, 68, 192, 255, 255, 255, 191, 255, 127, 255, 255, 95, 140, 68, 64, 0, 0, 32, 64, 95, 140, 68, 192, 158, 98, 61, 197, 255, 255, 255, 63, 121, 155, 5, 64, 0, 0, 32, 64, 1, 191, 123, 192, 255, 255, 108, 200, 255, 127, 255, 255, 121, 155, 5, 64, 0, 0, 32, 64, 1, 191, 123, 192, 65, 104, 23, 199, 255, 255, 255, 63, 1, 0, 128, 63, 0, 0, 32, 64, 205, 32, 149, 192, 255, 255, 37, 209, 255, 127, 255, 255, 1, 0, 128, 63, 0, 0, 32, 64, 205, 32, 149, 192, 89, 111, 190, 204, 255, 255, 255, 63, 78, 82, 49, 190, 0, 0, 32, 64, 54, 164, 167, 192, 255, 255, 129, 218, 255, 127, 255, 255, 78, 82, 49, 190, 0, 0, 32, 64, 54, 164, 167, 192, 233, 117, 65, 213, 255, 255, 255, 63, 43, 182, 180, 191, 0, 0, 32, 64, 165, 24, 181, 192, 255, 255, 242, 228, 255, 127, 255, 255, 43, 182, 180, 191, 0, 0, 32, 64, 165, 24, 181, 192, 7, 124, 127, 223, 255, 255, 255, 63, 152, 118, 44, 192, 0, 0, 32, 64, 43, 67, 189, 192, 255, 255, 9, 241, 255, 127, 255, 255, 152, 118, 44, 192, 0, 0, 32, 64, 43, 67, 189, 192, 35, 129, 118, 233, 255, 255, 255, 63, 34, 75, 23, 64, 51, 51, 243, 63, 34, 75, 23, 192, 250, 97, 221, 197, 255, 127, 0, 0, 34, 75, 23, 64, 51, 51, 243, 63, 34, 75, 23, 192, 81, 98, 220, 197, 255, 127, 0, 0) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_i708r") diff --git a/assets/meshes/walls/turn_wall_inner.tres b/assets/meshes/walls/turn_wall_inner.tres new file mode 100644 index 0000000..7e65c3c --- /dev/null +++ b/assets/meshes/walls/turn_wall_inner.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://bx645tiy0eiik"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_e0mcs"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_bfq01"] +_surfaces = [{ +"aabb": AABB(-9.8618, -0.5, -0.138198, 10, 3, 10), +"format": 4097, +"index_count": 300, +"index_data": PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 2, 0, 3, 0, 4, 0, 7, 0, 5, 0, 4, 0, 6, 0, 7, 0, 2, 0, 5, 0, 3, 0, 2, 0, 4, 0, 5, 0, 6, 0, 9, 0, 7, 0, 6, 0, 8, 0, 9, 0, 8, 0, 11, 0, 9, 0, 8, 0, 10, 0, 11, 0, 10, 0, 13, 0, 11, 0, 10, 0, 12, 0, 13, 0, 12, 0, 15, 0, 13, 0, 12, 0, 14, 0, 15, 0, 14, 0, 17, 0, 15, 0, 14, 0, 16, 0, 17, 0, 16, 0, 19, 0, 17, 0, 16, 0, 18, 0, 19, 0, 18, 0, 21, 0, 19, 0, 18, 0, 20, 0, 21, 0, 20, 0, 23, 0, 21, 0, 20, 0, 22, 0, 23, 0, 22, 0, 25, 0, 23, 0, 22, 0, 24, 0, 25, 0, 26, 0, 29, 0, 28, 0, 26, 0, 27, 0, 29, 0, 30, 0, 33, 0, 32, 0, 30, 0, 31, 0, 33, 0, 28, 0, 31, 0, 30, 0, 28, 0, 29, 0, 31, 0, 32, 0, 35, 0, 34, 0, 32, 0, 33, 0, 35, 0, 34, 0, 37, 0, 36, 0, 34, 0, 35, 0, 37, 0, 36, 0, 39, 0, 38, 0, 36, 0, 37, 0, 39, 0, 38, 0, 41, 0, 40, 0, 38, 0, 39, 0, 41, 0, 40, 0, 43, 0, 42, 0, 40, 0, 41, 0, 43, 0, 42, 0, 45, 0, 44, 0, 42, 0, 43, 0, 45, 0, 44, 0, 47, 0, 46, 0, 44, 0, 45, 0, 47, 0, 46, 0, 49, 0, 48, 0, 46, 0, 47, 0, 49, 0, 48, 0, 51, 0, 50, 0, 48, 0, 49, 0, 51, 0, 2, 0, 30, 0, 4, 0, 2, 0, 28, 0, 30, 0, 12, 0, 40, 0, 14, 0, 12, 0, 38, 0, 40, 0, 22, 0, 50, 0, 24, 0, 22, 0, 48, 0, 50, 0, 11, 0, 35, 0, 9, 0, 11, 0, 37, 0, 35, 0, 18, 0, 46, 0, 20, 0, 18, 0, 44, 0, 46, 0, 1, 0, 26, 0, 0, 0, 1, 0, 27, 0, 26, 0, 8, 0, 36, 0, 10, 0, 8, 0, 34, 0, 36, 0, 21, 0, 45, 0, 19, 0, 21, 0, 47, 0, 45, 0, 7, 0, 31, 0, 5, 0, 7, 0, 33, 0, 31, 0, 17, 0, 41, 0, 15, 0, 17, 0, 43, 0, 41, 0, 4, 0, 32, 0, 6, 0, 4, 0, 30, 0, 32, 0, 14, 0, 42, 0, 16, 0, 14, 0, 40, 0, 42, 0, 3, 0, 27, 0, 1, 0, 3, 0, 29, 0, 27, 0, 13, 0, 37, 0, 11, 0, 13, 0, 39, 0, 37, 0, 23, 0, 47, 0, 21, 0, 23, 0, 49, 0, 47, 0, 0, 0, 28, 0, 2, 0, 0, 0, 26, 0, 28, 0, 10, 0, 38, 0, 12, 0, 10, 0, 36, 0, 38, 0, 20, 0, 48, 0, 22, 0, 20, 0, 46, 0, 48, 0, 9, 0, 33, 0, 7, 0, 9, 0, 35, 0, 33, 0, 19, 0, 43, 0, 17, 0, 19, 0, 45, 0, 43, 0, 24, 0, 51, 0, 25, 0, 24, 0, 50, 0, 51, 0, 6, 0, 34, 0, 8, 0, 6, 0, 32, 0, 34, 0, 16, 0, 44, 0, 18, 0, 16, 0, 42, 0, 44, 0, 5, 0, 29, 0, 3, 0, 5, 0, 31, 0, 29, 0, 15, 0, 39, 0, 13, 0, 15, 0, 41, 0, 39, 0, 25, 0, 49, 0, 23, 0, 25, 0, 51, 0, 49, 0), +"lods": [0.486218, PackedByteArray(0, 0, 3, 0, 1, 0, 0, 0, 6, 0, 3, 0, 6, 0, 13, 0, 3, 0, 6, 0, 10, 0, 13, 0, 10, 0, 14, 0, 13, 0, 14, 0, 23, 0, 13, 0, 14, 0, 20, 0, 23, 0, 20, 0, 25, 0, 23, 0, 20, 0, 24, 0, 25, 0, 26, 0, 31, 0, 28, 0, 26, 0, 27, 0, 31, 0, 28, 0, 31, 0, 39, 0, 28, 0, 39, 0, 38, 0, 38, 0, 39, 0, 41, 0, 38, 0, 41, 0, 48, 0, 48, 0, 41, 0, 45, 0, 48, 0, 45, 0, 51, 0, 48, 0, 51, 0, 50, 0, 20, 0, 50, 0, 24, 0, 20, 0, 48, 0, 50, 0, 14, 0, 48, 0, 20, 0, 14, 0, 38, 0, 48, 0, 10, 0, 38, 0, 14, 0, 6, 0, 38, 0, 10, 0, 6, 0, 28, 0, 38, 0, 0, 0, 28, 0, 6, 0, 0, 0, 26, 0, 28, 0, 1, 0, 26, 0, 0, 0, 1, 0, 27, 0, 26, 0, 23, 0, 41, 0, 13, 0, 13, 0, 41, 0, 39, 0, 23, 0, 45, 0, 41, 0, 25, 0, 45, 0, 23, 0, 25, 0, 51, 0, 45, 0, 13, 0, 39, 0, 31, 0, 13, 0, 31, 0, 3, 0, 3, 0, 31, 0, 27, 0, 3, 0, 27, 0, 1, 0, 24, 0, 51, 0, 25, 0, 24, 0, 50, 0, 51, 0), 2.39373, PackedByteArray(0, 0, 13, 0, 1, 0, 0, 0, 14, 0, 13, 0, 14, 0, 25, 0, 13, 0, 14, 0, 24, 0, 25, 0, 26, 0, 45, 0, 38, 0, 26, 0, 27, 0, 45, 0, 38, 0, 45, 0, 51, 0, 38, 0, 51, 0, 50, 0, 14, 0, 50, 0, 24, 0, 14, 0, 38, 0, 50, 0, 0, 0, 38, 0, 14, 0, 0, 0, 26, 0, 38, 0, 1, 0, 26, 0, 0, 0, 1, 0, 27, 0, 26, 0, 13, 0, 27, 0, 1, 0, 13, 0, 45, 0, 27, 0, 25, 0, 45, 0, 13, 0, 25, 0, 51, 0, 45, 0, 24, 0, 51, 0, 25, 0, 24, 0, 50, 0, 51, 0)], +"primitive": 3, +"vertex_count": 52, +"vertex_data": PackedByteArray(243, 201, 29, 193, 255, 255, 255, 190, 192, 131, 13, 190, 243, 201, 29, 193, 0, 0, 32, 64, 192, 131, 13, 190, 152, 231, 8, 193, 255, 255, 255, 190, 128, 164, 87, 189, 152, 231, 8, 193, 0, 0, 32, 64, 128, 164, 87, 189, 113, 193, 232, 192, 255, 255, 255, 190, 64, 103, 79, 62, 113, 193, 232, 192, 0, 0, 32, 64, 64, 103, 79, 62, 120, 30, 193, 192, 255, 255, 255, 190, 64, 125, 31, 63, 120, 30, 193, 192, 0, 0, 32, 64, 64, 125, 31, 63, 228, 147, 155, 192, 255, 255, 255, 190, 64, 204, 153, 63, 228, 147, 155, 192, 0, 0, 32, 64, 64, 204, 153, 63, 78, 140, 113, 192, 255, 255, 255, 190, 104, 209, 246, 63, 78, 140, 113, 192, 0, 0, 32, 64, 104, 209, 246, 63, 100, 155, 50, 192, 255, 255, 255, 190, 86, 155, 50, 64, 100, 155, 50, 192, 0, 0, 32, 64, 86, 155, 50, 64, 126, 209, 246, 191, 255, 255, 255, 190, 60, 140, 113, 64, 126, 209, 246, 191, 0, 0, 32, 64, 60, 140, 113, 64, 72, 204, 153, 191, 255, 255, 255, 190, 218, 147, 155, 64, 72, 204, 153, 191, 0, 0, 32, 64, 218, 147, 155, 64, 64, 125, 31, 191, 255, 255, 255, 190, 108, 30, 193, 64, 64, 125, 31, 191, 0, 0, 32, 64, 108, 30, 193, 64, 0, 103, 79, 190, 255, 255, 255, 190, 100, 193, 232, 64, 0, 103, 79, 190, 0, 0, 32, 64, 100, 193, 232, 64, 0, 167, 87, 61, 255, 255, 255, 190, 147, 231, 8, 65, 0, 167, 87, 61, 0, 0, 32, 64, 147, 231, 8, 65, 192, 132, 13, 62, 255, 255, 255, 190, 238, 201, 29, 65, 192, 132, 13, 62, 0, 0, 32, 64, 238, 201, 29, 65, 243, 201, 29, 193, 254, 255, 255, 190, 15, 159, 92, 63, 243, 201, 29, 193, 0, 0, 32, 64, 15, 159, 92, 63, 58, 254, 10, 193, 255, 255, 255, 190, 14, 85, 112, 63, 58, 254, 10, 193, 0, 0, 32, 64, 14, 85, 112, 63, 175, 9, 241, 192, 255, 255, 255, 190, 94, 144, 149, 63, 175, 9, 241, 192, 0, 0, 32, 64, 94, 144, 149, 63, 104, 93, 205, 192, 255, 255, 255, 190, 80, 0, 198, 63, 104, 93, 205, 192, 0, 0, 32, 64, 80, 0, 198, 63, 227, 147, 171, 192, 255, 255, 255, 190, 23, 83, 4, 64, 227, 147, 171, 192, 0, 0, 32, 64, 23, 83, 4, 64, 32, 65, 140, 192, 255, 255, 255, 190, 2, 47, 46, 64, 32, 65, 140, 192, 0, 0, 32, 64, 2, 47, 46, 64, 160, 220, 95, 192, 255, 255, 255, 190, 148, 220, 95, 64, 160, 220, 95, 192, 0, 0, 32, 64, 148, 220, 95, 64, 11, 47, 46, 192, 255, 255, 255, 190, 24, 65, 140, 64, 11, 47, 46, 192, 0, 0, 32, 64, 24, 65, 140, 64, 25, 83, 4, 192, 255, 255, 255, 190, 219, 147, 171, 64, 25, 83, 4, 192, 0, 0, 32, 64, 219, 147, 171, 64, 78, 0, 198, 191, 255, 255, 255, 190, 94, 93, 205, 64, 78, 0, 198, 191, 0, 0, 32, 64, 94, 93, 205, 64, 84, 144, 149, 191, 255, 255, 255, 190, 164, 9, 241, 64, 84, 144, 149, 191, 0, 0, 32, 64, 164, 9, 241, 64, 229, 84, 112, 191, 255, 255, 255, 190, 54, 254, 10, 65, 229, 84, 112, 191, 0, 0, 32, 64, 54, 254, 10, 65, 46, 159, 92, 191, 254, 255, 255, 190, 241, 201, 29, 65, 46, 159, 92, 191, 0, 0, 32, 64, 241, 201, 29, 65) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "wide_turn_small-6e237ca1d0f874ac4bdf9eea3a770eab_Cube_002" +_surfaces = [{ +"aabb": AABB(-9.8618, -0.5, -0.138198, 10, 3, 10), +"attribute_data": PackedByteArray(0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 192, 62, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63, 0, 0, 32, 63, 0, 0, 128, 63), +"format": 4119, +"index_count": 300, +"index_data": PackedByteArray(2, 0, 9, 0, 5, 0, 2, 0, 7, 0, 9, 0, 11, 0, 17, 0, 13, 0, 11, 0, 15, 0, 17, 0, 7, 0, 13, 0, 9, 0, 7, 0, 11, 0, 13, 0, 15, 0, 21, 0, 17, 0, 15, 0, 19, 0, 21, 0, 19, 0, 25, 0, 21, 0, 19, 0, 23, 0, 25, 0, 23, 0, 29, 0, 25, 0, 23, 0, 27, 0, 29, 0, 27, 0, 33, 0, 29, 0, 27, 0, 31, 0, 33, 0, 31, 0, 37, 0, 33, 0, 31, 0, 35, 0, 37, 0, 35, 0, 41, 0, 37, 0, 35, 0, 39, 0, 41, 0, 39, 0, 45, 0, 41, 0, 39, 0, 43, 0, 45, 0, 43, 0, 49, 0, 45, 0, 43, 0, 47, 0, 49, 0, 47, 0, 55, 0, 49, 0, 47, 0, 52, 0, 55, 0, 57, 0, 64, 0, 62, 0, 57, 0, 60, 0, 64, 0, 66, 0, 72, 0, 70, 0, 66, 0, 68, 0, 72, 0, 62, 0, 68, 0, 66, 0, 62, 0, 64, 0, 68, 0, 70, 0, 76, 0, 74, 0, 70, 0, 72, 0, 76, 0, 74, 0, 80, 0, 78, 0, 74, 0, 76, 0, 80, 0, 78, 0, 84, 0, 82, 0, 78, 0, 80, 0, 84, 0, 82, 0, 88, 0, 86, 0, 82, 0, 84, 0, 88, 0, 86, 0, 92, 0, 90, 0, 86, 0, 88, 0, 92, 0, 90, 0, 96, 0, 94, 0, 90, 0, 92, 0, 96, 0, 94, 0, 100, 0, 98, 0, 94, 0, 96, 0, 100, 0, 98, 0, 104, 0, 102, 0, 98, 0, 100, 0, 104, 0, 102, 0, 109, 0, 106, 0, 102, 0, 104, 0, 109, 0, 6, 0, 67, 0, 10, 0, 6, 0, 63, 0, 67, 0, 26, 0, 87, 0, 30, 0, 26, 0, 83, 0, 87, 0, 46, 0, 107, 0, 50, 0, 46, 0, 103, 0, 107, 0, 24, 0, 77, 0, 20, 0, 24, 0, 81, 0, 77, 0, 38, 0, 99, 0, 42, 0, 38, 0, 95, 0, 99, 0, 3, 0, 56, 0, 0, 0, 3, 0, 59, 0, 56, 0, 18, 0, 79, 0, 22, 0, 18, 0, 75, 0, 79, 0, 44, 0, 97, 0, 40, 0, 44, 0, 101, 0, 97, 0, 16, 0, 69, 0, 12, 0, 16, 0, 73, 0, 69, 0, 36, 0, 89, 0, 32, 0, 36, 0, 93, 0, 89, 0, 10, 0, 71, 0, 14, 0, 10, 0, 67, 0, 71, 0, 30, 0, 91, 0, 34, 0, 30, 0, 87, 0, 91, 0, 8, 0, 61, 0, 4, 0, 8, 0, 65, 0, 61, 0, 28, 0, 81, 0, 24, 0, 28, 0, 85, 0, 81, 0, 48, 0, 101, 0, 44, 0, 48, 0, 105, 0, 101, 0, 1, 0, 63, 0, 6, 0, 1, 0, 58, 0, 63, 0, 22, 0, 83, 0, 26, 0, 22, 0, 79, 0, 83, 0, 42, 0, 103, 0, 46, 0, 42, 0, 99, 0, 103, 0, 20, 0, 73, 0, 16, 0, 20, 0, 77, 0, 73, 0, 40, 0, 93, 0, 36, 0, 40, 0, 97, 0, 93, 0, 51, 0, 110, 0, 53, 0, 51, 0, 108, 0, 110, 0, 14, 0, 75, 0, 18, 0, 14, 0, 71, 0, 75, 0, 34, 0, 95, 0, 38, 0, 34, 0, 91, 0, 95, 0, 12, 0, 65, 0, 8, 0, 12, 0, 69, 0, 65, 0, 32, 0, 85, 0, 28, 0, 32, 0, 89, 0, 85, 0, 54, 0, 105, 0, 48, 0, 54, 0, 111, 0, 105, 0), +"lods": [0.486218, PackedByteArray(2, 0, 9, 0, 5, 0, 2, 0, 15, 0, 9, 0, 15, 0, 29, 0, 9, 0, 15, 0, 23, 0, 29, 0, 23, 0, 31, 0, 29, 0, 31, 0, 49, 0, 29, 0, 31, 0, 43, 0, 49, 0, 43, 0, 55, 0, 49, 0, 43, 0, 52, 0, 55, 0, 57, 0, 68, 0, 62, 0, 57, 0, 60, 0, 68, 0, 62, 0, 68, 0, 84, 0, 62, 0, 84, 0, 82, 0, 82, 0, 84, 0, 88, 0, 82, 0, 88, 0, 102, 0, 102, 0, 88, 0, 96, 0, 102, 0, 96, 0, 109, 0, 102, 0, 109, 0, 106, 0, 42, 0, 107, 0, 50, 0, 42, 0, 103, 0, 107, 0, 30, 0, 103, 0, 42, 0, 30, 0, 83, 0, 103, 0, 22, 0, 83, 0, 30, 0, 14, 0, 83, 0, 22, 0, 14, 0, 63, 0, 83, 0, 1, 0, 63, 0, 14, 0, 1, 0, 58, 0, 63, 0, 3, 0, 56, 0, 0, 0, 3, 0, 59, 0, 56, 0, 48, 0, 89, 0, 28, 0, 28, 0, 89, 0, 85, 0, 48, 0, 97, 0, 89, 0, 54, 0, 97, 0, 48, 0, 54, 0, 111, 0, 97, 0, 28, 0, 85, 0, 69, 0, 28, 0, 69, 0, 8, 0, 8, 0, 69, 0, 61, 0, 8, 0, 61, 0, 4, 0, 51, 0, 110, 0, 53, 0, 51, 0, 108, 0, 110, 0), 2.39373, PackedByteArray(2, 0, 29, 0, 5, 0, 2, 0, 31, 0, 29, 0, 31, 0, 55, 0, 29, 0, 31, 0, 52, 0, 55, 0, 57, 0, 96, 0, 82, 0, 57, 0, 60, 0, 96, 0, 82, 0, 96, 0, 109, 0, 82, 0, 109, 0, 106, 0, 30, 0, 107, 0, 50, 0, 30, 0, 83, 0, 107, 0, 1, 0, 83, 0, 30, 0, 1, 0, 58, 0, 83, 0, 3, 0, 56, 0, 0, 0, 3, 0, 59, 0, 56, 0, 28, 0, 61, 0, 4, 0, 28, 0, 97, 0, 61, 0, 54, 0, 97, 0, 28, 0, 54, 0, 111, 0, 97, 0, 51, 0, 110, 0, 53, 0, 51, 0, 108, 0, 110, 0)], +"material": ExtResource("1_e0mcs"), +"primitive": 3, +"vertex_count": 112, +"vertex_data": PackedByteArray(243, 201, 29, 193, 255, 255, 255, 190, 192, 131, 13, 190, 0, 0, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 255, 255, 255, 190, 192, 131, 13, 190, 255, 127, 0, 0, 255, 255, 255, 191, 243, 201, 29, 193, 255, 255, 255, 190, 192, 131, 13, 190, 255, 255, 31, 248, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 192, 131, 13, 190, 0, 0, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 192, 131, 13, 190, 255, 127, 255, 255, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 192, 131, 13, 190, 255, 255, 31, 248, 255, 255, 255, 191, 152, 231, 8, 193, 255, 255, 255, 190, 128, 164, 87, 189, 255, 127, 0, 0, 255, 255, 255, 191, 152, 231, 8, 193, 255, 255, 255, 190, 128, 164, 87, 189, 255, 255, 27, 241, 255, 255, 255, 191, 152, 231, 8, 193, 0, 0, 32, 64, 128, 164, 87, 189, 255, 127, 255, 255, 255, 255, 255, 191, 152, 231, 8, 193, 0, 0, 32, 64, 128, 164, 87, 189, 255, 255, 27, 241, 255, 255, 255, 191, 113, 193, 232, 192, 255, 255, 255, 190, 64, 103, 79, 62, 255, 127, 0, 0, 255, 255, 255, 191, 113, 193, 232, 192, 255, 255, 255, 190, 64, 103, 79, 62, 255, 255, 242, 228, 255, 255, 255, 191, 113, 193, 232, 192, 0, 0, 32, 64, 64, 103, 79, 62, 255, 127, 255, 255, 255, 255, 255, 191, 113, 193, 232, 192, 0, 0, 32, 64, 64, 103, 79, 62, 255, 255, 242, 228, 255, 255, 255, 191, 120, 30, 193, 192, 255, 255, 255, 190, 64, 125, 31, 63, 255, 127, 0, 0, 255, 255, 255, 191, 120, 30, 193, 192, 255, 255, 255, 190, 64, 125, 31, 63, 255, 255, 129, 218, 255, 255, 255, 191, 120, 30, 193, 192, 0, 0, 32, 64, 64, 125, 31, 63, 255, 127, 255, 255, 255, 255, 255, 191, 120, 30, 193, 192, 0, 0, 32, 64, 64, 125, 31, 63, 255, 255, 129, 218, 255, 255, 255, 191, 228, 147, 155, 192, 255, 255, 255, 190, 64, 204, 153, 63, 255, 127, 0, 0, 255, 255, 255, 191, 228, 147, 155, 192, 255, 255, 255, 190, 64, 204, 153, 63, 255, 255, 37, 209, 255, 255, 255, 191, 228, 147, 155, 192, 0, 0, 32, 64, 64, 204, 153, 63, 255, 127, 255, 255, 255, 255, 255, 191, 228, 147, 155, 192, 0, 0, 32, 64, 64, 204, 153, 63, 255, 255, 37, 209, 255, 255, 255, 191, 78, 140, 113, 192, 255, 255, 255, 190, 104, 209, 246, 63, 255, 127, 0, 0, 255, 255, 255, 191, 78, 140, 113, 192, 255, 255, 255, 190, 104, 209, 246, 63, 255, 255, 108, 200, 255, 255, 255, 191, 78, 140, 113, 192, 0, 0, 32, 64, 104, 209, 246, 63, 255, 127, 255, 255, 255, 255, 255, 191, 78, 140, 113, 192, 0, 0, 32, 64, 104, 209, 246, 63, 255, 255, 108, 200, 255, 255, 255, 191, 100, 155, 50, 192, 255, 255, 255, 190, 86, 155, 50, 64, 255, 127, 0, 0, 255, 255, 255, 191, 100, 155, 50, 192, 255, 255, 255, 190, 86, 155, 50, 64, 255, 255, 255, 191, 255, 255, 255, 191, 100, 155, 50, 192, 0, 0, 32, 64, 86, 155, 50, 64, 255, 127, 255, 255, 255, 255, 255, 191, 100, 155, 50, 192, 0, 0, 32, 64, 86, 155, 50, 64, 255, 255, 255, 191, 255, 255, 255, 191, 126, 209, 246, 191, 255, 255, 255, 190, 60, 140, 113, 64, 255, 127, 0, 0, 255, 255, 255, 191, 126, 209, 246, 191, 255, 255, 255, 190, 60, 140, 113, 64, 255, 255, 146, 183, 255, 255, 255, 191, 126, 209, 246, 191, 0, 0, 32, 64, 60, 140, 113, 64, 255, 127, 255, 255, 255, 255, 255, 191, 126, 209, 246, 191, 0, 0, 32, 64, 60, 140, 113, 64, 255, 255, 146, 183, 255, 255, 255, 191, 72, 204, 153, 191, 255, 255, 255, 190, 218, 147, 155, 64, 255, 127, 0, 0, 255, 255, 255, 191, 72, 204, 153, 191, 255, 255, 255, 190, 218, 147, 155, 64, 255, 255, 217, 174, 255, 255, 255, 191, 72, 204, 153, 191, 0, 0, 32, 64, 218, 147, 155, 64, 255, 127, 255, 255, 255, 255, 255, 191, 72, 204, 153, 191, 0, 0, 32, 64, 218, 147, 155, 64, 255, 255, 217, 174, 255, 255, 255, 191, 64, 125, 31, 191, 255, 255, 255, 190, 108, 30, 193, 64, 255, 127, 0, 0, 255, 255, 255, 191, 64, 125, 31, 191, 255, 255, 255, 190, 108, 30, 193, 64, 255, 255, 125, 165, 255, 255, 255, 191, 64, 125, 31, 191, 0, 0, 32, 64, 108, 30, 193, 64, 255, 127, 255, 255, 255, 255, 255, 191, 64, 125, 31, 191, 0, 0, 32, 64, 108, 30, 193, 64, 255, 255, 125, 165, 255, 255, 255, 191, 0, 103, 79, 190, 255, 255, 255, 190, 100, 193, 232, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 103, 79, 190, 255, 255, 255, 190, 100, 193, 232, 64, 255, 255, 11, 155, 255, 255, 255, 191, 0, 103, 79, 190, 0, 0, 32, 64, 100, 193, 232, 64, 255, 127, 255, 255, 255, 255, 255, 191, 0, 103, 79, 190, 0, 0, 32, 64, 100, 193, 232, 64, 255, 255, 11, 155, 255, 255, 255, 191, 0, 167, 87, 61, 255, 255, 255, 190, 147, 231, 8, 65, 255, 127, 0, 0, 255, 255, 255, 191, 0, 167, 87, 61, 255, 255, 255, 190, 147, 231, 8, 65, 255, 255, 227, 142, 255, 255, 255, 191, 0, 167, 87, 61, 0, 0, 32, 64, 147, 231, 8, 65, 255, 127, 255, 255, 255, 255, 255, 191, 0, 167, 87, 61, 0, 0, 32, 64, 147, 231, 8, 65, 255, 255, 227, 142, 255, 255, 255, 191, 192, 132, 13, 62, 255, 255, 255, 190, 238, 201, 29, 65, 255, 127, 0, 0, 255, 255, 255, 191, 192, 132, 13, 62, 255, 255, 255, 190, 238, 201, 29, 65, 255, 127, 255, 127, 255, 255, 255, 191, 192, 132, 13, 62, 255, 255, 255, 190, 238, 201, 29, 65, 255, 255, 222, 135, 255, 255, 255, 191, 192, 132, 13, 62, 0, 0, 32, 64, 238, 201, 29, 65, 255, 127, 255, 127, 255, 255, 255, 191, 192, 132, 13, 62, 0, 0, 32, 64, 238, 201, 29, 65, 255, 127, 255, 255, 255, 255, 255, 191, 192, 132, 13, 62, 0, 0, 32, 64, 238, 201, 29, 65, 255, 255, 222, 135, 255, 255, 255, 191, 243, 201, 29, 193, 254, 255, 255, 190, 15, 159, 92, 63, 0, 0, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 254, 255, 255, 190, 15, 159, 92, 63, 32, 120, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 254, 255, 255, 190, 15, 159, 92, 63, 255, 127, 0, 0, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 15, 159, 92, 63, 0, 0, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 15, 159, 92, 63, 32, 120, 255, 127, 255, 255, 255, 191, 243, 201, 29, 193, 0, 0, 32, 64, 15, 159, 92, 63, 255, 127, 255, 255, 255, 255, 255, 191, 58, 254, 10, 193, 255, 255, 255, 190, 14, 85, 112, 63, 27, 113, 255, 127, 255, 255, 255, 191, 58, 254, 10, 193, 255, 255, 255, 190, 14, 85, 112, 63, 255, 127, 0, 0, 255, 255, 255, 191, 58, 254, 10, 193, 0, 0, 32, 64, 14, 85, 112, 63, 27, 113, 255, 127, 255, 255, 255, 191, 58, 254, 10, 193, 0, 0, 32, 64, 14, 85, 112, 63, 255, 127, 255, 255, 255, 255, 255, 191, 175, 9, 241, 192, 255, 255, 255, 190, 94, 144, 149, 63, 243, 100, 255, 127, 255, 255, 255, 191, 175, 9, 241, 192, 255, 255, 255, 190, 94, 144, 149, 63, 255, 127, 0, 0, 255, 255, 255, 191, 175, 9, 241, 192, 0, 0, 32, 64, 94, 144, 149, 63, 243, 100, 255, 127, 255, 255, 255, 191, 175, 9, 241, 192, 0, 0, 32, 64, 94, 144, 149, 63, 255, 127, 255, 255, 255, 255, 255, 191, 104, 93, 205, 192, 255, 255, 255, 190, 80, 0, 198, 63, 129, 90, 255, 127, 255, 255, 255, 191, 104, 93, 205, 192, 255, 255, 255, 190, 80, 0, 198, 63, 255, 127, 0, 0, 255, 255, 255, 191, 104, 93, 205, 192, 0, 0, 32, 64, 80, 0, 198, 63, 129, 90, 255, 127, 255, 255, 255, 191, 104, 93, 205, 192, 0, 0, 32, 64, 80, 0, 198, 63, 255, 127, 255, 255, 255, 255, 255, 191, 227, 147, 171, 192, 255, 255, 255, 190, 23, 83, 4, 64, 37, 81, 255, 127, 255, 255, 255, 191, 227, 147, 171, 192, 255, 255, 255, 190, 23, 83, 4, 64, 255, 127, 0, 0, 255, 255, 255, 191, 227, 147, 171, 192, 0, 0, 32, 64, 23, 83, 4, 64, 37, 81, 255, 127, 255, 255, 255, 191, 227, 147, 171, 192, 0, 0, 32, 64, 23, 83, 4, 64, 255, 127, 255, 255, 255, 255, 255, 191, 32, 65, 140, 192, 255, 255, 255, 190, 2, 47, 46, 64, 108, 72, 255, 127, 255, 255, 255, 191, 32, 65, 140, 192, 255, 255, 255, 190, 2, 47, 46, 64, 255, 127, 0, 0, 255, 255, 255, 191, 32, 65, 140, 192, 0, 0, 32, 64, 2, 47, 46, 64, 108, 72, 255, 127, 255, 255, 255, 191, 32, 65, 140, 192, 0, 0, 32, 64, 2, 47, 46, 64, 255, 127, 255, 255, 255, 255, 255, 191, 160, 220, 95, 192, 255, 255, 255, 190, 148, 220, 95, 64, 255, 63, 255, 127, 255, 255, 255, 191, 160, 220, 95, 192, 255, 255, 255, 190, 148, 220, 95, 64, 255, 127, 0, 0, 255, 255, 255, 191, 160, 220, 95, 192, 0, 0, 32, 64, 148, 220, 95, 64, 255, 63, 255, 127, 255, 255, 255, 191, 160, 220, 95, 192, 0, 0, 32, 64, 148, 220, 95, 64, 255, 127, 255, 255, 255, 255, 255, 191, 11, 47, 46, 192, 255, 255, 255, 190, 24, 65, 140, 64, 146, 55, 255, 127, 255, 255, 255, 191, 11, 47, 46, 192, 255, 255, 255, 190, 24, 65, 140, 64, 255, 127, 0, 0, 255, 255, 255, 191, 11, 47, 46, 192, 0, 0, 32, 64, 24, 65, 140, 64, 146, 55, 255, 127, 255, 255, 255, 191, 11, 47, 46, 192, 0, 0, 32, 64, 24, 65, 140, 64, 255, 127, 255, 255, 255, 255, 255, 191, 25, 83, 4, 192, 255, 255, 255, 190, 219, 147, 171, 64, 217, 46, 255, 127, 255, 255, 255, 191, 25, 83, 4, 192, 255, 255, 255, 190, 219, 147, 171, 64, 255, 127, 0, 0, 255, 255, 255, 191, 25, 83, 4, 192, 0, 0, 32, 64, 219, 147, 171, 64, 217, 46, 255, 127, 255, 255, 255, 191, 25, 83, 4, 192, 0, 0, 32, 64, 219, 147, 171, 64, 255, 127, 255, 255, 255, 255, 255, 191, 78, 0, 198, 191, 255, 255, 255, 190, 94, 93, 205, 64, 125, 37, 255, 127, 255, 255, 255, 191, 78, 0, 198, 191, 255, 255, 255, 190, 94, 93, 205, 64, 255, 127, 0, 0, 255, 255, 255, 191, 78, 0, 198, 191, 0, 0, 32, 64, 94, 93, 205, 64, 125, 37, 255, 127, 255, 255, 255, 191, 78, 0, 198, 191, 0, 0, 32, 64, 94, 93, 205, 64, 255, 127, 255, 255, 255, 255, 255, 191, 84, 144, 149, 191, 255, 255, 255, 190, 164, 9, 241, 64, 12, 27, 255, 127, 255, 255, 255, 191, 84, 144, 149, 191, 255, 255, 255, 190, 164, 9, 241, 64, 255, 127, 0, 0, 255, 255, 255, 191, 84, 144, 149, 191, 0, 0, 32, 64, 164, 9, 241, 64, 12, 27, 255, 127, 255, 255, 255, 191, 84, 144, 149, 191, 0, 0, 32, 64, 164, 9, 241, 64, 255, 127, 255, 255, 255, 255, 255, 191, 229, 84, 112, 191, 255, 255, 255, 190, 54, 254, 10, 65, 227, 14, 255, 127, 255, 255, 255, 191, 229, 84, 112, 191, 255, 255, 255, 190, 54, 254, 10, 65, 255, 127, 0, 0, 255, 255, 255, 191, 229, 84, 112, 191, 0, 0, 32, 64, 54, 254, 10, 65, 227, 14, 255, 127, 255, 255, 255, 191, 229, 84, 112, 191, 0, 0, 32, 64, 54, 254, 10, 65, 255, 127, 255, 255, 255, 255, 255, 191, 46, 159, 92, 191, 254, 255, 255, 190, 241, 201, 29, 65, 223, 7, 255, 127, 255, 255, 255, 191, 46, 159, 92, 191, 254, 255, 255, 190, 241, 201, 29, 65, 255, 127, 0, 0, 255, 255, 255, 191, 46, 159, 92, 191, 254, 255, 255, 190, 241, 201, 29, 65, 255, 127, 255, 127, 255, 255, 255, 191, 46, 159, 92, 191, 0, 0, 32, 64, 241, 201, 29, 65, 223, 7, 255, 127, 255, 255, 255, 191, 46, 159, 92, 191, 0, 0, 32, 64, 241, 201, 29, 65, 255, 127, 255, 127, 255, 255, 255, 191, 46, 159, 92, 191, 0, 0, 32, 64, 241, 201, 29, 65, 255, 127, 255, 255, 255, 255, 255, 191) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_bfq01") diff --git a/assets/meshes/walls/x_wall.tres b/assets/meshes/walls/x_wall.tres new file mode 100644 index 0000000..1498008 --- /dev/null +++ b/assets/meshes/walls/x_wall.tres @@ -0,0 +1,33 @@ +[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://b7vu2ekwlvagf"] + +[ext_resource type="Material" uid="uid://dd3673p284fqe" path="res://assets/mats/wall.tres" id="1_qlmot"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_odwpc"] +_surfaces = [{ +"aabb": AABB(3.5, -0.5, -5, 2.5, 3, 10), +"format": 4097, +"index_count": 96, +"index_data": PackedByteArray(5, 0, 0, 0, 4, 0, 5, 0, 1, 0, 0, 0, 11, 0, 7, 0, 14, 0, 11, 0, 6, 0, 7, 0, 2, 0, 9, 0, 3, 0, 2, 0, 8, 0, 9, 0, 1, 0, 6, 0, 0, 0, 1, 0, 7, 0, 6, 0, 8, 0, 15, 0, 9, 0, 8, 0, 10, 0, 15, 0, 3, 0, 4, 0, 2, 0, 3, 0, 5, 0, 4, 0, 4, 0, 8, 0, 2, 0, 4, 0, 10, 0, 8, 0, 6, 0, 4, 0, 0, 0, 11, 0, 4, 0, 6, 0, 4, 0, 12, 0, 10, 0, 13, 0, 4, 0, 11, 0, 4, 0, 13, 0, 12, 0, 15, 0, 3, 0, 9, 0, 5, 0, 7, 0, 1, 0, 5, 0, 14, 0, 7, 0, 15, 0, 5, 0, 3, 0, 17, 0, 5, 0, 15, 0, 5, 0, 16, 0, 14, 0, 16, 0, 5, 0, 17, 0, 14, 0, 13, 0, 11, 0, 14, 0, 16, 0, 13, 0, 16, 0, 12, 0, 13, 0, 16, 0, 17, 0, 12, 0, 17, 0, 10, 0, 12, 0, 17, 0, 15, 0, 10, 0), +"lods": [0.437443, PackedByteArray(5, 0, 0, 0, 4, 0, 5, 0, 1, 0, 0, 0, 3, 0, 5, 0, 4, 0, 3, 0, 4, 0, 2, 0, 13, 0, 7, 0, 15, 0, 13, 0, 6, 0, 7, 0, 8, 0, 13, 0, 15, 0, 8, 0, 15, 0, 9, 0, 2, 0, 9, 0, 3, 0, 2, 0, 8, 0, 9, 0, 1, 0, 6, 0, 0, 0, 1, 0, 7, 0, 6, 0, 4, 0, 8, 0, 2, 0, 4, 0, 13, 0, 8, 0, 13, 0, 4, 0, 6, 0, 6, 0, 4, 0, 0, 0, 15, 0, 3, 0, 9, 0, 15, 0, 5, 0, 3, 0, 5, 0, 15, 0, 7, 0, 5, 0, 7, 0, 1, 0)], +"primitive": 3, +"vertex_count": 18, +"vertex_data": PackedByteArray(0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 192, 2, 0, 96, 64, 0, 0, 0, 191, 0, 0, 0, 128, 2, 0, 96, 64, 0, 0, 32, 64, 0, 0, 0, 128, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 64, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 192, 19, 13, 155, 64, 0, 0, 0, 191, 241, 88, 147, 191, 19, 13, 155, 64, 0, 0, 0, 191, 240, 88, 147, 63, 144, 1, 151, 64, 0, 0, 0, 191, 74, 187, 215, 190, 144, 1, 151, 64, 0, 0, 0, 191, 72, 187, 215, 62, 19, 13, 155, 64, 0, 0, 32, 64, 241, 88, 147, 63, 19, 13, 155, 64, 0, 0, 32, 64, 240, 88, 147, 191, 144, 1, 151, 64, 0, 0, 32, 64, 74, 187, 215, 62, 144, 1, 151, 64, 0, 0, 32, 64, 72, 187, 215, 190) +}] +blend_shape_mode = 0 + +[resource] +resource_name = "x_wall_Cube001" +_surfaces = [{ +"aabb": AABB(3.5, -0.5, -5, 2.5, 3, 10), +"attribute_data": PackedByteArray(0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 192, 62, 0, 0, 32, 63, 0, 0, 192, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 32, 63, 0, 0, 128, 62, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 192, 62, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 32, 63, 0, 0, 0, 63, 0, 0, 192, 62, 24, 188, 206, 62, 0, 0, 192, 62, 24, 188, 206, 62, 0, 0, 192, 62, 232, 67, 177, 62, 0, 0, 192, 62, 232, 67, 177, 62, 0, 0, 192, 62, 36, 184, 197, 62, 0, 0, 192, 62, 36, 184, 197, 62, 0, 0, 192, 62, 220, 71, 186, 62, 1, 0, 192, 62, 198, 210, 187, 62, 0, 0, 32, 63, 232, 67, 177, 62, 0, 0, 32, 63, 232, 67, 177, 62, 0, 0, 32, 63, 24, 188, 206, 62, 0, 0, 32, 63, 24, 188, 206, 62, 0, 0, 32, 63, 222, 71, 186, 62, 0, 0, 32, 63, 222, 71, 186, 62, 0, 0, 32, 63, 56, 45, 196, 62, 0, 0, 32, 63, 36, 184, 197, 62, 0, 0, 32, 63, 0, 0, 192, 62), +"format": 4119, +"index_count": 96, +"index_data": PackedByteArray(16, 0, 0, 0, 13, 0, 16, 0, 3, 0, 0, 0, 33, 0, 23, 0, 39, 0, 33, 0, 20, 0, 23, 0, 8, 0, 27, 0, 10, 0, 8, 0, 25, 0, 27, 0, 4, 0, 19, 0, 2, 0, 4, 0, 21, 0, 19, 0, 26, 0, 41, 0, 29, 0, 26, 0, 31, 0, 41, 0, 9, 0, 12, 0, 6, 0, 9, 0, 15, 0, 12, 0, 14, 0, 24, 0, 7, 0, 14, 0, 30, 0, 24, 0, 18, 0, 14, 0, 1, 0, 32, 0, 14, 0, 18, 0, 14, 0, 34, 0, 30, 0, 37, 0, 14, 0, 32, 0, 14, 0, 37, 0, 34, 0, 40, 0, 11, 0, 28, 0, 17, 0, 22, 0, 5, 0, 17, 0, 38, 0, 22, 0, 40, 0, 17, 0, 11, 0, 44, 0, 17, 0, 40, 0, 17, 0, 42, 0, 38, 0, 42, 0, 17, 0, 44, 0, 39, 0, 36, 0, 33, 0, 39, 0, 43, 0, 36, 0, 43, 0, 35, 0, 36, 0, 43, 0, 45, 0, 35, 0, 45, 0, 31, 0, 35, 0, 45, 0, 41, 0, 31, 0), +"lods": [0.437443, PackedByteArray(46, 0, 0, 0, 12, 0, 46, 0, 3, 0, 0, 0, 9, 0, 46, 0, 12, 0, 9, 0, 12, 0, 6, 0, 36, 0, 23, 0, 41, 0, 36, 0, 20, 0, 23, 0, 26, 0, 36, 0, 41, 0, 26, 0, 41, 0, 29, 0, 8, 0, 27, 0, 10, 0, 8, 0, 25, 0, 27, 0, 4, 0, 19, 0, 2, 0, 4, 0, 21, 0, 19, 0, 14, 0, 24, 0, 7, 0, 14, 0, 37, 0, 24, 0, 37, 0, 14, 0, 18, 0, 18, 0, 14, 0, 1, 0, 40, 0, 11, 0, 28, 0, 40, 0, 17, 0, 11, 0, 17, 0, 40, 0, 22, 0, 17, 0, 22, 0, 5, 0)], +"material": ExtResource("1_qlmot"), +"primitive": 3, +"vertex_count": 47, +"vertex_data": PackedByteArray(0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 136, 29, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 136, 29, 255, 127, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 0, 0, 136, 157, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 192, 0, 0, 136, 157, 255, 127, 0, 0, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 192, 255, 255, 255, 255, 255, 255, 255, 191, 0, 0, 160, 64, 0, 0, 32, 64, 0, 0, 160, 192, 255, 127, 255, 255, 255, 255, 255, 191, 2, 0, 96, 64, 0, 0, 0, 191, 0, 0, 0, 128, 0, 0, 136, 157, 255, 127, 0, 0, 2, 0, 96, 64, 0, 0, 0, 191, 0, 0, 0, 128, 136, 29, 255, 127, 255, 127, 0, 0, 2, 0, 96, 64, 0, 0, 0, 191, 0, 0, 0, 128, 255, 127, 0, 0, 8, 247, 255, 191, 2, 0, 96, 64, 0, 0, 32, 64, 0, 0, 0, 128, 0, 0, 136, 157, 255, 127, 0, 0, 2, 0, 96, 64, 0, 0, 32, 64, 0, 0, 0, 128, 136, 29, 255, 127, 255, 127, 0, 0, 2, 0, 96, 64, 0, 0, 32, 64, 0, 0, 0, 128, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 64, 255, 255, 136, 157, 255, 127, 255, 255, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 127, 255, 127, 255, 255, 255, 63, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 64, 255, 255, 136, 157, 255, 127, 255, 255, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 127, 0, 0, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 192, 255, 255, 255, 255, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 0, 191, 0, 0, 160, 192, 118, 226, 255, 127, 255, 127, 255, 255, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 192, 255, 255, 255, 255, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 192, 255, 127, 255, 255, 255, 255, 255, 191, 0, 0, 192, 64, 0, 0, 32, 64, 0, 0, 160, 192, 118, 226, 255, 127, 255, 127, 255, 255, 19, 13, 155, 64, 0, 0, 0, 191, 241, 88, 147, 191, 255, 127, 0, 0, 255, 255, 255, 191, 19, 13, 155, 64, 0, 0, 0, 191, 241, 88, 147, 191, 149, 231, 255, 127, 255, 127, 255, 255, 19, 13, 155, 64, 0, 0, 0, 191, 240, 88, 147, 63, 255, 127, 0, 0, 243, 242, 255, 191, 19, 13, 155, 64, 0, 0, 0, 191, 240, 88, 147, 63, 255, 255, 105, 152, 255, 127, 255, 255, 144, 1, 151, 64, 0, 0, 0, 191, 74, 187, 215, 190, 255, 127, 0, 0, 115, 249, 255, 191, 144, 1, 151, 64, 0, 0, 0, 191, 74, 187, 215, 190, 222, 245, 255, 127, 255, 127, 254, 255, 144, 1, 151, 64, 0, 0, 0, 191, 72, 187, 215, 62, 255, 255, 32, 138, 255, 127, 254, 255, 144, 1, 151, 64, 0, 0, 0, 191, 72, 187, 215, 62, 255, 127, 0, 0, 77, 245, 255, 191, 19, 13, 155, 64, 0, 0, 32, 64, 241, 88, 147, 63, 255, 127, 255, 255, 255, 255, 255, 191, 19, 13, 155, 64, 0, 0, 32, 64, 241, 88, 147, 63, 255, 255, 105, 152, 255, 127, 254, 255, 19, 13, 155, 64, 0, 0, 32, 64, 240, 88, 147, 191, 255, 127, 255, 255, 255, 255, 255, 191, 19, 13, 155, 64, 0, 0, 32, 64, 240, 88, 147, 191, 149, 231, 255, 127, 255, 127, 255, 255, 144, 1, 151, 64, 0, 0, 32, 64, 74, 187, 215, 62, 255, 127, 255, 255, 255, 255, 255, 191, 144, 1, 151, 64, 0, 0, 32, 64, 74, 187, 215, 62, 255, 255, 32, 138, 255, 127, 254, 255, 144, 1, 151, 64, 0, 0, 32, 64, 72, 187, 215, 190, 255, 127, 255, 255, 255, 255, 255, 191, 144, 1, 151, 64, 0, 0, 32, 64, 72, 187, 215, 190, 222, 245, 255, 127, 255, 127, 255, 255, 2, 0, 96, 64, 0, 0, 32, 64, 0, 0, 0, 128, 162, 11, 255, 127, 255, 127, 0, 0) +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_odwpc") diff --git a/assets/sounds/plonk.ogg b/assets/sounds/plonk.ogg Binary files differnew file mode 100644 index 0000000..647e678 --- /dev/null +++ b/assets/sounds/plonk.ogg diff --git a/assets/sounds/plonk.ogg.import b/assets/sounds/plonk.ogg.import new file mode 100644 index 0000000..612582f --- /dev/null +++ b/assets/sounds/plonk.ogg.import @@ -0,0 +1,19 @@ +[remap] + +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://bvtxqrhkbai7x" +path="res://.godot/imported/plonk.ogg-e4d61f1dbd79b41fcba0cbca804fdb61.oggvorbisstr" + +[deps] + +source_file="res://assets/sounds/plonk.ogg" +dest_files=["res://.godot/imported/plonk.ogg-e4d61f1dbd79b41fcba0cbca804fdb61.oggvorbisstr"] + +[params] + +loop=false +loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/assets/textures/wall.png b/assets/textures/wall.png Binary files differindex f1681d2..b9465a9 100644 --- a/assets/textures/wall.png +++ b/assets/textures/wall.png diff --git a/classes/block.gd b/classes/block.gd new file mode 100644 index 0000000..c630727 --- /dev/null +++ b/classes/block.gd @@ -0,0 +1,87 @@ +@tool +extends StaticBody3D +class_name Block + +## A Block that goes in a [TrackObject] to be placed by a [TrackLoader]. + +## [code]true[/code] if this block in the editor. +var editor := false +## [code]true[/code] if this block is being photographed. +var making_thumbnail := false +## The current material. +var mat := default_mat() + +## A dictionary storing the walls. +## Dictionary[int, Wall] +var walls := { + WALL_W: null, # z- + WALL_E: null, # z+ + WALL_S: null, # x- + WALL_N: null, # x+ +} + +const WALL_W := 1 +const WALL_E := 2 +const WALL_S := 4 +const WALL_N := 8 +const STRING := { + WALL_W: "west", + WALL_E: "east", + WALL_S: "south", + WALL_N: "north", +} +const ITER := [WALL_W, WALL_E, WALL_S, WALL_N] + +func _ready() -> void: + if Engine.is_editor_hint(): + return + if editor: + collision_layer = Globals.DEFAULT_EDITOR_LAYER + if not making_thumbnail: + var cam := get_node_or_null(^"camera") + if cam: + cam.queue_free() + input_ray_pickable = false + +# helpers + +func has_wall(w: int) -> bool: return has_walls(w, true) & w +func remove_wall(w: int) -> void: remove_walls(w, true) +func make_wall(w: int) -> void: make_walls(w, true) + +# virtual functions + +## Gets the [AABB] of this block. +func get_aabb() -> AABB: return AABB() +## Makes this block visually highlighted. See also [method un_highlight]. +func highlight() -> void: pass +## Reverses [method highlight]. +func un_highlight() -> void: pass +## Get the wall mode. +## Returns a flag. see [const WALL_W]. +func get_wall_mode() -> int: return 0 +func make_walls(_w: int, _singular := false) -> void: pass +func remove_walls(w: int, singular := false) -> void: + for wall in walls: + if w & wall: + if not is_instance_valid(walls[wall]): + push_error("wall doesnt exist!") + return + walls[wall].queue_free() + if singular: + return +func has_walls(w := WALL_W | WALL_E | WALL_N | WALL_S, singular := false) -> int: + var has := 0 + for wall in walls: + if w & wall: + if is_instance_valid(walls[wall]): + if singular: + return wall + has |= wall + elif singular: + return 0 + return has +## Can this block be painted? (TODO) +func materials_allowed() -> int: return 0 +func default_mat() -> int: return 0 +func set_mat(_mat_id: int) -> void: pass diff --git a/classes/booster.gd b/classes/booster.gd new file mode 100644 index 0000000..7ed3de7 --- /dev/null +++ b/classes/booster.gd @@ -0,0 +1,7 @@ +@tool +class_name Booster +extends Platform3D + +## Reset the animation +func sync() -> void: + %animator.seek(0, true) diff --git a/classes/car.gd b/classes/car.gd index 6c0cd87..bbb3164 100644 --- a/classes/car.gd +++ b/classes/car.gd @@ -3,6 +3,7 @@ class_name Car @export var STEER_SPEED := 1.0 @export var steer_curve: Curve = preload("res://assets/cars/kenney_sedan/steer_curve.tres") +const sparks := preload("res://assets/cars/sparks.tscn") var steer_target := 0.0 @@ -11,7 +12,8 @@ var steer_target := 0.0 @export var reverse_ratio := -2.5 @export var final_drive_ratio := 3.38 @export var max_engine_rpm := 8000.0 -@export var gear_shift_time = 0.3 +@export var gear_shift_time := 0.3 +@export var BOOSTER_FORCE := 25000 @export var power_curve: Curve = preload("res://assets/cars/kenney_sedan/power_curve.tres") @onready var body_mesh := $body as MeshInstance3D @onready var checkpoint_sound := $checkpoint as AudioStreamPlayer @@ -55,6 +57,8 @@ func reset() -> void: gear_timer = 0 clutch_position = 0 steering = 0 + angular_damp = 0 + linear_damp = 0 throttle = 0 engine_force = 0 brake = MAX_BRAKE_FORCE @@ -92,7 +96,7 @@ func steer(to: float) -> void: else: to = -steer_curve.sample_baked(-to) if to < 0.0 else steer_curve.sample_baked(to) - steer_target = clampf(lerpf(steer_target, to, 10 * get_physics_process_delta_time()), -1, 1) * .75 + steer_target = clampf(lerpf(steer_target, to, 10 * get_physics_process_delta_time()), -1, 1) * .9 ## virtual func shift_down() -> bool: @@ -124,7 +128,7 @@ func _process(delta: float): if can_shift: _process_gear_inputs(delta) steering = -steer_target - body_mesh.rotation.z = lerp(body_mesh.rotation.z, clampf(((-steering * .001) * whl_rpm()) + randf_range(-0.05,0.05), -.4, .4), 10 * delta) + body_mesh.rotation.z = lerp(body_mesh.rotation.z, clampf((-steering * .001 + randf_range(-0.0005,0.0005)) * whl_rpm(), -.3, .3), 2 * delta) engine_rpm = clampf(move_toward(engine_rpm, (wheel_rpm * engine_force * 0.0015), 800), 800, MAX_ENGINE_FORCE) func limit(delta: float) -> void: @@ -147,6 +151,11 @@ func _physics_process(delta: float): downforce(5) for i in 4: + if wheels[i].get_contact_body() is Booster: + apply_central_force( + (wheels[i].get_contact_body().transform.basis.x) * BOOSTER_FORCE + ) + particles[i].emitting = wheels[i].get_skidinfo() < (.2 if i > 2 else .99) and wheels[i].is_in_contact() and kph() > 30 if particles[i].emitting: @warning_ignore("narrowing_conversion") @@ -154,7 +163,7 @@ func _physics_process(delta: float): if !skids[i][-1].active: skids[i].append(trail_scene.instantiate() as Trail3D) get_parent().add_child(skids[i][-1]) - (skids[i][-1] as Trail3D).add(wheels[i].global_position - Vector3(0, .661, 0)) + (skids[i][-1] as Trail3D).add(wheels[i].global_position - Vector3(0, .561, 0)) elif skids[i][-1].active: skids[i][-1].active = false @@ -162,3 +171,16 @@ func start() -> void: brake = 0 can_shift = true can_accelerate = true + +func _integrate_forces(state: PhysicsDirectBodyState3D) -> void: + if kph() < 100: + return + var contact := state.get_contact_count() + while contact > 0: + contact -= 1 + var p := state.get_contact_local_position(contact) # it says local, but its global. + var direction := state.get_contact_local_normal(contact) + var sprk := sparks.instantiate() + (sprk.process_material as ParticleProcessMaterial).direction = direction + get_parent().add_child(sprk) + sprk.global_position = p diff --git a/classes/checkpoint.gd b/classes/checkpoint.gd index 468f38c..eef61aa 100644 --- a/classes/checkpoint.gd +++ b/classes/checkpoint.gd @@ -1,9 +1,22 @@ -extends PathFollow3D +extends Block class_name CheckPoint signal collected -@export var needs_collision := true +@export var player_detector: Area3D -func enter() -> void: - collected.emit() +func enter(_var = null): + collected.emit() + +func _ready() -> void: + super() + if editor: + player_detector.queue_free() + else: + player_detector.body_entered.connect(enter) + +@export var mesh: MeshInstance3D # i want traits (tho macros would be good 2) + +func un_highlight(): mesh.set_surface_override_material(0, MatMap.map[mat]) +func highlight() -> void: mesh.set_surface_override_material(0, MatMap.get_highlight(mat)) +func default_mat(): return 8 diff --git a/classes/decoration.gd b/classes/decoration.gd new file mode 100644 index 0000000..4cfb942 --- /dev/null +++ b/classes/decoration.gd @@ -0,0 +1,6 @@ +extends Block +class_name Decoration + +## Unthemeable type of block. + +func materials_allowed() -> int: return 0x0 diff --git a/classes/finish.gd b/classes/finish.gd index d7c9eb9..3b57a69 100644 --- a/classes/finish.gd +++ b/classes/finish.gd @@ -1,9 +1,22 @@ -extends PathFollow3D +extends Block class_name Finish signal collected -@export var needs_collision := true +@export var player_detector: Area3D -func enter() -> void: - collected.emit()
\ No newline at end of file +func enter(_var = null): + collected.emit() + +func _ready() -> void: + super() + if editor: + player_detector.queue_free() + else: + player_detector.body_entered.connect(enter) + +@export var mesh: MeshInstance3D + +func un_highlight(): mesh.set_surface_override_material(0, MatMap.map[mat]) +func highlight() -> void: mesh.set_surface_override_material(0, MatMap.get_highlight(mat)) +func default_mat(): return 16 diff --git a/classes/ghost.gd b/classes/ghost.gd index 674436e..93df69c 100644 --- a/classes/ghost.gd +++ b/classes/ghost.gd @@ -3,7 +3,7 @@ class_name GhostCar @onready var wheels: Array[Node3D] = [$bl as Node3D, $br as Node3D, $fr as Node3D, $fl as Node3D] @onready var body_mesh: MeshInstance3D = $body -@onready var engine: AudioStreamPlayer3D = $Engine +@onready var engine: EngineNoise = $Engine const trail_scene = preload("res://scenes/trail.tscn") const inactive = {active = false}; @@ -57,7 +57,7 @@ func update(car_vars: PackedFloat32Array, delta: float) -> void: if !skids[i][-1].active: skids[i].append(trail_scene.instantiate() as Trail3D) get_parent().add_child(skids[i][-1]) - (skids[i][-1] as Trail3D).add(to_global(CarVars.arr2vec(v, CarVars.WHEEL_POSITION_START + (i * 3))) - Vector3(0, .661, 0)) + (skids[i][-1] as Trail3D).add(to_global(CarVars.arr2vec(v, CarVars.WHEEL_POSITION_START + (i * 3))) - Vector3(0, .561, 0)) elif skids[i][-1].active: skids[i][-1].active = false diff --git a/classes/platform.gd b/classes/platform.gd new file mode 100644 index 0000000..5b86671 --- /dev/null +++ b/classes/platform.gd @@ -0,0 +1,104 @@ +@tool +class_name Platform3D +extends Block + +@export var mesh: MeshInstance3D + +var west_wall_scene: PackedScene +var east_wall_scene: PackedScene +var south_wall_scene: PackedScene +var north_wall_scene: PackedScene + +func wall_scenes() -> Dictionary: + return { + WALL_W: west_wall_scene, + WALL_E: east_wall_scene, + WALL_S: south_wall_scene, + WALL_N: north_wall_scene, + } + +func wall_transforms() -> Dictionary: + return { + WALL_W: west_wall_transform, + WALL_E: east_wall_transform, + WALL_S: south_wall_transform, + WALL_N: north_wall_transform, + } + +var west_wall_transform: Transform3D = Transform3D(Basis(), Vector3()): + set(wt): + west_wall_transform = wt + if is_instance_valid(walls[WALL_W]): + walls[WALL_W].global_transform = wt +var east_wall_transform: Transform3D = Transform3D(Vector3(1, 0, 0), Vector3(0, 1, 0), Vector3(0, 0, -1), Vector3()): + set(wt): + east_wall_transform = wt + if is_instance_valid(walls[WALL_E]): + walls[WALL_E].global_transform = wt +var south_wall_transform: Transform3D = Transform3D(Vector3(0, 0, -1), Vector3(0, 1, 0), Vector3(1, 0, 0), Vector3()): + set(wt): + south_wall_transform = wt + if is_instance_valid(walls[WALL_S]): + walls[WALL_S].global_transform = wt +var north_wall_transform: Transform3D = Transform3D(Vector3(0, 0, 1), Vector3(0, 1, 0), Vector3(-1, 0, 0), Vector3()): + set(wt): + north_wall_transform = wt + if is_instance_valid(walls[WALL_N]): + walls[WALL_N].global_transform = wt + +@export_flags("West", "East", "South", "North") var wall_mode := WALL_W | WALL_E | WALL_S | WALL_N: + set(wm): + wall_mode = wm + notify_property_list_changed() + +@export_flags("Test west", "Test east", "Test south", "Test north") var tests = 0: + set(v): + tests = v if v else 0 + for wall in ITER: + if has_walls(wall, true) and not tests & wall: + remove_walls(wall, true) + elif tests & wall: + make_walls(wall, true) + +func _get_property_list() -> Array: + var west_usage := PROPERTY_USAGE_DEFAULT if wall_mode & WALL_W else PROPERTY_USAGE_NO_EDITOR + var east_usage := PROPERTY_USAGE_DEFAULT if wall_mode & WALL_E else PROPERTY_USAGE_NO_EDITOR + var north_usage := PROPERTY_USAGE_DEFAULT if wall_mode & WALL_N else PROPERTY_USAGE_NO_EDITOR + var south_usage := PROPERTY_USAGE_DEFAULT if wall_mode & WALL_S else PROPERTY_USAGE_NO_EDITOR + return [ + { "name": "west_wall_scene", "type": TYPE_OBJECT, "usage": west_usage, "hint": PROPERTY_HINT_RESOURCE_TYPE, "hint_string": "PackedScene" }, + { "name": "west_wall_transform", "type": TYPE_TRANSFORM3D, "usage": west_usage }, + { "name": "east_wall_scene", "type": TYPE_OBJECT, "usage": east_usage, "hint": PROPERTY_HINT_RESOURCE_TYPE, "hint_string": "PackedScene" }, + { "name": "east_wall_transform", "type": TYPE_TRANSFORM3D, "usage": east_usage }, + { "name": "north_wall_scene", "type": TYPE_OBJECT, "usage": north_usage, "hint": PROPERTY_HINT_RESOURCE_TYPE, "hint_string": "PackedScene" }, + { "name": "north_wall_transform", "type": TYPE_TRANSFORM3D, "usage": north_usage }, + { "name": "south_wall_scene", "type": TYPE_OBJECT, "usage": south_usage, "hint": PROPERTY_HINT_RESOURCE_TYPE, "hint_string": "PackedScene" }, + { "name": "south_wall_transform", "type": TYPE_TRANSFORM3D, "usage": south_usage }, + ] + +# virtual wall functions +func make_walls(w: int, singular := false) -> void: + for wall in walls: + if w & wall: + if is_instance_valid(walls[wall]): + push_error("wall exists!") + return + var node: Wall = wall_scenes()[wall].instantiate() + node.global_transform = wall_transforms()[wall] + add_child(node) + walls[wall] = node + if singular: + return +func get_wall_mode() -> int: return wall_mode +func get_aabb() -> AABB: return mesh.get_aabb() +# virtual mat functions +func materials_allowed() -> int: return 1|2|4 +func default_mat() -> int: return 1 +func set_mat(p_mat: int) -> void: mat = p_mat; reset_map() +# virtual editor functions +func un_highlight(): reset_map() +func highlight() -> void: mesh.set_surface_override_material(0, MatMap.get_highlight(mat)) +# utility functions +func reset_map(): + mesh.set_surface_override_material(0, MatMap.map[mat]) + diff --git a/classes/resources/block_map.gd b/classes/resources/block_map.gd new file mode 100644 index 0000000..8193a7c --- /dev/null +++ b/classes/resources/block_map.gd @@ -0,0 +1,24 @@ +extends Resource +class_name BlockMap + +const map := [ + preload("res://assets/blocks/platform_booster.tscn"), + preload("res://assets/blocks/platform_corner.tscn"), + preload("res://assets/blocks/platform_depression.tscn"), + preload("res://assets/blocks/platform_diagonal.tscn"), + preload("res://assets/blocks/platform_poke.tscn"), + preload("res://assets/blocks/platform_poke_corner.tscn"), + preload("res://assets/blocks/platform_ramp.tscn"), + preload("res://assets/blocks/platform_square.tscn"), + preload("res://assets/blocks/platform_turn_1x1.tscn"), + preload("res://assets/blocks/platform_turn_2x2.tscn"), + preload("res://assets/blocks/platform_turn_3x3.tscn"), + preload("res://assets/blocks/platform_x.tscn"), + preload("res://assets/blocks/ring_checkpoint.tscn"), + preload("res://assets/blocks/ring_finish.tscn"), + preload("res://assets/blocks/ring_start.tscn"), + preload("res://assets/blocks/tree.tscn") +] + +static func find(s: PackedScene): + return map.find(s) diff --git a/classes/resources/dir.gd b/classes/resources/dir.gd new file mode 100644 index 0000000..6d8b228 --- /dev/null +++ b/classes/resources/dir.gd @@ -0,0 +1,5 @@ +@icon("res://ui/assets/folder.png") +extends FileItem +class_name DirRes + +@export var files: Array[FileItem] diff --git a/classes/resources/file_item.gd b/classes/resources/file_item.gd new file mode 100644 index 0000000..a5f936a --- /dev/null +++ b/classes/resources/file_item.gd @@ -0,0 +1,4 @@ +extends Resource +class_name FileItem + +@export_multiline var description = ""; diff --git a/classes/resources/ghost_data.gd b/classes/resources/ghost_data.gd index ca57af2..1354349 100644 --- a/classes/resources/ghost_data.gd +++ b/classes/resources/ghost_data.gd @@ -60,7 +60,11 @@ static func from_d(d: Dictionary) -> GhostData: ## Saves a basic dictionary to a path. static func _save_file(path: String, data: Dictionary) -> void: + if !DirAccess.dir_exists_absolute(path.get_base_dir()): + DirAccess.make_dir_recursive_absolute(path.get_base_dir()) var file := FileAccess.open_compressed(path, FileAccess.WRITE, FileAccess.COMPRESSION_ZSTD) + if file == null: + push_error(FileAccess.get_open_error()) file.store_buffer(var_to_bytes(data)) ## Loads a basic dictionary out of a file. diff --git a/classes/resources/highlight_mat_map.gd b/classes/resources/highlight_mat_map.gd new file mode 100644 index 0000000..ce64a5b --- /dev/null +++ b/classes/resources/highlight_mat_map.gd @@ -0,0 +1,14 @@ +extends Resource +class_name MatMap + +static func get_highlight(m_id: int) -> BaseMaterial3D: + return load("%s_highlight.%s" % [map[m_id].resource_path.get_basename(), map[m_id].resource_path.get_extension()]) + +const map := { + 1: preload("res://assets/mats/platform.material"), + 2: preload("res://assets/mats/road.tres"), + 4: preload("res://assets/mats/grass.tres"), + 8: preload("res://assets/mats/ring_checkpoint.tres"), + 16: preload("res://assets/mats/ring_finish.tres"), + 32: preload("res://assets/mats/ring_start.tres") +} diff --git a/classes/resources/link.gd b/classes/resources/link.gd new file mode 100644 index 0000000..e2f1d9f --- /dev/null +++ b/classes/resources/link.gd @@ -0,0 +1,42 @@ +@tool +#@icon("res://ui/assets/block.png") +class_name WeakLink +extends FileItem + +var scene: PackedScene: + set(s): + scene = s; notify_property_list_changed() +var material: int = 0: + set(m): material = m; notify_property_list_changed() +var material_color: Color +var texture: Texture2D: + set(t): texture = t; notify_property_list_changed() +enum Type { Scene, Material, Texture } +var type: Type: + get: + if scene != null: + return Type.Scene + elif material != 0: + return Type.Material + elif texture != null: + return Type.Texture + @warning_ignore("assert_always_false") + assert(false, "no resource available") + return Type.Scene # smh + +func _get_property_list() -> Array: + var unset := not scene and not material and not texture + return [ + { "name": "scene", "type": TYPE_OBJECT, "usage": PROPERTY_USAGE_DEFAULT if unset || scene != null else PROPERTY_USAGE_NO_EDITOR, "hint": PROPERTY_HINT_RESOURCE_TYPE, "hint_string": "PackedScene" }, + { "name": "material", "type": TYPE_INT, "usage": PROPERTY_USAGE_DEFAULT if unset || material != null else PROPERTY_USAGE_NO_EDITOR, "hint": PROPERTY_HINT_LAYERS_2D_RENDER }, + { "name": "material_color", "type": TYPE_COLOR, "usage": PROPERTY_USAGE_DEFAULT if material != null else PROPERTY_USAGE_NO_EDITOR, "hint": PROPERTY_HINT_RESOURCE_TYPE }, + { "name": "texture", "type": TYPE_OBJECT, "usage": PROPERTY_USAGE_DEFAULT if unset || texture != null else PROPERTY_USAGE_NO_EDITOR, "hint": PROPERTY_HINT_RESOURCE_TYPE, "hint_string": "Texture2D" }, + ] + +func hash_s() -> PackedByteArray: + var item: PackedByteArray + match type: + Type.Scene: item = var_to_str(scene._bundled).to_ascii_buffer() + Type.Material: item = [material] + Type.Texture: item = texture.get_image().get_data() + return Thumbnail.hash_b(item) diff --git a/classes/resources/thumbnail.gd b/classes/resources/thumbnail.gd new file mode 100644 index 0000000..5e470da --- /dev/null +++ b/classes/resources/thumbnail.gd @@ -0,0 +1,56 @@ +extends Object +class_name Thumbnail + +@warning_ignore("shadowed_global_identifier") +static func _load(p: String, hash: PackedByteArray, error_if_hash_mismatch := true) -> Image: + if FileAccess.file_exists(p): + var f := FileAccess.open(p, FileAccess.READ) + var img := Image.new() + var buf := f.get_buffer(f.get_length()) + if buf: + var dict: Dictionary = bytes_to_var(buf) + var e := img.load_png_from_buffer(dict.b) + if e != OK: + push_error("error: ", e) + return null + if dict.h != hash: + if error_if_hash_mismatch: + push_error("error loading thumbnail %s: hash (thumbnail hash) %s != (file hash) %s" % [p, dict.h.hex_encode(), hash.hex_encode()]) + return null + return img + return null + +static func hash_f(p: String) -> PackedByteArray: + var file := FileAccess.open(p, FileAccess.READ) + return hash_b(file.get_buffer(file.get_length())) + +static func hash_b(b: PackedByteArray) -> PackedByteArray: + var h := HashingContext.new() + h.start(HashingContext.HASH_SHA1) + h.update(b) + return h.finish() + +static func create_thumb(parent: Node, node: Node3D, size := Vector2i(64, 64), world := World3D.new()) -> Image: + var port := SubViewport.new() + port.size = size + port.msaa_3d = Viewport.MSAA_4X + port.screen_space_aa = Viewport.SCREEN_SPACE_AA_FXAA + port.own_world_3d = true + port.world_3d = world + parent.add_child(port) + port.add_child(node) + port.render_target_update_mode = SubViewport.UPDATE_ONCE + await RenderingServer.frame_post_draw + var img: Image = port.get_texture().get_image() + port.queue_free() + return img + +@warning_ignore("shadowed_global_identifier") +static func save(img: Image, p: String, hash: PackedByteArray) -> Error: + if !DirAccess.dir_exists_absolute(p.get_base_dir()): + DirAccess.make_dir_recursive_absolute(p.get_base_dir()) + var file := FileAccess.open(p, FileAccess.WRITE) + if file == null: + return FileAccess.get_open_error() + file.store_buffer(var_to_bytes({ b = img.save_png_to_buffer(), h = hash })) + return OK diff --git a/classes/resources/track.gd b/classes/resources/track.gd new file mode 100644 index 0000000..cf41dbb --- /dev/null +++ b/classes/resources/track.gd @@ -0,0 +1,106 @@ +extends Resource +class_name TrackResource +@export_group("Sun position") +## Sun x rotation +@export_range(-360, 360) var sun_x := -90 +## Sun y rotation ( its a game, the sun rotates around us ) +@export_range(-360, 360) var sun_y := 0 +@export_group("", "") +## The height of the overview cam +@export var overview_height := 300.0 +## The name of this track +@export var name: String = "": + set(n): + if name != n: + name = n + name_changed.emit(name) +## Offset the entire track +@export var offset := Vector3.UP +@export_group("Race") +## Num laps, 1 = go to finish and done +@export var laps := 1 + +var builtin := false # i could (should) use class overrides and stuff but im tired + +signal name_changed(name: String) +signal saved + +## should look something like: +## [codeblock] +## [ +## TrackObject { +## scene: "res://assets/blocks/platform.tscn", +## transform: Transform3D(0, 0, 1, 0), +## material: "platform", +## ...more fields i come up with +## } +## ] +## [/codeblock] +var blocks: Array[TrackObject] + +func _init(p_blocks: Array[TrackObject]) -> void: + blocks = p_blocks + +static func from_d(d: Dictionary) -> TrackResource: + var blocs: Array[TrackObject] = [] + for block in d.b: + blocs.append(TrackObject.from_d(block)) + var obj := TrackResource.new(blocs) + obj.sun_x = d.x + obj.sun_y = d.y + obj.overview_height = d.h + obj.name = d.n + obj.offset = d.o + obj.laps = d.l + return obj + +## Creates a [TrackResource] from a file +static func _load(path: String) -> TrackResource: + var res := GhostData._load_file(path) + if res.is_empty(): + return null + return TrackResource.from_d(res) + +func to_d() -> Dictionary: + var b: Array[Dictionary] = [] # i know map() exists, but it didnt work + for i in blocks: + b.append(i.exprt()) + return { + x = sun_x, + y = sun_y, + h = overview_height, + n = name, + o = offset, + l = laps, + b = b + } + +func save(path: String) -> void: + if builtin: + BuiltinTrackSelect.store_all() + else: + GhostData._save_file(path, to_d()) + saved.emit() + +func get_aabb() -> AABB: + var box := AABB() + for block in blocks: + if block.live_node: + box = box.merge(block.live_node.get_aabb()) + return box + +func dup() -> TrackResource: + var blocks_dup: Array[TrackObject] = [] + for block in blocks: + blocks_dup.append(block.dup()) + var o := TrackResource.new(blocks_dup) + o.sun_x = sun_x + o.sun_y = sun_y + o.overview_height = overview_height + o.name = name + o.offset = offset + o.laps = laps + return o + +func bytes() -> PackedByteArray: + return var_to_bytes(to_d()) diff --git a/classes/resources/track_obj.gd b/classes/resources/track_obj.gd new file mode 100644 index 0000000..eed57a7 --- /dev/null +++ b/classes/resources/track_obj.gd @@ -0,0 +1,79 @@ +extends Resource +class_name TrackObject + +var base_scene: int = -1 +var live_node: Block +var material: int +var walls: int +var transform: Transform3D +var link: WeakLink + +func _init(p_base: int, p_live: Node, p_link: WeakLink) -> void: + link = p_link + base_scene = p_base + set_live(p_live) + +func exprt() -> Dictionary: + save() + return { + m = material, + b = base_scene, + t = transform, + w = walls, + } + +static func from_d(d: Dictionary) -> TrackObject: + var o := TrackObject.new(d.b, null, null) + o.material = d.get("m", 0) + o.transform = d.t + o.walls = d.w + return o + +func save() -> void: + if is_instance_valid(live_node): + transform = live_node.transform + walls = live_node.has_walls() + material = live_node.mat + +func delete_live() -> void: + save() + live_node = null + +## [param p_live] may or may not be in the tree +func set_live(p_live: Block): + live_node = p_live + # we dont need these: this information should be transfered to the live node. + # but i pass around my tracks too much, and build them, that this will be a problem. + # material = null + # transform = Transform3D() + +## @constant +func create(is_editor := false) -> Node3D: + var node: Block = BlockMap.map[base_scene].instantiate() + node.editor = is_editor + node.global_transform = transform + node.ready.connect(node.make_walls.bind(walls)) + if material != 0: + node.ready.connect(node.set_mat.bind(material)) + return node + +## a more efficient [code]TrackObject.from_d(obj.exprt())[/code]. +func dup() -> TrackObject: + var tobj := TrackObject.new(base_scene, null, link) + save() + tobj.transform = transform + tobj.walls = walls + tobj.material = material + return tobj + +func name() -> String: + if link: + return link.resource_name + if is_instance_valid(live_node): + return live_node.name + if base_scene != -1: + return BlockMap.map[base_scene].resource_path.get_file().get_basename() + return "unnamed" + +func _to_string() -> String: + return "TrackObject<%s>" % name() diff --git a/classes/start.gd b/classes/start.gd index 4fca566..13ecb2d 100644 --- a/classes/start.gd +++ b/classes/start.gd @@ -1,4 +1,8 @@ -extends PathFollow3D +extends Block class_name Start -@export var needs_collision := true
\ No newline at end of file +@export var mesh: MeshInstance3D + +func un_highlight(): mesh.set_surface_override_material(0, MatMap.map[mat]) +func highlight() -> void: mesh.set_surface_override_material(0, MatMap.get_highlight(mat)) +func default_mat(): return 32 diff --git a/classes/track.gd b/classes/track.gd deleted file mode 100644 index 2e39193..0000000 --- a/classes/track.gd +++ /dev/null @@ -1,60 +0,0 @@ -extends Resource -class_name TrackResource -@export_group("Road") -## Width of road -@export var track_width := 40.0 -## Support base width -@export var lower_support_width := 25.0 -## Height of supports -@export var support_height := 8.0 -## Track curve -@export var track: Curve3D = null -@export_subgroup("Barriers") -## Left barrier? (does not change collisions). see also [member right_barrier] -@export var left_barrier := true -## Right barrier? (does not change collisions). see also [member left_barrier] -@export var right_barrier := true -## Barrier width -@export var barrier_width := 4.0 -@export_group("Sun position") -## Sun x rotation -@export_range(-360, 360) var sun_x := -90 -## Sun y rotation ( its a game, the sun rotates around us ) -@export_range(-360, 360) var sun_y := 0 -@export_group("", "") -## The height of the overview cam -@export var overview_height := 300.0 -## The name of this track -@export var name: String = "" -## Does the track loop around? -@export var is_loop := true -## Offset the entire track -@export var offset := Vector3.UP -@export_group("Race") -## Num laps, 1 = go to finish and done -@export var laps := 1 -@export_subgroup("Checkpoints") -## Place the path offsets of checkpoint locations in this array -@export var checkpoints: Array[float] = [] -## The checkpoint scene -@export var checkpoint_scene: PackedScene = preload("res://scenes/ring_checkpoint.tscn") -## How much to scale each checkpoint -@export var checkpoint_scale := Vector3.ONE -@export var checkpoint_needs_collision := false -@export_subgroup("Finish") -## Finish (or lap cp) location in path offset -@export var finish_location: float = 0.0 -## The finish scene -@export var finish_scene: PackedScene = preload("res://scenes/ring_finish.tscn") -## How much to scale the finish -@export var finish_scale := Vector3.ONE -@export var finish_needs_collision := false -@export_subgroup("Start") -## Start location in path offset (unused if [member laps] > 1) -@export var start_location: float = 0.0 -## Start scene (disregarded if [member laps] > 1) -@export var start_scene: PackedScene = preload("res://scenes/ring_start.tscn") -## How much to scale the start (see above) -@export var start_scale := Vector3.ONE -@export var start_needs_collision := false - diff --git a/classes/wall.gd b/classes/wall.gd new file mode 100644 index 0000000..592e917 --- /dev/null +++ b/classes/wall.gd @@ -0,0 +1,4 @@ +extends StaticBody3D +class_name Wall + +@export var mesh: MeshInstance3D diff --git a/default_env.tres b/default_env.tres index 747d8f4..26b6890 100644 --- a/default_env.tres +++ b/default_env.tres @@ -4,6 +4,7 @@ [sub_resource type="Sky" id="Sky_r1yiu"] sky_material = ExtResource("1_jcf87") +radiance_size = 1 [resource] background_mode = 2 @@ -23,4 +24,4 @@ fog_height = -638.24 fog_height_density = 0.8369 adjustment_enabled = true adjustment_contrast = 1.1 -adjustment_saturation = 1.1 +adjustment_saturation = 1.01 diff --git a/engine.gdextension b/engine.gdextension index 8ab3a9c..0708a6f 100644 --- a/engine.gdextension +++ b/engine.gdextension @@ -1,5 +1,6 @@ [configuration] -entry_symbol = "gdextension_rust_init" +entry_symbol = "gdext_rust_init" [libraries] -linux.64 = "res://enginesound/target/release/libenginesound.so" +linux.release.x86_64 = "res://addons/@bendn/enginesound/libenginesound.so" +linux.debug.x86_64 = "res://addons/@bendn/enginesound/libenginesound.so" diff --git a/enginesound b/enginesound deleted file mode 160000 -Subproject 4c6f5674627a1a13d676cbef77abfc1ebfedbdb diff --git a/export_presets.cfg b/export_presets.cfg index ca67d22..3ebfebf 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -6,7 +6,7 @@ runnable=true dedicated_server=false custom_features="release" export_filter="all_resources" -include_filter="" +include_filter="*.cfg" exclude_filter="" export_path="./tracer.x86_64" encryption_include_filters="" @@ -42,7 +42,7 @@ runnable=true dedicated_server=false custom_features="" export_filter="all_resources" -include_filter="" +include_filter="*.cfg" exclude_filter="" export_path="" encryption_include_filters="" @@ -140,7 +140,7 @@ runnable=true dedicated_server=false custom_features="" export_filter="all_resources" -include_filter="" +include_filter="*.cfg" exclude_filter="" export_path="" encryption_include_filters="" diff --git a/gizmo_test.tscn b/gizmo_test.tscn new file mode 100644 index 0000000..b149ef3 --- /dev/null +++ b/gizmo_test.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=6 format=3] + +[ext_resource type="PackedScene" uid="uid://cd4a5y0hi58ks" path="res://scenes/floor.tscn" id="1_1kys7"] +[ext_resource type="PackedScene" uid="uid://crc02shshycvq" path="res://scenes/sun.tscn" id="2_qpxj4"] +[ext_resource type="Environment" uid="uid://biwshm46yl62v" path="res://default_env.tres" id="3_2dhxm"] +[ext_resource type="CameraAttributesPractical" uid="uid://nhsovwj5hjip" path="res://cam.tres" id="4_qhhmo"] +[ext_resource type="PackedScene" uid="uid://d3enn4l4tqhe8" path="res://ui/editor/gizmos/translate/translate.tscn" id="5_rrfeo"] + +[node name="Node3D" type="Node3D"] + +[node name="Ground" parent="." instance=ExtResource("1_1kys7")] + +[node name="Sun" parent="." instance=ExtResource("2_qpxj4")] + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource("3_2dhxm") +camera_attributes = ExtResource("4_qhhmo") + +[node name="CSGBox3D" type="CSGBox3D" parent="."] +transform = Transform3D(-0.135715, 0.93677, 0.322556, 0, 0.325568, -0.945519, -0.990748, -0.128321, -0.0441846, 0, 3.95683, 0) +size = Vector3(10, 10, 10) + +[node name="RemoteTransform3D" type="RemoteTransform3D" parent="CSGBox3D"] +remote_path = NodePath("../../translate") +update_rotation = false +update_scale = false + +[node name="translate" parent="." instance=ExtResource("5_rrfeo")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.95683, 0) +path = NodePath("../CSGBox3D") + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(0.877583, -0.229849, 0.420735, 0, 0.877583, 0.479426, -0.479426, -0.420736, 0.770151, 31.3445, 35.7169, 57.3757) @@ -1,5 +1,14 @@ extends Node +class_name Utils var playing: TrackResource +var editing: TrackResource var ghost: GhostData -const SAVES := "user://%s.ghost" +const SAVES := "user://ghosts/%s.ghost" +const TRACKS := "user://player data/tracks/%s.track" +const THUMBS := "user://thumbs/%s.thumb" +const DEFAULT_EDITOR_LAYER := 0x80000000 +const GIZMO_LAYER := 0x40000000 +const GIZMO_LAYER_I := 31 +const SNAP := Vector3(10, 2.5, 10) +var builtin_tracks: Array[TrackResource] = [] @@ -1,8 +1,13 @@ [ { - "name": "@bendn/remap", - "tarball": "https://registry.npmjs.org/@bendn/remap/-/remap-5.0.8.tgz", - "version": "5.0.8" + "name": "@bendn/enginesound", + "tarball": "https://registry.npmjs.org/@bendn/enginesound/-/enginesound-1.0.0.tgz", + "version": "1.0.0" + }, + { + "name": "@bendn/gizmo3d", + "tarball": "https://registry.npmjs.org/@bendn/gizmo3d/-/gizmo3d-1.0.4.tgz", + "version": "1.0.4" }, { "name": "@bendn/splitter", diff --git a/godot.package b/godot.package index 281549b..c14e444 100644 --- a/godot.package +++ b/godot.package @@ -1,3 +1,4 @@ [packages] -"@bendn/remap" = '5.0.8' +"@bendn/gizmo3d" = '1.0.4' "@bendn/splitter" = '1.0.6' +"@bendn/enginesound" = '1.0.0' diff --git a/init_classes.py b/init_classes.py index 29d1487..1010c12 100644 --- a/init_classes.py +++ b/init_classes.py @@ -7,7 +7,7 @@ classes = [] # { file, class name, base class name } for file in glob("**/*.gd", recursive=True): with open(file, "r") as f: - text = f"{f.readline()}\n{f.readline()}\n{f.readline()}" # 3 lines: extend, class, tool + text = f"{f.readline()}\n{f.readline()}\n{f.readline()}\n{f.readline()}" # 4 lines: extend, class, tool, icon m = find_class.search(text) if not m: continue diff --git a/project.godot b/project.godot index 47ca854..bce33e3 100644 --- a/project.godot +++ b/project.godot @@ -14,7 +14,7 @@ config/name="tracer" run/main_scene="res://start.tscn" config/use_custom_user_dir=true config/custom_user_dir_name="tracer" -config/features=PackedStringArray("4.0") +config/features=PackedStringArray("4.1") [autoload] @@ -24,17 +24,28 @@ Globals="*res://globals.gd" window/size/viewport_width=1920 window/size/viewport_height=1080 -window/vsync/vsync_mode=0 +window/subwindows/embed_subwindows=false window/stretch/aspect="ignore" +window/vsync/vsync_mode=0 +mouse_cursor/tooltip_position_offset=Vector2(25, 25) [editor] movie_writer/mix_rate=24000 movie_writer/mjpeg_quality=0.8 -movie_writer/movie_file="/home/bendn/Documents/tracer/movie.avi" +movie_writer/movie_file="/home/bendn/Documents/tracer/movie/movie.png" movie_writer/disable_vsync=true movie_writer/fps=15 +[editor_plugins] + +enabled=PackedStringArray() + +[gui] + +theme/custom="res://ui/theme.tres" +theme/custom_font="res://ui/ubuntu.tres" + [importer_defaults] texture={ @@ -139,26 +150,50 @@ click={ "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) ] } +ui_pan={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":3,"pressed":false,"double_click":false,"script":null) +] +} +rotate_cw={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"echo":false,"script":null) +] +} +rotate_ccw={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":82,"echo":false,"script":null) +] +} [layer_names] +2d_render/layer_1="platform" +2d_render/layer_2="road" +2d_render/layer_3="grass" +2d_render/layer_4="checkpoint" +2d_render/layer_5="finish" +2d_render/layer_6="start" 3d_physics/layer_1="world" 3d_physics/layer_2="player" +3d_physics/layer_31="gizmo" +3d_physics/layer_32="editor" [physics] 3d/run_on_separate_thread=true +common/enable_object_picking=false [rendering] occlusion_culling/bvh_build_quality=0 +textures/canvas_textures/default_texture_filter=0 renderer/rendering_method="gl_compatibility" lights_and_shadows/directional_shadow/size=2048 lights_and_shadows/directional_shadow/size.mobile=1024 lights_and_shadows/directional_shadow/soft_shadow_filter_quality=1 reflections/sky_reflections/ggx_samples=16 reflections/sky_reflections/ggx_samples.mobile=8 -anti_aliasing/quality/msaa_2d=2 -anti_aliasing/quality/msaa_3d=2 +anti_aliasing/quality/msaa_2d=1 +anti_aliasing/quality/msaa_3d=1 anti_aliasing/quality/screen_space_aa=1 -textures/canvas_textures/default_texture_filter=0 @@ -17,8 +17,6 @@ var current_lap := 0 var playing := false var timer := GameTimer.new() -const SaveLoad := preload("res://addons/@bendn/remap/private/SaveLoadUtils.gd") - signal next_lap signal created_car(car: Car) signal created_ghost(ghost: GhostCar) @@ -42,18 +40,18 @@ func mkghost() -> void: func reset_ghost() -> void: if best_time_data: ghost.update(best_time_data.load_snap(0), -1) - ghost.engine.volume = .1 + ghost.engine.volume = .2 else: ghost.engine.volume = 0 - ghost.global_position = track.start_pos + Vector3(0, 2, 0) - (car.global_transform.basis.z * 2) - ghost.rotation = track.start_rot + Vector3(0, PI, -PI/2) + ghost.global_position = track.start_transf.origin + Vector3(0, 1, 0) + ghost.rotation = track.start_transf.basis.get_euler()# + Vector3(0, PI, -PI/2) ghost.reset() ghost.hide() func reset_car() -> void: await get_tree().physics_frame - car.rotation = track.start_rot + Vector3(0, PI, -PI/2) - car.global_position = track.start_pos + Vector3(0, 2, 0) - (car.global_transform.basis.z * 2) # bump forward a teensy bit + car.rotation = track.start_transf.basis.get_euler()# + Vector3(0, PI, -PI/2) + car.global_position = track.start_transf.origin + Vector3(0, 1, 0) car.linear_velocity = Vector3.ZERO car.angular_velocity = Vector3.ZERO car.current_gear = 0 @@ -70,7 +68,7 @@ func _ready() -> void: track = track_loader_scene.instantiate() track.track = track_res add_child(track) - data = GhostData.new(track_res.checkpoints.size(), track_res.laps) + data = GhostData.new(track.checkpoints.size(), track_res.laps) mkcar() mkghost() connect_checkpoints() @@ -106,18 +104,16 @@ func passed_finish() -> void: return collect(-1) if track_res.laps - 1 == current_lap: - print("finished") playing = false timer.stop() car.reset() if not best_time_data or data.time < best_time_data.time: - print("new pb!") finished.emit(data.time, best_time_data.time if best_time_data else -1.0) data.save(Globals.SAVES % track_res.name) best_time_data = data else: finished.emit(data.time, best_time_data.time) - data = GhostData.new(track_res.checkpoints.size(), track_res.laps) + data = GhostData.new(track.checkpoints.size(), track_res.laps) else: current_lap += 1 next_lap.emit() @@ -127,12 +123,12 @@ func _physics_process(delta: float) -> void: if best_time_data: if best_time_data.snap_count - 1 < Engine.get_physics_frames() - start_frame: if ghost.visible: - print("ran out of snaps, hiding ghost") ghost.hide() + ghost.engine.volume = 0 return ghost.update(best_time_data.load_snap(Engine.get_physics_frames() - start_frame), delta) ghost.visible = (ghost.global_position.distance_squared_to(car.global_position) > 10) - ghost.engine.volume = lerpf(ghost.engine.volume, .7, delta) if (ghost.global_position.distance_squared_to(car.global_position) > 20) else lerpf(ghost.engine.volume, .2, delta * 3) + ghost.engine.volume = lerpf(ghost.engine.volume, .7, delta * 3) if (ghost.global_position.distance_squared_to(car.global_position) > 20) else lerpf(ghost.engine.volume, .2, delta * 3) func collect(cp: int) -> void: if cp != -1: diff --git a/scenes/floor.gd b/scenes/floor.gd new file mode 100644 index 0000000..e8ef1a2 --- /dev/null +++ b/scenes/floor.gd @@ -0,0 +1,2 @@ +extends StaticBody3D +class_name Floor diff --git a/scenes/floor.tscn b/scenes/floor.tscn index b000e39..b675204 100644 --- a/scenes/floor.tscn +++ b/scenes/floor.tscn @@ -1,14 +1,25 @@ -[gd_scene load_steps=4 format=3 uid="uid://cd4a5y0hi58ks"] +[gd_scene load_steps=6 format=3 uid="uid://cd4a5y0hi58ks"] -[ext_resource type="Material" uid="uid://bdyn312e6c3ll" path="res://assets/mats/grass.tres" id="1_g7360"] +[ext_resource type="Script" path="res://scenes/floor.gd" id="1_yker8"] +[ext_resource type="Texture2D" uid="uid://dyk71hogwv01g" path="res://assets/textures/grass.png" id="2_aug46"] [sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_tkhh8"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6fb2t"] +albedo_texture = ExtResource("2_aug46") +emission = Color(0, 0.0745098, 0.219608, 1) +emission_energy_multiplier = 16.0 +ao_light_affect = 0.33 +uv1_scale = Vector3(100, 100, 100) +texture_filter = 0 + [sub_resource type="PlaneMesh" id="PlaneMesh_ta0cd"] -material = ExtResource("1_g7360") +material = SubResource("StandardMaterial3D_6fb2t") size = Vector2(5000, 5000) [node name="Ground" type="StaticBody3D"] +collision_mask = 0 +script = ExtResource("1_yker8") metadata/_edit_lock_ = true metadata/_edit_group_ = true diff --git a/scenes/ghost_watcher.gd b/scenes/ghost_watcher.gd index 3df6d7b..55f9f67 100644 --- a/scenes/ghost_watcher.gd +++ b/scenes/ghost_watcher.gd @@ -30,7 +30,7 @@ func _ready() -> void: timer.start() hud = hud_scene.instantiate() - hud.assigned.emit(ghost, ghost, timer, track_loader) + hud.assigned.emit(ghost, timer, track_loader) add_child(hud) next_lap.connect(hud.laps.increment) diff --git a/scenes/race_high.tscn b/scenes/race_high.tscn index 64b8fcc..9e7e17e 100644 --- a/scenes/race_high.tscn +++ b/scenes/race_high.tscn @@ -5,7 +5,7 @@ [ext_resource type="PackedScene" uid="uid://c157wew5y33bo" path="res://assets/cars/kenney_sedan/sedan.tscn" id="4_0jpx1"] [ext_resource type="PackedScene" uid="uid://cr1mgp6bgxh64" path="res://ui/finish.tscn" id="4_c1jl5"] [ext_resource type="PackedScene" uid="uid://clpo7rt0vkudy" path="res://ui/countdown.tscn" id="4_llox4"] -[ext_resource type="PackedScene" uid="uid://clw61td2wh84w" path="res://scenes/track.tscn" id="5_8mqbt"] +[ext_resource type="PackedScene" uid="uid://ep3a5q3nkb7m" path="res://scenes/track.tscn" id="5_8mqbt"] [ext_resource type="PackedScene" uid="uid://u8m366adrlqr" path="res://assets/cars/kenney_sedan/ghost.tscn" id="6_f37c2"] [node name="race_high" type="Node"] diff --git a/scenes/race_highlevel.gd b/scenes/race_highlevel.gd index c9e44aa..2524f11 100644 --- a/scenes/race_highlevel.gd +++ b/scenes/race_highlevel.gd @@ -29,7 +29,7 @@ func add_player() -> void: v.viewport.add_child(c_cam) v.viewport.add_child(i_cam) var hud = hud_scene.instantiate() - hud.assigned.emit(race.car, race.ghost, race.timer, race.track) + hud.assigned.emit(race.car, race.timer, race.track) v.add_child(hud) race.split.connect(hud.splits.update) race.next_lap.connect(hud.laps.increment) @@ -53,3 +53,4 @@ func count_in(): var countdown := countdown_scene.instantiate() huds[0].add_child(countdown) countdown.finished.connect(race.start) + countdown.finished.connect(countdown.queue_free) diff --git a/scenes/ring_checkpoint.gd b/scenes/ring_checkpoint.gd deleted file mode 100644 index 7f67fc9..0000000 --- a/scenes/ring_checkpoint.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends CheckPoint - -func _ready() -> void: - if not needs_collision: - $Ring/Collision.queue_free()
\ No newline at end of file diff --git a/scenes/ring_checkpoint.tscn b/scenes/ring_checkpoint.tscn deleted file mode 100644 index afd0d47..0000000 --- a/scenes/ring_checkpoint.tscn +++ /dev/null @@ -1,39 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://d4a3e1w62m3ck"] - -[ext_resource type="Script" path="res://scenes/ring_checkpoint.gd" id="1_cmmpp"] -[ext_resource type="TorusMesh" uid="uid://dlbpusye3e33p" path="res://assets/meshes/checkpoint.tres" id="2_xys6y"] - -[sub_resource type="TorusMesh" id="TorusMesh_mi087"] -inner_radius = 25.0 -outer_radius = 40.0 -rings = 10 -ring_segments = 4 - -[sub_resource type="BoxShape3D" id="BoxShape3D_k77jm"] -size = Vector3(52, 52, 3) - -[node name="Checkpoint" type="PathFollow3D"] -transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) -script = ExtResource("1_cmmpp") - -[node name="Ring" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) -visibility_range_end_margin = 1000.0 -visibility_range_fade_mode = 1 -mesh = ExtResource("2_xys6y") - -[node name="Collision" type="CSGMesh3D" parent="Ring"] -transform = Transform3D(1, 0, 0, 0, 1, -8.35187e-23, 0, -8.35187e-23, 1, 0, 0, 0) -visible = false -use_collision = true -mesh = SubResource("TorusMesh_mi087") - -[node name="PlayerDetector" type="Area3D" parent="."] -collision_layer = 0 -collision_mask = 2 -monitorable = false - -[node name="Area" type="CollisionShape3D" parent="PlayerDetector"] -shape = SubResource("BoxShape3D_k77jm") - -[connection signal="body_entered" from="PlayerDetector" to="." method="enter" unbinds=1] diff --git a/scenes/ring_collision.shape b/scenes/ring_collision.shape Binary files differnew file mode 100644 index 0000000..e6b6819 --- /dev/null +++ b/scenes/ring_collision.shape diff --git a/scenes/ring_finish.gd b/scenes/ring_finish.gd deleted file mode 100644 index 05e36aa..0000000 --- a/scenes/ring_finish.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends Finish - -func _ready() -> void: - if not needs_collision: - $Ring/Collision.queue_free() diff --git a/scenes/ring_finish.tscn b/scenes/ring_finish.tscn deleted file mode 100644 index bcefdb6..0000000 --- a/scenes/ring_finish.tscn +++ /dev/null @@ -1,36 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://t8ywjcjgw322"] - -[ext_resource type="Script" path="res://scenes/ring_finish.gd" id="1_oj823"] -[ext_resource type="TorusMesh" uid="uid://bc8hyk8kfo4q1" path="res://assets/meshes/ring_finish.tres" id="2_hvrqd"] - -[sub_resource type="TorusMesh" id="TorusMesh_afdq1"] -inner_radius = 25.0 -outer_radius = 40.0 -rings = 10 -ring_segments = 4 - -[sub_resource type="BoxShape3D" id="BoxShape3D_bu8o6"] -size = Vector3(52, 52, 3) - -[node name="RingFinish" type="PathFollow3D"] -script = ExtResource("1_oj823") - -[node name="Ring" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) -mesh = ExtResource("2_hvrqd") - -[node name="Collision" type="CSGMesh3D" parent="Ring"] -transform = Transform3D(1, 0, 0, 0, 1, -8.35187e-23, 0, -8.35187e-23, 1, 0, 0, 0) -visible = false -use_collision = true -mesh = SubResource("TorusMesh_afdq1") - -[node name="PlayerDetector" type="Area3D" parent="."] -collision_layer = 0 -collision_mask = 2 -monitorable = false - -[node name="Area" type="CollisionShape3D" parent="PlayerDetector"] -shape = SubResource("BoxShape3D_bu8o6") - -[connection signal="body_entered" from="PlayerDetector" to="." method="enter" unbinds=1] diff --git a/scenes/ring_start.gd b/scenes/ring_start.gd deleted file mode 100644 index a841f4d..0000000 --- a/scenes/ring_start.gd +++ /dev/null @@ -1,5 +0,0 @@ -extends Start - -func _ready() -> void: - if not needs_collision: - $Ring/Collision.queue_free() diff --git a/scenes/ring_start.tscn b/scenes/ring_start.tscn deleted file mode 100644 index 6320c32..0000000 --- a/scenes/ring_start.tscn +++ /dev/null @@ -1,23 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://bsftidvcmsha0"] - -[ext_resource type="TorusMesh" uid="uid://cwiqggu3nwbyh" path="res://assets/meshes/ring_start.tres" id="1_ksild"] -[ext_resource type="Script" path="res://scenes/ring_start.gd" id="1_kvj6d"] - -[sub_resource type="TorusMesh" id="TorusMesh_e4fn4"] -inner_radius = 25.0 -outer_radius = 40.0 -rings = 10 -ring_segments = 4 - -[node name="ring_start" type="PathFollow3D"] -script = ExtResource("1_kvj6d") - -[node name="Ring" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) -mesh = ExtResource("1_ksild") - -[node name="Collision" type="CSGMesh3D" parent="Ring"] -transform = Transform3D(1, 0, 0, 0, 1, -8.35187e-23, 0, -8.35187e-23, 1, 0, 0, 0) -visible = false -use_collision = true -mesh = SubResource("TorusMesh_e4fn4") diff --git a/scenes/sun.tscn b/scenes/sun.tscn new file mode 100644 index 0000000..094d085 --- /dev/null +++ b/scenes/sun.tscn @@ -0,0 +1,10 @@ +[gd_scene format=3 uid="uid://crc02shshycvq"] + +[node name="Sun" type="DirectionalLight3D"] +transform = Transform3D(1, 4.49013e-09, 0, -2.8862e-09, 0.642788, 0.766044, 3.43964e-09, -0.766044, 0.642788, 0, 0, 0) +light_energy = 1.083 +light_volumetric_fog_energy = 0.0 +shadow_enabled = true +shadow_blur = 1.5 +directional_shadow_mode = 0 +directional_shadow_max_distance = 300.0 diff --git a/scenes/track-base.gd b/scenes/track-base.gd index 7ea90f0..0aec1f1 100644 --- a/scenes/track-base.gd +++ b/scenes/track-base.gd @@ -1,122 +1,31 @@ -@tool -extends Path3D +extends Node3D class_name TrackLoader -@export_group("Track") -@export var track: TrackResource = null: - set(new_track): - if track != new_track: - track = new_track - is_dirty = true - call_deferred("_update") -@export var force_update: bool = false: - set(update): - if update == true && update != force_update: - force_update = false - is_dirty = true - call_deferred("_update") - -@onready var road := $Road as CSGPolygon3D -@onready var rail_l := $WallL as CSGPolygon3D -@onready var rail_r := $WallR as CSGPolygon3D -@onready var collision := $CollisionShape as CSGPolygon3D +@export var track: TrackResource = null @onready var sun := $Sun as DirectionalLight3D @onready var ground := $Ground as StaticBody3D var checkpoints: Array[CheckPoint] var finish: Finish -var start_rot: Vector3 -var start_pos: Vector3 -var is_dirty := true - -func vec(x := 0.0, y := 0.0) -> Vector2: - return Vector2(x, y) - -func _update(): - if !is_dirty or !track or !track.track: - # curve = null # editor freezes with this, idk why - return - curve = track.track - curve.set_point_tilt(0, PI/2) - curve.set_point_tilt(curve.get_point_count() - 1, 0.0) - - sun.rotation_degrees.x = (track.sun_x) - sun.rotation_degrees.y = (track.sun_y) - - - # update our track - var thw := track.track_width * 0.5 # track half width - road.polygon = PackedVector2Array([vec(-thw), vec(-thw), vec(thw), vec(thw)]) - - # update our rails - var outer := thw + track.barrier_width - rail_l.polygon = PackedVector2Array([ - vec(outer, 2), - vec(thw, 2), # widen - vec(thw), # widen - vec(outer) - ]) - rail_l.visible = track.left_barrier - rail_r.polygon = PackedVector2Array([ - vec(-outer, 2), - vec(-thw, 2), # widen - vec(-thw), # widen - vec(-outer) - ]) - rail_r.visible = track.right_barrier +var start_transf: Transform3D +var editor := false - # update our collision - collision.polygon = PackedVector2Array([ - vec(-thw), # widen - vec(thw), # widen - vec(thw, 5.0), # widen - vec(outer, 5.0), - vec(outer, -1.0), - vec(-outer, -1.0), - vec(-outer, 5.0), - vec(-thw, 5.0), # widen - ]) - # objects - for child in get_children(): - if child is PathFollow3D: - child.queue_free() - - for i in len(track.checkpoints): - var c: CheckPoint = make_follower(track.checkpoint_scene, track.checkpoints[i], track.checkpoint_scale, track.checkpoint_needs_collision) - if not Engine.is_editor_hint(): # godot tools are wierd - checkpoints.append(c) - - finish = make_follower(track.finish_scene, track.finish_location, track.finish_scale, track.finish_needs_collision) - if track.laps == 1: - var s: Start = make_follower(track.start_scene, track.start_location, track.start_scale, track.start_needs_collision) - start_pos = s.global_position - start_rot = s.global_rotation - else: - start_pos = finish.global_position - start_rot = finish.global_rotation - - # loopage - rail_l.path_joined = track.is_loop - rail_r.path_joined = track.is_loop - collision.path_joined = track.is_loop - road.path_joined = track.is_loop - - # offset +func update(): + sun.rotation_degrees.x = track.sun_x + sun.rotation_degrees.y = track.sun_y ground.global_position = track.offset - - is_dirty = false + for block in track.blocks: + var node: Block = block.create(editor) + if editor: + block.set_live(node) + add_child(node) + if not editor: + if node is CheckPoint: + checkpoints.append(node) + elif node is Finish: + finish = node + elif node is Start: + start_transf = block.transform func _ready(): - _update() - -func _on_curve_changed() -> void: - is_dirty = true - call_deferred("_update") - -func make_follower(scene: PackedScene, ratio: float, scl: Vector3, collide: bool) -> PathFollow3D: - var follower: PathFollow3D = scene.instantiate() - follower.needs_collision = collide - add_child(follower) - follower.scale = scl - follower.progress_ratio = ratio # ratio set must be after add_child() - return follower + update() diff --git a/scenes/track.tscn b/scenes/track.tscn index 4c47171..9f4fa7d 100644 --- a/scenes/track.tscn +++ b/scenes/track.tscn @@ -1,94 +1,20 @@ -[gd_scene load_steps=7 format=3 uid="uid://ep3a5q3nkb7m"] +[gd_scene load_steps=6 format=3 uid="uid://ep3a5q3nkb7m"] [ext_resource type="Script" path="res://scenes/track-base.gd" id="1_ke7nx"] -[ext_resource type="Material" uid="uid://be8pta62kxd2j" path="res://assets/mats/road.tres" id="2_2nntu"] -[ext_resource type="Material" path="res://assets/mats/wall.tres" id="5_8gm6o"] +[ext_resource type="PackedScene" uid="uid://crc02shshycvq" path="res://scenes/sun.tscn" id="4_y5lth"] [ext_resource type="PackedScene" uid="uid://cd4a5y0hi58ks" path="res://scenes/floor.tscn" id="7_fidh3"] [ext_resource type="Environment" uid="uid://biwshm46yl62v" path="res://default_env.tres" id="8_2nyv3"] [ext_resource type="CameraAttributesPractical" uid="uid://nhsovwj5hjip" path="res://cam.tres" id="9_6ooo5"] -[node name="TrackLoader" type="Path3D"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00882721, 0, -0.103973) +[node name="TrackLoader" type="Node3D"] script = ExtResource("1_ke7nx") metadata/_edit_group_ = true -[node name="Road" type="CSGPolygon3D" parent="."] -calculate_tangents = false -polygon = PackedVector2Array(-12.5, 0, -12.5, 0, 12.5, 0, 12.5, 0) -mode = 2 -path_node = NodePath("..") -path_interval_type = 0 -path_interval = 1.0 -path_simplify_angle = 2.0 -path_rotation = 2 -path_local = false -path_continuous_u = true -path_u_distance = 0.0 -path_joined = true -material = ExtResource("2_2nntu") - -[node name="WallL" type="CSGPolygon3D" parent="."] -calculate_tangents = false -polygon = PackedVector2Array(14.5, 2, 12.5, 2, 12.5, 0, 14.5, 0) -mode = 2 -path_node = NodePath("..") -path_interval_type = 0 -path_interval = 1.0 -path_simplify_angle = 3.0 -path_rotation = 2 -path_local = false -path_continuous_u = true -path_u_distance = 1.0 -path_joined = true -material = ExtResource("5_8gm6o") - -[node name="WallR" type="CSGPolygon3D" parent="."] -calculate_tangents = false -polygon = PackedVector2Array(-14.5, 2, -12.5, 2, -12.5, 0, -14.5, 0) -mode = 2 -path_node = NodePath("..") -path_interval_type = 0 -path_interval = 1.0 -path_simplify_angle = 3.0 -path_rotation = 2 -path_local = false -path_continuous_u = true -path_u_distance = 1.0 -path_joined = true -material = ExtResource("5_8gm6o") - -[node name="Sun" type="DirectionalLight3D" parent="."] -transform = Transform3D(1, 4.49013e-09, 0, -2.8862e-09, 0.642788, 0.766044, 3.43964e-09, -0.766044, 0.642788, 0, 0, 0) -light_energy = 1.083 -light_volumetric_fog_energy = 0.0 -shadow_enabled = true -shadow_blur = 1.5 -directional_shadow_mode = 0 -directional_shadow_max_distance = 300.0 +[node name="Sun" parent="." instance=ExtResource("4_y5lth")] +transform = Transform3D(0.992546, 0.0211625, 0.120018, 8.60946e-08, -0.984808, 0.173648, 0.121869, -0.172354, -0.977467, 0, 0, 0) [node name="Env" type="WorldEnvironment" parent="."] environment = ExtResource("8_2nyv3") camera_attributes = ExtResource("9_6ooo5") -[node name="CollisionShape" type="CSGPolygon3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.165113, 0) -visible = false -calculate_tangents = false -use_collision = true -collision_mask = 0 -polygon = PackedVector2Array(-12.5, 0, 12.5, 0, 12.5, 5, 14.5, 5, 14.5, -1, -14.5, -1, -14.5, 5, -12.5, 5) -mode = 2 -path_node = NodePath("..") -path_interval_type = 0 -path_interval = 1.0 -path_simplify_angle = 3.0 -path_rotation = 2 -path_local = false -path_continuous_u = true -path_u_distance = 1.0 -path_joined = true - [node name="Ground" parent="." instance=ExtResource("7_fidh3")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00882721, -2, 0.103973) - -[connection signal="curve_changed" from="." to="." method="_on_curve_changed"] @@ -1,15 +1,18 @@ -[gd_scene load_steps=10 format=3 uid="uid://bvfqaoqjsxj73"] +[gd_scene load_steps=9 format=3 uid="uid://co11ood2nmady"] -[ext_resource type="Theme" uid="uid://cru1d7n2ftrfm" path="res://ui/theme.tres" id="1_gm0ws"] +[ext_resource type="Theme" uid="uid://d3ywcokn5ddy8" path="res://ui/theme.tres" id="1_gm0ws"] [ext_resource type="Script" path="res://ui/tracks.gd" id="2_po2ce"] -[ext_resource type="Resource" uid="uid://dwojilpcrv8me" path="res://tracks/multilap_test.tres" id="3_0yjp1"] -[ext_resource type="Resource" path="res://tracks/test.tres" id="4_3xqvr"] -[ext_resource type="PackedScene" uid="uid://dhiei0g5tr74s" path="res://scenes/race_high.tscn" id="5_m5kci"] -[ext_resource type="Resource" path="res://tracks/the fallen tramps.tres" id="5_qwie6"] -[ext_resource type="PackedScene" uid="uid://demunxvqkmtwa" path="res://scenes/ghost_watcher.tscn" id="7_6ph7w"] -[ext_resource type="PackedScene" uid="uid://dfvtugujgcjcw" path="res://ui/track_button.tscn" id="7_pchkj"] +[ext_resource type="Theme" uid="uid://bds815vxta4ma" path="res://ui/editor/bar_button.tres" id="6_e1quy"] +[ext_resource type="Script" path="res://ui/multi_button.gd" id="7_rhu6g"] +[ext_resource type="Script" path="res://ui/editor/import.gd" id="8_1f3ce"] +[ext_resource type="Script" path="res://ui/editor/track_select.gd" id="8_v6p1s"] [ext_resource type="AudioStream" uid="uid://bwiyphl31lwu6" path="res://assets/sounds/music.ogg" id="9_ma7kx"] +[sub_resource type="LabelSettings" id="LabelSettings_8ohli"] +font_size = 24 +outline_size = 12 +outline_color = Color(0, 0.168627, 0.211765, 1) + [node name="start" type="Control"] layout_mode = 3 anchors_preset = 15 @@ -19,7 +22,7 @@ grow_horizontal = 2 grow_vertical = 2 theme = ExtResource("1_gm0ws") -[node name="MarginContainer" type="MarginContainer" parent="."] +[node name="margin" type="MarginContainer" parent="."] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -31,24 +34,76 @@ theme_override_constants/margin_top = 50 theme_override_constants/margin_right = 50 theme_override_constants/margin_bottom = 50 -[node name="TabContainer" type="TabContainer" parent="MarginContainer"] +[node name="tabs" type="TabContainer" parent="margin"] layout_mode = 2 +tab_alignment = 1 -[node name="play" type="VBoxContainer" parent="MarginContainer/TabContainer"] +[node name="play" type="VBoxContainer" parent="margin/tabs"] layout_mode = 2 -[node name="tracks" type="GridContainer" parent="MarginContainer/TabContainer/play"] +[node name="tracks" type="GridContainer" parent="margin/tabs/play"] layout_mode = 2 theme_override_constants/h_separation = 15 theme_override_constants/v_separation = 15 columns = 5 script = ExtResource("2_po2ce") -tracks = Array[Resource("res://classes/track.gd")]([ExtResource("3_0yjp1"), ExtResource("4_3xqvr"), ExtResource("5_qwie6")]) -race = ExtResource("5_m5kci") -ghost_watch = ExtResource("7_6ph7w") -trackbutton = ExtResource("7_pchkj") +editable = false +metadata/_edit_pinned_properties_ = [&"editable"] + +[node name="create" type="VBoxContainer" parent="margin/tabs"] +visible = false +layout_mode = 2 + +[node name="buttons" type="HFlowContainer" parent="margin/tabs/create"] +layout_mode = 2 +theme = ExtResource("6_e1quy") + +[node name="new" type="Button" parent="margin/tabs/create/buttons" node_paths=PackedStringArray("secondary")] +custom_minimum_size = Vector2(50, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 52 +action_mode = 0 +text = "" +script = ExtResource("7_rhu6g") +secondary = NodePath("plus") + +[node name="plus" type="Label" parent="margin/tabs/create/buttons/new"] +layout_mode = 1 +anchors_preset = 3 +anchor_left = 1.0 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = -9.0 +offset_top = -24.0 +offset_right = 4.0 +offset_bottom = 4.0 +grow_horizontal = 0 +grow_vertical = 0 +text = "" +label_settings = SubResource("LabelSettings_8ohli") + +[node name="import" type="Button" parent="margin/tabs/create/buttons"] +custom_minimum_size = Vector2(50, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 52 +disabled = true +action_mode = 0 +text = "" +script = ExtResource("8_1f3ce") + +[node name="tracks_owned" type="GridContainer" parent="margin/tabs/create" node_paths=PackedStringArray("other")] +layout_mode = 2 +script = ExtResource("8_v6p1s") +other = NodePath("../../play/tracks") +editable = true +metadata/_edit_pinned_properties_ = [&"editable"] [node name="music" type="AudioStreamPlayer" parent="."] stream = ExtResource("9_ma7kx") +volume_db = -25.0 autoplay = true bus = &"music" + +[connection signal="pressed" from="margin/tabs/create/buttons/new" to="margin/tabs/create/tracks_owned" method="_on_new_pressed"] +[connection signal="import" from="margin/tabs/create/buttons/import" to="margin/tabs/create/tracks_owned" method="_on_import_import"] diff --git a/tracks.cfg b/tracks.cfg new file mode 100644 index 0000000..1512d26 --- /dev/null +++ b/tracks.cfg @@ -0,0 +1,194 @@ +[{ +"b": Array[Dictionary]([{ +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 250, 20), +"w": 14 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 250, 10), +"w": 12 +}, { +"b": 0, +"m": 1, +"t": Transform3D(-2.8213e-07, 0, 1, 0, 1, 0, -1, 0, -2.8213e-07, -10, 250, 0), +"w": 3 +}, { +"b": 3, +"m": 1, +"t": Transform3D(1.94707e-07, 0, -1, 0, 1, 0, 1, 0, 1.94707e-07, -10, 252.5, -10), +"w": 3 +}, { +"b": 10, +"m": 1, +"t": Transform3D(-5.20549e-07, 0, 1, 0, 1, 0, -1, 0, -5.20549e-07, 10, 252.5, -100), +"w": 8 +}, { +"b": 9, +"m": 1, +"t": Transform3D(-5.20549e-07, 0, 1, 0, 1, 0, -1, 0, -5.20549e-07, 10, 252.5, -90), +"w": 4 +}, { +"b": 1, +"m": 1, +"t": Transform3D(1.94707e-07, 0, -1, 0, 1, 0, 1, 0, 1.94707e-07, 20, 252.5, -90), +"w": 1 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 252.5, -100), +"w": 1 +}, { +"b": 0, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 252.5, -100), +"w": 3 +}, { +"b": 6, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 252.5, -100), +"w": 3 +}, { +"b": 14, +"m": 32, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 255, 20), +"w": 0 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 252.5, -40), +"w": 8 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 252.5, -40), +"w": 4 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 252.5, -50), +"w": 8 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 252.5, -50), +"w": 4 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 252.5, -60), +"w": 8 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 252.5, -60), +"w": 4 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 252.5, -70), +"w": 8 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 252.5, -70), +"w": 4 +}, { +"b": 12, +"m": 8, +"t": Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 50, 265, -100), +"w": 0 +}, { +"b": 7, +"m": 4, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 250, -80), +"w": 10 +}, { +"b": 15, +"m": 0, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.1242, 252.5, -78.0318), +"w": 0 +}, { +"b": 10, +"m": 1, +"t": Transform3D(1, 0, 6.51683e-07, 0, 1, 0, -6.51683e-07, 0, 1, 140, 250, -80), +"w": 8 +}, { +"b": 9, +"m": 1, +"t": Transform3D(1, 0, 6.51683e-07, 0, 1, 0, -6.51683e-07, 0, 1, 130, 250, -80), +"w": 4 +}, { +"b": 1, +"m": 1, +"t": Transform3D(-1, 0, -3.25841e-07, 0, 1, 0, 3.25841e-07, 0, -1, 130, 250, -70), +"w": 1 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 140, 250, -70), +"w": 1 +}, { +"b": 0, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 140, 250, -60), +"w": 3 +}, { +"b": 6, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 140, 250, -50), +"w": 3 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 80, 250, -90), +"w": 8 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 80, 250, -100), +"w": 4 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 90, 250, -90), +"w": 8 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 90, 250, -100), +"w": 4 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 100, 250, -90), +"w": 8 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 100, 250, -100), +"w": 4 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 110, 250, -90), +"w": 8 +}, { +"b": 7, +"m": 1, +"t": Transform3D(1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 110, 250, -100), +"w": 4 +}, { +"b": 13, +"m": 16, +"t": Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 140, 260, -40), +"w": 0 +}]), +"h": 400.0, +"l": 1, +"n": "swonk", +"o": Vector3(0, 1, 0), +"x": -45, +"y": 0 +}] diff --git a/tracks/multilap_test.tres b/tracks/multilap_test.tres deleted file mode 100644 index de08868..0000000 --- a/tracks/multilap_test.tres +++ /dev/null @@ -1,37 +0,0 @@ -[gd_resource type="Resource" script_class="TrackResource" load_steps=6 format=3 uid="uid://dwojilpcrv8me"] - -[ext_resource type="Script" path="res://classes/track.gd" id="1_c5h3o"] -[ext_resource type="PackedScene" uid="uid://d4a3e1w62m3ck" path="res://scenes/ring_checkpoint.tscn" id="1_ehf5p"] -[ext_resource type="Curve3D" uid="uid://u2f56xx8h2re" path="res://tracks/multilap_test_curve.tres" id="2_33qpi"] -[ext_resource type="PackedScene" uid="uid://t8ywjcjgw322" path="res://scenes/ring_finish.tscn" id="2_lfdrw"] -[ext_resource type="PackedScene" uid="uid://bsftidvcmsha0" path="res://scenes/ring_start.tscn" id="4_awtsk"] - -[resource] -resource_local_to_scene = true -script = ExtResource("1_c5h3o") -track_width = 25.0 -lower_support_width = 25.0 -support_height = 2.0 -track = ExtResource("2_33qpi") -left_barrier = true -right_barrier = true -barrier_width = 2.0 -sun_x = -50 -sun_y = 0 -overview_height = 250.0 -name = "multilap test" -is_loop = true -offset = Vector3(0, -2, 0) -laps = 3 -checkpoints = Array[float]([0.2, 0.6]) -checkpoint_scene = ExtResource("1_ehf5p") -checkpoint_scale = Vector3(1, 1, 1) -checkpoint_needs_collision = true -finish_location = 0.0 -finish_scene = ExtResource("2_lfdrw") -finish_scale = Vector3(1, 1, 1) -finish_needs_collision = true -start_location = 0.0 -start_scene = ExtResource("4_awtsk") -start_scale = Vector3(1, 1, 1) -start_needs_collision = true diff --git a/tracks/multilap_test_curve.tres b/tracks/multilap_test_curve.tres deleted file mode 100644 index 2523886..0000000 --- a/tracks/multilap_test_curve.tres +++ /dev/null @@ -1,9 +0,0 @@ -[gd_resource type="Curve3D" format=3 uid="uid://u2f56xx8h2re"] - -[resource] -bake_interval = 10.0 -_data = { -"points": PackedVector3Array(110.965, 0, -2.66191, -100, 0, 0, -200, 0, 100, -100, 0, 0, 0, 0, 0, -200, 0, -100, 0, 0, 0, 100, 0, 0, 200, 0, -100, 100, 0, 0, 0, 0, 0, 200, 0, 100, 200, 0, 0, 0, 0, 0, -200, 0, 100), -"tilts": PackedFloat32Array(1.5708, 0, 0, 0, 0) -} -point_count = 5 diff --git a/tracks/test.tres b/tracks/test.tres deleted file mode 100644 index a22f705..0000000 --- a/tracks/test.tres +++ /dev/null @@ -1,36 +0,0 @@ -[gd_resource type="Resource" script_class="TrackResource" load_steps=6 format=3] - -[ext_resource type="PackedScene" uid="uid://d4a3e1w62m3ck" path="res://scenes/ring_checkpoint.tscn" id="1_ra7ed"] -[ext_resource type="PackedScene" uid="uid://t8ywjcjgw322" path="res://scenes/ring_finish.tscn" id="2_e22em"] -[ext_resource type="Script" path="res://classes/track.gd" id="3_o0ql2"] -[ext_resource type="PackedScene" uid="uid://bsftidvcmsha0" path="res://scenes/ring_start.tscn" id="4_8biam"] -[ext_resource type="Curve3D" uid="uid://cuonflkcdybj0" path="res://tracks/test_curve.tres" id="5_35ahq"] - -[resource] -script = ExtResource("3_o0ql2") -track_width = 15.0 -rail_distance = 3.0 -lower_support_width = 23.0 -support_height = 12.0 -track = ExtResource("5_35ahq") -left_barrier = true -right_barrier = true -sun_x = -90 -sun_y = 0 -overview_height = 200.0 -name = "test" -is_loop = false -offset = Vector3(0, -2, 0) -laps = 1 -checkpoints = Array[float]([0.5]) -checkpoint_scene = ExtResource("1_ra7ed") -checkpoint_scale = Vector3(0.4, 0.4, 0.4) -checkpoint_needs_collision = true -finish_location = 1.0 -finish_scene = ExtResource("2_e22em") -finish_scale = Vector3(0.4, 0.4, 0.4) -finish_needs_collision = true -start_location = 0.0 -start_scene = ExtResource("4_8biam") -start_scale = Vector3(0.4, 0.4, 0.4) -start_needs_collision = true diff --git a/tracks/test_curve.tres b/tracks/test_curve.tres deleted file mode 100644 index dfed068..0000000 --- a/tracks/test_curve.tres +++ /dev/null @@ -1,9 +0,0 @@ -[gd_resource type="Curve3D" format=3 uid="uid://cuonflkcdybj0"] - -[resource] -bake_interval = 10.0 -_data = { -"points": PackedVector3Array(110.965, 0, -2.66191, 0, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), -"tilts": PackedFloat32Array(1.5708, 0) -} -point_count = 2 diff --git a/tracks/the fallen tramps.tres b/tracks/the fallen tramps.tres deleted file mode 100644 index e87daa0..0000000 --- a/tracks/the fallen tramps.tres +++ /dev/null @@ -1,36 +0,0 @@ -[gd_resource type="Resource" script_class="TrackResource" load_steps=6 format=3] - -[ext_resource type="PackedScene" uid="uid://d4a3e1w62m3ck" path="res://scenes/ring_checkpoint.tscn" id="1_i8s2b"] -[ext_resource type="PackedScene" uid="uid://t8ywjcjgw322" path="res://scenes/ring_finish.tscn" id="2_107h2"] -[ext_resource type="Script" path="res://classes/track.gd" id="3_8gwjo"] -[ext_resource type="PackedScene" uid="uid://bsftidvcmsha0" path="res://scenes/ring_start.tscn" id="4_7opiu"] -[ext_resource type="Curve3D" uid="uid://2d8xnh5nyjq8" path="res://tracks/the fallen tramps_curve.tres" id="5_r5vwn"] - -[resource] -script = ExtResource("3_8gwjo") -track_width = 40.0 -rail_distance = 3.0 -lower_support_width = 25.0 -support_height = 2.0 -track = ExtResource("5_r5vwn") -left_barrier = true -right_barrier = true -sun_x = -10 -sun_y = 173 -overview_height = 500.0 -name = "the fallen tramps" -is_loop = false -offset = Vector3(0, -200, 0) -laps = 1 -checkpoints = Array[float]([0.3, 0.65]) -checkpoint_scene = ExtResource("1_i8s2b") -checkpoint_scale = Vector3(1, 1, 1) -checkpoint_needs_collision = true -finish_location = 1.0 -finish_scene = ExtResource("2_107h2") -finish_scale = Vector3(3, 3, 3) -finish_needs_collision = true -start_location = 0.02 -start_scene = ExtResource("4_7opiu") -start_scale = Vector3(1, 1, 1) -start_needs_collision = true diff --git a/tracks/the fallen tramps_curve.tres b/tracks/the fallen tramps_curve.tres deleted file mode 100644 index 19d7255..0000000 --- a/tracks/the fallen tramps_curve.tres +++ /dev/null @@ -1,8 +0,0 @@ -[gd_resource type="Curve3D" format=3 uid="uid://2d8xnh5nyjq8"] - -[resource] -_data = { -"points": PackedVector3Array(71.7111, -7.30142, 40.9033, -71.7111, 7.30142, -40.9033, 364.527, 34.2145, -58.2419, 80.0429, -4.87809, -46.8782, -80.0429, 4.87809, 46.8782, 111.976, 8.1174, 38.3802, 126.492, -39.8907, 104.311, -126.492, 39.8907, -104.311, -131.577, 4, 139.526, 1.75706, -40.5922, 55.4782, -1.75706, 40.5922, -55.4782, -70.4745, -12.0589, -102.896, 9.32288, 2.08416, 54.7418, 0, 0, 0, -45.7354, -31.2662, -198.668), -"tilts": PackedFloat32Array(1.5708, 0, 0, 0, 0) -} -point_count = 5 diff --git a/transform_tester.tscn b/transform_tester.tscn new file mode 100644 index 0000000..1cb4005 --- /dev/null +++ b/transform_tester.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=2 format=3 uid="uid://43gqs1ukside"] + +[sub_resource type="GDScript" id="GDScript_bs64t"] +script/source = "@tool +extends Node3D +var last_transform: Transform3D +func _physics_process(delta: float) -> void: + if global_transform != last_transform: + last_transform = global_transform + print(global_transform) +" + +[node name="Node3D" type="Node3D"] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0) +script = SubResource("GDScript_bs64t") diff --git a/ui/assets/arrow.png b/ui/assets/arrow.png Binary files differnew file mode 100644 index 0000000..567c636 --- /dev/null +++ b/ui/assets/arrow.png diff --git a/ui/assets/arrow.png.import b/ui/assets/arrow.png.import new file mode 100644 index 0000000..1229473 --- /dev/null +++ b/ui/assets/arrow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vck01c83m1x3" +path="res://.godot/imported/arrow.png-c1a859010ab81c39044cf6b8ad7e674f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/arrow.png" +dest_files=["res://.godot/imported/arrow.png-c1a859010ab81c39044cf6b8ad7e674f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/arrow_collapsed.png b/ui/assets/arrow_collapsed.png Binary files differnew file mode 100644 index 0000000..86e8439 --- /dev/null +++ b/ui/assets/arrow_collapsed.png diff --git a/ui/assets/arrow_collapsed.png.import b/ui/assets/arrow_collapsed.png.import new file mode 100644 index 0000000..7e8a466 --- /dev/null +++ b/ui/assets/arrow_collapsed.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://buwxt5g5y761m" +path="res://.godot/imported/arrow_collapsed.png-c700805c6915187216de9e3d9553be50.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/arrow_collapsed.png" +dest_files=["res://.godot/imported/arrow_collapsed.png-c700805c6915187216de9e3d9553be50.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/block.png b/ui/assets/block.png Binary files differnew file mode 100644 index 0000000..780f003 --- /dev/null +++ b/ui/assets/block.png diff --git a/ui/assets/block.png.import b/ui/assets/block.png.import new file mode 100644 index 0000000..63068a6 --- /dev/null +++ b/ui/assets/block.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdig3xghpif81" +path="res://.godot/imported/block.png-34c82de584421da5250c71ec6902cce5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/block.png" +dest_files=["res://.godot/imported/block.png-34c82de584421da5250c71ec6902cce5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/brush_brush.png b/ui/assets/brush_brush.png Binary files differnew file mode 100644 index 0000000..2fe718a --- /dev/null +++ b/ui/assets/brush_brush.png diff --git a/ui/assets/brush_brush.png.import b/ui/assets/brush_brush.png.import new file mode 100644 index 0000000..6f2b4c9 --- /dev/null +++ b/ui/assets/brush_brush.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bn83ygj5y3d8q" +path="res://.godot/imported/brush_brush.png-c9d496cd17c024fcddc00ab252254621.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/brush_brush.png" +dest_files=["res://.godot/imported/brush_brush.png-c9d496cd17c024fcddc00ab252254621.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/brush_cursor.png b/ui/assets/brush_cursor.png Binary files differnew file mode 100644 index 0000000..8391866 --- /dev/null +++ b/ui/assets/brush_cursor.png diff --git a/ui/assets/brush_cursor.png.import b/ui/assets/brush_cursor.png.import new file mode 100644 index 0000000..f570533 --- /dev/null +++ b/ui/assets/brush_cursor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmxtfr7xfkpyf" +path="res://.godot/imported/brush_cursor.png-fa8eac23002aee43b964d7cf8dc58331.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/brush_cursor.png" +dest_files=["res://.godot/imported/brush_cursor.png-fa8eac23002aee43b964d7cf8dc58331.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/brush_handle.png b/ui/assets/brush_handle.png Binary files differnew file mode 100644 index 0000000..8311e67 --- /dev/null +++ b/ui/assets/brush_handle.png diff --git a/ui/assets/brush_handle.png.import b/ui/assets/brush_handle.png.import new file mode 100644 index 0000000..935d73b --- /dev/null +++ b/ui/assets/brush_handle.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dfmcv080xpxdl" +path="res://.godot/imported/brush_handle.png-0f6067ed24cfe8f5e83a3faa087436a7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/brush_handle.png" +dest_files=["res://.godot/imported/brush_handle.png-0f6067ed24cfe8f5e83a3faa087436a7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/brush_outline.png b/ui/assets/brush_outline.png Binary files differnew file mode 100644 index 0000000..c04e76f --- /dev/null +++ b/ui/assets/brush_outline.png diff --git a/ui/assets/brush_outline.png.import b/ui/assets/brush_outline.png.import new file mode 100644 index 0000000..8a7a406 --- /dev/null +++ b/ui/assets/brush_outline.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ce5kkd4bg17wl" +path="res://.godot/imported/brush_outline.png-49f7984e288c9bc5681701dee450b830.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/brush_outline.png" +dest_files=["res://.godot/imported/brush_outline.png-49f7984e288c9bc5681701dee450b830.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/button_focus.stylebox b/ui/assets/button_focus.stylebox Binary files differindex eb4aa4f..4387fd7 100644 --- a/ui/assets/button_focus.stylebox +++ b/ui/assets/button_focus.stylebox diff --git a/ui/assets/checkbox.png b/ui/assets/checkbox.png Binary files differnew file mode 100644 index 0000000..fe0547e --- /dev/null +++ b/ui/assets/checkbox.png diff --git a/ui/assets/checkbox.png.import b/ui/assets/checkbox.png.import new file mode 100644 index 0000000..2bf89bb --- /dev/null +++ b/ui/assets/checkbox.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ch6jipulckgt" +path="res://.godot/imported/checkbox.png-c14cb06d9c3286d63a27db855cb89069.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/checkbox.png" +dest_files=["res://.godot/imported/checkbox.png-c14cb06d9c3286d63a27db855cb89069.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/checkbox_disabled.png b/ui/assets/checkbox_disabled.png Binary files differnew file mode 100644 index 0000000..b031121 --- /dev/null +++ b/ui/assets/checkbox_disabled.png diff --git a/ui/assets/checkbox_disabled.png.import b/ui/assets/checkbox_disabled.png.import new file mode 100644 index 0000000..b2a63d4 --- /dev/null +++ b/ui/assets/checkbox_disabled.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvhkgqjcmjhjf" +path="res://.godot/imported/checkbox_disabled.png-08d27cd74e99582f759969689f4a2fd7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/checkbox_disabled.png" +dest_files=["res://.godot/imported/checkbox_disabled.png-08d27cd74e99582f759969689f4a2fd7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/checkedbox.png b/ui/assets/checkedbox.png Binary files differnew file mode 100644 index 0000000..dad30f9 --- /dev/null +++ b/ui/assets/checkedbox.png diff --git a/ui/assets/checkedbox.png.import b/ui/assets/checkedbox.png.import new file mode 100644 index 0000000..f494516 --- /dev/null +++ b/ui/assets/checkedbox.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bi5378730g7ag" +path="res://.godot/imported/checkedbox.png-c7ced4ce87805f0381d0e4a7130348e4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/checkedbox.png" +dest_files=["res://.godot/imported/checkedbox.png-c7ced4ce87805f0381d0e4a7130348e4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/clip.png b/ui/assets/clip.png Binary files differnew file mode 100644 index 0000000..e960ed2 --- /dev/null +++ b/ui/assets/clip.png diff --git a/ui/assets/clip.png.import b/ui/assets/clip.png.import new file mode 100644 index 0000000..c3bf052 --- /dev/null +++ b/ui/assets/clip.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvivkif8cfior" +path="res://.godot/imported/clip.png-0e862b6381da7e371d0a70f0286b6bce.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/clip.png" +dest_files=["res://.godot/imported/clip.png-0e862b6381da7e371d0a70f0286b6bce.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/folder.png b/ui/assets/folder.png Binary files differnew file mode 100644 index 0000000..5ac3436 --- /dev/null +++ b/ui/assets/folder.png diff --git a/ui/assets/folder.png.import b/ui/assets/folder.png.import new file mode 100644 index 0000000..6451cb9 --- /dev/null +++ b/ui/assets/folder.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnme45d0b1fdc" +path="res://.godot/imported/folder.png-8ad84da84d6c4a86f78724bb7715cc62.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/folder.png" +dest_files=["res://.godot/imported/folder.png-8ad84da84d6c4a86f78724bb7715cc62.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/assets/material.png b/ui/assets/material.png Binary files differnew file mode 100644 index 0000000..bd6fe66 --- /dev/null +++ b/ui/assets/material.png diff --git a/ui/assets/material.png.import b/ui/assets/material.png.import new file mode 100644 index 0000000..ded0455 --- /dev/null +++ b/ui/assets/material.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bn8rio453wjy7" +path="res://.godot/imported/material.png-68b53141bfb99e62143e3d80ab0e8f57.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://ui/assets/material.png" +dest_files=["res://.godot/imported/material.png-68b53141bfb99e62143e3d80ab0e8f57.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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 diff --git a/ui/boldsans.tres b/ui/boldsans.tres index c8d6596..5e2a6d1 100644 --- a/ui/boldsans.tres +++ b/ui/boldsans.tres @@ -1,4 +1,8 @@ -[gd_resource type="FontVariation" format=3 uid="uid://ba8ab6dti2fvo"] +[gd_resource type="FontVariation" load_steps=2 format=3 uid="uid://ba8ab6dti2fvo"] + +[sub_resource type="SystemFont" id="SystemFont_nttbt"] +font_names = PackedStringArray("Sans-Serif") [resource] +base_font = SubResource("SystemFont_nttbt") variation_embolden = 1.5 diff --git a/ui/editor/back_button.gd b/ui/editor/back_button.gd new file mode 100644 index 0000000..e684ac6 --- /dev/null +++ b/ui/editor/back_button.gd @@ -0,0 +1,29 @@ +extends Button + +signal back + +func _on_pressed() -> void: + if %save.unsaved: + var dialog := ConfirmationDialog.new() + dialog.min_size = Vector2(350, 100) + dialog.exclusive = true + dialog.title = "Are you sure!" + dialog.dialog_text = "You have unsaved changes!\nConsider saving first." + dialog.cancel_button_text = "wait no" + dialog.ok_button_text = "go ahead" + dialog.dialog_hide_on_ok = false + dialog.dialog_close_on_escape = false + dialog.unresizable = true + dialog.popup_window = true + dialog.initial_position = Window.WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN + dialog.add_theme_stylebox_override("panel", preload("res://ui/panel_dark.stylebox")) + add_child(dialog) + dialog.show() + dialog.confirmed.connect(emit_signal.bind(&"back")) + dialog.canceled.connect(dialog.queue_free) + dialog.confirmed.connect(dialog.queue_free) + else: + back.emit() + + + diff --git a/ui/editor/bar_button.tres b/ui/editor/bar_button.tres new file mode 100644 index 0000000..be76a10 --- /dev/null +++ b/ui/editor/bar_button.tres @@ -0,0 +1,15 @@ +[gd_resource type="Theme" load_steps=2 format=3 uid="uid://bds815vxta4ma"] + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rrkw8"] + +[resource] +Button/colors/font_color = Color(0.870588, 0.831373, 0.698039, 1) +Button/colors/font_focus_color = Color(0.992157, 0.964706, 0.890196, 1) +Button/colors/font_hover_color = Color(0.992157, 0.964706, 0.890196, 1) +Button/colors/font_hover_pressed_color = Color(0.992157, 0.964706, 0.890196, 1) +Button/colors/font_pressed_color = Color(0.14902, 0.545098, 0.823529, 1) +Button/styles/disabled = SubResource("StyleBoxEmpty_rrkw8") +Button/styles/focus = SubResource("StyleBoxEmpty_rrkw8") +Button/styles/hover = SubResource("StyleBoxEmpty_rrkw8") +Button/styles/normal = SubResource("StyleBoxEmpty_rrkw8") +Button/styles/pressed = SubResource("StyleBoxEmpty_rrkw8") diff --git a/ui/editor/block_dragdrop_preview.gd b/ui/editor/block_dragdrop_preview.gd new file mode 100644 index 0000000..05a21f2 --- /dev/null +++ b/ui/editor/block_dragdrop_preview.gd @@ -0,0 +1,78 @@ +extends Control +class_name DragDropPreview + +var blocks: Array[Block] = [] +var objects: Array[Block] +var offsets: PackedVector3Array = [] +var offsets_unset := false +var cam: Camera3D +var previews: Node3D + +func get_columns(x: int) -> int: + return floori(sqrt(x)) + +func init(textures: Array[Texture2D], p_cam: Camera3D): + cam = p_cam + var columns := get_columns(textures.size()) + %grid.columns = columns + for i in columns * columns: + var t_rect := TextureRect.new() + t_rect.size_flags_horizontal = SIZE_EXPAND + t_rect.size_flags_vertical = SIZE_EXPAND + t_rect.expand_mode = TextureRect.EXPAND_IGNORE_SIZE + t_rect.texture = textures[i] + @warning_ignore("integer_division") + t_rect.custom_minimum_size = Vector2(64/columns, 64/columns) + %grid.add_child(t_rect) + return self + +func _ready() -> void: + await get_tree().physics_frame + var data = get_viewport().gui_get_drag_data() + if ( + data is Array + and data.size() == 2 + and data[0] is Array[TrackObject] + and data[1] is PackedVector3Array + and data[0].size() == data[1].size() + ): + mkobjs(data[0]) + offsets = data[1] + elif data is Array[TrackObject]: + mkobjs(data) + offsets_unset = true + tree_exiting.connect(cleanup) + +func cleanup() -> void: + for block in blocks: block.queue_free() + +func mkobjs(objs: Array[TrackObject]): + for obj in objs: + var block: Block = obj.create(true) + add_child(block) + block.hide() + blocks.append(block) + +func over_viewport(): + if blocks.is_empty(): + return + %panel.hide() + for block in blocks: block.show() + +func viewport_event(e: InputEvent) -> void: + if e is InputEventMouse: + position_blocks(e.position) + +func position_blocks(mp: Vector2): + var at_position := cam.project_position(mp, 50) + for i in len(blocks): + blocks[i].global_position = ( + (offsets[i] + at_position) + if not offsets_unset + else at_position + ).snapped(Globals.SNAP) + +func exit_viewport() -> void: + %panel.show() + for block in blocks: + block.hide() diff --git a/ui/editor/block_dragdrop_preview.tscn b/ui/editor/block_dragdrop_preview.tscn new file mode 100644 index 0000000..28aca7e --- /dev/null +++ b/ui/editor/block_dragdrop_preview.tscn @@ -0,0 +1,49 @@ +[gd_scene load_steps=4 format=3 uid="uid://br4clathh5ppo"] + +[ext_resource type="Script" path="res://ui/editor/block_dragdrop_preview.gd" id="1_svugf"] +[ext_resource type="Texture2D" uid="uid://cvivkif8cfior" path="res://ui/assets/clip.png" id="2_hvrcj"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_p80jk"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(0.027451, 0.211765, 0.258824, 1) +corner_radius_top_left = 15 +corner_radius_top_right = 15 +corner_radius_bottom_right = 15 +corner_radius_bottom_left = 15 + +[node name="preview" type="Control"] +layout_mode = 3 +anchors_preset = 0 +offset_left = 4.0 +offset_top = 4.0 +offset_right = 68.0 +offset_bottom = 68.0 +script = ExtResource("1_svugf") + +[node name="panel" type="PanelContainer" parent="."] +unique_name_in_owner = true +clip_children = 2 +layout_mode = 0 +offset_right = 72.0 +offset_bottom = 72.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_p80jk") + +[node name="clip" type="TextureRect" parent="panel"] +clip_children = 1 +layout_mode = 2 +texture = ExtResource("2_hvrcj") +expand_mode = 1 + +[node name="grid" type="GridContainer" parent="panel/clip"] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/h_separation = 0 +theme_override_constants/v_separation = 0 diff --git a/ui/editor/brush.gd b/ui/editor/brush.gd new file mode 100644 index 0000000..0270b38 --- /dev/null +++ b/ui/editor/brush.gd @@ -0,0 +1,39 @@ +extends MultiButton +class_name Brush + +@onready var brush: TextureRect = $brush +@onready var outline: TextureRect = $outline +@export var cursor: Texture + +func set_c(c: Color) -> void: + if disabled: + brush.modulate = c + if not button_pressed: + secondary.modulate = c + outline.visible = button_pressed + +var mat: int = 0 + +func _can_drop_data(_at_position: Vector2, data: Variant) -> bool: + return data is WeakLink and data.type == WeakLink.Type.Material + +func _drop_data(_at_position: Vector2, data: Variant) -> void: + mat = data.material + brush.modulate = data.material_color + disabled = false + +func _gui_input(event: InputEvent) -> void: + if event is InputEventMouseButton and event.is_pressed() and event.button_index == MOUSE_BUTTON_RIGHT: + mat = 0 + reset() + +func reset() -> void: + button_pressed = false + disabled = true + +func _toggled(on: bool) -> void: + Input.set_custom_mouse_cursor(cursor if on else null, Input.CURSOR_ARROW) + +func _on_mousecast_hit(colls: Array) -> void: + if colls.is_empty(): + button_pressed = false diff --git a/ui/editor/cam.gd b/ui/editor/cam.gd new file mode 100644 index 0000000..88c9ba8 --- /dev/null +++ b/ui/editor/cam.gd @@ -0,0 +1,48 @@ +extends Camera3D + +var freelook := false; +var panning := false; +var mp_before_freelook := Vector2.ZERO; +const MOUSE_SENSITIVTY = 0.02; +const PAN_SENSITIVITY = 0.5; +const SCROLL_SENS = 2; +const CAMERA_MAX_ROTATION_ANGLE = deg_to_rad(70); + +var m_vel := Vector2.ZERO +@onready var last_m_pos := get_viewport().get_mouse_position() + +func _process(_delta): + m_vel = get_viewport().get_mouse_position() - last_m_pos + last_m_pos = get_viewport().get_mouse_position() + if Input.is_mouse_button_pressed(MOUSE_BUTTON_RIGHT): + if Input.get_mouse_mode() != Input.MOUSE_MODE_CAPTURED: + mp_before_freelook = get_viewport().get_mouse_position() + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED); + freelook = true; + elif Input.is_action_pressed("ui_pan"): + var vel := m_vel * PAN_SENSITIVITY + position -= (transform.basis.x * vel.x) + position += (transform.basis.y * vel.y) + panning = true + else: + if Input.get_mouse_mode() != Input.MOUSE_MODE_VISIBLE: + Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE); + freelook = false; + get_viewport().warp_mouse(mp_before_freelook) + panning = false + +func _input(event: InputEvent): + if freelook and event is InputEventMouseMotion: + rotation.x = clamp(rotation.x + (-event.relative.y * MOUSE_SENSITIVTY), -CAMERA_MAX_ROTATION_ANGLE, CAMERA_MAX_ROTATION_ANGLE); + rotation.y += -event.relative.x * MOUSE_SENSITIVTY; + elif event is InputEventMouseButton: + match event.button_index: + # camera zoom + MOUSE_BUTTON_WHEEL_UP: global_position -= global_transform.basis.z * SCROLL_SENS + MOUSE_BUTTON_WHEEL_DOWN: global_position += global_transform.basis.z * SCROLL_SENS + elif event is InputEventMouseMotion and panning: + var v := get_viewport() + var mp := v.get_mouse_position() + if not Rect2(Vector2(), v.size).grow(-15).has_point(mp): + v.warp_mouse(mp.posmodv(v.size)) + last_m_pos = mp.posmodv(v.size) diff --git a/ui/editor/cameras/right_slant_cam.tscn b/ui/editor/cameras/right_slant_cam.tscn new file mode 100644 index 0000000..a335c13 --- /dev/null +++ b/ui/editor/cameras/right_slant_cam.tscn @@ -0,0 +1,4 @@ +[gd_scene format=3 uid="uid://cs057imd63df0"] + +[node name="camera" type="Camera3D"] +transform = Transform3D(1, 0, 0, 0, 0.906308, 0.422618, 0, -0.422618, 0.906308, 0, 4, 12) diff --git a/ui/editor/cameras/side_far_cam.tscn b/ui/editor/cameras/side_far_cam.tscn new file mode 100644 index 0000000..055fb1b --- /dev/null +++ b/ui/editor/cameras/side_far_cam.tscn @@ -0,0 +1,4 @@ +[gd_scene format=3 uid="uid://bb56nmgmi1i74"] + +[node name="camera" type="Camera3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 30) diff --git a/ui/editor/cameras/side_slant_cam.tscn b/ui/editor/cameras/side_slant_cam.tscn new file mode 100644 index 0000000..bbe3500 --- /dev/null +++ b/ui/editor/cameras/side_slant_cam.tscn @@ -0,0 +1,4 @@ +[gd_scene format=3 uid="uid://cb46aartkefse"] + +[node name="camera" type="Camera3D"] +transform = Transform3D(-1, 3.69465e-08, -7.92319e-08, 0, 0.906308, 0.422618, 8.74228e-08, 0.422618, -0.906308, 0, 4, -12) diff --git a/ui/editor/cameras/tall_right_slant_cam.tscn b/ui/editor/cameras/tall_right_slant_cam.tscn new file mode 100644 index 0000000..1b4324f --- /dev/null +++ b/ui/editor/cameras/tall_right_slant_cam.tscn @@ -0,0 +1,4 @@ +[gd_scene format=3 uid="uid://opcnps6psy07"] + +[node name="camera" type="Camera3D"] +transform = Transform3D(1, 0, 0, 0, 0.906308, 0.422618, 0, -0.422618, 0.906308, 0, 6, 12) diff --git a/ui/editor/cameras/tall_side_slant_cam.tscn b/ui/editor/cameras/tall_side_slant_cam.tscn new file mode 100644 index 0000000..388736f --- /dev/null +++ b/ui/editor/cameras/tall_side_slant_cam.tscn @@ -0,0 +1,4 @@ +[gd_scene format=3 uid="uid://ccfnlmu6xnhxg"] + +[node name="camera" type="Camera3D"] +transform = Transform3D(-1, 3.69465e-08, -7.92319e-08, 0, 0.906308, 0.422618, 8.74228e-08, 0.422618, -0.906308, 0, 6, -12) diff --git a/ui/editor/cameras/topdown_cam.tscn b/ui/editor/cameras/topdown_cam.tscn new file mode 100644 index 0000000..780bb8e --- /dev/null +++ b/ui/editor/cameras/topdown_cam.tscn @@ -0,0 +1,4 @@ +[gd_scene format=3 uid="uid://urgqw6yoy4f5"] + +[node name="camera" type="Camera3D"] +transform = Transform3D(-4.37114e-08, 1, 4.37114e-08, 0, -4.37114e-08, 1, 1, 4.37114e-08, 1.91069e-15, 0, 10, 0) diff --git a/ui/editor/delete.gd b/ui/editor/delete.gd new file mode 100644 index 0000000..689bbc9 --- /dev/null +++ b/ui/editor/delete.gd @@ -0,0 +1,17 @@ +extends Button + +@onready var hist: UndoRedo = owner.history +@onready var editor: TrackEditor = owner + +func _on_selection_changed(nodes: Array[TrackObject]): + disabled = nodes.size() == 0 + +func _pressed() -> void: + hist.create_action("delete %d nodes" % editor.selected.size()) + for tobj in editor.selected: + var node := tobj.live_node + hist.add_do_method(%view.remove_obj.bind(tobj)) + hist.add_undo_reference(node) + hist.add_undo_method(%view.add_obj.bind(tobj)) + hist.commit_action() + disabled = true diff --git a/ui/editor/duplicate.gd b/ui/editor/duplicate.gd new file mode 100644 index 0000000..142d0f9 --- /dev/null +++ b/ui/editor/duplicate.gd @@ -0,0 +1,23 @@ +extends Button + +@onready var editor: TrackEditor = owner + +func _on_selection_changed(nodes: Array[TrackObject]): + disabled = nodes.size() == 0 + +func _pressed() -> void: + var links: Array[FileItem] = [] # map doesnt work with typed arrays + var selected_dup: Array[TrackObject] = [] + var positions: PackedVector3Array = [] + selected_dup.resize(len(editor.selected)) + positions.resize(len(editor.selected)) + links.resize(len(editor.selected)) + var first_p := editor.selected[0].live_node.global_position + for i in len(editor.selected): + positions[i] = editor.selected[i].live_node.global_position - first_p + links[i] = editor.selected[i].link + selected_dup[i] = editor.selected[i].dup() + force_drag( + [selected_dup, positions], + %items.make_drag_preview(Items.get_thumbs(links)) + ) diff --git a/ui/editor/editor_fs.tres b/ui/editor/editor_fs.tres new file mode 100644 index 0000000..210d261 --- /dev/null +++ b/ui/editor/editor_fs.tres @@ -0,0 +1,218 @@ +[gd_resource type="Resource" script_class="DirRes" load_steps=45 format=3 uid="uid://qxacdpu7fkgb"] + +[ext_resource type="PackedScene" uid="uid://cy2ialm17md6c" path="res://assets/blocks/ring_start.tscn" id="1_obh5s"] +[ext_resource type="Script" path="res://classes/resources/link.gd" id="2_vbck3"] +[ext_resource type="Script" path="res://classes/resources/dir.gd" id="3_5we13"] +[ext_resource type="PackedScene" uid="uid://behu0a0iegwov" path="res://assets/blocks/ring_checkpoint.tscn" id="4_t7omt"] +[ext_resource type="PackedScene" uid="uid://bm7dvglsg6cxo" path="res://assets/blocks/ring_finish.tscn" id="5_wj8by"] +[ext_resource type="PackedScene" uid="uid://bpve5rga4f5ts" path="res://assets/blocks/platform_corner.tscn" id="6_rprvw"] +[ext_resource type="PackedScene" uid="uid://d0bnqhv1caak3" path="res://assets/blocks/platform_depression.tscn" id="7_2mb8w"] +[ext_resource type="PackedScene" uid="uid://ceo1o8kfhqnxy" path="res://assets/blocks/platform_diagonal.tscn" id="8_2o3rf"] +[ext_resource type="PackedScene" uid="uid://cb70byabne8d" path="res://assets/blocks/platform_poke.tscn" id="9_lc43u"] +[ext_resource type="PackedScene" uid="uid://ci24eqfa38cy4" path="res://assets/blocks/platform_ramp.tscn" id="10_f1l1g"] +[ext_resource type="PackedScene" uid="uid://cotdon210bw6c" path="res://assets/blocks/platform_square.tscn" id="12_aumqd"] +[ext_resource type="PackedScene" uid="uid://dtmmpkwtlvovq" path="res://assets/blocks/platform_turn_1x1.tscn" id="13_niuro"] +[ext_resource type="PackedScene" uid="uid://c7xxrp8ml2ku1" path="res://assets/blocks/platform_x.tscn" id="14_nfuay"] +[ext_resource type="PackedScene" uid="uid://bs7iubbwrs78d" path="res://assets/blocks/platform_poke_corner.tscn" id="15_5g7y2"] +[ext_resource type="PackedScene" uid="uid://ct733wlw6osxl" path="res://assets/blocks/platform_booster.tscn" id="15_22aj3"] +[ext_resource type="PackedScene" uid="uid://bawi544gebahm" path="res://assets/blocks/platform_turn_3x3.tscn" id="16_sarxg"] +[ext_resource type="PackedScene" uid="uid://dqxgxdxibvabe" path="res://assets/blocks/platform_turn_2x2.tscn" id="17_3cq3g"] +[ext_resource type="PackedScene" uid="uid://d2nwkpdn3gnx3" path="res://assets/blocks/tree.tscn" id="19_vck13"] + +[sub_resource type="Resource" id="Resource_8f0v1"] +resource_name = "ring start" +script = ExtResource("2_vbck3") +scene = ExtResource("1_obh5s") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "A torus shaped start" + +[sub_resource type="Resource" id="Resource_fmplp"] +resource_name = "starts" +script = ExtResource("3_5we13") +files = Array[Resource("res://classes/resources/file_item.gd")]([SubResource("Resource_8f0v1")]) +description = "Start (you need one of these)" + +[sub_resource type="Resource" id="Resource_r3xn4"] +resource_name = "ring checkpoint" +script = ExtResource("2_vbck3") +scene = ExtResource("4_t7omt") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "A torus shaped checkpoint" + +[sub_resource type="Resource" id="Resource_0yv1r"] +resource_name = "checkpoints" +script = ExtResource("3_5we13") +files = Array[Resource("res://classes/resources/file_item.gd")]([SubResource("Resource_r3xn4")]) +description = "Checkpoints" + +[sub_resource type="Resource" id="Resource_kvgvy"] +resource_name = "ring finish" +script = ExtResource("2_vbck3") +scene = ExtResource("5_wj8by") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "A torus shaped finish" + +[sub_resource type="Resource" id="Resource_kak46"] +resource_name = "finishes" +script = ExtResource("3_5we13") +files = Array[Resource("res://classes/resources/file_item.gd")]([SubResource("Resource_kvgvy")]) +description = "Finishes (you need one of these)" + +[sub_resource type="Resource" id="Resource_4d15v"] +resource_name = "square" +script = ExtResource("2_vbck3") +scene = ExtResource("12_aumqd") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "Square, flat platform" + +[sub_resource type="Resource" id="Resource_wrtlo"] +resource_name = "corner" +script = ExtResource("2_vbck3") +scene = ExtResource("6_rprvw") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "A sharp corner piece, very poky" + +[sub_resource type="Resource" id="Resource_oxmos"] +resource_name = "depression" +script = ExtResource("2_vbck3") +scene = ExtResource("7_2mb8w") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "Lowers a corner down a level" + +[sub_resource type="Resource" id="Resource_l3v8g"] +resource_name = "diagonal" +script = ExtResource("2_vbck3") +scene = ExtResource("8_2o3rf") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "A slanted block" + +[sub_resource type="Resource" id="Resource_ub3e2"] +resource_name = "poke" +script = ExtResource("2_vbck3") +scene = ExtResource("9_lc43u") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "The opposite of the depression; Raises a corner up a level" + +[sub_resource type="Resource" id="Resource_ycvki"] +resource_name = "poke corner" +script = ExtResource("2_vbck3") +scene = ExtResource("15_5g7y2") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "A poky corner" + +[sub_resource type="Resource" id="Resource_1w0pw"] +resource_name = "ramp" +script = ExtResource("2_vbck3") +scene = ExtResource("10_f1l1g") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "Like the diagonal piece, but with a base." + +[sub_resource type="Resource" id="Resource_5ko53"] +resource_name = "1x1 turn" +script = ExtResource("2_vbck3") +scene = ExtResource("13_niuro") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "Smooth turn" + +[sub_resource type="Resource" id="Resource_hk5rh"] +resource_name = "x" +script = ExtResource("2_vbck3") +scene = ExtResource("14_nfuay") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "X shaped block" + +[sub_resource type="Resource" id="Resource_l415k"] +resource_name = "booster" +script = ExtResource("2_vbck3") +scene = ExtResource("15_22aj3") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "Forces the car in a direction with moderate force" + +[sub_resource type="Resource" id="Resource_avoux"] +resource_name = "3x3 turn" +script = ExtResource("2_vbck3") +scene = ExtResource("16_sarxg") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "A wide turn." + +[sub_resource type="Resource" id="Resource_lc4fe"] +resource_name = "2x2 turn" +script = ExtResource("2_vbck3") +scene = ExtResource("17_3cq3g") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "A slightly wide turn." + +[sub_resource type="Resource" id="Resource_xovbr"] +resource_name = "platform" +script = ExtResource("3_5we13") +files = Array[Resource("res://classes/resources/file_item.gd")]([SubResource("Resource_4d15v"), SubResource("Resource_wrtlo"), SubResource("Resource_oxmos"), SubResource("Resource_l3v8g"), SubResource("Resource_ub3e2"), SubResource("Resource_ycvki"), SubResource("Resource_1w0pw"), SubResource("Resource_5ko53"), SubResource("Resource_hk5rh"), SubResource("Resource_l415k"), SubResource("Resource_avoux"), SubResource("Resource_lc4fe")]) +description = "Platforms (you can add barriers with the wall tool)" + +[sub_resource type="Resource" id="Resource_ax7gx"] +resource_name = "road" +script = ExtResource("3_5we13") +files = Array[Resource("res://classes/resources/file_item.gd")]([SubResource("Resource_xovbr")]) +description = "Road building blocks" + +[sub_resource type="Resource" id="Resource_x8ami"] +resource_name = "platform" +script = ExtResource("2_vbck3") +material = 1 +material_color = Color(0.392157, 0.392157, 0.392157, 1) +description = "platform material. +very sturdy." + +[sub_resource type="Resource" id="Resource_y68us"] +resource_name = "road" +script = ExtResource("2_vbck3") +material = 2 +material_color = Color(0.266667, 0.364706, 0.372549, 1) +description = "Platform with a road texture." + +[sub_resource type="Resource" id="Resource_jyrtx"] +resource_name = "grass" +script = ExtResource("2_vbck3") +material = 4 +material_color = Color(0.439216, 0.760784, 0.439216, 1) +description = "Touch it." + +[sub_resource type="Resource" id="Resource_sbgew"] +resource_name = "materials" +script = ExtResource("3_5we13") +files = Array[Resource("res://classes/resources/file_item.gd")]([SubResource("Resource_x8ami"), SubResource("Resource_y68us"), SubResource("Resource_jyrtx")]) +description = "Materials" + +[sub_resource type="Resource" id="Resource_vtfgn"] +resource_name = "tree" +script = ExtResource("2_vbck3") +scene = ExtResource("19_vck13") +material = 0 +material_color = Color(0, 0, 0, 1) +description = "" + +[sub_resource type="Resource" id="Resource_77r1h"] +resource_name = "decoration" +script = ExtResource("3_5we13") +files = Array[Resource("res://classes/resources/file_item.gd")]([SubResource("Resource_vtfgn")]) +description = "Decorations" + +[resource] +resource_name = "editor filesystem" +script = ExtResource("3_5we13") +files = Array[Resource("res://classes/resources/file_item.gd")]([SubResource("Resource_fmplp"), SubResource("Resource_0yv1r"), SubResource("Resource_kak46"), SubResource("Resource_ax7gx"), SubResource("Resource_sbgew"), SubResource("Resource_77r1h")]) +description = "Blocks" diff --git a/ui/editor/export.gd b/ui/editor/export.gd new file mode 100644 index 0000000..d62aaaa --- /dev/null +++ b/ui/editor/export.gd @@ -0,0 +1,33 @@ +extends Button +class_name EditorMarshalling + +@onready var editor: TrackEditor = owner + +func _pressed() -> void: + var enc := EditorMarshalling.td2s(editor.to_trackdata()) + print_rich("exporting to `[code]%s[/code]`" % enc) # for funny clipboard shenanigans + DisplayServer.clipboard_set(enc) + +static func td2s(td: TrackResource) -> String: + var buf := var_to_bytes(td.to_d()) + var buf_c := buf.compress(FileAccess.COMPRESSION_DEFLATE) + return "%s|%s" % [Marshalls.raw_to_base64(buf_c), String.num_uint64(buf.size(), 16)] + +static func s2td(s: String) -> TrackResource: + var split := s.lstrip('`').rstrip('`').strip_edges().split("|", false, 1) + if not split.size() || split[0].length() < 100: + return null + var buf := Marshalls.base64_to_raw(split[0]) + if buf.size() < 100: + return + var decompressed: PackedByteArray = [] + if split.size() > 1 and split[1].length() < 20 and split[1].hex_to_int() > 0: + decompressed = buf.decompress(split[1].hex_to_int(), FileAccess.COMPRESSION_DEFLATE) + else: # size unknown! + decompressed = buf.decompress_dynamic(51200, FileAccess.COMPRESSION_DEFLATE) + if decompressed.size() < 4: + return null + var d = bytes_to_var(decompressed) + if d is Dictionary: + return TrackResource.from_d(d) + return null diff --git a/ui/editor/group.tres b/ui/editor/group.tres new file mode 100644 index 0000000..ec18dad --- /dev/null +++ b/ui/editor/group.tres @@ -0,0 +1,3 @@ +[gd_resource type="ButtonGroup" format=3 uid="uid://oio3aly7aeny"] + +[resource] diff --git a/ui/editor/hatch.gd b/ui/editor/hatch.gd new file mode 100644 index 0000000..28bafeb --- /dev/null +++ b/ui/editor/hatch.gd @@ -0,0 +1,54 @@ +extends SubViewportContainer + +@onready var history: UndoRedo = owner.history + +signal created(object: TrackObject) +signal remove_tobj(tobj: TrackObject) + +func _can_drop_data(_at_position: Vector2, data) -> bool: + return ( + data is Array + and data.size() == 2 + and data[0] is Array[TrackObject] + and data[1] is PackedVector3Array + and data[0].size() == data[1].size() + ) or data is Array[TrackObject] + + +func _drop_data(at_position: Vector2, data) -> void: + var objs: Array[TrackObject] + var offsets: PackedVector3Array = [] + var offsets_unset := false + if ( + data is Array + and data.size() == 2 + and data[0] is Array[TrackObject] + and data[1] is PackedVector3Array + and data[0].size() == data[1].size() + ): + objs = data[0] + offsets = data[1] + elif data is Array[TrackObject]: + objs = data + offsets_unset = true + history.create_action("add blocks"); + for i in len(objs): + var obj := objs[i] + var node: Block = obj.create(true) + var projected: Vector3 = %cam.project_position(at_position, 50) + var pos := (projected + offsets[i] if not offsets_unset else projected).snapped(Globals.SNAP) + obj.set_live(node) + history.add_do_method(add_obj.bind(obj, pos)) + history.add_undo_method(remove_obj.bind(obj)) + history.add_do_reference(node) + history.commit_action() + +func add_obj(o: TrackObject, pos = null): + %port.add_child(o.live_node) + if pos is Vector3: + o.live_node.global_position = pos + created.emit(o) + +func remove_obj(o: TrackObject): + remove_tobj.emit(o) + %port.remove_child(o.live_node) diff --git a/ui/editor/import.gd b/ui/editor/import.gd new file mode 100644 index 0000000..d184847 --- /dev/null +++ b/ui/editor/import.gd @@ -0,0 +1,16 @@ +extends Button + +signal import(trck: TrackResource) + +var trck: TrackResource = null +var last_checked: String + +func _process(_delta: float) -> void: + if last_checked != DisplayServer.clipboard_get(): + trck = EditorMarshalling.s2td(DisplayServer.clipboard_get()) + disabled = trck == null + last_checked = DisplayServer.clipboard_get() + +func _pressed() -> void: + import.emit(trck) + diff --git a/ui/editor/items.gd b/ui/editor/items.gd new file mode 100644 index 0000000..bc42636 --- /dev/null +++ b/ui/editor/items.gd @@ -0,0 +1,112 @@ +extends ItemList +class_name Items + +var selected: DirRes + +signal dir_selected(i: int) + +const icon_table = { + WeakLink.Type.Scene: preload("res://ui/assets/block.png"), + WeakLink.Type.Material: preload("res://ui/assets/material.png"), + -1: preload("res://ui/assets/folder.png") +} + +var thread: Thread = Thread.new() + +static func get_thumb(f: FileItem) -> Array: + var thumb: Texture2D = icon_table[-1] + if f is WeakLink: + thumb = icon_table[f.type] + if f.type == WeakLink.Type.Scene: + var hsh: PackedByteArray = f.hash_s() + var img := Thumbnail._load(Globals.THUMBS % f.resource_name, hsh) + if img: + return [ImageTexture.create_from_image(img)] + else: + return [thumb, hsh] + return [thumb] + +## doesnt care about failures & processes multiple files. +## the size of the output may not equal the size of the input, +## as it tries to not create duplicates. +static func get_thumbs(files: Array[FileItem]) -> Array[Texture2D]: + var files_uniq := [] + for file in files: + if not files_uniq.has(file): + files_uniq.append(file) + var output: Array[Texture2D] = [] + output.resize(len(files_uniq)) + for i in len(files_uniq): + var thumb: Texture2D = icon_table[-1] + if files_uniq[i] is WeakLink: + thumb = icon_table[files_uniq[i].type] + if files[i].type == WeakLink.Type.Scene: + var hsh: PackedByteArray = files_uniq[i].hash_s() + var img := Thumbnail._load(Globals.THUMBS % files_uniq[i].resource_name, hsh) + if img: + thumb = ImageTexture.create_from_image(img) + output[i] = thumb + return output + +func open_dir(dir: DirRes): + clear() + selected = dir + var needing_thumbs := [] + for i in dir.files.size(): + var file := dir.files[i] + var thumb := Items.get_thumb(file) + if thumb.size() > 1: + needing_thumbs.append([i, file, thumb[-1]]) + set_item_tooltip(add_item(file.resource_name, thumb[0]), file.description) + if thread.is_started(): + thread.wait_to_finish() + thread.start(func(): + for need in needing_thumbs: + var file: WeakLink = need[1] + match file.type: + WeakLink.Type.Scene: + var n: Block = file.scene.instantiate() + n.making_thumbnail = true + n.add_child(preload("res://scenes/sun.tscn").instantiate()) + var ground := preload("res://scenes/floor.tscn").instantiate() + ground.position.y -= 5 + n.add_child(ground) + var world := World3D.new() + world.environment = preload("res://default_env.tres") + var t := await Thumbnail.create_thumb(self, n, Vector2(64,64), world) + var e := Thumbnail.save(t, Globals.THUMBS % file.resource_name, need[2]) + if e != OK: + push_error("err when thumbnailing %s: %d" % [file.resource_name, e]) + if item_count > need[0]: # may have switched dirs + set_item_icon(need[0], ImageTexture.create_from_image(t)) + , Thread.PRIORITY_LOW) + +func _get_drag_data(at_position: Vector2) -> Variant: + var index := get_item_at_position(at_position) + var f := selected.files[index] + if not f is WeakLink: + return null + set_drag_preview(make_drag_preview([get_item_icon(index)])) + match f.type: + WeakLink.Type.Scene: + var objects: Array[TrackObject] = [TrackObject.new(BlockMap.find(f.scene), null, f)] + return objects + WeakLink.Type.Material: + return f + return null + +func make_drag_preview(textures: Array[Texture2D]) -> Control: + var preview: DragDropPreview = preload("res://ui/editor/block_dragdrop_preview.tscn").instantiate().init(textures, %cam) + %view.gui_input.connect(preview.viewport_event) + %view.mouse_entered.connect(preview.over_viewport) + %view.mouse_exited.connect(preview.exit_viewport) + if Rect2(Vector2.ZERO, %port.size).has_point(%port.get_mouse_position()): + get_tree().physics_frame.connect(func(): + preview.over_viewport() + , CONNECT_ONE_SHOT | CONNECT_DEFERRED) + return preview + + +func _on_tree_exiting() -> void: + if thread.is_started(): + thread.wait_to_finish() diff --git a/ui/editor/mousecast.gd b/ui/editor/mousecast.gd new file mode 100644 index 0000000..a1faed6 --- /dev/null +++ b/ui/editor/mousecast.gd @@ -0,0 +1,65 @@ +extends RayCast3D +class_name MouseCast + +@onready var v := get_viewport() +@onready var drag_area: ColorRect = $area +@onready var c := v.get_camera_3d() +@onready var editor: TrackEditor = owner +var gizmo_just_hit := false +var viewport_just_dropped := false +var cast_ray := false +var start = null +const depth := 4000.0 + +signal hit(colls: Array[Block]) + +func position_to(p: Vector2): + global_position = c.project_ray_origin(p) + target_position = c.project_ray_normal(p) * depth + +func _physics_process(_delta: float) -> void: + if gizmo_just_hit || viewport_just_dropped: + gizmo_just_hit = false + viewport_just_dropped = false + start = null + drag_area.hide() + drag_area.size = Vector2.ZERO + return + if ( + start == null # not already dragging + and Input.is_action_just_pressed("click") # just clicked + and Rect2(Vector2.ZERO, get_viewport().size).has_point(get_viewport().get_mouse_position()) # mouse is over viewport + ): + start = get_viewport().get_mouse_position() + drag_area.show() + elif Input.is_action_just_released("click") and start != null: + var selection: Array[Block] = [] + var r := Rect2(start, Vector2.ZERO).expand(get_viewport().get_mouse_position()) + start = null + drag_area.hide() + drag_area.size = Vector2.ZERO + if r.size.length_squared() < 1000: + position_to(r.get_center()) + force_raycast_update() + if is_colliding() and get_collider() != null: + selection.append(get_collider()) + hit.emit(selection) + return + for obj in editor.objects: + var origin := obj.live_node.transform.origin + if c.is_position_behind(origin) || c.global_position.distance_squared_to(origin) > 40000: + continue + var point := c.unproject_position(origin) + if r.has_point(point): + selection.append(obj.live_node) + hit.emit(selection) + if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT) and start != null: + var r := Rect2(start, Vector2.ZERO).expand(get_viewport().get_mouse_position()) + drag_area.position = r.position + drag_area.size = r.size + +func gizmo_clicked() -> void: + gizmo_just_hit = true + +func _on_view_created() -> void: + viewport_just_dropped = true diff --git a/ui/editor/outline.gdshader b/ui/editor/outline.gdshader new file mode 100644 index 0000000..4a75622 --- /dev/null +++ b/ui/editor/outline.gdshader @@ -0,0 +1,21 @@ +shader_type canvas_item; + +uniform vec4 line_color : source_color = vec4(1); +uniform float line_thickness : hint_range(0, 10) = 1.0; + +void fragment() { + vec2 size = TEXTURE_PIXEL_SIZE * line_thickness; + + float outline = texture(TEXTURE, UV + vec2(-size.x, 0)).a; + outline += texture(TEXTURE, UV + vec2(0, size.y)).a; + outline += texture(TEXTURE, UV + vec2(size.x, 0)).a; + outline += texture(TEXTURE, UV + vec2(0, -size.y)).a; + outline += texture(TEXTURE, UV + vec2(-size.x, size.y)).a; + outline += texture(TEXTURE, UV + vec2(size.x, size.y)).a; + outline += texture(TEXTURE, UV + vec2(-size.x, -size.y)).a; + outline += texture(TEXTURE, UV + vec2(size.x, -size.y)).a; + outline = min(outline, 1.0); + + vec4 color = texture(TEXTURE, UV); + COLOR = mix(color, line_color, outline - color.a); +}
\ No newline at end of file diff --git a/ui/editor/outline.material b/ui/editor/outline.material Binary files differnew file mode 100644 index 0000000..c6bc44f --- /dev/null +++ b/ui/editor/outline.material diff --git a/ui/editor/port.gd b/ui/editor/port.gd new file mode 100644 index 0000000..24ae3ff --- /dev/null +++ b/ui/editor/port.gd @@ -0,0 +1,108 @@ +extends SubViewport +class_name EditorViewport + +@onready var editor: TrackEditor = owner + +const map = { + TrackEditor.Mode.Select: preload("res://addons/@bendn/gizmo3d/selection_marker.tscn"), + TrackEditor.Mode.Move: preload("res://addons/@bendn/gizmo3d/translate/translate.tscn"), + TrackEditor.Mode.Scale: preload("res://addons/@bendn/gizmo3d/scale/scale.tscn"), + TrackEditor.Mode.Rotate: preload("res://addons/@bendn/gizmo3d/rotation/rotation.tscn"), +} + +var current: Gizmo +var gizmo_holder := Node3D.new() + +var original_gh_p: Vector3 +var original_scales: PackedVector3Array = [] +var original_transforms: Array[Transform3D] = [] + +func _ready() -> void: + add_child(gizmo_holder) + +func _position_gizmo_holder() -> void: + var sum := Vector3.ZERO + for block in editor.selected: + sum += block.live_node.global_position + gizmo_holder.global_position = sum / len(editor.selected) + +func _setup_originals() -> void: + original_transforms.resize(len(editor.selected)) + original_scales.resize(len(editor.selected)) + for i in len(editor.selected): + var n := editor.selected[i].live_node + original_transforms[i] = n.global_transform + original_scales[i] = n.scale + original_gh_p = gizmo_holder.global_position + +func update_gizmo(mode: TrackEditor.Mode) -> void: + if current != null: + current.queue_free() + current = null + original_transforms.clear() + original_scales.clear() + match mode: + _: + if editor.selected.size() == 0: + return + current = map[mode].instantiate() + _position_gizmo_holder() + gizmo_holder.add_child(current) + _setup_originals() + current.finalize.connect(_gizmo_finalize) + current.displaced.connect(_gizmo_displace) + current.scaled.connect(_gizmo_scale) + current.rotated.connect(_gizmo_rotate) + current.clicked.connect(%mousecast.gizmo_clicked) + +func snap(v: Vector3, step: Vector3 = Globals.SNAP) -> Vector3: + return v.snapped(step) if editor.snapping else v + +func _gizmo_displace(offset: Vector3): + const prop := &"global_position" + editor.history.create_action("move %d nodes" % editor.selected.size(), UndoRedo.MERGE_ENDS) + for i in len(editor.selected): + var n := editor.selected[i].live_node + editor.history.add_do_property(n, prop, snap(original_transforms[i].origin + offset)) + editor.history.add_undo_property(n, prop, original_transforms[i].origin) + editor.history.add_do_property(gizmo_holder, prop, original_gh_p + snap(offset)) + editor.history.add_undo_property(gizmo_holder, prop, original_gh_p) + editor.history.commit_action() + +func _gizmo_scale(change: Vector3): + const prop := &"scale" + editor.history.create_action("scale %d nodes" % editor.selected.size(), UndoRedo.MERGE_ENDS) + for i in len(editor.selected): + var n := editor.selected[i].live_node + var scl := snap(original_scales[i] + change, Vector3.ONE) + if scl.x <= 0 || scl.y <= 0: # pls no flip + scl = Vector3.ONE + editor.history.add_do_property(n, prop, scl) + editor.history.add_undo_property(n, prop, original_scales[i]) + editor.history.commit_action() + +func _gizmo_rotate(change: Vector3): + const prop := &"global_transform" + editor.history.create_action("rotate %d nodes" % editor.selected.size(), UndoRedo.MERGE_ENDS) + for i in len(editor.selected): + var n := editor.selected[i].live_node + var rotation := Transform3D(Basis.from_euler(change), Vector3()) + editor.history.add_do_property( + n, + prop, + (rotation * original_transforms[i].translated(-original_gh_p)).translated(original_gh_p) + ) + editor.history.add_undo_property(n, prop, original_transforms[i]) + editor.history.commit_action() + +func _gizmo_finalize(): + for i in len(editor.selected): + var n := editor.selected[i].live_node + original_scales[i] = n.scale + original_transforms[i] = n.global_transform + original_gh_p = gizmo_holder.global_position + +func _on_remove_tobj() -> void: + if current != null: + current.queue_free() + current = null diff --git a/ui/editor/propertys.gd b/ui/editor/propertys.gd new file mode 100644 index 0000000..30bb352 --- /dev/null +++ b/ui/editor/propertys.gd @@ -0,0 +1,4 @@ +extends VBoxContainer + +@onready var name_: LineEdit = %name +@onready var laps_: SpinBox = %laps diff --git a/ui/editor/propertys.tscn b/ui/editor/propertys.tscn new file mode 100644 index 0000000..185a780 --- /dev/null +++ b/ui/editor/propertys.tscn @@ -0,0 +1,53 @@ +[gd_scene load_steps=3 format=3 uid="uid://c4h850namjrn2"] + +[ext_resource type="Script" path="res://ui/editor/propertys.gd" id="1_0vjdc"] + +[sub_resource type="GDScript" id="GDScript_ly6xd"] +resource_name = "laps" +script/source = "extends SpinBox + +func _on_value_changed(val: float) -> void: + suffix = \"laps\" if val > 1 else \"lap\" +" + +[node name="propertys" type="VBoxContainer"] +size_flags_vertical = 3 +script = ExtResource("1_0vjdc") + +[node name="name" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="label" type="Label" parent="name"] +custom_minimum_size = Vector2(150, 0) +layout_mode = 2 +text = "name" + +[node name="name" type="LineEdit" parent="name"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +placeholder_text = "fluffy gizmo" +max_length = 50 +caret_blink = true + +[node name="laps" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="label" type="Label" parent="laps"] +custom_minimum_size = Vector2(150, 0) +layout_mode = 2 +text = "laps" + +[node name="laps" type="SpinBox" parent="laps"] +unique_name_in_owner = true +custom_minimum_size = Vector2(120, 0) +layout_mode = 2 +size_flags_horizontal = 3 +min_value = 1.0 +max_value = 50.0 +value = 1.0 +rounded = true +suffix = "lap" +script = SubResource("GDScript_ly6xd") + +[connection signal="value_changed" from="laps/laps" to="laps/laps" method="_on_value_changed"] diff --git a/ui/editor/redo.gd b/ui/editor/redo.gd new file mode 100644 index 0000000..46a86e1 --- /dev/null +++ b/ui/editor/redo.gd @@ -0,0 +1,13 @@ +extends Button + +@onready var hist: UndoRedo = owner.history + +func _pressed() -> void: + owner.reset_selected() + hist.redo() + +func _ready() -> void: + hist.version_changed.connect( + func(): + disabled = !hist.has_redo() + ) diff --git a/ui/editor/save.gd b/ui/editor/save.gd new file mode 100644 index 0000000..c77ea48 --- /dev/null +++ b/ui/editor/save.gd @@ -0,0 +1,19 @@ +extends Button + +@onready var hist: UndoRedo = owner.history + +const icons: PackedStringArray = ['', '', ''] +var unsaved := false: + set(un): + unsaved = un + text = icons[int(un)] + +func _on_pressed() -> void: + var data := (owner as TrackEditor).get_trackdata() + if FileAccess.file_exists(Globals.TRACKS % data.name): + pass + data.save(Globals.TRACKS % data.name) + unsaved = false + +func _ready() -> void: + hist.version_changed.connect(func(): unsaved = true) diff --git a/ui/editor/selection.gdshader b/ui/editor/selection.gdshader new file mode 100644 index 0000000..b2f8b9f --- /dev/null +++ b/ui/editor/selection.gdshader @@ -0,0 +1,21 @@ +shader_type canvas_item; + +//shadertoy 4lKXWD + +uniform vec4 bg_color: source_color = vec4(0,0,0,0.1); +uniform float dash_color: hint_range(0.0, 1.0, 0.1) = 1; +uniform float empty_color: hint_range(0.0, 1.0, 0.1) = 0; + +const vec2 center = vec2(0.5, 0.5); + +void fragment() { + vec2 fw = fwidth(UV); + vec2 dist = abs(UV - center); + if (all(lessThan(dist, center)) && any(greaterThan(dist, center - fw))) { + float dir = (dist.x > dist.y) ? -sign(UV.x - center.x) : sign(UV.y - center.y); + float dash = step(0.5, fract((FRAGCOORD.x + FRAGCOORD.y) * dir / 10.0 + TIME)); + float col = mix(dash_color, empty_color, dash); + COLOR = vec4(col, col, col, 1); + } else { COLOR = bg_color; } +} + diff --git a/ui/editor/track_editor.gd b/ui/editor/track_editor.gd new file mode 100644 index 0000000..9b2a499 --- /dev/null +++ b/ui/editor/track_editor.gd @@ -0,0 +1,122 @@ +extends PanelContainer +class_name TrackEditor + +@export var group: ButtonGroup +@onready var brush := %brush + +enum Mode { Select, Move, Rotate, Scale } +var mode: Mode +var selected: Array[TrackObject]: + set(s): + if s != selected: + for b in selected: # easier than finding the items that are not in selected but are in s + b.live_node.un_highlight() + selected = s + for b in selected: + b.live_node.highlight() + make_gizmo.emit(mode) + selection_changed.emit(selected) +var snapping := true +var objects: Array[TrackObject] = [] +var history := UndoRedo.new() +var track: TrackResource +signal make_gizmo(mode: Mode) +signal selection_changed(objects: Array[TrackObject]) + +const loader := preload("res://scenes/track.tscn") + +func _ready() -> void: + track = Globals.editing if Globals.editing else TrackResource.new([]) + var l: TrackLoader = loader.instantiate() + l.editor = true + l.track = track + add_child(l) + # move over the loaders children + for c in l.get_children(): + l.remove_child(c) + %port.add_child(c) + # the loader has loaded, get rid of it + l.queue_free() + objects = track.blocks.duplicate() # duplicate: if not saved, will be lost + %propertys.name_.text = track.name + %propertys.laps_.value = track.laps + %cam.global_transform = IntroCam.get_origin(track) # put the camera up high, looking straight down + + if not FileAccess.file_exists(Globals.TRACKS % track.name) and not track.builtin: + %save.unsaved = true + + group.pressed.connect(pressed) + tree_exiting.connect( + func(): + for obj in objects: + obj.delete_live() + ) + +func pressed(b: Button) -> void: + mode = Mode[b.name.to_pascal_case()] + make_gizmo.emit(mode) + +func reset_selected() -> void: + var new: Array[TrackObject] = [] + selected = new + +func _on_mousecast_hit(colls: Array[Block]) -> void: + var new_selected: Array[TrackObject] = [] + new_selected.resize(colls.size()) + var painting: bool = brush.button_pressed and not colls.is_empty() + if painting: + history.create_action("paint") + for i in len(colls): + new_selected[i] = tobj_from_node(colls[i]) + if painting and colls[i].materials_allowed() & brush.mat: + history.add_do_method(colls[i].set_mat.bind(brush.mat)) + history.add_undo_method(colls[i].set_mat.bind(colls[i].mat)) + assert(new_selected[i]!=null, "%s was not found" % [colls[i]]) + if not brush.button_pressed: + selected = new_selected + if painting: + history.commit_action() + +func _on_snapping_toggled(button_pressed: bool) -> void: + snapping = button_pressed + +func get_trackdata() -> TrackResource: + objects = objects.filter(func(o: TrackObject): return is_instance_valid(o.live_node)) + track.blocks = objects.duplicate() + track.name = %propertys.name_.text + track.laps = %propertys.laps_.value + return track + +func _on_item_created(object: TrackObject) -> void: + objects.append(object) + if object.live_node is Booster: + for block in objects: + if block.live_node is Booster: + block.live_node.sync() + %thonk.pitch_scale = randf_range(.9, 1.2) + %thonk.play() + +func tobj_from_node(node: Block) -> TrackObject: + for o in objects: + if o.live_node == node: + return o + return null + +func _on_delete_pressed() -> void: + selected = [] + +func _on_remove_tobj(tobj: TrackObject) -> void: + objects.erase(tobj) + +func _on_brush_toggled(on: bool) -> void: + if on: + var painting: bool = brush.button_pressed and not selected.is_empty() + if painting: + history.create_action("paint") + for o in selected: + if painting and o.live_node.materials_allowed() & brush.mat: + history.add_do_method(o.live_node.set_mat.bind(brush.mat)) + history.add_undo_method(o.live_node.set_mat.bind(o.live_node.mat)) + if painting: + history.commit_action() + reset_selected() diff --git a/ui/editor/track_editor.gdshader b/ui/editor/track_editor.gdshader new file mode 100644 index 0000000..afc349d --- /dev/null +++ b/ui/editor/track_editor.gdshader @@ -0,0 +1,32 @@ +shader_type canvas_item; + +void fragment() { + + // rect boundaries + vec2 rectMin = vec2(0.4, 0.2); + vec2 rectMax = vec2(0.8, 0.8); + + vec2 center = (rectMin + rectMax) / 2.0; + vec2 halfSize = center - rectMin; + vec2 fw = fwidth(UV); + + vec2 dist = abs(UV - center); + + float col = 0.0; + if (all(lessThan(dist, halfSize)) && any(greaterThan(dist, halfSize - fw))) { + // for pixel here I could use fragCoord.xy, but on textures you don't have it + // using fwidth is a tricky way to operate in screenspace sizes on all surfaces + // of course it's an approximation, but it's a pretty good one, here, uncomment this + // line to try fragCoord, it gives almost the same result: + //vec2 pixel = fragCoord.xy; + vec2 pixel = UV / fw; + float aspect = halfSize.y / halfSize.x; + float dir = (dist.x * aspect > dist.y) ? + -sign(UV.x - center.x) : sign(UV.y - center.y); + float dash = step(0.5, fract((pixel.x + pixel.y) * dir / 10.0 + TIME)); + col = mix(1.0, 0.0, dash); + } + + COLOR = vec4(col, col, col, 1.0); +} + diff --git a/ui/editor/track_editor.tscn b/ui/editor/track_editor.tscn new file mode 100644 index 0000000..74b0399 --- /dev/null +++ b/ui/editor/track_editor.tscn @@ -0,0 +1,557 @@ +[gd_scene load_steps=62 format=3 uid="uid://0x720q7tnsj0"] + +[ext_resource type="Script" path="res://ui/editor/tree.gd" id="1_65spq"] +[ext_resource type="Theme" uid="uid://d3ywcokn5ddy8" path="res://ui/theme.tres" id="1_cc7dd"] +[ext_resource type="StyleBox" uid="uid://dxtsrhgnyr80k" path="res://ui/panel_dark.stylebox" id="2_l1cwd"] +[ext_resource type="Script" path="res://ui/editor/items.gd" id="2_q16oo"] +[ext_resource type="Script" path="res://ui/editor/track_editor.gd" id="3_50gj4"] +[ext_resource type="Script" path="res://ui/editor/cam.gd" id="6_o7q05"] +[ext_resource type="ButtonGroup" uid="uid://oio3aly7aeny" path="res://ui/editor/group.tres" id="6_vgj8v"] +[ext_resource type="Script" path="res://ui/editor/port.gd" id="7_ftio3"] +[ext_resource type="Script" path="res://ui/editor/back_button.gd" id="7_r0vjt"] +[ext_resource type="Script" path="res://ui/editor/save.gd" id="7_saajs"] +[ext_resource type="Script" path="res://ui/editor/export.gd" id="9_nra4c"] +[ext_resource type="Theme" uid="uid://bds815vxta4ma" path="res://ui/editor/bar_button.tres" id="9_x2saf"] +[ext_resource type="PackedScene" uid="uid://c4h850namjrn2" path="res://ui/editor/propertys.tscn" id="10_kqvab"] +[ext_resource type="Resource" uid="uid://qxacdpu7fkgb" path="res://ui/editor/editor_fs.tres" id="11_ijop2"] +[ext_resource type="Script" path="res://ui/multi_button.gd" id="11_nar81"] +[ext_resource type="Script" path="res://ui/editor/delete.gd" id="13_agg2r"] +[ext_resource type="Script" path="res://ui/editor/undo.gd" id="13_bgr8w"] +[ext_resource type="StyleBox" uid="uid://bg21fak47r0np" path="res://ui/panel_light.stylebox" id="13_cyvq7"] +[ext_resource type="Script" path="res://ui/editor/redo.gd" id="14_2ypjq"] +[ext_resource type="Texture2D" uid="uid://dfmcv080xpxdl" path="res://ui/assets/brush_handle.png" id="15_0xrjt"] +[ext_resource type="Script" path="res://ui/editor/brush.gd" id="15_vvkyy"] +[ext_resource type="Texture2D" uid="uid://bn83ygj5y3d8q" path="res://ui/assets/brush_brush.png" id="16_0ntdi"] +[ext_resource type="Texture2D" uid="uid://dmxtfr7xfkpyf" path="res://ui/assets/brush_cursor.png" id="16_5gj5o"] +[ext_resource type="PackedScene" uid="uid://cvs6pj6a5w5t" path="res://ui/editor/wall_tool.tscn" id="16_6ojvx"] +[ext_resource type="Script" path="res://ui/editor/duplicate.gd" id="17_7y8ae"] +[ext_resource type="Script" path="res://ui/editor/hatch.gd" id="17_ugqw3"] +[ext_resource type="Texture2D" uid="uid://ce5kkd4bg17wl" path="res://ui/assets/brush_outline.png" id="18_cvlsk"] +[ext_resource type="Script" path="res://ui/editor/mousecast.gd" id="19_hmpi3"] +[ext_resource type="Shader" path="res://ui/editor/selection.gdshader" id="22_sij02"] +[ext_resource type="AudioStream" uid="uid://bvtxqrhkbai7x" path="res://assets/sounds/plonk.ogg" id="25_hegbs"] + +[sub_resource type="InputEventKey" id="InputEventKey_8ix4j"] +device = -1 +ctrl_pressed = true +keycode = 83 +unicode = 115 + +[sub_resource type="Shortcut" id="Shortcut_3gcv0"] +events = [SubResource("InputEventKey_8ix4j")] + +[sub_resource type="InputEventKey" id="InputEventKey_tmkac"] +device = -1 +ctrl_pressed = true +keycode = 69 +unicode = 101 + +[sub_resource type="Shortcut" id="Shortcut_uhpqg"] +events = [SubResource("InputEventKey_tmkac")] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1bugq"] +bg_color = Color(0.027451, 0.211765, 0.258824, 1) +corner_radius_top_left = 15 +corner_radius_top_right = 15 + +[sub_resource type="InputEventKey" id="InputEventKey_w2y01"] +device = -1 +keycode = 81 +unicode = 113 + +[sub_resource type="Shortcut" id="Shortcut_5skl8"] +events = [SubResource("InputEventKey_w2y01")] + +[sub_resource type="InputEventKey" id="InputEventKey_yfrw1"] +device = -1 +keycode = 87 +unicode = 119 + +[sub_resource type="Shortcut" id="Shortcut_njwdg"] +events = [SubResource("InputEventKey_yfrw1")] + +[sub_resource type="InputEventKey" id="InputEventKey_wcb2q"] +device = -1 +keycode = 69 +unicode = 101 + +[sub_resource type="Shortcut" id="Shortcut_tekm2"] +events = [SubResource("InputEventKey_wcb2q")] + +[sub_resource type="InputEventKey" id="InputEventKey_xodsd"] +device = -1 +keycode = 83 +unicode = 115 + +[sub_resource type="Shortcut" id="Shortcut_p3vb8"] +events = [SubResource("InputEventKey_xodsd")] + +[sub_resource type="InputEventKey" id="InputEventKey_nyu56"] +device = -1 +shift_pressed = true +keycode = 71 +unicode = 71 + +[sub_resource type="Shortcut" id="Shortcut_tet3e"] +events = [SubResource("InputEventKey_nyu56")] + +[sub_resource type="LabelSettings" id="LabelSettings_6nqim"] +font_size = 12 +font_color = Color(0.14902, 0.545098, 0.823529, 1) +outline_size = 10 +outline_color = Color(0.027451, 0.211765, 0.258824, 1) + +[sub_resource type="InputEventKey" id="InputEventKey_vl62h"] +device = -1 +keycode = 80 +unicode = 112 + +[sub_resource type="Shortcut" id="Shortcut_uthi5"] +events = [SubResource("InputEventKey_vl62h")] + +[sub_resource type="InputEventKey" id="InputEventKey_eddoh"] +device = -1 +ctrl_pressed = true +keycode = 90 +unicode = 122 + +[sub_resource type="Shortcut" id="Shortcut_kampb"] +events = [SubResource("InputEventKey_eddoh")] + +[sub_resource type="InputEventKey" id="InputEventKey_r2b0g"] +device = -1 +ctrl_pressed = true +keycode = 89 +unicode = 121 + +[sub_resource type="InputEventKey" id="InputEventKey_m7yhl"] +device = -1 +shift_pressed = true +ctrl_pressed = true +keycode = 90 +unicode = 90 + +[sub_resource type="Shortcut" id="Shortcut_6jonl"] +events = [SubResource("InputEventKey_r2b0g"), SubResource("InputEventKey_m7yhl")] + +[sub_resource type="InputEventKey" id="InputEventKey_53uh0"] +device = -1 +keycode = 4194308 + +[sub_resource type="InputEventKey" id="InputEventKey_uh7no"] +device = -1 +keycode = 4194312 + +[sub_resource type="Shortcut" id="Shortcut_4byk3"] +events = [SubResource("InputEventKey_53uh0"), SubResource("InputEventKey_uh7no")] + +[sub_resource type="InputEventKey" id="InputEventKey_hnh1d"] +device = -1 +ctrl_pressed = true +keycode = 68 +unicode = 100 + +[sub_resource type="Shortcut" id="Shortcut_5hxvg"] +events = [SubResource("InputEventKey_hnh1d")] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7qcnf"] +bg_color = Color(0, 0, 0, 1) +corner_radius_bottom_right = 15 +corner_radius_bottom_left = 15 +corner_detail = 12 +anti_aliasing_size = 0.397 + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_y3yf4"] +shader = ExtResource("22_sij02") +shader_parameter/bg_color = Color(0, 0, 0, 0.1) +shader_parameter/dash_color = 1.0 +shader_parameter/empty_color = 0.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vunt4"] +content_margin_left = 10.0 +content_margin_top = 10.0 +content_margin_right = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(0, 0.168627, 0.211765, 1) +corner_radius_top_left = 15 +corner_radius_top_right = 15 +corner_radius_bottom_right = 15 +corner_radius_bottom_left = 15 + +[node name="TrackEditor" type="PanelContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme = ExtResource("1_cc7dd") +theme_override_styles/panel = ExtResource("2_l1cwd") +script = ExtResource("3_50gj4") +group = ExtResource("6_vgj8v") + +[node name="split" type="HSplitContainer" parent="."] +layout_mode = 2 + +[node name="left dock" type="VSplitContainer" parent="split"] +custom_minimum_size = Vector2(100, 0) +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="data" type="PanelContainer" parent="split/left dock"] +layout_mode = 2 +size_flags_vertical = 3 +theme_override_styles/panel = ExtResource("13_cyvq7") + +[node name="container" type="VBoxContainer" parent="split/left dock/data"] +layout_mode = 2 + +[node name="buttons" type="HFlowContainer" parent="split/left dock/data/container"] +layout_mode = 2 +theme = ExtResource("9_x2saf") + +[node name="back" type="Button" parent="split/left dock/data/container/buttons"] +custom_minimum_size = Vector2(30, 0) +layout_mode = 2 +text = " " +script = ExtResource("7_r0vjt") + +[node name="vsep" type="VSeparator" parent="split/left dock/data/container/buttons"] +layout_mode = 2 + +[node name="save" type="Button" parent="split/left dock/data/container/buttons"] +unique_name_in_owner = true +custom_minimum_size = Vector2(40, 50) +layout_mode = 2 +tooltip_text = "Save track (Ctrl+S)" +shortcut = SubResource("Shortcut_3gcv0") +shortcut_in_tooltip = false +text = " +" +script = ExtResource("7_saajs") + +[node name="export" type="Button" parent="split/left dock/data/container/buttons"] +custom_minimum_size = Vector2(20, 50) +layout_mode = 2 +tooltip_text = "Export track to clipboard (Ctrl+E)" +shortcut = SubResource("Shortcut_uhpqg") +shortcut_in_tooltip = false +text = "" +script = ExtResource("9_nra4c") + +[node name="propertys" parent="split/left dock/data/container" instance=ExtResource("10_kqvab")] +unique_name_in_owner = true +layout_mode = 2 + +[node name="fs" type="VSplitContainer" parent="split/left dock"] +layout_mode = 2 +size_flags_vertical = 3 +size_flags_stretch_ratio = 2.29 + +[node name="fs tree" type="Tree" parent="split/left dock/fs"] +layout_mode = 2 +size_flags_vertical = 3 +hide_root = true +scroll_horizontal_enabled = false +script = ExtResource("1_65spq") +root_fs = ExtResource("11_ijop2") + +[node name="items" type="ItemList" parent="split/left dock/fs"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 3 +theme_override_font_sizes/font_size = 24 +max_columns = 3 +icon_mode = 0 +fixed_icon_size = Vector2i(64, 64) +script = ExtResource("2_q16oo") + +[node name="split2" type="HSplitContainer" parent="split"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_stretch_ratio = 3.45 + +[node name="middle dock" type="VBoxContainer" parent="split/split2"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_stretch_ratio = 2.72 +mouse_filter = 2 +theme_override_constants/separation = 0 + +[node name="buttons" type="PanelContainer" parent="split/split2/middle dock"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_1bugq") + +[node name="container" type="HFlowContainer" parent="split/split2/middle dock/buttons"] +custom_minimum_size = Vector2(0, 50) +layout_mode = 2 +theme = ExtResource("9_x2saf") +theme_override_constants/h_separation = 0 + +[node name="select" type="Button" parent="split/split2/middle dock/buttons/container"] +custom_minimum_size = Vector2(40, 50) +layout_mode = 2 +tooltip_text = "Select mode (Q)" +theme = ExtResource("9_x2saf") +toggle_mode = true +button_pressed = true +button_group = ExtResource("6_vgj8v") +shortcut = SubResource("Shortcut_5skl8") +shortcut_in_tooltip = false +text = "" + +[node name="sep" type="VSeparator" parent="split/split2/middle dock/buttons/container"] +layout_mode = 2 + +[node name="move" type="Button" parent="split/split2/middle dock/buttons/container"] +custom_minimum_size = Vector2(40, 50) +layout_mode = 2 +tooltip_text = "Move Mode (W)" +theme = ExtResource("9_x2saf") +toggle_mode = true +button_group = ExtResource("6_vgj8v") +shortcut = SubResource("Shortcut_njwdg") +shortcut_in_tooltip = false +text = "" + +[node name="rotate" type="Button" parent="split/split2/middle dock/buttons/container"] +custom_minimum_size = Vector2(40, 50) +layout_mode = 2 +tooltip_text = "Rotate Mode (E)" +theme = ExtResource("9_x2saf") +toggle_mode = true +button_group = ExtResource("6_vgj8v") +shortcut = SubResource("Shortcut_tekm2") +shortcut_in_tooltip = false +text = "" + +[node name="scale" type="Button" parent="split/split2/middle dock/buttons/container"] +custom_minimum_size = Vector2(40, 50) +layout_mode = 2 +tooltip_text = "Scale Mode (C)" +theme = ExtResource("9_x2saf") +toggle_mode = true +button_group = ExtResource("6_vgj8v") +shortcut = SubResource("Shortcut_p3vb8") +shortcut_in_tooltip = false +text = "" + +[node name="spacer" type="Control" parent="split/split2/middle dock/buttons/container"] +custom_minimum_size = Vector2(4, 0) +layout_mode = 2 + +[node name="sep2" type="VSeparator" parent="split/split2/middle dock/buttons/container"] +layout_mode = 2 + +[node name="snapping" type="Button" parent="split/split2/middle dock/buttons/container" node_paths=PackedStringArray("secondary")] +custom_minimum_size = Vector2(40, 50) +layout_mode = 2 +tooltip_text = "Use Grid Snap (Shift+G)" +theme = ExtResource("9_x2saf") +toggle_mode = true +button_pressed = true +action_mode = 0 +shortcut = SubResource("Shortcut_tet3e") +shortcut_in_tooltip = false +text = " " +script = ExtResource("11_nar81") +secondary = NodePath("magnet") + +[node name="magnet" type="Label" parent="split/split2/middle dock/buttons/container/snapping"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 30.0 +offset_top = 38.0 +offset_right = 30.0 +offset_bottom = 38.0 +grow_horizontal = 2 +grow_vertical = 2 +rotation = 3.14159 +text = "" +label_settings = SubResource("LabelSettings_6nqim") + +[node name="sep4" type="VSeparator" parent="split/split2/middle dock/buttons/container"] +layout_mode = 2 + +[node name="brush" type="Button" parent="split/split2/middle dock/buttons/container" node_paths=PackedStringArray("secondary")] +unique_name_in_owner = true +custom_minimum_size = Vector2(40, 50) +layout_mode = 2 +tooltip_text = "Paintbrush Tool (P)" +theme = ExtResource("9_x2saf") +theme_override_font_sizes/font_size = 21 +disabled = true +toggle_mode = true +shortcut = SubResource("Shortcut_uthi5") +shortcut_in_tooltip = false +script = ExtResource("15_vvkyy") +cursor = ExtResource("16_5gj5o") +secondary = NodePath("handle") + +[node name="handle" type="TextureRect" parent="split/split2/middle dock/buttons/container/brush"] +modulate = Color(0.870588, 0.831373, 0.698039, 1) +layout_mode = 0 +offset_left = 11.0 +offset_top = 10.0 +offset_right = 33.0 +offset_bottom = 23.0 +texture = ExtResource("15_0xrjt") +expand_mode = 1 +stretch_mode = 4 + +[node name="brush" type="TextureRect" parent="split/split2/middle dock/buttons/container/brush"] +modulate = Color(0.870588, 0.831373, 0.698039, 1) +layout_mode = 0 +offset_left = 11.0 +offset_top = 24.0 +offset_right = 33.0 +offset_bottom = 39.0 +texture = ExtResource("16_0ntdi") +expand_mode = 1 +stretch_mode = 4 + +[node name="outline" type="TextureRect" parent="split/split2/middle dock/buttons/container/brush"] +visible = false +modulate = Color(0.14902, 0.545098, 0.823529, 1) +layout_mode = 0 +offset_left = 10.0 +offset_top = 9.0 +offset_right = 34.0 +offset_bottom = 47.0 +texture = ExtResource("18_cvlsk") +expand_mode = 1 +stretch_mode = 4 + +[node name="spacer2" type="Control" parent="split/split2/middle dock/buttons/container"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="undo" type="Button" parent="split/split2/middle dock/buttons/container"] +custom_minimum_size = Vector2(40, 0) +layout_mode = 2 +tooltip_text = "Undo (Ctrl + Z)" +disabled = true +shortcut = SubResource("Shortcut_kampb") +shortcut_in_tooltip = false +text = "" +script = ExtResource("13_bgr8w") + +[node name="redo" type="Button" parent="split/split2/middle dock/buttons/container"] +custom_minimum_size = Vector2(40, 0) +layout_mode = 2 +tooltip_text = "Redo (Ctrl + Y | Ctrl + Shift + Z)" +disabled = true +shortcut = SubResource("Shortcut_6jonl") +shortcut_in_tooltip = false +text = " " +script = ExtResource("14_2ypjq") + +[node name="sep3" type="VSeparator" parent="split/split2/middle dock/buttons/container"] +layout_mode = 2 + +[node name="delete" type="Button" parent="split/split2/middle dock/buttons/container"] +custom_minimum_size = Vector2(40, 0) +layout_mode = 2 +tooltip_text = "Delete selected object (Backspace | Delete)" +disabled = true +shortcut = SubResource("Shortcut_4byk3") +shortcut_in_tooltip = false +text = " " +script = ExtResource("13_agg2r") + +[node name="duplicate" type="Button" parent="split/split2/middle dock/buttons/container"] +custom_minimum_size = Vector2(40, 0) +layout_mode = 2 +tooltip_text = "Duplicate (Ctrl + D)" +disabled = true +shortcut = SubResource("Shortcut_5hxvg") +text = " " +script = ExtResource("17_7y8ae") + +[node name="viewport" type="PanelContainer" parent="split/split2/middle dock"] +clip_children = 1 +layout_mode = 2 +size_flags_vertical = 3 +mouse_filter = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_7qcnf") + +[node name="view" type="SubViewportContainer" parent="split/split2/middle dock/viewport"] +unique_name_in_owner = true +custom_minimum_size = Vector2(250, 250) +layout_mode = 2 +stretch = true +script = ExtResource("17_ugqw3") + +[node name="port" type="SubViewport" parent="split/split2/middle dock/viewport/view"] +unique_name_in_owner = true +handle_input_locally = false +physics_object_picking = true +size = Vector2i(1067, 1010) +render_target_update_mode = 4 +script = ExtResource("7_ftio3") + +[node name="mousecast" type="RayCast3D" parent="split/split2/middle dock/viewport/view/port"] +unique_name_in_owner = true +enabled = false +collision_mask = 2147483648 +script = ExtResource("19_hmpi3") + +[node name="area" type="ColorRect" parent="split/split2/middle dock/viewport/view/port/mousecast"] +visible = false +material = SubResource("ShaderMaterial_y3yf4") + +[node name="cam" type="Camera3D" parent="split/split2/middle dock/viewport/view/port"] +unique_name_in_owner = true +script = ExtResource("6_o7q05") + +[node name="right dock" type="VBoxContainer" parent="split/split2"] +custom_minimum_size = Vector2(150, 0) +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="panel" type="PanelContainer" parent="split/split2/right dock"] +layout_mode = 2 +size_flags_vertical = 3 +theme_override_styles/panel = ExtResource("13_cyvq7") + +[node name="panelinner" type="PanelContainer" parent="split/split2/right dock/panel"] +layout_mode = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_vunt4") + +[node name="inspector" type="VBoxContainer" parent="split/split2/right dock/panel/panelinner"] +layout_mode = 2 + +[node name="wall" parent="split/split2/right dock/panel/panelinner/inspector" node_paths=PackedStringArray("editor") instance=ExtResource("16_6ojvx")] +layout_mode = 2 +editor = NodePath("../../../../../../..") + +[node name="thonk" type="AudioStreamPlayer" parent="."] +unique_name_in_owner = true +stream = ExtResource("25_hegbs") +volume_db = -14.0 +max_polyphony = 2 + +[connection signal="make_gizmo" from="." to="split/split2/middle dock/viewport/view/port" method="update_gizmo"] +[connection signal="selection_changed" from="." to="split/split2/middle dock/buttons/container/delete" method="_on_selection_changed"] +[connection signal="selection_changed" from="." to="split/split2/middle dock/buttons/container/duplicate" method="_on_selection_changed"] +[connection signal="selection_changed" from="." to="split/split2/right dock/panel/panelinner/inspector/wall" method="_on_track_editor_selection_changed"] +[connection signal="back" from="split/left dock/data/container/buttons/back" to="." method="queue_free"] +[connection signal="pressed" from="split/left dock/data/container/buttons/back" to="split/left dock/data/container/buttons/back" method="_on_pressed"] +[connection signal="pressed" from="split/left dock/data/container/buttons/save" to="split/left dock/data/container/buttons/save" method="_on_pressed"] +[connection signal="cell_selected" from="split/left dock/fs/fs tree" to="split/left dock/fs/fs tree" method="_on_cell_selected"] +[connection signal="cell_selected" from="split/left dock/fs/fs tree" to="split/left dock/fs/fs tree" method="expand_selected"] +[connection signal="selected_dir" from="split/left dock/fs/fs tree" to="split/left dock/fs/items" method="open_dir"] +[connection signal="dir_selected" from="split/left dock/fs/items" to="split/left dock/fs/fs tree" method="_on_items_dir_selected"] +[connection signal="dir_selected" from="split/left dock/fs/items" to="split/left dock/fs/fs tree" method="expand_selected" unbinds=1] +[connection signal="tree_exiting" from="split/left dock/fs/items" to="split/left dock/fs/items" method="_on_tree_exiting"] +[connection signal="toggled" from="split/split2/middle dock/buttons/container/snapping" to="." method="_on_snapping_toggled"] +[connection signal="toggled" from="split/split2/middle dock/buttons/container/brush" to="." method="_on_brush_toggled"] +[connection signal="pressed" from="split/split2/middle dock/buttons/container/delete" to="." method="_on_delete_pressed"] +[connection signal="created" from="split/split2/middle dock/viewport/view" to="." method="_on_item_created"] +[connection signal="created" from="split/split2/middle dock/viewport/view" to="split/split2/middle dock/viewport/view/port/mousecast" method="_on_view_created" unbinds=1] +[connection signal="remove_tobj" from="split/split2/middle dock/viewport/view" to="." method="_on_remove_tobj"] +[connection signal="remove_tobj" from="split/split2/middle dock/viewport/view" to="split/split2/middle dock/viewport/view/port" method="_on_remove_tobj" unbinds=1] +[connection signal="hit" from="split/split2/middle dock/viewport/view/port/mousecast" to="." method="_on_mousecast_hit"] +[connection signal="hit" from="split/split2/middle dock/viewport/view/port/mousecast" to="split/split2/middle dock/buttons/container/brush" method="_on_mousecast_hit"] diff --git a/ui/editor/track_select.gd b/ui/editor/track_select.gd new file mode 100644 index 0000000..e7ed050 --- /dev/null +++ b/ui/editor/track_select.gd @@ -0,0 +1,39 @@ +extends TrackSelect +class_name TrackEditorList + +@export var other: BuiltinTrackSelect +var tracks: Array[TrackResource] = [] + +func _ready() -> void: + if not DirAccess.dir_exists_absolute(Globals.TRACKS.get_base_dir()): + DirAccess.make_dir_recursive_absolute(Globals.TRACKS.get_base_dir()) + var d := DirAccess.open(Globals.TRACKS.get_base_dir()) + d.list_dir_begin() + var item := d.get_next() + while !item.is_empty(): + tracks.append(TrackResource._load(Globals.TRACKS.get_base_dir().path_join(item))) + item = d.get_next() + mkbuttons(tracks) + super() + +func _on_mkbutton(b: TrackButton, t: TrackResource) -> void: + @warning_ignore("static_called_on_instance") + b.include.connect(func(): other.add(t); BuiltinTrackSelect.delete(t); b.queue_free()) + +func _on_new_pressed() -> void: + var res := TrackResource.new([]) + var n := 0 + while FileAccess.file_exists(Globals.TRACKS % ("untitled track %d" % n if n != 0 else "untitled track")): + n+=1 + var nam := "untitled track %d" % n if n != 0 else "untitled track" + res.name = nam + edit(res) + tracks.append(res) + mkbutton(res) + +func _on_import_import(p_track: TrackResource) -> void: + for track in tracks: + if track.name == p_track.name: + return + p_track.save(Globals.TRACKS % p_track.name) + mkbutton(p_track) diff --git a/ui/editor/tree.gd b/ui/editor/tree.gd new file mode 100644 index 0000000..df1f0ab --- /dev/null +++ b/ui/editor/tree.gd @@ -0,0 +1,34 @@ +@tool +extends Tree + +@export var root_fs: DirRes +var selected: DirRes + +signal selected_dir(d: DirRes) + +func _ready() -> void: + var root := create_item(); + populate(root_fs, root) + +func populate(fs: DirRes, parent: TreeItem): + for file in fs.files: + if file is DirRes: + var item := create_item(parent) + item.set_icon(0, preload("res://ui/assets/folder.png")) + item.set_icon_max_width(0, 24) + item.set_text(0, file.resource_name) + item.set_meta(&"res", file) + item.set_tooltip_text(0, file.description) + item.collapsed = true + populate(file, item) + else: pass # we dont do files here (that responsibility goes to items) + +func expand_selected() -> void: + get_selected().collapsed = false + +func _on_cell_selected() -> void: + selected = get_selected().get_meta(&"res") + selected_dir.emit(selected) + +func _on_items_dir_selected(i: int) -> void: + get_selected().get_child(i).select(0) diff --git a/ui/editor/undo.gd b/ui/editor/undo.gd new file mode 100644 index 0000000..c66186b --- /dev/null +++ b/ui/editor/undo.gd @@ -0,0 +1,13 @@ +extends Button + +@onready var hist: UndoRedo = owner.history + +func _pressed() -> void: + owner.reset_selected() + hist.undo() + +func _ready() -> void: + hist.version_changed.connect( + func(): + disabled = !hist.has_undo() + ) diff --git a/ui/editor/wall_tool.gd b/ui/editor/wall_tool.gd new file mode 100644 index 0000000..5172fd1 --- /dev/null +++ b/ui/editor/wall_tool.gd @@ -0,0 +1,55 @@ +extends Control +class_name WallTool + +var initializing := false +var blocks: Array[Block] +@export var editor: TrackEditor +@onready var hist: UndoRedo = editor.history +@onready var buttons := { + Block.WALL_W: %west, + Block.WALL_E: %east, + Block.WALL_S: %south, + Block.WALL_N: %north, +} + +func _ready() -> void: + reset() + +func toggle(on: bool, wall: int) -> void: + if initializing: return + hist.create_action("set %s wall on %d nodes" % [Block.STRING[wall], len(blocks)]) + for block in blocks: + if block.get_wall_mode() & wall: + if on and not block.has_wall(wall): + hist.add_do_method(block.make_wall.bind(wall)) + hist.add_undo_method(block.make_wall.bind(wall)) + elif block.has_wall(wall): + hist.add_do_method(block.remove_wall.bind(wall)) + hist.add_undo_method(block.make_wall.bind(wall)) + hist.commit_action() + +func reset(): + visible = false + for button in buttons.values(): + button.disabled = true + blocks.clear() + +func _on_track_editor_selection_changed(p_nodes: Array[TrackObject]) -> void: + reset() + initializing = true + var has_map := { Block.WALL_W: 0, Block.WALL_E: 0, Block.WALL_N: 0, Block.WALL_S: 0 } + for node in p_nodes: + var wm := node.live_node.get_wall_mode() + if wm == 0: + continue + for wall in buttons: + if wm & wall: + buttons[wall].disabled = false + visible = true + if node.live_node.has_wall(wall): + has_map[wall] += 1 + blocks.append(node.live_node) + var half_or_none := roundi(blocks.size()/2.0) if blocks.size()>1 else 0 + for wall in buttons: + buttons[wall].button_pressed = has_map[wall] > half_or_none + initializing = false diff --git a/ui/editor/wall_tool.tscn b/ui/editor/wall_tool.tscn new file mode 100644 index 0000000..1ed8507 --- /dev/null +++ b/ui/editor/wall_tool.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=3 format=3 uid="uid://cvs6pj6a5w5t"] + +[ext_resource type="Script" path="res://ui/editor/wall_tool.gd" id="1_35bl1"] +[ext_resource type="StyleBox" uid="uid://bg21fak47r0np" path="res://ui/panel_light.stylebox" id="2_326xw"] + +[node name="wall" type="VBoxContainer"] +script = ExtResource("1_35bl1") + +[node name="label" type="Label" parent="."] +layout_mode = 2 +theme_override_styles/normal = ExtResource("2_326xw") +text = " walls" +horizontal_alignment = 1 + +[node name="west" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="label" type="Label" parent="west"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +text = " wall" + +[node name="west" type="CheckBox" parent="west"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="east" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="label" type="Label" parent="east"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +text = " wall" + +[node name="east" type="CheckBox" parent="east"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="north" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="label" type="Label" parent="north"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +text = " wall" + +[node name="north" type="CheckBox" parent="north"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="south" type="HBoxContainer" parent="."] +layout_mode = 2 + +[node name="label" type="Label" parent="south"] +custom_minimum_size = Vector2(200, 0) +layout_mode = 2 +text = " wall" + +[node name="south" type="CheckBox" parent="south"] +unique_name_in_owner = true +layout_mode = 2 + +[connection signal="toggled" from="west/west" to="." method="toggle" binds= [1]] +[connection signal="toggled" from="east/east" to="." method="toggle" binds= [2]] +[connection signal="toggled" from="north/north" to="." method="toggle" binds= [8]] +[connection signal="toggled" from="south/south" to="." method="toggle" binds= [4]] diff --git a/ui/finish.tscn b/ui/finish.tscn index d87c7a3..85a462d 100644 --- a/ui/finish.tscn +++ b/ui/finish.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=16 format=3 uid="uid://cr1mgp6bgxh64"] -[ext_resource type="Theme" uid="uid://cru1d7n2ftrfm" path="res://ui/theme.tres" id="1_aykd4"] +[ext_resource type="Theme" uid="uid://d3ywcokn5ddy8" path="res://ui/theme.tres" id="1_aykd4"] [ext_resource type="Script" path="res://ui/finish.gd" id="1_crs2w"] [ext_resource type="Script" path="res://ui/diff.gd" id="2_gtres"] [ext_resource type="SystemFont" uid="uid://d2klp6vxh5l2d" path="res://ui/cascadiabold.tres" id="3_qktla"] @@ -8,7 +8,7 @@ [ext_resource type="SystemFont" uid="uid://bkjqtc5i64r3j" path="res://ui/ubuntu.tres" id="5_llemr"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bgqa0"] -bg_color = Color(0.027451, 0.211765, 0.258824, 1) +bg_color = Color(0, 0.168627, 0.211765, 1) corner_radius_top_left = 100 corner_radius_top_right = 100 corner_radius_bottom_right = 100 @@ -1,7 +1,7 @@ extends Node class_name HUD -signal assigned(car, ghost: GhostCar, timer: GameTimer, track: TrackLoader) +signal assigned(car, timer: GameTimer, track: TrackLoader) signal next_lap @export var splits: Splits diff --git a/ui/hud.tscn b/ui/hud.tscn index 8ac3f5b..5f1d25e 100644 --- a/ui/hud.tscn +++ b/ui/hud.tscn @@ -1,17 +1,13 @@ -[gd_scene load_steps=18 format=3 uid="uid://vok7fdcyec68"] +[gd_scene load_steps=13 format=3 uid="uid://vok7fdcyec68"] -[ext_resource type="Theme" uid="uid://cru1d7n2ftrfm" path="res://ui/theme.tres" id="1_ie2j2"] +[ext_resource type="Theme" uid="uid://d3ywcokn5ddy8" path="res://ui/theme.tres" id="1_ie2j2"] [ext_resource type="Script" path="res://ui/hud.gd" id="1_sfhpc"] [ext_resource type="Script" path="res://ui/speedometer.gd" id="2_cvi37"] [ext_resource type="Script" path="res://ui/timer.gd" id="3_poksb"] -[ext_resource type="Texture2D" uid="uid://bfe4ytl0vjosb" path="res://ui/assets/line.png" id="4_o0swd"] [ext_resource type="SystemFont" uid="uid://bkjqtc5i64r3j" path="res://ui/ubuntu.tres" id="4_sh4bn"] -[ext_resource type="Script" path="res://ui/map.gd" id="5_blxcm"] [ext_resource type="Script" path="res://ui/gears.gd" id="5_g6cg4"] [ext_resource type="StyleBox" uid="uid://cly1aqudpku5j" path="res://ui/panel_skew_r.tres" id="6_g2n2l"] -[ext_resource type="Texture2D" uid="uid://b3nmp7eyu0hjk" path="res://ui/assets/flag.png" id="6_ho2g6"] -[ext_resource type="Texture2D" uid="uid://b6ad1yrgtg6qk" path="res://ui/assets/player_indicator.png" id="7_wv12s"] -[ext_resource type="Texture2D" uid="uid://dkbrx7rpa8dvc" path="res://ui/assets/ghost.png" id="8_yfv7r"] +[ext_resource type="FontVariation" uid="uid://ba8ab6dti2fvo" path="res://ui/boldsans.tres" id="8_mupi7"] [ext_resource type="PackedScene" uid="uid://nkh2xi7tnumc" path="res://ui/splits/splits.tscn" id="9_gtkqi"] [ext_resource type="Script" path="res://ui/laps.gd" id="10_78pxt"] @@ -29,10 +25,6 @@ corner_radius_bottom_right = 20 corner_radius_bottom_left = 20 corner_detail = 12 -[sub_resource type="Gradient" id="Gradient_2kvil"] -offsets = PackedFloat32Array(0, 0.178744, 0.454106, 0.719807, 1) -colors = PackedColorArray(0.85098, 0.85098, 0.85098, 1, 0.942823, 0.942823, 0.942822, 1, 0.868985, 0.868985, 0.868985, 1, 0.838897, 0.838897, 0.838897, 1, 0.85098, 0.85098, 0.85098, 1) - [node name="HUD" type="Control" node_paths=PackedStringArray("splits", "laps")] layout_mode = 3 anchors_preset = 15 @@ -93,6 +85,7 @@ custom_minimum_size = Vector2(0, 105) layout_mode = 2 size_flags_horizontal = 4 theme_override_colors/font_color = Color(0.992157, 0.964706, 0.890196, 1) +theme_override_font_sizes/font_size = 76 text = "龍 0km/h" horizontal_alignment = 1 vertical_alignment = 1 @@ -123,40 +116,18 @@ custom_minimum_size = Vector2(200, 105) layout_mode = 2 size_flags_horizontal = 4 theme_override_colors/default_color = Color(0.992157, 0.964706, 0.890196, 1) +theme_override_fonts/bold_font = ExtResource("8_mupi7") bbcode_enabled = true text = "[center] [b][color=#4682b4]N[/color][/b][/center]" script = ExtResource("5_g6cg4") -[node name="MiniMapContainer" type="MarginContainer" parent="."] -custom_minimum_size = Vector2(500, 500) -layout_mode = 1 -offset_left = 25.0 -offset_top = 25.0 -offset_right = 525.0 -offset_bottom = 525.0 - -[node name="MiniMap" type="Line2D" parent="MiniMapContainer"] -texture_repeat = 2 -width = 40.0 -default_color = Color(0.854902, 0.854902, 0.854902, 1) -gradient = SubResource("Gradient_2kvil") -texture = ExtResource("4_o0swd") -texture_mode = 1 -antialiased = true -script = ExtResource("5_blxcm") -player_color = Color(1, 0.388235, 0.321569, 1) -finish_indicator = ExtResource("6_ho2g6") -player_indicator = ExtResource("7_wv12s") -ghost_indicator = ExtResource("8_yfv7r") - [node name="Splits" parent="." instance=ExtResource("9_gtkqi")] layout_mode = 1 offset_top = -403.0 offset_bottom = -303.0 [connection signal="assigned" from="." to="Dashboard/laps" method="assigned"] -[connection signal="assigned" from="." to="MiniMapContainer/MiniMap" method="assigned"] -[connection signal="assigned" from="." to="Dashboard/speed/speed" method="car_assigned" unbinds=3] +[connection signal="assigned" from="." to="Dashboard/speed/speed" method="car_assigned" unbinds=2] [connection signal="assigned" from="." to="Dashboard/timer/time" method="assigned" unbinds=1] -[connection signal="assigned" from="." to="Dashboard/gears/gears" method="assigned" unbinds=3] +[connection signal="assigned" from="." to="Dashboard/gears/gears" method="assigned" unbinds=2] [connection signal="next_lap" from="." to="Dashboard/laps" method="increment"] diff --git a/ui/intro_cam.gd b/ui/intro_cam.gd index ee2d7f5..0f7d919 100644 --- a/ui/intro_cam.gd +++ b/ui/intro_cam.gd @@ -14,15 +14,15 @@ func _init(_track: TrackResource, _main_cam: Camera3D): main_cam = _main_cam attributes = CameraAttributesPractical.new() +static func get_origin(t: TrackResource) -> Transform3D: + var box := t.get_aabb() + var box_center := box.get_center() + var top_center := Vector3(box_center.x, t.overview_height, box_center.z) + return Transform3D(Basis.from_euler(Vector3(-PI/2, 0, 0)), top_center) + func _ready() -> void: make_current() - var box := AABB() - for i in track.track.point_count: - box = box.expand(track.track.get_point_position(i)) - var box_center := box.get_center() - var top_center := Vector3(box_center.x, track.overview_height, box_center.z) - global_position = top_center - global_rotation_degrees.x = -90 + transform = IntroCam.get_origin(track) if is_instance_valid(main_cam): await get_tree().create_timer(2).timeout var tween := get_tree().create_tween().set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT) @@ -4,13 +4,15 @@ class_name LapCounter var track: TrackLoader @export var label: Label -var lap := 0 +var lap := 0: + set(l): + lap = l + label.text = " %d/%d" % [lap, track.track.laps] func increment() -> void: lap += 1 - label.text = " %d/%d" % [lap, track.track.laps] -func assigned(_car, _ghost, _timer, _track: TrackLoader) -> void: +func assigned(_car, _timer, _track: TrackLoader) -> void: track = _track visible = track.track.laps > 1 increment() diff --git a/ui/map.gd b/ui/map.gd deleted file mode 100644 index 2b48db3..0000000 --- a/ui/map.gd +++ /dev/null @@ -1,71 +0,0 @@ -extends Line2D -class_name MiniMap - -var path := Path2D.new() -var track: TrackLoader - -@export var player_color: Color -@export var finish_indicator: Texture -@export var player_indicator: Texture -@export var ghost_indicator: Texture - -var followers: Array = [] # Array[[PathFollow2D, Sprite2D, Node3D]] - -func _ready() -> void: - clear_points() - width = track.track.track_width - if !track.track.is_loop: - end_cap_mode = LINE_CAP_ROUND - begin_cap_mode = LINE_CAP_ROUND - - var curve := Curve2D.new() - curve.bake_interval = 200 # already baked - var box := Rect2() - for point_3d in track.curve.get_baked_points(): - var p := flatten(point_3d) - curve.add_point(p) - box = box.expand(p) - add_point(p) - path.curve = curve - add_child(path) - position = -box.position - scale = vec((add((get_parent() as Container).get_rect().size) / add(box.size))/2) - mkfollower(track.finish, finish_indicator, Color.WHITE, false, true) - -func _process(_delta: float) -> void: - for follower in followers: - if is_instance_valid(follower[2]): - (follower[0] as PathFollow2D).progress = track.curve.get_closest_offset((follower[2] as Node3D).global_position) - if !follower[0].rotates: - (follower[1] as Sprite2D).global_rotation = -follower[2].global_rotation.y - PI/2 - -func mkfollower(node: Node3D, tex: Texture, mod := Color.WHITE, back := false, rotates := false): - if !is_instance_valid(node): - push_warning("invalid follower") - return - var follower := PathFollow2D.new() - follower.rotates = rotates - path.add_child(follower) - var sprite := Sprite2D.new() - sprite.modulate = mod - sprite.texture = tex - follower.add_child(sprite) - if back: - followers.push_front([follower, sprite, node]) - else: - followers.push_back([follower,sprite, node]) - -func vec(f: float) -> Vector2: - return Vector2(f, f) - -func add(v: Vector2) -> float: - return v.x + v.y - -func flatten(v: Vector3) -> Vector2: - return Vector2(v.x, v.z) - -func assigned(car, ghost: GhostCar, _timer, _track: TrackLoader) -> void: - mkfollower(ghost, ghost_indicator, Color(1,1,1,.5), true) - if car != ghost: - mkfollower(car, player_indicator, player_color) - track = _track diff --git a/ui/multi_button.gd b/ui/multi_button.gd new file mode 100644 index 0000000..3db2b39 --- /dev/null +++ b/ui/multi_button.gd @@ -0,0 +1,31 @@ +extends Button +class_name MultiButton + +@export var secondary: Control + +func update(_var = null): # cant unbind when connecting signals in code + var color: StringName = &"font_color" + if disabled: + color = &"font_disabled_color" + elif button_pressed: + color = &"font_pressed_color" + elif (is_hovered() if _var == null else _var) || has_focus(): + color = &"font_hover_color" + set_c(get_theme_color(color)) + +func set_c(c: Color) -> void: + if secondary is Label: + secondary.label_settings.font_color = c + elif secondary is TextureRect: + secondary.modulate = c + +func _ready() -> void: + update() + toggled.connect(update) + focus_entered.connect(update) + focus_exited.connect(update) + mouse_entered.connect(update.bind(true)) + mouse_exited.connect(update.bind(false)) + pressed.connect(update) + button_up.connect(update) + button_down.connect(update) diff --git a/ui/panel_dark.stylebox b/ui/panel_dark.stylebox Binary files differnew file mode 100644 index 0000000..d8af703 --- /dev/null +++ b/ui/panel_dark.stylebox diff --git a/ui/panel_light.stylebox b/ui/panel_light.stylebox Binary files differnew file mode 100644 index 0000000..b2ffa85 --- /dev/null +++ b/ui/panel_light.stylebox diff --git a/ui/theme.tres b/ui/theme.tres index a672edf..a545b32 100644 --- a/ui/theme.tres +++ b/ui/theme.tres @@ -1,24 +1,189 @@ -[gd_resource type="Theme" load_steps=5 format=3 uid="uid://cru1d7n2ftrfm"] +[gd_resource type="Theme" load_steps=23 format=3 uid="uid://d3ywcokn5ddy8"] [ext_resource type="SystemFont" uid="uid://xriuk0v4f6wj" path="res://ui/ubuntu_mononf.tres" id="1_37cf0"] [ext_resource type="StyleBox" uid="uid://cdth5nc7lbx1v" path="res://ui/panel_skewed.tres" id="1_g8q83"] [ext_resource type="StyleBox" uid="uid://bkxlhm4hc5lco" path="res://ui/assets/button_focus.stylebox" id="1_t7nt0"] +[ext_resource type="StyleBox" uid="uid://bg21fak47r0np" path="res://ui/panel_light.stylebox" id="2_0o40a"] +[ext_resource type="Texture2D" uid="uid://bi5378730g7ag" path="res://ui/assets/checkedbox.png" id="2_7t4t0"] +[ext_resource type="Texture2D" uid="uid://cvhkgqjcmjhjf" path="res://ui/assets/checkbox_disabled.png" id="3_6k4vd"] [ext_resource type="FontVariation" uid="uid://ba8ab6dti2fvo" path="res://ui/boldsans.tres" id="3_fpgf0"] +[ext_resource type="Texture2D" uid="uid://ch6jipulckgt" path="res://ui/assets/checkbox.png" id="3_xehpy"] +[ext_resource type="StyleBox" uid="uid://dxtsrhgnyr80k" path="res://ui/panel_dark.stylebox" id="4_mx083"] +[ext_resource type="Texture2D" uid="uid://vck01c83m1x3" path="res://ui/assets/arrow.png" id="6_uqp3t"] +[ext_resource type="Texture2D" uid="uid://buwxt5g5y761m" path="res://ui/assets/arrow_collapsed.png" id="7_raqbt"] +[ext_resource type="SystemFont" uid="uid://bkjqtc5i64r3j" path="res://ui/ubuntu.tres" id="10_1rhih"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o4qbo"] +content_margin_left = 5.0 +content_margin_top = 5.0 +content_margin_right = 5.0 +content_margin_bottom = 5.0 +bg_color = Color(0.0156863, 0.152941, 0.188235, 1) +corner_radius_top_left = 9 +corner_radius_top_right = 9 +corner_radius_bottom_right = 9 +corner_radius_bottom_left = 9 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pmkpt"] +content_margin_left = 5.0 +content_margin_top = 5.0 +content_margin_right = 5.0 +content_margin_bottom = 5.0 +bg_color = Color(0.0431373, 0.270588, 0.32549, 1) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color(0.396078, 0.482353, 0.513726, 1) +corner_radius_top_left = 9 +corner_radius_top_right = 9 +corner_radius_bottom_right = 9 +corner_radius_bottom_left = 9 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2erjs"] +content_margin_left = 5.0 +content_margin_top = 5.0 +content_margin_right = 5.0 +content_margin_bottom = 5.0 +bg_color = Color(0.0431373, 0.270588, 0.32549, 1) +corner_radius_top_left = 9 +corner_radius_top_right = 9 +corner_radius_bottom_right = 9 +corner_radius_bottom_left = 9 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vcupl"] +bg_color = Color(0.345098, 0.431373, 0.458824, 1) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color(0.14902, 0.545098, 0.823529, 1) +corner_radius_top_left = 9 +corner_radius_top_right = 9 +corner_radius_bottom_right = 9 +corner_radius_bottom_left = 9 +corner_detail = 12 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1onps"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ki0ve"] +content_margin_left = 10.0 +content_margin_top = 10.0 +content_margin_right = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(0, 0.168627, 0.211765, 1) +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 +corner_detail = 12 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_y04f3"] +content_margin_left = 5.0 +content_margin_top = 5.0 +content_margin_right = 5.0 +content_margin_bottom = 5.0 +bg_color = Color(0.027451, 0.211765, 0.258824, 1) +border_width_top = 2 +border_color = Color(0.14902, 0.545098, 0.823529, 1) +corner_radius_top_left = 1 +corner_radius_top_right = 1 +corner_detail = 1 +expand_margin_top = 3.0 +anti_aliasing = false + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_m0gry"] +content_margin_left = 10.0 +content_margin_top = 10.0 +content_margin_right = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(0, 0.109804, 0.145098, 1) +corner_radius_top_left = 53 +corner_radius_top_right = 53 +corner_detail = 1 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_b8jmu"] +content_margin_left = 5.0 +content_margin_top = 5.0 +content_margin_right = 5.0 +content_margin_bottom = 5.0 +bg_color = Color(0.0431373, 0.270588, 0.32549, 1) +corner_radius_top_left = 15 +corner_radius_top_right = 15 +corner_radius_bottom_right = 15 +corner_radius_bottom_left = 15 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_vr8fs"] +color = Color(0.345098, 0.431373, 0.458824, 1) +grow_begin = -10.0 +grow_end = -10.0 +vertical = true [resource] default_font = ExtResource("1_37cf0") -default_font_size = 76 +default_font_size = 25 Button/colors/font_color = Color(0.933333, 0.909804, 0.835294, 1) +Button/colors/font_disabled_color = Color(0.396078, 0.482353, 0.513726, 1) Button/colors/font_focus_color = Color(0.992157, 0.964706, 0.890196, 1) Button/colors/font_hover_color = Color(0.992157, 0.964706, 0.890196, 1) Button/colors/font_hover_pressed_color = Color(0.992157, 0.964706, 0.890196, 1) -Button/colors/font_pressed_color = Color(0.576471, 0.631373, 0.631373, 1) +Button/colors/font_pressed_color = Color(0.992157, 0.964706, 0.890196, 1) +Button/styles/disabled = SubResource("StyleBoxFlat_o4qbo") Button/styles/focus = ExtResource("1_t7nt0") +Button/styles/hover = SubResource("StyleBoxFlat_pmkpt") +Button/styles/normal = SubResource("StyleBoxFlat_2erjs") +Button/styles/pressed = SubResource("StyleBoxFlat_vcupl") +CheckBox/icons/checked = ExtResource("2_7t4t0") +CheckBox/icons/checked_disabled = ExtResource("3_6k4vd") +CheckBox/icons/unchecked = ExtResource("3_xehpy") +CheckBox/styles/disabled = SubResource("StyleBoxEmpty_1onps") +CheckBox/styles/focus = SubResource("StyleBoxEmpty_1onps") +CheckBox/styles/hover = SubResource("StyleBoxEmpty_1onps") +CheckBox/styles/hover_pressed = SubResource("StyleBoxEmpty_1onps") +CheckBox/styles/normal = SubResource("StyleBoxEmpty_1onps") +CheckBox/styles/pressed = SubResource("StyleBoxEmpty_1onps") +ItemList/colors/guide_color = Color(0, 0, 0, 0) +ItemList/constants/line_separation = 0 +ItemList/styles/panel = ExtResource("2_0o40a") Label/colors/font_color = Color(0.933333, 0.909804, 0.835294, 1) -Label/font_sizes/font_size = 76 +Label/font_sizes/font_size = 25 Label/fonts/font = ExtResource("1_37cf0") +LineEdit/colors/font_color = Color(0.933333, 0.909804, 0.835294, 1) +LineEdit/colors/font_placeholder_color = Color(0.396078, 0.482353, 0.513726, 1) +LineEdit/colors/font_selected_color = Color(0.992157, 0.964706, 0.890196, 1) +LineEdit/colors/selection_color = Color(0.513726, 0.580392, 0.588235, 1) +LineEdit/styles/normal = ExtResource("4_mx083") +Panel/styles/panel = ExtResource("2_0o40a") PanelContainer/styles/panel = ExtResource("1_g8q83") RichTextLabel/font_sizes/bold_font_size = 76 RichTextLabel/font_sizes/normal_font_size = 76 RichTextLabel/fonts/bold_font = ExtResource("3_fpgf0") RichTextLabel/fonts/normal_font = ExtResource("1_37cf0") +TabContainer/font_sizes/font_size = 32 +TabContainer/styles/panel = SubResource("StyleBoxFlat_ki0ve") +TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_y04f3") +TabContainer/styles/tab_unselected = ExtResource("4_mx083") +TabContainer/styles/tabbar_background = SubResource("StyleBoxFlat_m0gry") +TooltipLabel/colors/font_color = Color(0.933333, 0.909804, 0.835294, 1) +TooltipLabel/fonts/font = ExtResource("10_1rhih") +TooltipPanel/styles/panel = SubResource("StyleBoxFlat_b8jmu") +Tree/colors/children_hl_line_color = Color(0.396078, 0.482353, 0.513726, 1) +Tree/colors/font_color = Color(0.501961, 0.596078, 0.627451, 1) +Tree/colors/font_selected_color = Color(0.933333, 0.909804, 0.835294, 1) +Tree/colors/parent_hl_line_color = Color(0.345098, 0.431373, 0.458824, 1) +Tree/colors/relationship_line_color = Color(0.345098, 0.431373, 0.458824, 1) +Tree/constants/children_hl_line_width = 3 +Tree/constants/draw_guides = 0 +Tree/constants/draw_relationship_lines = 1 +Tree/constants/item_margin = 10 +Tree/constants/parent_hl_line_width = 3 +Tree/constants/relationship_line_width = 2 +Tree/constants/v_separation = 1 +Tree/icons/arrow = ExtResource("6_uqp3t") +Tree/icons/arrow_collapsed = ExtResource("7_raqbt") +Tree/styles/panel = ExtResource("2_0o40a") +VSeparator/constants/separation = 0 +VSeparator/styles/separator = SubResource("StyleBoxLine_vr8fs") +ui_panel/base_type = &"PanelContainer" +ui_panel/styles/panel = ExtResource("4_mx083") diff --git a/ui/timer.gd b/ui/timer.gd index a8a5b69..37c70d0 100644 --- a/ui/timer.gd +++ b/ui/timer.gd @@ -2,8 +2,8 @@ extends Label var timer: GameTimer -func assigned(_car, _ghost, _timer: GameTimer) -> void: - timer = _timer +func assigned(_car, p_timer: GameTimer) -> void: + timer = p_timer func _process(_delta: float) -> void: - text = "祥 %s" % timer.fmt_now()
\ No newline at end of file + text = "祥 %s" % timer.fmt_now() diff --git a/ui/track_button.gd b/ui/track_button.gd new file mode 100644 index 0000000..97aca44 --- /dev/null +++ b/ui/track_button.gd @@ -0,0 +1,69 @@ +extends Control +class_name TrackButton + +signal edit +signal delete +signal play +signal watch +signal include + +const trackloader_scn = preload("res://scenes/track.tscn") + +@export var button: Button + +var editable := false # can edit +var dev := false # can edit main tracks and can move tracks into main +var builtin := false # added to tracks.cfg + +func _ready() -> void: + %edit.visible = editable || dev + %delete.visible = editable || dev + %include.visible = dev && !builtin + +func init(t: TrackResource, g: GhostData) -> void: + %name.text = t.name + t.name_changed.connect(func(n: String): %name.text = n) + if g == null: + %watch.hide() + %time.text = "no time set" + else: + %time.text = GameTimer.format_precise(g.time) + builtin = t.builtin + var tex := Thumbnail._load(Globals.THUMBS % t.name, Thumbnail.hash_b(t.bytes()), false) + if tex == null: + tex = await mkthumb(t) + %thumb.texture = ImageTexture.create_from_image(tex) + # update thumb on save + t.saved.connect(func(): %thumb.texture = ImageTexture.create_from_image(await mkthumb(t))) + +func mkthumb(t: TrackResource) -> Image: + var p: String = Globals.THUMBS % t.name + var trackloader: TrackLoader = trackloader_scn.instantiate() + trackloader.track = t + trackloader.add_child(IntroCam.new(t, null)) + var tex := await Thumbnail.create_thumb(self, trackloader, Vector2i(450, 200)) + var e := Thumbnail.save(tex, p, Thumbnail.hash_b(t.bytes())) + if e != OK: + push_error("saving thumbnail failed with error %d" % e) + return tex + +func _on_delete_pressed() -> void: + var dialog := ConfirmationDialog.new() + dialog.min_size = Vector2(250, 100) + dialog.exclusive = true + dialog.title = "Are you sure!" + dialog.dialog_text = "Delete track!" + dialog.cancel_button_text = "no way" + dialog.ok_button_text = "yea sure" + dialog.dialog_hide_on_ok = false + dialog.dialog_close_on_escape = false + dialog.unresizable = true + dialog.popup_window = true + dialog.initial_position = Window.WINDOW_INITIAL_POSITION_CENTER_MAIN_WINDOW_SCREEN + dialog.add_theme_stylebox_override("panel", preload("res://ui/panel_dark.stylebox")) + add_child(dialog) + dialog.show() + dialog.confirmed.connect(emit_signal.bind(&"delete")) + dialog.canceled.connect(dialog.queue_free) + dialog.confirmed.connect(queue_free) + diff --git a/ui/track_button.tscn b/ui/track_button.tscn index 4e25103..577d588 100644 --- a/ui/track_button.tscn +++ b/ui/track_button.tscn @@ -1,15 +1,13 @@ -[gd_scene load_steps=9 format=3 uid="uid://dfvtugujgcjcw"] +[gd_scene load_steps=13 format=3 uid="uid://c6ntm3pmyfcuh"] -[ext_resource type="Theme" uid="uid://cru1d7n2ftrfm" path="res://ui/theme.tres" id="1_noykn"] -[ext_resource type="Script" path="res://ui/trackbutton.gd" id="2_bcpuy"] +[ext_resource type="Theme" uid="uid://d3ywcokn5ddy8" path="res://ui/theme.tres" id="1_noykn"] +[ext_resource type="Script" path="res://ui/track_button.gd" id="2_bbj4u"] [ext_resource type="FontVariation" uid="uid://ba8ab6dti2fvo" path="res://ui/boldsans.tres" id="2_gctvu"] [ext_resource type="SystemFont" uid="uid://d2klp6vxh5l2d" path="res://ui/cascadiabold.tres" id="3_suph6"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fymg3"] bg_color = Color(0.137255, 0.137255, 0.137255, 1) -[sub_resource type="World3D" id="World3D_vgauv"] - [sub_resource type="LabelSettings" id="LabelSettings_sa0e6"] font = ExtResource("2_gctvu") font_size = 25 @@ -20,24 +18,41 @@ font = ExtResource("3_suph6") font_size = 25 font_color = Color(0.933333, 0.909804, 0.835294, 1) -[node name="trackbutton" type="PanelContainer" node_paths=PackedStringArray("button")] +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_sad5x"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vcebg"] +bg_color = Color(0.0431373, 0.270588, 0.32549, 1) +corner_radius_top_left = 9 +corner_radius_top_right = 9 +corner_radius_bottom_right = 9 +corner_radius_bottom_left = 9 +corner_detail = 12 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_fayhu"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qw0k4"] +bg_color = Color(0.14902, 0.545098, 0.823529, 1) +corner_radius_top_left = 9 +corner_radius_top_right = 9 +corner_radius_bottom_right = 9 +corner_radius_bottom_left = 9 +corner_detail = 12 + +[sub_resource type="Theme" id="Theme_vsupn"] +Button/styles/focus = SubResource("StyleBoxEmpty_sad5x") +Button/styles/hover = SubResource("StyleBoxFlat_vcebg") +Button/styles/normal = SubResource("StyleBoxEmpty_fayhu") +Button/styles/pressed = SubResource("StyleBoxFlat_qw0k4") + +[node name="track_button" type="PanelContainer" node_paths=PackedStringArray("button")] custom_minimum_size = Vector2(450, 243) offset_right = 200.0 offset_bottom = 100.0 theme = ExtResource("1_noykn") theme_override_styles/panel = SubResource("StyleBoxFlat_fymg3") -script = ExtResource("2_bcpuy") +script = ExtResource("2_bbj4u") button = NodePath("h2/play") -[node name="port" type="SubViewport" parent="."] -unique_name_in_owner = true -own_world_3d = true -world_3d = SubResource("World3D_vgauv") -msaa_3d = 3 -screen_space_aa = 1 -size = Vector2i(450, 200) -render_target_update_mode = 1 - [node name="v" type="VBoxContainer" parent="."] layout_mode = 2 @@ -74,23 +89,56 @@ layout_mode = 2 stretch_mode = 2 [node name="h2" type="HBoxContainer" parent="."] +custom_minimum_size = Vector2(0, 40) layout_mode = 2 size_flags_vertical = 8 +theme = SubResource("Theme_vsupn") +theme_override_constants/separation = 0 [node name="play" type="Button" parent="h2"] +custom_minimum_size = Vector2(40, 40) layout_mode = 2 theme_override_font_sizes/font_size = 35 text = " " +alignment = 2 + +[node name="edit" type="Button" parent="h2"] +unique_name_in_owner = true +custom_minimum_size = Vector2(40, 40) +layout_mode = 2 +theme_override_font_sizes/font_size = 35 +text = " " +alignment = 2 + +[node name="include" type="Button" parent="h2"] +unique_name_in_owner = true +custom_minimum_size = Vector2(40, 40) +layout_mode = 2 +theme_override_font_sizes/font_size = 35 +text = "" [node name="spacer" type="Control" parent="h2"] layout_mode = 2 size_flags_horizontal = 3 +[node name="delete" type="Button" parent="h2"] +unique_name_in_owner = true +custom_minimum_size = Vector2(40, 0) +layout_mode = 2 +theme_override_font_sizes/font_size = 35 +text = " " +alignment = 2 + [node name="watch" type="Button" parent="h2"] unique_name_in_owner = true +custom_minimum_size = Vector2(40, 0) layout_mode = 2 theme_override_font_sizes/font_size = 35 text = " " +alignment = 2 -[connection signal="pressed" from="h2/play" to="." method="emit_signal" binds= [&"play"]] -[connection signal="pressed" from="h2/watch" to="." method="emit_signal" binds= [&"watch"]] +[connection signal="pressed" from="h2/play" to="." method="emit_signal" flags=18 binds= [&"play"]] +[connection signal="pressed" from="h2/edit" to="." method="emit_signal" binds= [&"edit"]] +[connection signal="pressed" from="h2/include" to="." method="emit_signal" binds= [&"include"]] +[connection signal="pressed" from="h2/delete" to="." method="_on_delete_pressed"] +[connection signal="pressed" from="h2/watch" to="." method="emit_signal" flags=18 binds= [&"watch"]] diff --git a/ui/track_select.gd b/ui/track_select.gd new file mode 100644 index 0000000..4a195a4 --- /dev/null +++ b/ui/track_select.gd @@ -0,0 +1,65 @@ +extends GridContainer +class_name TrackSelect + +@export var editor: PackedScene = preload("res://ui/editor/track_editor.tscn") +@export var race: PackedScene = preload("res://scenes/race_high.tscn") +@export var ghost_watch: PackedScene = preload("res://scenes/ghost_watcher.tscn") +@export var trackbutton: PackedScene = preload("res://ui/track_button.tscn") +@export var editable := false +@onready var dev = DirAccess.dir_exists_absolute("res://.git") + +func _ready() -> void: + if get_child_count() > 0: + (get_child(0) as TrackButton).button.grab_focus() + +## @virtual +func _on_mkbutton(_button: TrackButton, _track: TrackResource) -> void: + pass + +func mkbutton(track: TrackResource) -> void: + var button := trackbutton.instantiate() as TrackButton + button.editable = editable + button.dev = dev + button.name = track.name + add_child(button) + button.init(track, lodg(track.name)) + + # this works perfectly because its all reference based, but the ghosts will change, so load them every time + button.watch.connect(func(): watch(track, lodg(track.name))) + button.delete.connect(delete.bind(track)) + button.play.connect(func(): play(track, lodg(track.name))) + button.edit.connect(edit.bind(track)) + _on_mkbutton(button, track) + +func mkbuttons(tracks: Array[TrackResource]) -> void: + for track in tracks: + mkbutton(track) + +func lodg(n: String) -> GhostData: + return GhostData._load(Globals.SAVES % n) + +func edit(track: TrackResource) -> void: + Globals.editing = track + add_to_main(editor) + +func play(track: TrackResource, ghost: GhostData) -> void: + Globals.playing = track + Globals.ghost = ghost + add_to_main(race) + +func watch(track: TrackResource, ghost: GhostData) -> void: + Globals.playing = track + Globals.ghost = ghost + add_to_main(ghost_watch) + +func add_to_main(p: PackedScene) -> void: + owner.hide() + var c := p.instantiate() + get_viewport().add_child(c) + c.tree_exited.connect(owner.show) + +static func delete(track: TrackResource): +# OS.move_to_trash(Globals.TRACKS % track.name) + DirAccess.remove_absolute(Globals.TRACKS % track.name) + if FileAccess.file_exists(Globals.THUMBS % track.name): + DirAccess.remove_absolute(Globals.THUMBS % track.name) diff --git a/ui/trackbutton.gd b/ui/trackbutton.gd deleted file mode 100644 index 2c55c39..0000000 --- a/ui/trackbutton.gd +++ /dev/null @@ -1,41 +0,0 @@ -extends Control -class_name TrackButton - -const trackloader_scn = preload("res://scenes/track.tscn") -const thumbnail_path = "user://%s.thumb" - -@export var button: Button -signal play -signal watch - -func init(t: TrackResource, g: GhostData) -> void: - %name.text = t.name - if g == null: - %watch.hide() - %time.text = "no time set" - else: - %time.text = GameTimer.format_precise(g.time) - var p: String = thumbnail_path % t.name - if FileAccess.file_exists(p) and Time.get_unix_time_from_system() - FileAccess.get_modified_time(p) < 400000: # ~5days - print("loading thumb") - var f := FileAccess.open(p, FileAccess.READ) - var img := Image.new() - var e := img.load_png_from_buffer(f.get_buffer(f.get_length())) - if e != OK: - print("error: ", e) - return - (%thumb as TextureRect).texture = ImageTexture.create_from_image(img) - else: - print("making thumb") - %port.add_child(IntroCam.new(t, null)) - var trackloader: TrackLoader = trackloader_scn.instantiate() - trackloader.track = t - %port.add_child(trackloader) - await RenderingServer.frame_post_draw - trackloader.queue_free() - var img: Image = %port.get_texture().get_image() - img.save_png(p) - (%thumb as TextureRect).texture = ImageTexture.create_from_image(img) - - - diff --git a/ui/tracks.gd b/ui/tracks.gd index 0686727..e1e139c 100644 --- a/ui/tracks.gd +++ b/ui/tracks.gd @@ -1,34 +1,28 @@ -extends GridContainer - -@export var tracks: Array[TrackResource] -@export var race: PackedScene -@export var ghost_watch: PackedScene -@export var trackbutton: PackedScene +extends TrackSelect +class_name BuiltinTrackSelect func _ready() -> void: + _load() + mkbuttons(Globals.builtin_tracks) + super() + +func _load(): + var tracks: Array = str_to_var(FileAccess.get_file_as_string("res://tracks.cfg")) for track in tracks: - var button: TrackButton = trackbutton.instantiate() - add_child(button) - var ghost := GhostData._load(Globals.SAVES % track.name) - button.init(track, ghost) - button.play.connect(play.bind(track, ghost)) - button.watch.connect(watch.bind(track, ghost)) - (get_child(0) as TrackButton).button.grab_focus() + var loaded := TrackResource.from_d(track) + loaded.builtin = true + Globals.builtin_tracks.append(loaded) -func play(track: TrackResource, ghost: GhostData) -> void: - print("play %s" % track.name) - Globals.playing = track - Globals.ghost = ghost - add_to_main(race) +func add(t: TrackResource): + mkbutton(t) + Globals.builtin_tracks.append(t) + BuiltinTrackSelect.store_all() -func watch(track: TrackResource, ghost: GhostData) -> void: - print("watch %s" % track.name) - Globals.playing = track - Globals.ghost = ghost - add_to_main(ghost_watch) +static func delete(t: TrackResource): + Globals.builtin_tracks.erase(t) + BuiltinTrackSelect.store_all() -func add_to_main(p: PackedScene) -> void: - owner.hide() - var c := p.instantiate() - get_viewport().add_child(c) - c.tree_exited.connect(owner.show) +static func store_all(): + var arr: Array = Globals.builtin_tracks.map(func(t: TrackResource) -> Dictionary: return t.to_d()) + var file := FileAccess.open("res://tracks.cfg", FileAccess.WRITE) + file.store_string(var_to_str(arr)) |