Godot interaction system init
@@ -0,0 +1,2 @@
|
|||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
|
/android/
|
||||||
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dykfn12jy713j"
|
||||||
|
path="res://.godot/imported/CrosshairHover.png-a85d3d697df307bed3f174b2e4bd61bd.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Images/CrosshairHover.png"
|
||||||
|
dest_files=["res://.godot/imported/CrosshairHover.png-a85d3d697df307bed3f174b2e4bd61bd.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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=1
|
||||||
|
After Width: | Height: | Size: 353 B |
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://0ihhmm8mwb35"
|
||||||
|
path="res://.godot/imported/CrosshairNormal.png-38a8a7822df527679673b9473452e22e.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Images/CrosshairNormal.png"
|
||||||
|
dest_files=["res://.godot/imported/CrosshairNormal.png-38a8a7822df527679673b9473452e22e.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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=1
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cwwsolupah1s3"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cpog4xqme7wqj" path="res://Player.tscn" id="1_glv2v"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_1blfk"]
|
||||||
|
size = Vector3(50, 0.1, 50)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_va8t4"]
|
||||||
|
size = Vector3(50, 0.1, 50)
|
||||||
|
|
||||||
|
[node name="Main" type="Node3D" unique_id=856459222]
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=268564877]
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D" unique_id=427946866]
|
||||||
|
mesh = SubResource("BoxMesh_1blfk")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" unique_id=2109163521]
|
||||||
|
shape = SubResource("BoxShape3D_va8t4")
|
||||||
|
|
||||||
|
[node name="Player" parent="." unique_id=1270645855 instance=ExtResource("1_glv2v")]
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="mp3"
|
||||||
|
type="AudioStreamMP3"
|
||||||
|
uid="uid://dkc00xclmtkbo"
|
||||||
|
path="res://.godot/imported/Buy Something!.mp3-4458c1edcd46268f36485e24e39e6554.mp3str"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Scenes/Buy Something!.mp3"
|
||||||
|
dest_files=["res://.godot/imported/Buy Something!.mp3-4458c1edcd46268f36485e24e39e6554.mp3str"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
loop=false
|
||||||
|
loop_offset=0
|
||||||
|
bpm=0
|
||||||
|
beat_count=0
|
||||||
|
bar_beats=4
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
[gd_scene format=3 uid="uid://8xgne2anpltj"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dd8ys8xg3q3sw" path="res://Scripts/Crosshair.gd" id="1_gksq7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://0ihhmm8mwb35" path="res://Images/CrosshairNormal.png" id="1_vlax0"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dykfn12jy713j" path="res://Images/CrosshairHover.png" id="2_gksq7"]
|
||||||
|
|
||||||
|
[node name="Crosshair" type="CanvasLayer" unique_id=577244800]
|
||||||
|
script = ExtResource("1_gksq7")
|
||||||
|
normalTexture = ExtResource("1_vlax0")
|
||||||
|
hoverTexture = ExtResource("2_gksq7")
|
||||||
|
|
||||||
|
[node name="NormalCrosshair" type="TextureRect" parent="." unique_id=205010982]
|
||||||
|
custom_maximum_size = Vector2(64, 64)
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -72.0
|
||||||
|
offset_top = -72.0
|
||||||
|
offset_right = 72.0
|
||||||
|
offset_bottom = 72.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="HoverCrosshair" type="TextureRect" parent="." unique_id=2141817914]
|
||||||
|
custom_maximum_size = Vector2(64, 64)
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -72.0
|
||||||
|
offset_top = -72.0
|
||||||
|
offset_right = 72.0
|
||||||
|
offset_bottom = 72.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
[gd_scene format=3 uid="uid://hmpweoahtner"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://cyw8ng7alo12e" path="res://Scripts/Door.gd" id="1_1vvux"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_va8t4"]
|
||||||
|
size = Vector3(0.2, 3, 0.2)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_f1iwm"]
|
||||||
|
albedo_color = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_476pq"]
|
||||||
|
size = Vector3(0.2, 3, 0.2)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_va8t4"]
|
||||||
|
size = Vector3(1.5, 3, 0.1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_1blfk"]
|
||||||
|
size = Vector3(1.5, 3, 0.1)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4dq1k"]
|
||||||
|
albedo_color = Color(0.18070471, 0.12822011, 6.016344e-08, 1)
|
||||||
|
|
||||||
|
[node name="Door" type="Node3D" unique_id=2086051002 node_paths=PackedStringArray("body", "hinge")]
|
||||||
|
script = ExtResource("1_1vvux")
|
||||||
|
body = NodePath("DoorBody")
|
||||||
|
hinge = NodePath("HingeJoint3D")
|
||||||
|
hingeAngularLowerLimit = 0.0
|
||||||
|
snapVelocityThreshold = 2.0
|
||||||
|
|
||||||
|
[node name="Frame" type="StaticBody3D" parent="." unique_id=1425869315]
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Frame" unique_id=402301167]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.35, 1.5, 0)
|
||||||
|
mesh = SubResource("BoxMesh_va8t4")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_f1iwm")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Frame" unique_id=1028358895]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.35, 1.5, 0)
|
||||||
|
shape = SubResource("BoxShape3D_476pq")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Frame" unique_id=1629149026]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.35, 1.5, 0)
|
||||||
|
mesh = SubResource("BoxMesh_va8t4")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_f1iwm")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D2" type="CollisionShape3D" parent="Frame" unique_id=1273426324]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.35, 1.5, 0)
|
||||||
|
shape = SubResource("BoxShape3D_476pq")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Frame" unique_id=800996442]
|
||||||
|
transform = Transform3D(-4.371139e-08, -0.635, 0, 1, -2.7756732e-08, 0, 0, 0, 1, 0.5, 3.1, 0)
|
||||||
|
mesh = SubResource("BoxMesh_va8t4")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_f1iwm")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D3" type="CollisionShape3D" parent="Frame" unique_id=1785799541]
|
||||||
|
transform = Transform3D(-4.371139e-08, -0.635, 0, 1, -2.7756732e-08, 0, 0, 0, 1, 0.5, 3.1, 0)
|
||||||
|
shape = SubResource("BoxShape3D_476pq")
|
||||||
|
|
||||||
|
[node name="DoorBody" type="RigidBody3D" parent="." unique_id=1982348670]
|
||||||
|
axis_lock_angular_x = true
|
||||||
|
axis_lock_angular_z = true
|
||||||
|
mass = 10.0
|
||||||
|
angular_damp = 5.0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="DoorBody" unique_id=2068198605]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1.5, 0)
|
||||||
|
shape = SubResource("BoxShape3D_va8t4")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="DoorBody" unique_id=502246902]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 1.5, 0)
|
||||||
|
mesh = SubResource("BoxMesh_1blfk")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_4dq1k")
|
||||||
|
|
||||||
|
[node name="HingeJoint3D" type="HingeJoint3D" parent="." unique_id=1587300072]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, -0.25, 1.5, 0)
|
||||||
|
node_a = NodePath("../Frame")
|
||||||
|
node_b = NodePath("../DoorBody")
|
||||||
|
angular_limit/enable = true
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cwwsolupah1s3"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cpog4xqme7wqj" path="res://Scenes/Player.tscn" id="1_pbw6q"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://hmpweoahtner" path="res://Scenes/Door.tscn" id="2_v1gob"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dgre5brxnbps0" path="res://Scenes/MedievalDoor.tscn" id="3_jw32o"]
|
||||||
|
[ext_resource type="Script" uid="uid://cvg1f1wtahy0t" path="res://TestScripts/BlockMover.gd" id="4_50glp"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cfheqck1xs2bs" path="res://Scenes/SimpleButton.tscn" id="5_vy5pj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b0fqh430x23kp" path="res://Scenes/SimpleLever.tscn" id="6_v1gob"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cjqsmugd22cdh" path="res://Scenes/SimplePickupable.tscn" id="7_jw32o"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cyn6cmirqiiya" path="res://Scenes/SpatialAudioPlayer.tscn" id="8_bmxlf"]
|
||||||
|
[ext_resource type="AudioStream" uid="uid://dkc00xclmtkbo" path="res://Scenes/Buy Something!.mp3" id="8_vy5pj"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dknge5384ijcx" path="res://Scenes/SimpleKey.tscn" id="10_bmxlf"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_1blfk"]
|
||||||
|
size = Vector3(50, 0.1, 50)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_va8t4"]
|
||||||
|
size = Vector3(50, 0.1, 50)
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_1blfk"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_fos0i"]
|
||||||
|
|
||||||
|
[node name="Main" type="Node3D" unique_id=856459222]
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=268564877]
|
||||||
|
collision_layer = 17
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D" unique_id=427946866]
|
||||||
|
layers = 17
|
||||||
|
mesh = SubResource("BoxMesh_1blfk")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" unique_id=2109163521]
|
||||||
|
shape = SubResource("BoxShape3D_va8t4")
|
||||||
|
|
||||||
|
[node name="Player" parent="." unique_id=1270645855 instance=ExtResource("1_pbw6q")]
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1880837933]
|
||||||
|
environment = SubResource("Environment_1blfk")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="." unique_id=2091686084]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.326888, 0.9450631, 0, -0.9450631, 0.326888, 0, 28.631863, 43.110176)
|
||||||
|
|
||||||
|
[node name="Door" parent="." unique_id=2086051002 instance=ExtResource("2_v1gob")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5746174, 0.05000019, -7.507909)
|
||||||
|
snapAngleThreshold = 0.5
|
||||||
|
snapVelocityThreshold = 5.0
|
||||||
|
|
||||||
|
[node name="MedievalDoor" parent="." unique_id=1143822269 instance=ExtResource("3_jw32o")]
|
||||||
|
transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 7.1977696, -0.02157104, -1.6521502)
|
||||||
|
|
||||||
|
[node name="Block" type="Node3D" parent="." unique_id=1216126902]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.362265, 2.041253, 0)
|
||||||
|
script = ExtResource("4_50glp")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Block" unique_id=492958743]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.53257275, 0)
|
||||||
|
layers = 16385
|
||||||
|
mesh = SubResource("BoxMesh_fos0i")
|
||||||
|
|
||||||
|
[node name="SimplePressButton" parent="." unique_id=1810741910 instance=ExtResource("5_vy5pj")]
|
||||||
|
transform = Transform3D(0.5576158, 0, 0.83009917, 0, 1, 0, -0.83009917, 0, 0.5576158, -5.3408794, 1.7139747, -1.4288577)
|
||||||
|
|
||||||
|
[node name="SimpleHoldButton" parent="." unique_id=506197337 instance=ExtResource("5_vy5pj")]
|
||||||
|
transform = Transform3D(-0.10736252, 0, 0.99421996, 0, 1, 0, -0.99421996, 0, -0.10736252, -6.9503546, 1.7799978, 2.37957)
|
||||||
|
holdMode = true
|
||||||
|
|
||||||
|
[node name="SimpleLever" parent="." unique_id=2031608942 instance=ExtResource("6_v1gob")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.5557852, 1.6475947, -1.1587057)
|
||||||
|
angleOff = 45.0
|
||||||
|
|
||||||
|
[node name="SimplePickupable" parent="." unique_id=650555678 instance=ExtResource("7_jw32o")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.011193, 10.622059)
|
||||||
|
|
||||||
|
[node name="SimplePickupable2" parent="." unique_id=2110903933 instance=ExtResource("7_jw32o")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.798231, 3.3262725, 10.622059)
|
||||||
|
|
||||||
|
[node name="SimplePickupable3" parent="." unique_id=2062232606 instance=ExtResource("7_jw32o")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.9931345, 3.3262725, 10.622059)
|
||||||
|
bodyMass = 50.0
|
||||||
|
|
||||||
|
[node name="CSGBox3D" type="CSGBox3D" parent="." unique_id=475794547]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.204157, 2.9997559, -20.283545)
|
||||||
|
layers = 17
|
||||||
|
size = Vector3(0.5214844, 6.9995117, 7.3129883)
|
||||||
|
|
||||||
|
[node name="CSGBox3D4" type="CSGBox3D" parent="." unique_id=963438638]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.204157, 2.9997559, -11.079284)
|
||||||
|
layers = 17
|
||||||
|
size = Vector3(0.5214844, 6.9995117, 7.3129883)
|
||||||
|
|
||||||
|
[node name="CSGBox3D5" type="CSGBox3D" parent="." unique_id=82836301]
|
||||||
|
transform = Transform3D(0.5832621, 0, -0.81228405, 0, 1, 0, 0.81228405, 0, 0.5832621, 13.224218, 2.9997559, -5.482582)
|
||||||
|
layers = 17
|
||||||
|
size = Vector3(0.5214844, 6.9995117, 7.3129883)
|
||||||
|
|
||||||
|
[node name="CSGBox3D2" type="CSGBox3D" parent="." unique_id=1489453991]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.8968315, 2.9997559, -13.600012)
|
||||||
|
layers = 17
|
||||||
|
size = Vector3(0.5214844, 6.9995117, 20.680054)
|
||||||
|
|
||||||
|
[node name="CSGBox3D6" type="CSGBox3D" parent="." unique_id=166399348]
|
||||||
|
transform = Transform3D(-0.013710948, 0.999906, 0, -0.999906, -0.013710948, 0, 0, 0, 1, 13.479281, 6.294318, -13.600012)
|
||||||
|
layers = 17
|
||||||
|
size = Vector3(0.5214844, 6.9995117, 20.680054)
|
||||||
|
|
||||||
|
[node name="CSGBox3D3" type="CSGBox3D" parent="." unique_id=2101564635]
|
||||||
|
transform = Transform3D(0.03308868, 0, -0.9994524, 0, 1, 0, 0.9994524, 0, 0.03308868, 13.939653, 2.9997559, -23.496096)
|
||||||
|
layers = 17
|
||||||
|
size = Vector3(0.5214844, 6.9995117, 7.3129883)
|
||||||
|
|
||||||
|
[node name="SpatialAudioPlayer" parent="." unique_id=708850804 instance=ExtResource("8_bmxlf")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.358648, 2.9025939, -13.239832)
|
||||||
|
stream = ExtResource("8_vy5pj")
|
||||||
|
volume_db = -35.0
|
||||||
|
maxRaycastDistance = 10.0
|
||||||
|
|
||||||
|
[node name="SimplePickupable4" parent="." unique_id=1419866814 instance=ExtResource("10_bmxlf")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0351448, 3.2192059)
|
||||||
|
bodyMass = 5.0
|
||||||
|
|
||||||
|
[connection signal="pressed" from="SimplePressButton" to="Block" method="toggleMove"]
|
||||||
|
[connection signal="held" from="SimpleHoldButton" to="Block" method="holdMove"]
|
||||||
|
[connection signal="released" from="SimpleHoldButton" to="Block" method="releaseMove"]
|
||||||
@@ -0,0 +1,331 @@
|
|||||||
|
[gd_scene format=4 uid="uid://dgre5brxnbps0"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dulhjsunch31g" path="res://Textures/Door/Wood.jpg" id="1_fgasx"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dp4cgjr828p7j" path="res://Textures/Door/Stone.jpg" id="2_fpqxj"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://jydmkkryke23" path="res://Textures/Door/Door.jpg" id="4_8du8j"]
|
||||||
|
[ext_resource type="Script" uid="uid://cyw8ng7alo12e" path="res://Scripts/Door.gd" id="5_3u0t0"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cq1svjaaumlba" path="res://Textures/Door/RustedMetal.jpg" id="5_pao41"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5ubf6"]
|
||||||
|
resource_name = "Wood"
|
||||||
|
cull_mode = 2
|
||||||
|
albedo_texture = ExtResource("1_fgasx")
|
||||||
|
roughness = 0.5
|
||||||
|
metadata/_gltf_primary_texture_coord = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_ihxew"]
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-1.3463125, 0.084730506, -0.27765536, 2.6750941, 2.2221437, 0.41620636),
|
||||||
|
"format": 34896613377,
|
||||||
|
"index_count": 108,
|
||||||
|
"index_data": PackedByteArray("AAABAAIAAwAAAAIAAAAEAAEABQABAAQAAwAGAAAABQAGAAMABgADAAYABQAEAAcABQAHAAYACAAHAAYACQAGAAcACAAGAAoABgAJAAoACAAKAAsACgAJAAsACQAIAAsACQAHAAwABwAIAAwACQANAAgACQAMAA4ADgANAAkADAAIAA8ADgAQAA0ADAAQAA4ACAANABAADAAPABAACAAQAA8AEQAKABIAEQATAAoAEQASABQAEQAVABMAFgAUABIAFwATABUAFgAXABQAEwAXABgAGAAXABYA"),
|
||||||
|
"name": "Wood",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 25,
|
||||||
|
"vertex_data": PackedByteArray("4+xH7vjmAAAb9wAA+OYAAOPsAAD45gAA4+wAAAAAAAAb90fu+OYAABv3AAAAAAAA4+xH7gAAAAAb90fuAAAAAAAAR+7+/wAAAAD//wAAAADjCEfuAAAAAAAAR+4AAAAA//9H7gAAAAAAAP///v8AAP////8AAAAA//9H7v//AAD///////8AAOMIAAAAAAAA4whH7vjmAAAbE0fuAAAAAOMIAAD45gAAGxMAAAAAAAAbE0fu+OYAABsTAAD45gAAGxNH7nEBAAA=")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_22684"]
|
||||||
|
resource_name = "medievaldoors11_Cube_010"
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-1.3463125, 0.084730506, -0.27765536, 2.6750941, 2.2221437, 0.41620636),
|
||||||
|
"attribute_data": PackedByteArray("lN8QOkTo//+U3///ROgQOsqA//8/YhA6yoAQOj9i/v/08P//pPkQOqT5///08BA6tEP//z9iEDo/Yv7/tEMQOmLK///gvQAAYsoAAOC9//+0QxA6NlA7EjZQEDq0QzsSNlAQOrhcOxK4XBA6NlA7Etoh/v8AAAAA2iEAAAAA//+0QwAA2iHjCNohAADaIePs2iEb99oh/v+0Q///5dbjCGLKAADl1gAA5dbj7OXWG/fl1v//Ysr///TwEDpE6P//ROgQOvTw///l1hA6lN///+XW//+U3xA6yoD+/1WfEDpVn///JJ8QOsqAEDrgvf//VZ8QOlWf/v/gvRA64L0QOg=="),
|
||||||
|
"format": 34896613399,
|
||||||
|
"index_count": 108,
|
||||||
|
"index_data": PackedByteArray("AAABAAIAAAADAAEABAAFAAYABAAHAAUACAAJAAoACAALAAkADAANAA4ADAAPAA0AEAARABIAEAATABEAFAAVABYAFAAXABUAGAAZABoAGAAbABkAHAAdAB4AHAAfAB0AIAAhACIAIAAjACEAIAAkACMAJAAgACUAJQAgACYAJwAoACkAKgAoACcAKAAqACsAKAArACwAKAAsAC0ALgAvADAALgAxAC8AMgAzADQAMgA1ADMANgA3ADgANwA2ADkAOQA2ADoAOwA8AD0AOwA+ADwAPgA7AD8A"),
|
||||||
|
"material": SubResource("StandardMaterial3D_5ubf6"),
|
||||||
|
"name": "Wood",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 64,
|
||||||
|
"vertex_data": PackedByteArray("4+xH7vjmAIAb9wAA+OYAgOPsAAD45gCAG/dH7vjmAIAb9wAAAAD/vxv3R+745v+/G/dH7gAA/78b9wAA+Ob/vxsTR+745v//4wgAAPjm///jCEfu+Ob//xsTAAD45v//4wgAAAAA/7/jCEfu+Ob/v+MIAAD45v+/4whH7gAA/78AAEfu/v//v/////////+///9H7v///78AAP///v//v///R+4AAFTV////////VNX/////AABU1f//R+7//1TVAAD//wAAVNUAAEfu/v9U1QAAR+4AAFTVAAD///7/VNX/////AABU1QAA///+/1TVAAD//wAAVNX///////9U1QAAR+7+/1TV4whH7gAAVNUAAEfuAABU1ePsR+4AAFTVG/dH7gAAVNX//0fuAABU1f//R+7//1TV4whH7gAA//8AAP//AAD//wAAR+4AAP//4+xH7gAA//8b90fuAAD/////R+4AAP///////wAA//8b9wAAAAD//+PsR+4AAP//4+wAAAAA//8b90fuAAD//+MIAAAAAP//GxNH7gAA///jCEfuAAD//xsTAAAAAP//GxMAAPjm/78bE0fuAAD/vxsTAAAAAP+/GxNH7nEB/78bE0fu+Ob/v+PsAAAAAAAA4+xH7vjmAADj7AAA+OYAAOPsR+4AAAAA4+xH7gAAAAD/f////3////9/////f////38AAP9/AAD/fwAA/38AAP9//3//f/9//3//f/9//3//f/7//3/+//9//v//f/7//3//f/9//3//f/9//3//f6oqqiqqKqoqqiqqKqoqqipUVaqqVFWqqlRVqqpUVaqqVNWqKlTVqipU1aoqVNWqKqoqVNWqKlTVqipU1aoqVNWqKlTVqipU1aoqVNX/P/+//z//v/8//78AQP+//z//v/8//7//P/+/////f////3////9/////f////3////9/////f////3//fwAA/X8AAP9/AAD+fwAA/38AAP8//3//P/9//z//f/8//3//P/9/")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
shadow_mesh = SubResource("ArrayMesh_ihxew")
|
||||||
|
|
||||||
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_kufgt"]
|
||||||
|
data = PackedVector3Array(1.1291, 2.1531, 0.097899996, 1.2358999, 0.084699996, 0.097899996, 1.1291, 0.084699996, 0.097899996, 1.1291, 2.1531, 0.097899996, 1.2358999, 2.1531, 0.097899996, 1.2358999, 0.084699996, 0.097899996, 1.2358999, 0.084699996, -0.2777, 1.2358999, 2.1531, 0.097899996, 1.2358999, 2.1531, -0.2777, 1.2358999, 0.084699996, -0.2777, 1.2358999, 0.084699996, 0.097899996, 1.2358999, 2.1531, 0.097899996, -1.1467, 2.1531, 0.097899996, -1.2534, 0.084699996, 0.097899996, -1.2534, 2.1531, 0.097899996, -1.1467, 2.1531, 0.097899996, -1.1467, 0.084699996, 0.097899996, -1.2534, 0.084699996, 0.097899996, -1.2534, 0.084699996, -0.2777, -1.2534, 2.1531, 0.097899996, -1.2534, 0.084699996, 0.097899996, -1.2534, 0.084699996, -0.2777, -1.2534, 2.1531, -0.2777, -1.2534, 2.1531, 0.097899996, -1.3463, 2.1531, 0.13849999, 1.3288, 2.3069, 0.13859999, 1.3288, 2.1531, 0.13859999, -1.3463, 2.1531, 0.13849999, -1.3463, 2.3069, 0.13849999, 1.3288, 2.3069, 0.13859999, 1.3288, 2.1531, -0.2777, 1.3288, 2.3069, 0.13859999, 1.3288, 2.3069, -0.2777, 1.3288, 2.1531, -0.2777, 1.3288, 2.1531, 0.13859999, 1.3288, 2.3069, 0.13859999, -1.3463, 2.3069, -0.2777, -1.3463, 2.1531, 0.13849999, -1.3463, 2.1531, -0.2777, -1.3463, 2.3069, -0.2777, -1.3463, 2.3069, 0.13849999, -1.3463, 2.1531, 0.13849999, 1.3288, 2.3069, -0.2777, -1.3463, 2.3069, 0.13849999, -1.3463, 2.3069, -0.2777, 1.3288, 2.3069, -0.2777, 1.3288, 2.3069, 0.13859999, -1.3463, 2.3069, 0.13849999, -1.3463, 2.1531, 0.13849999, -1.2534, 2.1531, -0.2777, -1.3463, 2.1531, -0.2777, -1.3463, 2.1531, 0.13849999, 1.1291, 2.1531, -0.2777, -1.2534, 2.1531, -0.2777, -1.3463, 2.1531, 0.13849999, 1.2358999, 2.1531, -0.2777, 1.1291, 2.1531, -0.2777, 1.2358999, 2.1531, -0.2777, -1.3463, 2.1531, 0.13849999, 1.3288, 2.1531, -0.2777, 1.3288, 2.1531, -0.2777, -1.3463, 2.1531, 0.13849999, 1.3288, 2.1531, 0.13859999, -1.2534, 2.1531, -0.2777, -1.3463, 2.3069, -0.2777, -1.3463, 2.1531, -0.2777, 1.1291, 2.1531, -0.2777, -1.3463, 2.3069, -0.2777, -1.2534, 2.1531, -0.2777, -1.3463, 2.3069, -0.2777, 1.1291, 2.1531, -0.2777, 1.2358999, 2.1531, -0.2777, -1.3463, 2.3069, -0.2777, 1.2358999, 2.1531, -0.2777, 1.3288, 2.1531, -0.2777, -1.3463, 2.3069, -0.2777, 1.3288, 2.1531, -0.2777, 1.3288, 2.3069, -0.2777, 1.2358999, 0.084699996, -0.2777, 1.1291, 2.1531, -0.2777, 1.1291, 0.084699996, -0.2777, 1.2358999, 0.084699996, -0.2777, 1.2358999, 2.1531, -0.2777, 1.1291, 2.1531, -0.2777, -1.2534, 0.084699996, -0.2777, -1.1467, 2.1531, -0.2777, -1.2534, 2.1531, -0.2777, -1.2534, 0.084699996, -0.2777, -1.1467, 0.084699996, -0.2777, -1.1467, 2.1531, -0.2777, -1.1467, 0.084699996, 0.097899996, -1.1467, 2.1531, -0.2777, -1.1467, 0.084699996, -0.2777, -1.1467, 2.1531, -0.2777, -1.1467, 0.084699996, 0.097899996, -1.1467, 2.1531, -0.2753, -1.1467, 2.1531, -0.2753, -1.1467, 0.084699996, 0.097899996, -1.1467, 2.1531, 0.097899996, 1.1291, 0.084699996, -0.2777, 1.1291, 2.1531, 0.097899996, 1.1291, 0.084699996, 0.097899996, 1.1291, 0.084699996, -0.2777, 1.1291, 2.1531, -0.2777, 1.1291, 2.1531, 0.097899996, 1.1291, 2.1531, -0.2777, 1.1291, 0.084699996, -0.2777, 1.1291, 2.1531, -0.2777)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_56a0c"]
|
||||||
|
resource_name = "Stone"
|
||||||
|
cull_mode = 2
|
||||||
|
albedo_texture = ExtResource("2_fpqxj")
|
||||||
|
roughness = 0.5
|
||||||
|
metadata/_gltf_primary_texture_coord = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_rlm6i"]
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-1.3266811, -0.0367862, -0.27765518, 2.6729937, 0.121516705, 0.68299586),
|
||||||
|
"format": 34896613377,
|
||||||
|
"index_count": 36,
|
||||||
|
"index_data": PackedByteArray("AAABAAIAAAADAAEABAACAAEAAwAEAAEABQAAAAIAAwAAAAUABAAGAAIABQACAAYAAwAHAAQAAwAFAAcABwAGAAQABwAFAAYA"),
|
||||||
|
"name": "Stone",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 8,
|
||||||
|
"vertex_data": PackedByteArray("//8AAAAAAAAAAAAA/v8AAP//AAD//wAAAAAAAAAAAAAAAP///v8AAP////8AAAAA////////AAAAAP//AAAAAA==")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_ci6nf"]
|
||||||
|
resource_name = "medievaldoors11_Cube_008"
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-1.3266811, -0.0367862, -0.27765518, 2.6729937, 0.121516705, 0.68299586),
|
||||||
|
"attribute_data": PackedByteArray("Bv5KX/gBtKAG/rSg+AFKX/gBLXoG/tGF+AHRhQb+LXozoC16y1/RhctfLXozoNGFM6DRhctfLXrLX9GFM6AtevgBSl8G/rSg+AG0oAb+Sl/4AdGFBv4tevgBLXoG/tGF"),
|
||||||
|
"format": 34896613399,
|
||||||
|
"index_count": 36,
|
||||||
|
"index_data": PackedByteArray("AAABAAIAAAADAAEABAAFAAYABAAHAAUACAAJAAoACAALAAkADAANAA4ADAAPAA0AEAARABIAEAATABEAFAAVABYAFAAXABUA"),
|
||||||
|
"material": SubResource("StandardMaterial3D_56a0c"),
|
||||||
|
"name": "Stone",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 24,
|
||||||
|
"vertex_data": PackedByteArray("//8AAAAA/z8AAAAA/v//P///AAD///8/AAAAAAAA/z8AAP///v8AgP//AAD//wCAAAAAAP7/AID///////8AgP////8AAP+///8AAP///7//////////v///AAAAAP+/AAAAAAAAAAAAAP///v8AAAAAAAD+/wAAAAD//wAAAAAAAP//AAD/v/////////+/AAD///7//7//////AAD/vwAAAAAAAAAA/////wAAAAAAAP//AAAAAP//AAAAAAAAAAD/fwAA/38AAP9/AAD/f/9/////f////3////9/////fwAA/38AAP9/AAD/fwAA/z//f/8//3//P/9//z//f////3////9/////f////3////9/////f////3////9/")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
shadow_mesh = SubResource("ArrayMesh_rlm6i")
|
||||||
|
|
||||||
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_3u0t0"]
|
||||||
|
data = PackedVector3Array(1.3463, -0.0368, -0.2777, -1.3267, -0.0368, 0.4053, 1.3463, -0.0368, 0.4053, 1.3463, -0.0368, -0.2777, -1.3267, -0.0368, -0.2777, -1.3267, -0.0368, 0.4053, -1.3267, 0.084699996, 0.4053, 1.3463, -0.0368, 0.4053, -1.3267, -0.0368, 0.4053, -1.3267, 0.084699996, 0.4053, 1.3463, 0.084699996, 0.4053, 1.3463, -0.0368, 0.4053, 1.3463, 0.084699996, -0.2777, 1.3463, -0.0368, 0.4053, 1.3463, 0.084699996, 0.4053, 1.3463, 0.084699996, -0.2777, 1.3463, -0.0368, -0.2777, 1.3463, -0.0368, 0.4053, -1.3267, -0.0368, -0.2777, -1.3267, 0.084699996, 0.4053, -1.3267, -0.0368, 0.4053, -1.3267, -0.0368, -0.2777, -1.3267, 0.084699996, -0.2777, -1.3267, 0.084699996, 0.4053, -1.3267, 0.084699996, -0.2777, 1.3463, 0.084699996, 0.4053, -1.3267, 0.084699996, 0.4053, -1.3267, 0.084699996, -0.2777, 1.3463, 0.084699996, -0.2777, 1.3463, 0.084699996, 0.4053, -1.3267, -0.0368, -0.2777, 1.3463, 0.084699996, -0.2777, -1.3267, 0.084699996, -0.2777, -1.3267, -0.0368, -0.2777, 1.3463, -0.0368, -0.2777, 1.3463, 0.084699996, -0.2777)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ow5aw"]
|
||||||
|
resource_name = "DoorType1_2"
|
||||||
|
cull_mode = 2
|
||||||
|
albedo_texture = ExtResource("4_8du8j")
|
||||||
|
roughness = 0.5
|
||||||
|
metadata/_gltf_primary_texture_coord = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_jrc0e"]
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-1.146632, 0.08473039, 0.0045645237, 1.1378665, 2.068352, 0.05000186),
|
||||||
|
"format": 34896613377,
|
||||||
|
"index_count": 36,
|
||||||
|
"index_data": PackedByteArray("AAABAAIAAAACAAMAAAAEAAEAAgAFAAMAAgABAAUAAAADAAYABAAAAAYABgADAAUAAQAEAAcABAAGAAcAAQAHAAUABgAFAAcA"),
|
||||||
|
"name": "DoorType1_2",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 8,
|
||||||
|
"vertex_data": PackedByteArray("AAAAAP7/AAD+//////8AAP//AAD+/wAA//8AAAAAAAAAAP////8AAP7///8AAAAAAAAAAAAAAAAAAP//AAAAAA==")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_qpqq3"]
|
||||||
|
resource_name = "medievaldoors11_Cube_016"
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-1.146632, 0.08473039, 0.0045645237, 1.1378665, 2.068352, 0.05000186),
|
||||||
|
"attribute_data": PackedByteArray("AQD//9aMAADWjP//AQAAAAEA///WjAAAAQAAANaM///UjDMGAAACANSMAgAAADMGsYYAAOKM///ijAAAsob//7KG///ijAAA4oz//7GGAAAAADMG1YwCAAAAAgDVjDMG"),
|
||||||
|
"format": 34896613399,
|
||||||
|
"index_count": 36,
|
||||||
|
"index_data": PackedByteArray("AAABAAIAAAADAAEABAAFAAYABAAHAAUACAAJAAoACAALAAkADAANAA4ADAAPAA0AEAARABIAEAATABEAFAAVABYAFAAXABUA"),
|
||||||
|
"material": SubResource("StandardMaterial3D_ow5aw"),
|
||||||
|
"name": "DoorType1_2",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 24,
|
||||||
|
"vertex_data": PackedByteArray("AAAAAP7/AID+//////8AgP//AAD+/wCAAAD/////AIAAAAAAAAAAAP7///8AAAAAAAD//wAAAAD//wAAAAAAAP7///////+/AAD//wAA/7/+////AAD/vwAA//////+/AAD/////AAAAAAAAAAAAAAAA//8AAAAAAAAAAP7/AAD//wAA/v//v/7///8AAP+///8AAAAA/7/+////////vwAAAAD+//8///8AAAAA/z8AAAAAAAD/P///AAD+//8//3////9/////f////3///////3////9/////f////3////9/////f////3////9//z//f/8//3//P/9//z//f/9/AAD/fwAA/38AAP9/AAAAAP9/AAD/fwAA/38AAP9/")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
shadow_mesh = SubResource("ArrayMesh_jrc0e")
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_3u0t0"]
|
||||||
|
points = PackedVector3Array(-1.146632, 0.08473039, 0.0045645237, -1.146632, 0.08473039, 0.05456149, -1.146632, 2.1530824, 0.0045645237, -0.008765459, 0.08473039, 0.0045645237, -0.008765459, 0.08473039, 0.05456149, -1.146632, 2.1530824, 0.05456638, -0.008876801, 2.1530824, 0.0045645237, -0.008876801, 2.1530824, 0.05456638)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_vkyjj"]
|
||||||
|
resource_name = "RustedMetal"
|
||||||
|
cull_mode = 2
|
||||||
|
albedo_texture = ExtResource("5_pao41")
|
||||||
|
roughness = 0.5
|
||||||
|
metadata/_gltf_primary_texture_coord = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_cm8yl"]
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-0.15807295, 0.91522706, 0.06941259, 0.122282505, 0.15972829, 0.053642333),
|
||||||
|
"format": 34896613377,
|
||||||
|
"index_count": 1098,
|
||||||
|
"index_data": PackedByteArray("AAAKADYACgAiADYAPQAAADYAAAA3AAoAPQA2AAIAPQAfAAAANgAiAGQANgBkAAIACgBlACIAAAAfADgAAAA4ADcANwBmAAoAZgBlAAoANwA4ADkANwABAGYANwA5AAEAOABnADkAHwBoADgAOABoAGcAHwBpAGgAAQA6AGYAZgAjAGUAOgAjAGYAIwA7AGUAaQA7AGgAOgBqACMAPgBpAB8APQA+AB8AaAA7AGsAIwBrADsAaABrAGcAagBrACMAIAA+AD0AIAA9AAIAZQA7AGwAaQBsADsAZQBsACIAPgBtAGkAbQBsAGkAIABAAD4AQABtAD4AIgBsAD8AbQA/AGwAIgA/AGQAQABuAG0AbgA/AG0AAwBAACAAbgBvAD8AZAA/AG8ALABuAEAAAwAsAEAAcABvAG4ALABwAG4AZABvACEAAgBkACEAIAACAEEAAwAgAEEAAgAhAEEAcABxAG8AIQBvAHEAIQBxAEIAQQAhAEIAAwBBAHIAQQBCAHIAQwADAHIAQwAsAAMARABwACwAQwBEACwAcwBxAHAARABzAHAAQgBxAEUAcwBFAHEAcgBCAHQAQgBFAHQAQwByAAYAcgB0AAYARgBEAEMARgBDAAYAKgBzAEQARgAqAEQAdQBFAHMAKgB1AHMAdABFAHYAdQB2AEUABgB0ACsAdAB2ACsARgAGAEcABgArAEcACAAqAEYACABGAEcASAB1ACoACABIACoAdwB2AHUASAB3AHUAKwB2AEkAdwBJAHYARwArAHgAKwBJAHgACABHAHkARwB4AHkASgBIAAgASgAIAHkAKAB3AEgASgAoAEgAegBJAHcAKAB6AHcAeABJAHsAegB7AEkAeQB4ACkAeAB7ACkASgB5AAsAeQApAAsASwAoAEoASwBKAAsATAB6ACgASwBMACgAfAB7AHoATAB8AHoAKQB7AE0AfABNAHsACwApAH0AKQBNAH0ASwALAH4ACwB9AH4ACQBMAEsACQBLAH4AJgB8AEwACQAmAEwAfwBNAHwAJgB/AHwAfQBNAIAAfwCAAE0AfgB9ACcAfQCAACcACQB+AAcAfgAnAAcATgAmAAkATgAJAAcATwB/ACYATgBPACYAgQCAAH8ATwCBAH8AJwCAAFAAgQBQAIAABwAnAIIAJwBQAIIATgAHAFIABwCCAFIABABPAE4ABABOAFIAUQCBAE8ABABRAE8AgwBQAIEAUQCDAIEAggBQAIQAgwCEAFAAUgCCACUAggCEACUABABSAIUAUgAlAIUAUwBRAAQAUwAEAIUAJACDAFEAUwAkAFEAhgCEAIMAJACGAIMAJQCEAIcAhgCHAIQAhQAlAFQAJQCHAFQAUwCFAAUAhQBUAAUAPAAkAFMAPABTAAUAVgCGACQAPABWACQAiACHAIYAVgCIAIYAAQBWADwAAQA5AFYAOQCIAFYAAQA8ADoAPAAFADoABQBqADoABQBUAGoAOQBnAIgAVABVAGoAVACHAFUAiABVAIcAZwBVAIgAagBVAGsAZwBrAFUADAAOAIkADAANAA4AEQAMAIkADQCKAA4ADQAPAIoAEQCJAIsAFAARAIsAiQAOAIwAFACLABMAFQAUABMAiwCJAI0AiQCMAI0AEwCLAI4AiwCNAI4AFQATAI8AFwAVAI8AEwCOADAAjwATADAAFwCPAC4AGQAXAC4AjwAwAJAALgCPAJAAGQAuAJEAGgAZAJEALgCQAFgAkQAuAFgAGgCRAFcAHAAaAFcAkQBYAJIAVwCRAJIAHABXAJMAHgAcAJMAVwCSAJQAkwBXAJQAHgCTABYAHQAeABYAkwCUAFkAFgCTAFkAHQAWAJUAGwAdAJUAFgBZAJYAlQAWAJYAGwCVAC0AGAAbAC0AlQCWAC8ALQCVAC8AGAAtAJcAEgAYAJcALQAvAJgAlwAtAJgAEgCXAJkAEAASAJkAlwCYAJoAmQCXAJoAEACZAFoADwAQAFoADwBaAIoAWgCZAFsAmQCaAFsAigBaAJsAWgBbAJsAigCbADEADgCKADEADgAxAIwAMQCbAJwAmwBbAJ0AmwCdAJwAWwBcAJ0AWwCaAFwAjAAxADQAMQCcADQAjAA0AJ4AjQCMAJ4AmgCfAFwAmgCYAJ8AjQCeAKAAjgCNAKAAngA0AKEAjgCgAKIAMACOAKIAoACeAKMAngChAKMAogCgAKQAoACjAKQAMACiAGAAkAAwAGAAogCkAKUAYACiAKUApQCkAKYAkABgAKcAWACQAKcAYAClADUApwBgADUApQCmAKgANQClAKgApACpAKYAqQCoAKYApACjAKkANQCoAKoAWACnAKsApwA1AKwArAA1AKoAqwCnAKwAkgBYAKsAqACtAKoArACqAK0AqQCtAKgAqwCsAK4ArgCsAK0AkgCrAK8ArwCrAK4AlACSAK8AowBiAKkAowChAGIAsACpAGIAoQCwAGIAsQCpALAAsQCtAKkAoQCyALAANACyAKEANACcALIAsgCzALAAsQCwALMAnABfALIAsgBfALMAXwCxALMAnACdAF8AnQC0AF8AXwC0ALEAnQBcALQAtABhALEAXAC1ALQAtAC1AGEAXACfALUAtgCxAGEAtQC2AGEAtwCxALYArQCxALcAtQC4ALYAnwC4ALUAuAC5ALYAtwC2ALkAnwAyALgAmAAyAJ8AmAAvADIAuAC6ALkAMgC6ALgAugC3ALkALwC7ADIAMgC7ALoALwCWALsAugBeALcAuwBeALoAlgC8ALsAuwC8AF4AlgBZALwAXgBjALcAWQBdALwAWQCUAF0AlACvAF0AvAC9AF4AXgC9AGMAvABdAL0AvgC3AGMAvQC+AGMArQC3AL4AXQAzAL0AXQCvADMAvQAzAL4ArwCuADMArQC+AL8ArgCtAL8AMwC/AL4AMwCuAL8A"),
|
||||||
|
"lods": [0.012256797, PackedByteArray("AAAKADYAAAA3AAoAAAA4ADcANwABAAoANwA4ADkANwA5AAEAOAAjADkAAQA6AAoAOgAjAAoAOAA7ACMAAQA8ADoAAAAfADgAHwA7ADgAPQAfAAAAPQAAADYAHwAiADsAIwA7ACIACgAiADYACgAjACIAPQA2AAIAPQA+AB8APgAiAB8AIAA9AAIAIAA+AD0ANgAhAAIANgAiACEAPgA/ACIAIgA/ACEAQAA/AD4AIABAAD4AQAAhAD8AIAACAEEAAgAhAEEAAwBAACAAAwAgAEEALAAhAEAAAwAsAEAALABCACEAQQAhAEIAAwBBAAYAQQBCAAYAQwAsAAMAQwADAAYARABCACwAQwBEACwARABFAEIARgBDAAYARgBEAEMABgBCACsAQgBFACsARgAGAEcABgArAEcAKgBFAEQARgAqAEQAKgArAEUACABGAEcACAAqAEYACABHAAsASAArACoACABIACoASABJACsARwArACkAKwBJACkARwApAAsAKABJAEgAKAApAEkASgBIAAgASgAoAEgASgAIAAsASwAoAEoASwBKAAsATAApACgASwBMACgATABNACkASwALAAcACwApACcAKQBNACcACwAnAAcAJgBNAEwAJgAnAE0ACQBMAEsACQAmAEwACQBLAAcATgAmAAkATgAJAAcATwAnACYATgBPACYATwBQACcABwAnACUAJwBQACUAUQBQAE8AUQAlAFAABABPAE4ABABRAE8ATgAHAFIABABOAFIABwAlAFIABABSAAUAUgAlAAUAUwBRAAQAUwAEAAUAJAAlAFEAUwAkAFEAJABUACUABQAlAFQAPAAkAFMAPABTAAUAPAAFADoABQAjADoABQBUACMAVABVACMAOQAjAFUAVgBUACQAPABWACQAVgBVAFQAOQBVAFYAAQBWADwAAQA5AFYADAANAA4ADQAPAA4AEQAMAA4AEQAOABMAFAARABMAFQAUABMAFQATAC4AFwAVAC4AGQAXAC4ALgATADAAEwAOADAAGQAuAFcAGgAZAFcAHAAaAFcAVwAuAFgALgAwAFgAHABXABYAHgAcABYAHQAeABYAFgBXAFkAVwBYAFkAHQAWAC0ALQAWAFkAGwAdAC0AGAAbAC0AEgAYAC0AEgAtAFoAEAASAFoADwAQAFoADwBaAA4AWgAtAFsADgBaAFsALQBZAC8ALQAvAFsADgBbADEADgAxADAAMQBbADQAMAAxADQAWwAvAFwAWwBcADQALwBZADIALwAyAFwAWQBdADIAWQBYAF0AXAAyAF4AMgBdAF4ANABcAF8AXABeAF8AWAAwAGAAMAA0AGAAWABgAF0AXwBeAGEAYAA0ADUANABfADUAXQBgADMAXQAzAF4AYAA1ADMAXwBhAGIANQBfAGIAXgBjAGEAXgAzAGMAYQBjAGIAMwA1AGMAYgBjADUA"), 0.029816525, PackedByteArray("AAAKAAIAAAABAAoAAAAfAAEAIAAfAAAAIAAAAAIAIAAhAB8AHwAiAAEAHwAhACIACgAiAAIAAgAiACEACgAjACIAAQAiACMABQAjAAoAAQAFAAoAAQAjACQABQAlACMAJAAjACUAAQAEAAUAAQAkAAQABAAHAAUABwAlAAUABAAkACYAJAAlACYABAAJAAcABAAmAAkABwAnACUAJgAlACcACwAnAAcACQALAAcAJgAnACgACQAmACgACwApACcAKAAnACkACQAIAAsACQAoAAgABgApAAsACAAGAAsAKAApACoACAAoACoAKgApACsABgArACkACAAqACwAKgArACwABgAhACsALAArACEAAgAhAAYALAAhACAAAwACAAYACAADAAYAAwAgAAIACAAsAAMAAwAsACAADAANAA4ADQAPAA4ADwAQAA4AEQAMAA4AEAASAA4AEQAOABMAFAARABMAFQAUABMAEgAtAA4AEgAYAC0AGAAbAC0AGwAdAC0AFQATAC4AFwAVAC4AGQAXAC4AGgAZAC4AHAAaAC4AHQAWAC0AHAAuABYAHQAeABYAHgAcABYAFgAuAC8ALQAWAC8ALgATADAALgAwAC8AEwAOADAADgAtADEALQAvADEADgAxADAAMQAvADIALwAwADMALwAzADIAMQAyADQAMAAxADQANAAyADMAMAA1ADMANAAzADUAMAA0ADUA"), 0.093039304, PackedByteArray("AAAKAAIAAAACAAoAAwAAAAIAAwACAAAAAwAGAAIAAwACAAYACAADAAYACAAGAAMACAALAAYACAAGAAsACQAIAAsACQALAAgACQAHAAsACQALAAcABAAJAAcACQAEAAcAAAAKAAEAAAABAAoAAQAKAAQAAQAFAAoABQAEAAoAAQAEAAUABAAHAAUABwAEAAUADAANAA4ADQAPAA4ADwAQAA4AEQAMAA4AEAASAA4AEQAOABMAFAARABMAFQAUABMADgAWABMAFQATABYAEgAWAA4AFwAVABYAEgAYABYAGQAXABYAGgAZABYAGAAbABYAHAAaABYAGwAdABYAHgAcABYAHQAeABYA"), 0.149667, PackedByteArray("AAABAAIAAAACAAEAAwAAAAIAAwACAAAAAQACAAQAAQAFAAIAAQAEAAUABQAEAAIAAwACAAYAAwAGAAIABAAHAAUABwAEAAUACAADAAYACAAGAAMACAAHAAYACAAGAAcACQAEAAcABAAJAAcACQAIAAcACQAHAAgA")],
|
||||||
|
"name": "RustedMetal",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 192,
|
||||||
|
"vertex_data": PackedByteArray("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")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_ju5ts"]
|
||||||
|
resource_name = "medievaldoors11_Cube_009"
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-0.15807295, 0.91522706, 0.06941259, 0.122282505, 0.15972829, 0.053642333),
|
||||||
|
"attribute_data": PackedByteArray("AaUQdOa4/ItFkrhyBXGra/CpS54VbI53AaUuqiBd3onBgyKj4oFfqezqV7ZS8G3icNcz3vb/XLzwnzbrNM+//RCv9v/HetTy3Xz53Otg2te5beat811irPCpi4EVbE+UMLuC7I1uZMWSAV5baAHLZCsJ7GRAATluEQEZecIBgVDcAL6FuwkGRPkB5EPqB/64pQCCk28ASaE9APmtGgDsuAgAccIIAPrLQRvZwiEA+tZkAMPj3ACs8UgKLv/VXKTeGgL2/+KBiGly8D242OPi1jH6bLokyPfuhuLq6+St2vFcr9H6kYoK+bSQcOwOfVbudXJ42fFp0N88ak/GcWJryk9inKyQabytOQhnoTkIjOORFNf5gygTzw4xkMWRJrzowCXC9V9OYN2BLCja70O04s8+b/AeTATzDFTs9q2fv3jpsSB/JJR7bH6v3ZXluK+YwYNgcOmxSaMcZJByRJJ5pSBdK30jlFGsh2b9fwVxyqEcZLqWceVGxtrtccp8837O8/jG0Fnrad+X5srvyNu8+LfbEeIW2Rn0v9Qx7d3NtvhPwPb/Ys825e2/7fodvaf0i5ya/Rmu2OyCnXv4i57v8iaMMvQ+ktHnjW5D6/GDVuencXvnFmZ04iR3KOM+dmzWNmVd1gZeC8uiapbSIF0yvHhhLrx9ZuS61gg5edsH8MtcE7jm1gw0zXEcdfVEG97R3iCR4D9C29XdUVTSPS2p6uUwXfbpMuvtTylw5CosQOorMsDndDcQ2/w4cuSMOSzqZUUV8X6vxItZdhNyrZ/Go4dmFYpYdhqdEJ8d8EGPDu/bu5HxRcb26U+u1vSL0s7p/8ku8tne6tMI3kLl6+qFyGXmmdmn8wW5SPBmzHz2jbmM6HzcGuCV6OnWl/AFzEb1o76B9+6ufPcYnlb1vY1H8Wd/u+vBgbHpY3Qr5UuGy+LDefLg2Gyz3ahvmtsUaIvUTmUYyUVkmbsUZQOtqWeYxypnaK1NbcXQhHHRzglpVbpYbSe6VAl/WwMJWm6DCaNQowjdhW4IoJMKCBSu2gd3wvYH3Na1CDPxPBNi8IkJMdcpHB3wkhTY3dYcVOqLJdDwPCsU8xMXwNbIEjbGaR7y5NMlXezjKqfwOSwg9RIrNe5+K//r6isZ7LUnHebbI07dJCFZz5Ql9MIiLQrpuCc020srUONoLjvoAjFv0PI8Ucn4LbjiHDDS5+gxJNrlObbSSEiizW8xu+JTNV3jWjT25408D91NSWDZ8Vjc12g2i+jUQKzf4TvM5TQ4TekeURPiD11j5tI9SOe+RfPld1Fo5+RZne76PuToYDou649Gb+mbTy/thj/K6sk6YexcRkftgz827bw63e0xOobvUjNa8Doy7vQVM9PySS/n9qUtePbYLh7q6jHh63wwi+o="),
|
||||||
|
"format": 34896613399,
|
||||||
|
"index_count": 1098,
|
||||||
|
"index_data": PackedByteArray("AAAWAE8AAABQABYAUQAAAE8AUACRABYAUQBPAAIAUAABAJEAMQBRAAIAAQBSAJEAMQACAFQAAQBTAFIAAwAxAFQAUwAEAFIAAwBUAJIAUwBVAAQAVgADAJIAVQCTAAQAVgCSAAUAVQAGAJMAWABWAAUABgBXAJMAWAAFAFoABgBZAFcABwBYAFoAWQAIAFcABwBaAJQAWQAJAAgAXAAHAJQACQCVAAgAXACUABcACQBbAJUAWwBcABcAWwAXAJUAlgCXADoADgCWADoAbQCWAA4ADgA6AHEAbQA3AJYAGAA3AG0ANwBvAJYAlgBvAJcAGACYADcAmQCYABgANwCaAG8AmACaADcAmQA1AJgAaQA1AJkAmABrAJoANQBrAJgAaQCbADUADACbAGkANQCcAGsAmwCcADUADABkAJsAnQBkAAwAmwBmAJwAZABmAJsAnQAzAGQAXQAzAJ0AZACeAGYAMwCeAGQAXQCfADMACgCfAF0ACgAyAJ8AnwCgADMAMwCgAJ4AMgBeAJ8AnwBeAKAAMgChAF4AogBeAKEAogChAKMApACgAF4ApABeAKIApQCeAKAApQCgAKQApgCeAKUApgBmAJ4AXwCiAKMAXwCjADQAYABfADQAYAA0AA0ACwBfAGAAYQCiAF8ACwBhAF8AYQCkAKIAYgBhAAsANgCkAGEAYgA2AGEANgClAKQAYwA2AGIAZQClADYAYwBlADYAZQCmAKUADwBlAGMADwBnAGUAZwCmAGUAaABnAA8AZwCnAKYApwBmAKYApwCcAGYAaABqAGcAagCnAGcAEABqAGgAqACcAKcAagCoAKcAqABrAJwAEAA4AGoAOACoAGoAbAA4ABAAqQBrAKgAOACpAKgAqQCaAGsAbABuADgAbgCpADgAOQBuAGwAqgCaAKkAbgCqAKkAqgBvAJoAOQBwAG4AcACqAG4AEQBwADkAqwBvAKoAcACrAKoAqwCXAG8AEQA7AHAAOwCrAHAAcgA7ABEArACXAKsAOwCsAKsAcgB0ADsAdACsADsAdQB0AHIArACtAJcAOgCXAK0AdACuAKwArgCtAKwAdQA9AHQAPQCuAHQAEwA9AHUAOgCtAHMAcQA6AHMAcQBzAK8AcwCtAHYArgB2AK0ArwBzALAAcwB2ALAArwCwABIAsQB2AK4APQCxAK4AsAB2ALIAsQCyAHYAEgCwADwAsACyADwAEgA8AHcAEwB4AD0AeACxAD0AeQB4ABMAswCyALEAeACzALEAeQA/AHgAPwCzAHgAewA/AHkAswB6ALIAPACyAHoAPwC0ALMAtAB6ALMAewB8AD8AfAC0AD8AFQB8AHsAFQBAAHwAQAC1AHwAfAC1ALQAQAC2ALUAtAC3AHoAtQC3ALQAtgB9ALUAtQB9ALcAtgC4AH0APAB6ALkAuQB6ALcAdwA8ALkAdwC5ALoAuQC3AD4AugC5AD4APgC3AH0AugA+ABkAuwB9ALgAPgB9ALsAGQA+ALsAuwC4AEEAGQC7ALwAvAC7AEEAvABBABQAGgAcAL0AGgAbABwAHwAaAL0AGwC+ABwAHwC9AL8AIgAfAL8AIgC/ACEAGwAdAL4AHQB+AL4AHQAeAH4AHgDAAH4AHgAgAMAAIADBAMAAIAAkAMEAJABCAMEAJAAlAEIAJQDCAEIAJQAmAMIAJgAjAMIAJgAnACMAJwDDACMAJwAoAMMAKAB/AMMAKAApAH8AKQDEAH8AKQArAMQAKwBDAMQAKwAsAEMALADFAEMALAAtAMUALQAuAMUALQAwAC4AxQAuAEQAxQBEAMYAQwDFAMYAxgBEAIIAQwDGAIAAxwBDAIAAxgCCAMgAgADGAMgAyACCAEgAxwCAAMkAgQDHAMkAgADIAMoAyQCAAMoAyABIAMsAygDIAMsAywBIAMwAgQDJAM0AzgCBAM0AyQDKAM8AzQDJAM8AygDLANAAzwDKANAAywDMANEA0ADLANEA0gDRAMwAzgDNAIMAKgDOAIMAzQDPAIQAgwDNAIQAzwDQAEcAhADPAEcARwDQANMA0ADRANMARwDTANQA0QDVANMA1gBHANQAhABHANYA1gDUAIsAgwCEANcA1wCEANYAKgCDANgA2ACDANcA2QAqANgAigDWAIsA1wDWAIoAigCLANoA2ADXANsA2wDXAIoA2QDYAEUARQDYANsARgDZAEUA3ACKANoA2wCKANwA3ADaAN0ARQDbAEoASgDbANwARgBFAN4A3gBFAEoA3wBGAN4A4ADcAN0ASgDcAOAA4ADdAOEA3gBKAOIA4gBKAOAA3wDeAOMA4wDeAOIA5ADfAOMA5QDgAOEA4gDgAOUA5QDhAIwA4wDiAI0AjQDiAOUA5ADjAIUAhQDjAI0AhgDkAIUA5gDlAIwAjQDlAOYA5gCMAOcAhQCNAOgA6ACNAOYAhgCFAOkA6QCFAOgA6gCGAOkAjgDmAOcA6ADmAI4AjgDnAOsA6QDoAOwA7ADoAI4A6gDpAEkASQDpAOwALwDqAEkA7QCOAOsA7ACOAO0A7QDrAO4ASQDsAEsASwDsAO0ALwBJAO8A7wBJAEsA8AAvAO8A8QDtAO4ASwDtAPEA8QDuAI8A7wBLAPIA8gBLAPEA8ADvAPMA8wDvAPIA9ADwAPMA9QDxAI8A8gDxAPUA9QCPAPYA8wDyAPcA9wDyAPUA9ADzAPgA+ADzAPcATgD0APgATgD4AE0A+QD1APYA9wD1APkA+QD2APoA+AD3APsATQD4APsA+wD3APkATQD7AJAA/AD5APoA+wD5APwAkAD7APwA/AD6AP0AkAD8AEwATAD8AP0ATAD9AP4A/wAAAQEBAAECAYgA/wACAQABAgHSAAMBAgHRANIA/wDRAAIB0QD/AAQB0QAEAdUA1QAEAYcABAH/AAUBBQH/AIkABAEFAQYB"),
|
||||||
|
"lods": [0.012256797, PackedByteArray("AAAWAE8AAABQABYAUQAAAE8AUAABABYAUQBPAAIAAQBSABYAMQBRAAIAAQBTAFIAMQACAFQAUwAEAFIAAwAxAFQAUwBVAAQAAwBUAAUAVQAGAAQAVgADAAUABgBXAAQAWABWAAUABgBZAFcAWAAFAFoAWQAIAFcABwBYAFoAWQAJAAgABwBaABcACQBbAAgAWwAXAAgAXAAHABcAWwBcABcACgAzAF0AXQAzAAwACgAyADMAMgBeADMAXwBeADIAXwAyADQAYABfADQAYAA0AA0ACwBfAGAAYQBeAF8ACwBhAF8AYQAzAF4AYgBhAAsAYgA2AGEANgAzAGEAYwA2AGIANgBkADMADAAzAGQAYwBlADYAZQBkADYADwBlAGMAZQBmAGQADwBnAGUAZwBmAGUAaABnAA8AZABmADUADABkADUAZwA1AGYADAA1AGkAaABqAGcAagA1AGcAEABqAGgAaQA1ABgAEAA4AGoAagBrADUAOABrAGoAbAA4ABAANQBrADcAGAA1ADcAOAA3AGsAGAA3AG0AbABuADgAbgA3ADgAOQBuAGwAbgBvADcAOQBwAG4AcABvAG4AEQBwADkANwBvADoAbQA3ADoAcAA6AG8AbQA6AA4ADgA6AHEAEQA7AHAAOwA6AHAAcgA7ABEAcQA6AHMAOwBzADoAcQBzABIAcgB0ADsAdABzADsAdQB0AHIAdAB2AHMAdQA9AHQAPQB2AHQAEwA9AHUAcwB2ADwAEgBzADwAPQA8AHYAEgA8AHcAEwB4AD0AeAA8AD0AeQB4ABMAeAB6ADwAeQA/AHgAPwB6AHgAewA/AHkAPAB6AD4AdwA8AD4APwA+AHoAdwA+ABkAewB8AD8AfAA+AD8AFQB8AHsAFQBAAHwAQAB9AHwAfAB9AD4AQABBAH0APgB9AEEAGQA+AEEAGQBBABQAGgAbABwAGwAdABwAHwAaABwAHwAcACEAIgAfACEAHQB+ABwAHQAeAH4AHgAgAH4AIABCAH4AIAAkAEIAJAAlAEIAJQAmAEIAJgAjAEIAJgAnACMAJwAoACMAKAB/ACMAKAApAH8AKQArAH8AKwBDAH8AKwAsAEMALAAtAEMALQAuAEMALQAwAC4AQwAuAEQAQwBEAIAAgQBDAIAAgABEAIIAgQCAAIMAKgCBAIMARgAqAIMAgwCAAIQAgACCAIQARgCDAEUARgBFAIUAhgBGAIUARQCDAEoAgwCEAEoALwCGAIUAhACCAEcAggBIAEcARwBIAIcAiACHAEgAiQCHAIgAhABHAIoASgCEAIoAigBHAIsAigCLAIwAjQBKAIoARQBKAI0AhQBFAI0AjgCKAIwAjQCKAI4AjgCMAI8ATACOAI8ASwCNAI4ASwCOAEwAhQCNAEsAkABLAEwATQBLAJAASQCFAEsATQBJAEsALwCFAEkALwBJAE0ATgAvAE0A"), 0.029816525, PackedByteArray("AAAWAAIAAAABABYAMQAAAAIAAQAEABYAAwAxAAIAAQAGAAQAAwACAAUABgAIAAQABwADAAUABgAJAAgABwAFABcACQAXAAgACQAHABcACgAyADMACgAzAAwANAAzADIADAAzADUADAA1ABgANgAzADQANgA1ADMACwA2ADQACwA0AA0ADwA2AAsADwA1ADYAGAA1ADcADwA3ADUAGAA3AA4AOAA3AA8AEAA4AA8AOQA4ABAAOAA6ADcADgA3ADoAOQA6ADgADgA6ABIAOwA6ADkAEQA7ADkAEwA7ABEAOwA8ADoAEgA6ADwAEwA9ADsAPQA8ADsAEgA8AD4APQA+ADwAEgA+ABkAEwA/AD0APwA+AD0AFQA/ABMAFQBAAD8AQABBAD8APwBBAD4AGQA+AEEAGQBBABQAGgAbABwAGwAdABwAHQAeABwAHwAaABwAHgAgABwAHwAcACEAIgAfACEAIABCABwAIAAkAEIAJAAlAEIAJQAmAEIAJgAjAEIAJgAnACMAJwAoACMAKABDACMAKAApAEMAKQArAEMAKwAsAEMALAAtAEMALQAuAEMALQAwAC4AQwAuAEQAQwBEAEUAKgBDAEUARgAqAEUARQBEAEcARABIAEcARgBFAEkARQBHAEoASQBFAEoALwBGAEkASwBKAEcASQBKAEsASwBHAEwATQBLAEwATQBJAEsALwBJAE0ATgAvAE0A"), 0.093039304, PackedByteArray("AAAWAAIAAAABABYAAwAAAAIAAQAEABYAAwACAAUAAQAGAAQABwADAAUABgAIAAQABwAFABcABgAJAAgACQAHABcACQAXAAgACgALAAwADQALAAoADAALABgADwAYAAsAEAAYAA8AEAAOABgAEQAOABAAEQASAA4AEwASABEAEwAZABIAFQAZABMAFQAUABkAGgAbABwAGwAdABwAHQAeABwAHwAaABwAHgAgABwAHwAcACEAIgAfACEAIAAjABwAIAAkACMAJAAlACMAJQAmACMAJgAnACMAJwAoACMAKAApACoAKQArACoAKwAsACoALAAtACoALQAuACoALwAqAC4ALQAwAC4A"), 0.149667, PackedByteArray("AAABAAIAAwAAAAIAAQAEAAIAAwACAAUAAQAGAAQABwADAAUABgAIAAQABwAFAAgABgAJAAgACQAHAAgACgALAAwADQALAAoADAALAA4ADwAOAAsAEAAOAA8AEQAOABAAEQASAA4AEwASABEAEwAUABIAFQAUABMA")],
|
||||||
|
"material": SubResource("StandardMaterial3D_vkyjj"),
|
||||||
|
"name": "RustedMetal",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 263,
|
||||||
|
"vertex_data": PackedByteArray("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")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
shadow_mesh = SubResource("ArrayMesh_cm8yl")
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_p7mtt"]
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-0.008764982, 0.084730506, 0.0045645237, 1.1378667, 2.0683517, 0.050001144),
|
||||||
|
"format": 34896613377,
|
||||||
|
"index_count": 36,
|
||||||
|
"index_data": PackedByteArray("AAABAAIAAAACAAMAAAAEAAEAAgAFAAMAAgABAAUAAAADAAYABAAAAAYABgADAAUAAQAEAAcABAAGAAcAAQAHAAUABgAFAAcA"),
|
||||||
|
"name": "DoorType1_2",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 8,
|
||||||
|
"vertex_data": PackedByteArray("AAAAAP7/AAD+//////8AAP//AAD+/wAA//8AAAAAAAAAAP////8AAP7///8AAAAAAAAAAAAAAAAAAP//AAAAAA==")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_y6mlo"]
|
||||||
|
resource_name = "medievaldoors11_Cube_017"
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-0.008764982, 0.084730506, 0.0045645237, 1.1378667, 2.0683517, 0.050001144),
|
||||||
|
"attribute_data": PackedByteArray("AID8//7/AID///z/AIAAgACA/P/+/wCAAIAAgP///P/9/xeD/3//f/3//3//fxeDUfr///H/AoDx////UfoCgP9/F4P9//9//3//f/3/F4NR+gKA8f////H/AoBR+v//"),
|
||||||
|
"format": 34896613399,
|
||||||
|
"index_count": 36,
|
||||||
|
"index_data": PackedByteArray("AAABAAIAAAADAAEABAAFAAYABAAHAAUACAAJAAoACAALAAkADAANAA4ADAAPAA0AEAARABIAEAATABEAFAAVABYAFAAXABUA"),
|
||||||
|
"material": SubResource("StandardMaterial3D_ow5aw"),
|
||||||
|
"name": "DoorType1_2",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(1.1002946, 2.0001838, 0, 0),
|
||||||
|
"vertex_count": 24,
|
||||||
|
"vertex_data": PackedByteArray("AAAAAP7/AID+//////8AgP//AAD+/wCAAAD/////AIAAAAAAAAAAAP7///8AAAAAAAD//wAAAAD//wAAAAAAAP7///////+/AAD//wAA/7/+////AAD/vwAA//////+///8AAP7//7/+////AAD/v///AAAAAP+//v///////78AAAAA/v//P///AAAAAP8/AAAAAAAA/z///wAA/v//PwAA/////wAAAAAAAAAAAAAAAP//AAAAAAAAAAD+/wAA/3////9/////f////3///////3////9/////f////3////9/////f////3////9//38AAP9/AAD/fwAA/38AAAAA/38AAP9/AAD/fwAA/3//P/9//z//f/8//3//P/9/")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
shadow_mesh = SubResource("ArrayMesh_p7mtt")
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_kufgt"]
|
||||||
|
points = PackedVector3Array(-0.008764982, 0.084730506, 0.0045645237, -0.008764982, 0.084730506, 0.054560777, -0.008764982, 2.1530824, 0.0045645237, 1.1291018, 0.084730506, 0.0045645237, 1.1291018, 0.084730506, 0.054560777, -0.008764982, 2.1530824, 0.054560777, 1.1289904, 2.1530824, 0.0045645237, 1.1289904, 2.1530824, 0.054560777)
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_1fp46"]
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(0.028411865, 0.91522706, 0.06941259, 0.122282505, 0.15972829, 0.053642333),
|
||||||
|
"format": 34896613377,
|
||||||
|
"index_count": 1098,
|
||||||
|
"index_data": PackedByteArray("AAAKADYACgAiADYAPQAAADYAAAA3AAoAPQA2AAIAPQAfAAAANgAiAGQANgBkAAIACgBlACIAAAAfADgAAAA4ADcANwBmAAoAZgBlAAoANwA4ADkANwABAGYANwA5AAEAOABnADkAHwBoADgAOABoAGcAHwBpAGgAAQA6AGYAZgAjAGUAOgAjAGYAIwA7AGUAaQA7AGgAOgBqACMAPgBpAB8APQA+AB8AaAA7AGsAIwBrADsAaABrAGcAagBrACMAIAA+AD0AIAA9AAIAZQA7AGwAaQBsADsAZQBsACIAPgBtAGkAbQBsAGkAIABAAD4AQABtAD4AIgBsAD8AbQA/AGwAIgA/AGQAQABuAG0AbgA/AG0AAwBAACAAbgBvAD8AZAA/AG8ALABuAEAAAwAsAEAAcABvAG4ALABwAG4AZABvACEAAgBkACEAIAACAEEAAwAgAEEAAgAhAEEAcABxAG8AIQBvAHEAIQBxAEIAQQAhAEIAAwBBAHIAQQBCAHIAQwADAHIAQwAsAAMARABwACwAQwBEACwAcwBxAHAARABzAHAAQgBxAEUAcwBFAHEAcgBCAHQAQgBFAHQAQwByAAYAcgB0AAYARgBEAEMARgBDAAYAKgBzAEQARgAqAEQAdQBFAHMAKgB1AHMAdABFAHYAdQB2AEUABgB0ACsAdAB2ACsARgAGAEcABgArAEcACAAqAEYACABGAEcASAB1ACoACABIACoAdwB2AHUASAB3AHUAKwB2AEkAdwBJAHYARwArAHgAKwBJAHgACABHAHkARwB4AHkASgBIAAgASgAIAHkAKAB3AEgASgAoAEgAegBJAHcAKAB6AHcAeABJAHsAegB7AEkAeQB4ACkAeAB7ACkASgB5AAsAeQApAAsASwAoAEoASwBKAAsATAB6ACgASwBMACgAfAB7AHoATAB8AHoAKQB7AE0AfABNAHsACwApAH0AKQBNAH0ASwALAH4ACwB9AH4ACQBMAEsACQBLAH4AJgB8AEwACQAmAEwAfwBNAHwAJgB/AHwAfQBNAIAAfwCAAE0AfgB9ACcAfQCAACcACQB+AAcAfgAnAAcATgAmAAkATgAJAAcATwB/ACYATgBPACYAgQCAAH8ATwCBAH8AJwCAAFAAgQBQAIAABwAnAIIAJwBQAIIATgAHAFIABwCCAFIABABPAE4ABABOAFIAUQCBAE8ABABRAE8AgwBQAIEAUQCDAIEAggBQAIQAgwCEAFAAUgCCACUAggCEACUABABSAIUAUgAlAIUAUwBRAAQAUwAEAIUAJACDAFEAUwAkAFEAhgCEAIMAJACGAIMAJQCEAIcAhgCHAIQAhQAlAFQAJQCHAFQAUwCFAAUAhQBUAAUAPAAkAFMAPABTAAUAVgCGACQAPABWACQAiACHAIYAVgCIAIYAAQBWADwAAQA5AFYAOQCIAFYAAQA8ADoAPAAFADoABQBqADoABQBUAGoAOQBnAIgAVABVAGoAVACHAFUAiABVAIcAZwBVAIgAagBVAGsAZwBrAFUADAAOAIkADAANAA4AEQAMAIkADQCKAA4ADQAPAIoAEQCJAIsAFAARAIsAiQAOAIwAFACLABMAFQAUABMAiwCJAI0AiQCMAI0AEwCLAI4AiwCNAI4AFQATAI8AFwAVAI8AEwCOADAAjwATADAAFwCPAC4AGQAXAC4AjwAwAJAALgCPAJAAGQAuAJEAGgAZAJEALgCQAFgAkQAuAFgAGgCRAFcAHAAaAFcAkQBYAJIAVwCRAJIAHABXAJMAHgAcAJMAVwCSAJQAkwBXAJQAHgCTABYAHQAeABYAkwCUAFkAFgCTAFkAHQAWAJUAGwAdAJUAFgBZAJYAlQAWAJYAGwCVAC0AGAAbAC0AlQCWAC8ALQCVAC8AGAAtAJcAEgAYAJcALQAvAJgAlwAtAJgAEgCXAJkAEAASAJkAlwCYAJoAmQCXAJoAEACZAFoADwAQAFoADwBaAIoAWgCZAFsAmQCaAFsAigBaAJsAWgBbAJsAigCbADEADgCKADEADgAxAIwAMQCbAJwAmwBbAJ0AmwCdAJwAWwBcAJ0AWwCaAFwAjAAxADQAMQCcADQAjAA0AJ4AjQCMAJ4AmgCfAFwAmgCYAJ8AjQCeAKAAjgCNAKAAngA0AKEAjgCgAKIAMACOAKIAoACeAKMAngChAKMAogCgAKQAoACjAKQAMACiAGAAkAAwAGAAogCkAKUAYACiAKUApQCkAKYAkABgAKcAWACQAKcAYAClADUApwBgADUApQCmAKgANQClAKgApACpAKYAqQCoAKYApACjAKkANQCoAKoAWACnAKsApwA1AKwArAA1AKoAqwCnAKwAkgBYAKsAqACtAKoArACqAK0AqQCtAKgAqwCsAK4ArgCsAK0AkgCrAK8ArwCrAK4AlACSAK8AowBiAKkAowChAGIAsACpAGIAoQCwAGIAsQCpALAAsQCtAKkAoQCyALAANACyAKEANACcALIAsgCzALAAsQCwALMAnABfALIAsgBfALMAXwCxALMAnACdAF8AnQC0AF8AXwC0ALEAnQBcALQAtABhALEAXAC1ALQAtAC1AGEAXACfALUAtgCxAGEAtQC2AGEAtwCxALYArQCxALcAtQC4ALYAnwC4ALUAuAC5ALYAtwC2ALkAnwAyALgAmAAyAJ8AmAAvADIAuAC6ALkAMgC6ALgAugC3ALkALwC7ADIAMgC7ALoALwCWALsAugBeALcAuwBeALoAlgC8ALsAuwC8AF4AlgBZALwAXgBjALcAWQBdALwAWQCUAF0AlACvAF0AvAC9AF4AXgC9AGMAvABdAL0AvgC3AGMAvQC+AGMArQC3AL4AXQAzAL0AXQCvADMAvQAzAL4ArwCuADMArQC+AL8ArgCtAL8AMwC/AL4AMwCuAL8A"),
|
||||||
|
"lods": [0.012256797, PackedByteArray("AAAKADYAAAA3AAoAAAA4ADcANwABAAoANwA4ADkANwA5AAEAOAAjADkAAQA6AAoAOgAjAAoAOAA7ACMAAQA8ADoAAAAfADgAHwA7ADgAPQAfAAAAPQAAADYAHwAiADsAIwA7ACIACgAiADYACgAjACIAPQA2AAIAPQA+AB8APgAiAB8AIAA9AAIAIAA+AD0ANgAhAAIANgAiACEAPgA/ACIAIgA/ACEAQAA/AD4AIABAAD4AQAAhAD8AIAACAEEAAgAhAEEAAwBAACAAAwAgAEEALAAhAEAAAwAsAEAALABCACEAQQAhAEIAAwBBAAYAQQBCAAYAQwAsAAMAQwADAAYARABCACwAQwBEACwARABFAEIARgBDAAYARgBEAEMABgBCACsAQgBFACsARgAGAEcABgArAEcAKgBFAEQARgAqAEQAKgArAEUACABGAEcACAAqAEYACABHAAsASAArACoACABIACoASABJACsARwArACkAKwBJACkARwApAAsAKABJAEgAKAApAEkASgBIAAgASgAoAEgASgAIAAsASwAoAEoASwBKAAsATAApACgASwBMACgATABNACkASwALAAcACwApACcAKQBNACcACwAnAAcAJgBNAEwAJgAnAE0ACQBMAEsACQAmAEwACQBLAAcATgAmAAkATgAJAAcATwAnACYATgBPACYATwBQACcABwAnACUAJwBQACUAUQBQAE8AUQAlAFAABABPAE4ABABRAE8ATgAHAFIABABOAFIABwAlAFIABABSAAUAUgAlAAUAUwBRAAQAUwAEAAUAJAAlAFEAUwAkAFEAJABUACUABQAlAFQAPAAkAFMAPABTAAUAPAAFADoABQAjADoABQBUACMAVABVACMAOQAjAFUAVgBUACQAPABWACQAVgBVAFQAOQBVAFYAAQBWADwAAQA5AFYADAANAA4ADQAPAA4AEQAMAA4AEQAOABMAFAARABMAFQAUABMAFQATAC4AFwAVAC4AGQAXAC4ALgATADAAEwAOADAAGQAuAFcAGgAZAFcAHAAaAFcAVwAuAFgALgAwAFgAHABXABYAHgAcABYAHQAeABYAFgBXAFkAVwBYAFkAHQAWAC0ALQAWAFkAGwAdAC0AGAAbAC0AEgAYAC0AEgAtAFoAEAASAFoADwAQAFoADwBaAA4AWgAtAFsADgBaAFsALQBZAC8ALQAvAFsADgBbADEADgAxADAAMQBbADQAMAAxADQAWwAvAFwAWwBcADQALwBZADIALwAyAFwAWQBdADIAWQBYAF0AXAAyAF4AMgBdAF4ANABcAF8AXABeAF8AWAAwAGAAMAA0AGAAWABgAF0AXwBeAGEAYAA0ADUANABfADUAXQBgADMAXQAzAF4AYAA1ADMAXwBhAGIANQBfAGIAXgBjAGEAXgAzAGMAYQBjAGIAMwA1AGMAYgBjADUA"), 0.029816525, PackedByteArray("AAAKAAIAAAABAAoAAAAfAAEAIAAfAAAAIAAAAAIAIAAhAB8AHwAiAAEAHwAhACIACgAiAAIAAgAiACEACgAjACIAAQAiACMABQAjAAoAAQAFAAoAAQAjACQABQAlACMAJAAjACUAAQAEAAUAAQAkAAQABAAHAAUABwAlAAUABAAkACYAJAAlACYABAAJAAcABAAmAAkABwAnACUAJgAlACcACwAnAAcACQALAAcAJgAnACgACQAmACgACwApACcAKAAnACkACQAIAAsACQAoAAgABgApAAsACAAGAAsAKAApACoACAAoACoAKgApACsABgArACkACAAqACwAKgArACwABgAhACsALAArACEAAgAhAAYALAAhACAAAwACAAYACAADAAYAAwAgAAIACAAsAAMAAwAsACAADAANAA4ADQAPAA4ADwAQAA4AEQAMAA4AEAASAA4AEQAOABMAFAARABMAFQAUABMAEgAtAA4AEgAYAC0AGAAbAC0AGwAdAC0AFQATAC4AFwAVAC4AGQAXAC4AGgAZAC4AHAAaAC4AHQAWAC0AHAAuABYAHQAeABYAHgAcABYAFgAuAC8ALQAWAC8ALgATADAALgAwAC8AEwAOADAADgAtADEALQAvADEADgAxADAAMQAvADIALwAwADMALwAzADIAMQAyADQAMAAxADQANAAyADMAMAA1ADMANAAzADUAMAA0ADUA"), 0.093039304, PackedByteArray("AAAKAAIAAAACAAoAAwAAAAIAAwACAAAAAwAGAAIAAwACAAYACAADAAYACAAGAAMACAALAAYACAAGAAsACQAIAAsACQALAAgACQAHAAsACQALAAcABAAJAAcACQAEAAcAAAAKAAEAAAABAAoAAQAKAAQAAQAFAAoABQAEAAoAAQAEAAUABAAHAAUABwAEAAUADAANAA4ADQAPAA4ADwAQAA4AEQAMAA4AEAASAA4AEQAOABMAFAARABMAFQAUABMADgAWABMAFQATABYAEgAWAA4AFwAVABYAEgAYABYAGQAXABYAGgAZABYAGAAbABYAHAAaABYAGwAdABYAHgAcABYAHQAeABYA"), 0.149667, PackedByteArray("AAABAAIAAAACAAEAAwAAAAIAAwACAAAAAQACAAQAAQAFAAIAAQAEAAUABQAEAAIAAwACAAYAAwAGAAIABAAHAAUABwAEAAUACAADAAYACAAGAAMACAAHAAYACAAGAAcACQAEAAcABAAJAAcACQAIAAcACQAHAAgA")],
|
||||||
|
"name": "RustedMetal",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 192,
|
||||||
|
"vertex_data": PackedByteArray("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")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_j0nlc"]
|
||||||
|
resource_name = "medievaldoors11_Cube_013"
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(0.028411865, 0.91522706, 0.06941259, 0.122282505, 0.15972829, 0.053642333),
|
||||||
|
"attribute_data": PackedByteArray("AaUQdOa4/ItFkrhyBXGra/CpS54VbI53AaUuqiBd3onBgyKj4oFfqezqV7ZS8G3icNcz3vb/XLzwnzbrNM+//RCv9v/HetTy3Xz53Otg2te5beat811irPCpi4EVbE+UMLuC7I1uZMWSAV5baAHLZCsJ7GRAATluEQEZecIBgVDcAL6FuwkGRPkB5EPqB/64pQCCk28ASaE9APmtGgDsuAgAccIIAPrLQRvZwiEA+tZkAMPj3ACs8UgKLv/VXKTeGgL2/+KBiGly8D242OPi1jH6bLokyPfuhuLq6+St2vFcr9H6kYoK+bSQcOwOfVbudXJ42fFp0N88ak/GcWJryk9inKyQabytOQhnoTkIjOORFNf5gygTzw4xkMWRJrzowCXC9V9OYN2BLCja70O04s8+b/AeTATzDFTs9q2fv3jpsSB/JJR7bH6v3ZXluK+YwYNgcOmxSaMcZJByRJJ5pSBdK30jlFGsh2b9fwVxyqEcZLqWceVGxtrtccp8837O8/jG0Fnrad+X5srvyNu8+LfbEeIW2Rn0v9Qx7d3NtvhPwPb/Ys825e2/7fodvaf0i5ya/Rmu2OyCnXv4i57v8iaMMvQ+ktHnjW5D6/GDVuencXvnFmZ04iR3KOM+dmzWNmVd1gZeC8uiapbSIF0yvHhhLrx9ZuS61gg5edsH8MtcE7jm1gw0zXEcdfVEG97R3iCR4D9C29XdUVTSPS2p6uUwXfbpMuvtTylw5CosQOorMsDndDcQ2/w4cuSMOSzqZUUV8X6vxItZdhNyrZ/Go4dmFYpYdhqdEJ8d8EGPDu/bu5HxRcb26U+u1vSL0s7p/8ku8tne6tMI3kLl6+qFyGXmmdmn8wW5SPBmzHz2jbmM6HzcGuCV6OnWl/AFzEb1o76B9+6ufPcYnlb1vY1H8Wd/u+vBgbHpY3Qr5UuGy+LDefLg2Gyz3ahvmtsUaIvUTmUYyUVkmbsUZQOtqWeYxypnaK1NbcXQhHHRzglpVbpYbSe6VAl/WwMJWm6DCaNQowjdhW4IoJMKCBSu2gd3wvYH3Na1CDPxPBNi8IkJMdcpHB3wkhTY3dYcVOqLJdDwPCsU8xMXwNbIEjbGaR7y5NMlXezjKqfwOSwg9RIrNe5+K//r6isZ7LUnHebbI07dJCFZz5Ql9MIiLQrpuCc020srUONoLjvoAjFv0PI8Ucn4LbjiHDDS5+gxJNrlObbSSEiizW8xu+JTNV3jWjT25408D91NSWDZ8Vjc12g2i+jUQKzf4TvM5TQ4TekeURPiD11j5tI9SOe+RfPld1Fo5+RZne76PuToYDou649Gb+mbTy/thj/K6sk6YexcRkftgz827bw63e0xOobvUjNa8Doy7vQVM9PySS/n9qUtePbYLh7q6jHh63wwi+o="),
|
||||||
|
"format": 34896613399,
|
||||||
|
"index_count": 1098,
|
||||||
|
"index_data": PackedByteArray("AAAWAE8AAABQABYAUQAAAE8AUACRABYAUQBPAAIAUAABAJEAMQBRAAIAAQBSAJEAMQACAFQAAQBTAFIAAwAxAFQAUwAEAFIAAwBUAJIAUwBVAAQAVgADAJIAVQCTAAQAVgCSAAUAVQAGAJMAWABWAAUABgBXAJMAWAAFAFoABgBZAFcABwBYAFoAWQAIAFcABwBaAJQAWQAJAAgAXAAHAJQACQCVAAgAXACUABcACQBbAJUAWwBcABcAWwAXAJUAlgCXADoADgCWADoAbQCWAA4ADgA6AHEAbQA3AJYAGAA3AG0ANwBvAJYAlgBvAJcAGACYADcAmQCYABgANwCaAG8AmACaADcAmQA1AJgAaQA1AJkAmABrAJoANQBrAJgAaQCbADUADACbAGkANQCcAGsAmwCcADUADABkAJsAnQBkAAwAmwBmAJwAZABmAJsAnQAzAGQAXQAzAJ0AZACeAGYAMwCeAGQAXQCfADMACgCfAF0ACgAyAJ8AnwCgADMAMwCgAJ4AMgBeAJ8AnwBeAKAAMgChAF4AogBeAKEAogChAKMApACgAF4ApABeAKIApQCeAKAApQCgAKQApgCeAKUApgBmAJ4AXwCiAKMAXwCjADQAYABfADQAYAA0AA0ACwBfAGAAYQCiAF8ACwBhAF8AYQCkAKIAYgBhAAsANgCkAGEAYgA2AGEANgClAKQAYwA2AGIAZQClADYAYwBlADYAZQCmAKUADwBlAGMADwBnAGUAZwCmAGUAaABnAA8AZwCnAKYApwBmAKYApwCcAGYAaABqAGcAagCnAGcAEABqAGgAqACcAKcAagCoAKcAqABrAJwAEAA4AGoAOACoAGoAbAA4ABAAqQBrAKgAOACpAKgAqQCaAGsAbABuADgAbgCpADgAOQBuAGwAqgCaAKkAbgCqAKkAqgBvAJoAOQBwAG4AcACqAG4AEQBwADkAqwBvAKoAcACrAKoAqwCXAG8AEQA7AHAAOwCrAHAAcgA7ABEArACXAKsAOwCsAKsAcgB0ADsAdACsADsAdQB0AHIArACtAJcAOgCXAK0AdACuAKwArgCtAKwAdQA9AHQAPQCuAHQAEwA9AHUAOgCtAHMAcQA6AHMAcQBzAK8AcwCtAHYArgB2AK0ArwBzALAAcwB2ALAArwCwABIAsQB2AK4APQCxAK4AsAB2ALIAsQCyAHYAEgCwADwAsACyADwAEgA8AHcAEwB4AD0AeACxAD0AeQB4ABMAswCyALEAeACzALEAeQA/AHgAPwCzAHgAewA/AHkAswB6ALIAPACyAHoAPwC0ALMAtAB6ALMAewB8AD8AfAC0AD8AFQB8AHsAFQBAAHwAQAC1AHwAfAC1ALQAQAC2ALUAtAC3AHoAtQC3ALQAtgB9ALUAtQB9ALcAtgC4AH0APAB6ALkAuQB6ALcAdwA8ALkAdwC5ALoAuQC3AD4AugC5AD4APgC3AH0AugA+ABkAuwB9ALgAPgB9ALsAGQA+ALsAuwC4AEEAGQC7ALwAvAC7AEEAvABBABQAGgAcAL0AGgAbABwAHwAaAL0AGwC+ABwAHwC9AL8AIgAfAL8AIgC/ACEAGwAdAL4AHQB+AL4AHQAeAH4AHgDAAH4AHgAgAMAAIADBAMAAIAAkAMEAJABCAMEAJAAlAEIAJQDCAEIAJQAmAMIAJgAjAMIAJgAnACMAJwDDACMAJwAoAMMAKAB/AMMAKAApAH8AKQDEAH8AKQArAMQAKwBDAMQAKwAsAEMALADFAEMALAAtAMUALQAuAMUALQAwAC4AxQAuAEQAxQBEAMYAQwDFAMYAxgBEAIIAQwDGAIAAxwBDAIAAxgCCAMgAgADGAMgAyACCAEgAxwCAAMkAgQDHAMkAgADIAMoAyQCAAMoAyABIAMsAygDIAMsAywBIAMwAgQDJAM0AzgCBAM0AyQDKAM8AzQDJAM8AygDLANAAzwDKANAAywDMANEA0ADLANEA0gDRAMwAzgDNAIMAKgDOAIMAzQDPAIQAgwDNAIQAzwDQAEcAhADPAEcARwDQANMA0ADRANMARwDTANQA0QDVANMA1gBHANQAhABHANYA1gDUAIsAgwCEANcA1wCEANYAKgCDANgA2ACDANcA2QAqANgAigDWAIsA1wDWAIoAigCLANoA2ADXANsA2wDXAIoA2QDYAEUARQDYANsARgDZAEUA3ACKANoA2wCKANwA3ADaAN0ARQDbAEoASgDbANwARgBFAN4A3gBFAEoA3wBGAN4A4ADcAN0ASgDcAOAA4ADdAOEA3gBKAOIA4gBKAOAA3wDeAOMA4wDeAOIA5ADfAOMA5QDgAOEA4gDgAOUA5QDhAIwA4wDiAI0AjQDiAOUA5ADjAIUAhQDjAI0AhgDkAIUA5gDlAIwAjQDlAOYA5gCMAOcAhQCNAOgA6ACNAOYAhgCFAOkA6QCFAOgA6gCGAOkAjgDmAOcA6ADmAI4AjgDnAOsA6QDoAOwA7ADoAI4A6gDpAEkASQDpAOwALwDqAEkA7QCOAOsA7ACOAO0A7QDrAO4ASQDsAEsASwDsAO0ALwBJAO8A7wBJAEsA8AAvAO8A8QDtAO4ASwDtAPEA8QDuAI8A7wBLAPIA8gBLAPEA8ADvAPMA8wDvAPIA9ADwAPMA9QDxAI8A8gDxAPUA9QCPAPYA8wDyAPcA9wDyAPUA9ADzAPgA+ADzAPcATgD0APgATgD4AE0A+QD1APYA9wD1APkA+QD2APoA+AD3APsATQD4APsA+wD3APkATQD7AJAA/AD5APoA+wD5APwAkAD7APwA/AD6AP0AkAD8AEwATAD8AP0ATAD9AP4A/wAAAQEBAAECAYgA/wACAQABAgHSAAMBAgHRANIA/wDRAAIB0QD/AAQB0QAEAdUA1QAEAYcABAH/AAUBBQH/AIkABAEFAQYB"),
|
||||||
|
"lods": [0.012256797, PackedByteArray("AAAWAE8AAABQABYAUQAAAE8AUAABABYAUQBPAAIAAQBSABYAMQBRAAIAAQBTAFIAMQACAFQAUwAEAFIAAwAxAFQAUwBVAAQAAwBUAAUAVQAGAAQAVgADAAUABgBXAAQAWABWAAUABgBZAFcAWAAFAFoAWQAIAFcABwBYAFoAWQAJAAgABwBaABcACQBbAAgAWwAXAAgAXAAHABcAWwBcABcACgAzAF0AXQAzAAwACgAyADMAMgBeADMAXwBeADIAXwAyADQAYABfADQAYAA0AA0ACwBfAGAAYQBeAF8ACwBhAF8AYQAzAF4AYgBhAAsAYgA2AGEANgAzAGEAYwA2AGIANgBkADMADAAzAGQAYwBlADYAZQBkADYADwBlAGMAZQBmAGQADwBnAGUAZwBmAGUAaABnAA8AZABmADUADABkADUAZwA1AGYADAA1AGkAaABqAGcAagA1AGcAEABqAGgAaQA1ABgAEAA4AGoAagBrADUAOABrAGoAbAA4ABAANQBrADcAGAA1ADcAOAA3AGsAGAA3AG0AbABuADgAbgA3ADgAOQBuAGwAbgBvADcAOQBwAG4AcABvAG4AEQBwADkANwBvADoAbQA3ADoAcAA6AG8AbQA6AA4ADgA6AHEAEQA7AHAAOwA6AHAAcgA7ABEAcQA6AHMAOwBzADoAcQBzABIAcgB0ADsAdABzADsAdQB0AHIAdAB2AHMAdQA9AHQAPQB2AHQAEwA9AHUAcwB2ADwAEgBzADwAPQA8AHYAEgA8AHcAEwB4AD0AeAA8AD0AeQB4ABMAeAB6ADwAeQA/AHgAPwB6AHgAewA/AHkAPAB6AD4AdwA8AD4APwA+AHoAdwA+ABkAewB8AD8AfAA+AD8AFQB8AHsAFQBAAHwAQAB9AHwAfAB9AD4AQABBAH0APgB9AEEAGQA+AEEAGQBBABQAGgAbABwAGwAdABwAHwAaABwAHwAcACEAIgAfACEAHQB+ABwAHQAeAH4AHgAgAH4AIABCAH4AIAAkAEIAJAAlAEIAJQAmAEIAJgAjAEIAJgAnACMAJwAoACMAKAB/ACMAKAApAH8AKQArAH8AKwBDAH8AKwAsAEMALAAtAEMALQAuAEMALQAwAC4AQwAuAEQAQwBEAIAAgQBDAIAAgABEAIIAgQCAAIMAKgCBAIMARgAqAIMAgwCAAIQAgACCAIQARgCDAEUARgBFAIUAhgBGAIUARQCDAEoAgwCEAEoALwCGAIUAhACCAEcAggBIAEcARwBIAIcAiACHAEgAiQCHAIgAhABHAIoASgCEAIoAigBHAIsAigCLAIwAjQBKAIoARQBKAI0AhQBFAI0AjgCKAIwAjQCKAI4AjgCMAI8ATACOAI8ASwCNAI4ASwCOAEwAhQCNAEsAkABLAEwATQBLAJAASQCFAEsATQBJAEsALwCFAEkALwBJAE0ATgAvAE0A"), 0.029816525, PackedByteArray("AAAWAAIAAAABABYAMQAAAAIAAQAEABYAAwAxAAIAAQAGAAQAAwACAAUABgAIAAQABwADAAUABgAJAAgABwAFABcACQAXAAgACQAHABcACgAyADMACgAzAAwANAAzADIADAAzADUADAA1ABgANgAzADQANgA1ADMACwA2ADQACwA0AA0ADwA2AAsADwA1ADYAGAA1ADcADwA3ADUAGAA3AA4AOAA3AA8AEAA4AA8AOQA4ABAAOAA6ADcADgA3ADoAOQA6ADgADgA6ABIAOwA6ADkAEQA7ADkAEwA7ABEAOwA8ADoAEgA6ADwAEwA9ADsAPQA8ADsAEgA8AD4APQA+ADwAEgA+ABkAEwA/AD0APwA+AD0AFQA/ABMAFQBAAD8AQABBAD8APwBBAD4AGQA+AEEAGQBBABQAGgAbABwAGwAdABwAHQAeABwAHwAaABwAHgAgABwAHwAcACEAIgAfACEAIABCABwAIAAkAEIAJAAlAEIAJQAmAEIAJgAjAEIAJgAnACMAJwAoACMAKABDACMAKAApAEMAKQArAEMAKwAsAEMALAAtAEMALQAuAEMALQAwAC4AQwAuAEQAQwBEAEUAKgBDAEUARgAqAEUARQBEAEcARABIAEcARgBFAEkARQBHAEoASQBFAEoALwBGAEkASwBKAEcASQBKAEsASwBHAEwATQBLAEwATQBJAEsALwBJAE0ATgAvAE0A"), 0.093039304, PackedByteArray("AAAWAAIAAAABABYAAwAAAAIAAQAEABYAAwACAAUAAQAGAAQABwADAAUABgAIAAQABwAFABcABgAJAAgACQAHABcACQAXAAgACgALAAwADQALAAoADAALABgADwAYAAsAEAAYAA8AEAAOABgAEQAOABAAEQASAA4AEwASABEAEwAZABIAFQAZABMAFQAUABkAGgAbABwAGwAdABwAHQAeABwAHwAaABwAHgAgABwAHwAcACEAIgAfACEAIAAjABwAIAAkACMAJAAlACMAJQAmACMAJgAnACMAJwAoACMAKAApACoAKQArACoAKwAsACoALAAtACoALQAuACoALwAqAC4ALQAwAC4A"), 0.149667, PackedByteArray("AAABAAIAAwAAAAIAAQAEAAIAAwACAAUAAQAGAAQABwADAAUABgAIAAQABwAFAAgABgAJAAgACQAHAAgACgALAAwADQALAAoADAALAA4ADwAOAAsAEAAOAA8AEQAOABAAEQASAA4AEwASABEAEwAUABIAFQAUABMA")],
|
||||||
|
"material": SubResource("StandardMaterial3D_vkyjj"),
|
||||||
|
"name": "RustedMetal",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 263,
|
||||||
|
"vertex_data": PackedByteArray("+7B1B1SiLeJA9n08VKJF+v9/FRRUojHjfSWzHFSiXuIE3s5/VKIC7vohLURUogHugdpHp1SiXuK+CX2HVKJE+v9/5a9UojHj/3/7w1SiEN7/f+WvVKKR74HaR6dUopXlBN7Of1SiHOn/f/vDVKId7P9/FRRUoufiQPZ9PFSi3eH7sHUHVKKm3n0lsxxUokTe+iEtRFSib+S+CX2HVKLD4P9/5a9Uoirr/3/7w1SipOf0x+YqVKIm7wo4FJlUoibv9MfmKlSiluQKOBSZVKKa5swqvpoAAJA+hCPEtgAA/z+EI8S2tke2UswqytIAAFQ+iD+M6gAA0zmIP/yCAAAzOpBea/oAAAAzkF4cc7ZHSUCQXhxzAAB1M4vbytK2RzkNK4P//wAAbirGp2v6AACjIM7GjOoAABAWi9vK0gAAFQvT4sS2AAAHAIvbvpoAABcLi9vK0rZHoSPOxvyCAADzFcanHHMAAEcgK4OJbQAAmSmQXhxztkf7OYQjxLa2R64OkF4ccwAA7zEDT3UHVKJN3v9/5a8b0TDT9McUmRvRlMb/f/vDG9Hv0wTeLUQb0ba6QPZ9hxvRUcTwpgMaHNFatPuwdQcc0U+1A091B1Sis90NWQMaHNFQsX0lsxwb0eGyOxr9YRvRhbgAAP1hG9F0uAo4FJkb0TfAfSVHpxvRTr//f/vDG9HIy/9/5a8b0eXLxqdr+rZHrSfGpxxztkeoK71rdouifcE+dq7o16J9lSHGp2v6tkfzFv2ZS6W95iUu0Xbwn73mBjybSrTIon3MCv2ZPMgemtoYWmU4wB6aRAvRdvCfveZUI71rdouifX4gkF4cc7ZHGhjwpgMaVKIB54HasxxUopvr/38AAFSiEN7D5f1hVKJb+P///WFUoi/2DVkDGlSiTeNA9n2HVKI16r4JfTxUojXq8Kb3qVSiTeMAAP1hVKIv9vuwhbxUok3eOxr9YVSiW/gDT4W8VKIt4n0lR6dUopvr8Kb3qVSi6uvSqUuv2eWUxPuwhbwb0QzN+7CFvFSizueB2kenG9H2x0D2fYdUoo3k///9YVSijeME3s5/G9Gpwv///WEb0TvBS+39Ydnlq7FA9n08G9ETvYHasxxUov/fw+X9YVSiveeB2rMcG9G0uEjN0ibZ5Zug/38AAFSi293wpgMaVKKD4/9/AAAc0fuy/39QDtnlb5QDT3UHHNEKsg1ZAxpUotHivgl9PFSiad8KOOYqG9Hvsb4JfTwb0W+1AAD9YVSiY+AFG/hB2eVrmzsa/WFUopDlvgl9hxvRSbt9JUenVKK04QUbA4LZ5aquA0+FvFSi4uMDT4W8G9HtxCtWS6/Z5Ym6iD+M6rZHPEmL276atkd0DZmadouifQs3i9u+mrZHHSrRdvCfHZpWPWTAxLaifWAr/KBPrR2aJyi9axHion0xB4g/jOq2R7wEHpFXsv7/wD44dTC7/v/dPvKIcsH//zY9caPEtr3msSYekVey/v8zK/KIcsH//yQSK4N5zx6alQzRdpfNveZAATh1MLv+/1cQ0Xbwnx2aPiUE3i1EVKIB+wo45ipUovTm9McUmVSi9Ob6Ic5/VKIB+w1Z96lUogHn/38VFBzRTbIrVq8U2eWvkfTH5iob0TG3BN4tRFSiEubSqa8U2eXJmcPl/WEb0fK++eT4Qdnlj6j0xxSZVKIY6vnkA4LZ5Ri58Kb3qRvRNcxIzSid2eVhv/9/qrXZ5YjHtK14tp7nA8X/f269nucByHTUpqKe5/q/We77hJ7nsLlw9/1hnueislnu/z6e5+qpdNRUIZ7nkaG0rYINnucvmv9/jAae53yUSVKCDZ7n85GJK1QhnuewlLYy0ibZ5c+TpRH/Pp7ncJwKOOYqVKJY4/ohLUQb0Y60jQj9YZ7nL6ayEv1h2eXNpaUR+4Se55SuiSumop7nTrVJUni2nudZuv9/br2e5xe9tjIondnlf7X/f6q12eVYvfohzn8b0Uy8+iHOf1SiJOYNWfepG9FjxQ1Z96lUoinozCq+mrZHdVDMKsrStkcMUIg//IK2R9pJkF5r+rZHlD8rg///tkcpNM7GjOq2R5Ua0+LEtrZHJwDOxvyCtkeaGiuDiW22Ry8zK4Plh6J9pTvOxvyCtkclLSuDD54dmjo3dq6flaJ9jzKFj/CfHZosMSuDD5695jM2ZH0WrP7/0z67u9Skon3bLtPixLa2Rzon/ZlLpR2aQyyFj/CfveanMSuDNKv+/2k9fniXrv7/KT3yiBas/v8/OtiNl67+/74w2I2Xrv7/9D78oE+tveZAK3GjxLYemggku7u0yKJ9RCfOxozqtkd0HkWSxLb+/5Ml/KA4wB6a5x78oDjAveabHx6RMLv+/6AfmZoR4qJ9oBkrg///tkfHDf2ZPMi95jEY2I3wvv//fxmFj5fNHpp8EiuDo+WifbYQkF5r+rZHLQSFj5fNvebpECuDec+95m8JK4NTwv//+wrRdpfNHpq/BeBX6NeifbsCzCrK0rZH9gpkfXLB//9/A1lsPMgemskCWWw8yL3mRgd+ePC+//94BvJFxLaiffgQzCq+mrZHYRFaZTjAvebKDuVixLYemoMSm0rUpKJ9QRaIP/yCtkeSFOVixLa95u8TEnTEtv7/1hhaZU+tHZpWGOBXn5WifcobWmVPrb3mbhc4dVey/v/IH1lsS6Udmj0eWWxLpb3mVRx+eJeu/v9FJWR9Fqz+/8UoK4NTwv//Bz5+ePC+//86P2R9csH//0E/EnTEtv7/Hz44dVey/v9sPUWSxLb+/w4+2I3wvv//9TwekTC7/v9NPdQKzp8XEaCzuu5CaPoqfZetLzKXUdDMaATVgWjo7l9MRBG8l3jwhGnXPQLV86PzCVmrz+hLxf8q5fUdcnUy9TxgEBFldzh7sUm3dkGJfUrq4Ej7SnK1e7Pk8RVXGQ7oqK3afrBCZy8ph1sQ7fx++P3efgz9hJGa24ScFcbqRX3iQaTltpMuaOCoNvzaba1EiWGqzqq4rzugzrQqlhS6wYsIAPs/vwvoxTwk6BtCFkbLeiCd0E0rmdaXL/nmtVLFiXI3ct0eHcGUJyfJ310/Rfhb2CMg/dOe0SU+5g0d8pmq/QyUVdAjIaLS2e1WBUAOsjOZqT1uZ5XEKHCKQAWS7b9Tp6mkdVluW8umPpp/GILWtB0M80cZdwmJMfECqwVIygkvbeV2apyMjyRDEeVeNpRMXB5kHG3fbWZixl9M8tFfmwtlqoYPe5Z9MnOV68iWad/j42o6zJhnxDNmmB8cG5UTN2iW4OI9a4HNjGoq9TFgZPSaVf1L/eH/GUX278zsFaC3/B4VwKkGnVRsFLJBBiuiwFfzejOjHxzk8u0zKT4vriOxTre809OqHfI/mOxu1zcLPZAp7j+amwx9nmb2xUq8JcCm4dypXnhKJL/bv1BMP1TZugtfSNA/nmdYFqScMe593s+WmmjTPoU8W/OqW8GCnlux4nFfZfSYd70hCXrSyw0o5YcLrDGgKxbplA6mF6AHAy3p6ZwLIGT5n4gIwxRs9znrVusHCNwYJyfcApsTiRH1AgfXMQc32FMRzXGfiU5frGZP7hBQ69cqaRMo1JauEe6vsg0toDDzqmBM2+pUheBdwFDLb8Kz9mvGRMqj4fjm0uMQYef4veFS94wy0enjHgD/9xO77q7lswm/61ERzeDKAF0e7AinG1sSUhhVHM4SiigiCco5aAlrs1MlqqaYTLmnU7Q2VrBhmaa7yAdPcqusRGxvZqVbkLpaw3pYpZOFrKFpjvaa/JVkk596zl5sas9sxoTJNG2I+hnDYsxOl1SIPH5UcO78jwTUiT345cuesq4po4+jHKq7kRwA/TC5Ed/V3yOi3UAWt+pRBnfKdyC930wEjeH5FFPYwiKP28UUbvcEBgEdhRlCJ7QH4NGNFYbSrg/q8MDod/9cCbfsoQPb6wAAOugsDC8xExSYJAoV8xAqLK4PYwicEG4dWxuAIU0drgypDGYb1wF80jIJiCjZEskP/AcVKs8FdOaABejYBxN9LvYGzdFQBo3uZQJT3bMROm/5kTtbmZaT8DAHH2bxm21lz6ASddeMeWaVheJQUXnLXGSYIVhuijVlCX3eWEdrUVTvjPluboXTU4l9OGgHdbZOWH33bAyAElkZcV5VPm8qbg56TXFWdFfwSg/q/yzocPffFKzwWPC56yL3TA+nDy8XlQA7FOEI")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
shadow_mesh = SubResource("ArrayMesh_1fp46")
|
||||||
|
|
||||||
|
[node name="MedievalDoor" type="Node3D" unique_id=1143822269]
|
||||||
|
|
||||||
|
[node name="Doorframe" type="StaticBody3D" parent="." unique_id=320444502]
|
||||||
|
|
||||||
|
[node name="DoorframeMesh" type="MeshInstance3D" parent="Doorframe" unique_id=221649147]
|
||||||
|
mesh = SubResource("ArrayMesh_22684")
|
||||||
|
|
||||||
|
[node name="DoorframeCollider" type="CollisionShape3D" parent="Doorframe" unique_id=1492557825]
|
||||||
|
shape = SubResource("ConcavePolygonShape3D_kufgt")
|
||||||
|
|
||||||
|
[node name="DoorStepMesh" type="MeshInstance3D" parent="Doorframe" unique_id=720005179]
|
||||||
|
mesh = SubResource("ArrayMesh_ci6nf")
|
||||||
|
|
||||||
|
[node name="DoorStepCollider" type="CollisionShape3D" parent="Doorframe" unique_id=1147755680]
|
||||||
|
shape = SubResource("ConcavePolygonShape3D_3u0t0")
|
||||||
|
|
||||||
|
[node name="DoorLeft" type="Node3D" parent="." unique_id=173219782 node_paths=PackedStringArray("body", "hinge")]
|
||||||
|
script = ExtResource("5_3u0t0")
|
||||||
|
body = NodePath("DoorBody")
|
||||||
|
maxGrabDistance = 3.0
|
||||||
|
hinge = NodePath("../HingeLeft")
|
||||||
|
hingeAngularUpperLimit = 0.001
|
||||||
|
snapAngleThreshold = 10.0
|
||||||
|
snapVelocityThreshold = 1.0
|
||||||
|
mouseHorizontalFactor = 0.5
|
||||||
|
mouseVerticalFactor = 0.5
|
||||||
|
metadata/_custom_type_script = "uid://cyw8ng7alo12e"
|
||||||
|
|
||||||
|
[node name="DoorBody" type="RigidBody3D" parent="DoorLeft" unique_id=1047666100]
|
||||||
|
collision_layer = 4
|
||||||
|
collision_mask = 9
|
||||||
|
axis_lock_angular_x = true
|
||||||
|
axis_lock_angular_z = true
|
||||||
|
mass = 10.0
|
||||||
|
angular_damp = 5.0
|
||||||
|
|
||||||
|
[node name="DoorLeftMesh" type="MeshInstance3D" parent="DoorLeft/DoorBody" unique_id=1467497491]
|
||||||
|
mesh = SubResource("ArrayMesh_qpqq3")
|
||||||
|
|
||||||
|
[node name="DoorLeftCollider" type="CollisionShape3D" parent="DoorLeft/DoorBody" unique_id=1292801504]
|
||||||
|
shape = SubResource("ConvexPolygonShape3D_3u0t0")
|
||||||
|
|
||||||
|
[node name="DoorHandle" type="MeshInstance3D" parent="DoorLeft/DoorBody" unique_id=530285053]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.015)
|
||||||
|
mesh = SubResource("ArrayMesh_ju5ts")
|
||||||
|
|
||||||
|
[node name="DoorRight" type="Node3D" parent="." unique_id=1328179091 node_paths=PackedStringArray("body", "hinge")]
|
||||||
|
script = ExtResource("5_3u0t0")
|
||||||
|
body = NodePath("DoorBody")
|
||||||
|
maxGrabDistance = 3.0
|
||||||
|
hinge = NodePath("../HingeRight")
|
||||||
|
hingeAngularLowerLimit = 0.001
|
||||||
|
snapAngleThreshold = 0.001
|
||||||
|
snapVelocityThreshold = 444.0
|
||||||
|
mouseHorizontalFactor = 0.5
|
||||||
|
mouseVerticalFactor = 0.5
|
||||||
|
metadata/_custom_type_script = "uid://cyw8ng7alo12e"
|
||||||
|
|
||||||
|
[node name="DoorBody" type="RigidBody3D" parent="DoorRight" unique_id=1795020957]
|
||||||
|
collision_layer = 4
|
||||||
|
collision_mask = 9
|
||||||
|
axis_lock_angular_x = true
|
||||||
|
axis_lock_angular_z = true
|
||||||
|
mass = 10.0
|
||||||
|
angular_damp = 5.0
|
||||||
|
|
||||||
|
[node name="DoorRightMesh" type="MeshInstance3D" parent="DoorRight/DoorBody" unique_id=790254688]
|
||||||
|
mesh = SubResource("ArrayMesh_y6mlo")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="DoorRight/DoorBody" unique_id=126846253]
|
||||||
|
shape = SubResource("ConvexPolygonShape3D_kufgt")
|
||||||
|
|
||||||
|
[node name="DoorHandle" type="MeshInstance3D" parent="DoorRight/DoorBody" unique_id=572399259]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.015)
|
||||||
|
mesh = SubResource("ArrayMesh_j0nlc")
|
||||||
|
|
||||||
|
[node name="HingeLeft" type="HingeJoint3D" parent="." unique_id=1531839944]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, -1.2, 1, 0)
|
||||||
|
node_a = NodePath("../Doorframe")
|
||||||
|
node_b = NodePath("../DoorLeft/DoorBody")
|
||||||
|
angular_limit/enable = true
|
||||||
|
|
||||||
|
[node name="HingeRight" type="HingeJoint3D" parent="." unique_id=1980419171]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 1.2, 1, 0)
|
||||||
|
node_a = NodePath("../Doorframe")
|
||||||
|
node_b = NodePath("../DoorRight/DoorBody")
|
||||||
|
angular_limit/enable = true
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cpog4xqme7wqj"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://c1r1jpfh3vsn2" path="res://Scripts/PlayerController.gd" id="1_xhfnw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://8xgne2anpltj" path="res://Scenes/Crosshair.tscn" id="2_kpjcp"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_rpqav"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleMesh" id="CapsuleMesh_qbkls"]
|
||||||
|
|
||||||
|
[node name="Player" type="CharacterBody3D" unique_id=1270645855 node_paths=PackedStringArray("head", "camera", "raycast", "hand", "crosshair")]
|
||||||
|
collision_layer = 17
|
||||||
|
collision_mask = 13
|
||||||
|
script = ExtResource("1_xhfnw")
|
||||||
|
speed = 3.0
|
||||||
|
head = NodePath("Head")
|
||||||
|
camera = NodePath("Head/Camera3D")
|
||||||
|
raycast = NodePath("Head/Camera3D/RayCast3D")
|
||||||
|
hand = NodePath("Head/Camera3D/Hand")
|
||||||
|
crosshair = NodePath("Crosshair")
|
||||||
|
mouseFactorLerpSpeed = 5.0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1346737595]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
||||||
|
shape = SubResource("CapsuleShape3D_rpqav")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=58443605]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
||||||
|
mesh = SubResource("CapsuleMesh_qbkls")
|
||||||
|
|
||||||
|
[node name="Head" type="Node3D" parent="." unique_id=1111037465]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7, 0)
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="Head" unique_id=2013197953]
|
||||||
|
|
||||||
|
[node name="RayCast3D" type="RayCast3D" parent="Head/Camera3D" unique_id=176888250]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||||
|
target_position = Vector3(0, -2, 0)
|
||||||
|
collision_mask = 13
|
||||||
|
|
||||||
|
[node name="Hand" type="Marker3D" parent="Head/Camera3D" unique_id=1759533778]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2)
|
||||||
|
|
||||||
|
[node name="Crosshair" parent="." unique_id=577244800 instance=ExtResource("2_kpjcp")]
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cfheqck1xs2bs"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://diphc7baic3px" path="res://Scripts/Button.gd" id="1_2ptq0"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_1blfk"]
|
||||||
|
size = Vector3(0.6, 0.6, 0.2640503)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_1blfk"]
|
||||||
|
size = Vector3(0.6, 0.6, 0.2)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_va8t4"]
|
||||||
|
albedo_color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="CylinderMesh" id="CylinderMesh_1blfk"]
|
||||||
|
top_radius = 0.15
|
||||||
|
bottom_radius = 0.15
|
||||||
|
height = 0.1
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_476pq"]
|
||||||
|
albedo_color = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="SimpleButton" type="Node3D" unique_id=1810741910 node_paths=PackedStringArray("buttonMesh")]
|
||||||
|
script = ExtResource("1_2ptq0")
|
||||||
|
buttonMesh = NodePath("Mesh")
|
||||||
|
metadata/_custom_type_script = "uid://diphc7baic3px"
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="." unique_id=1106731310]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.12462454)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" unique_id=756448224]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.032025155)
|
||||||
|
shape = SubResource("BoxShape3D_1blfk")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D" unique_id=1694245576]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.99999994, 0, 0, 0, 0.99999994, 0, 0, 7.450581e-09)
|
||||||
|
mesh = SubResource("BoxMesh_1blfk")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_va8t4")
|
||||||
|
|
||||||
|
[node name="Mesh" type="MeshInstance3D" parent="." unique_id=1579829234]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.3711385e-08, -0.99999994, 0, 0.99999994, -4.3711385e-08, 0, 0, 0)
|
||||||
|
mesh = SubResource("CylinderMesh_1blfk")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_476pq")
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
[gd_scene format=3 uid="uid://dknge5384ijcx"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://b143brnl7gf4f" path="res://Scripts/Pickupable.gd" id="1_rsor3"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_1blfk"]
|
||||||
|
size = Vector3(0.1, 0.1, 0.2)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_va8t4"]
|
||||||
|
size = Vector3(0.1, 0.1, 0.3)
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w4i4f"]
|
||||||
|
albedo_color = Color(1, 1, 0, 1)
|
||||||
|
|
||||||
|
[node name="SimpleKey" type="Node3D" unique_id=650555678 node_paths=PackedStringArray("body", "snapAnchor")]
|
||||||
|
script = ExtResource("1_rsor3")
|
||||||
|
body = NodePath("RigidBody3D")
|
||||||
|
snapAnchor = NodePath("SnapAnchor")
|
||||||
|
metadata/_custom_type_script = "uid://b143brnl7gf4f"
|
||||||
|
|
||||||
|
[node name="RigidBody3D" type="RigidBody3D" parent="." unique_id=1946674219]
|
||||||
|
collision_layer = 9
|
||||||
|
collision_mask = 13
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D" unique_id=1252834786]
|
||||||
|
shape = SubResource("BoxShape3D_1blfk")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D" unique_id=2082673006]
|
||||||
|
mesh = SubResource("BoxMesh_va8t4")
|
||||||
|
surface_material_override/0 = SubResource("StandardMaterial3D_w4i4f")
|
||||||
|
|
||||||
|
[node name="SnapAnchor" type="Marker3D" parent="." unique_id=389082687]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.15)
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
[gd_scene format=3 uid="uid://b0fqh430x23kp"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://2vyt44um2tty" path="res://Scripts/Lever.gd" id="1_f25qh"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_476pq"]
|
||||||
|
size = Vector3(0.1, 0.1, 0.4)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_va8t4"]
|
||||||
|
size = Vector3(0.1, 0.1, 0.4)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_1blfk"]
|
||||||
|
size = Vector3(0.4, 0.6, 0.2)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_1blfk"]
|
||||||
|
size = Vector3(0.4, 0.6, 0.2)
|
||||||
|
|
||||||
|
[node name="SimpleLever" type="Node3D" unique_id=2031608942 node_paths=PackedStringArray("body", "hinge")]
|
||||||
|
script = ExtResource("1_f25qh")
|
||||||
|
body = NodePath("Lever")
|
||||||
|
hinge = NodePath("HingeJoint3D")
|
||||||
|
metadata/_custom_type_script = "uid://2vyt44um2tty"
|
||||||
|
|
||||||
|
[node name="Lever" type="RigidBody3D" parent="." unique_id=1993131115]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.35175258)
|
||||||
|
collision_mask = 0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Lever" unique_id=2040680943]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.15)
|
||||||
|
shape = SubResource("BoxShape3D_476pq")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Lever" unique_id=252238333]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.15)
|
||||||
|
mesh = SubResource("BoxMesh_va8t4")
|
||||||
|
|
||||||
|
[node name="Base" type="StaticBody3D" parent="." unique_id=824081649]
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Base" unique_id=703826231]
|
||||||
|
mesh = SubResource("BoxMesh_1blfk")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Base" unique_id=954919913]
|
||||||
|
shape = SubResource("BoxShape3D_1blfk")
|
||||||
|
|
||||||
|
[node name="HingeJoint3D" type="HingeJoint3D" parent="." unique_id=1859101471]
|
||||||
|
transform = Transform3D(-0.029536895, 0.001207204, -0.99956304, 0.18270016, -0.9831466, -0.0065861586, -0.98272485, -0.18281487, 0.02881853, 0, 0, -0.05022694)
|
||||||
|
node_a = NodePath("../Base")
|
||||||
|
node_b = NodePath("../Lever")
|
||||||
|
angular_limit/enable = true
|
||||||
|
angular_limit/upper = 0.7853982
|
||||||
|
angular_limit/lower = -0.7853982
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cjqsmugd22cdh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://b143brnl7gf4f" path="res://Scripts/Pickupable.gd" id="1_kaux8"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_1blfk"]
|
||||||
|
size = Vector3(2, 0.1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_va8t4"]
|
||||||
|
size = Vector3(2, 0.1, 1)
|
||||||
|
|
||||||
|
[node name="SimplePickupable" type="Node3D" unique_id=650555678 node_paths=PackedStringArray("body")]
|
||||||
|
script = ExtResource("1_kaux8")
|
||||||
|
body = NodePath("RigidBody3D")
|
||||||
|
metadata/_custom_type_script = "uid://b143brnl7gf4f"
|
||||||
|
|
||||||
|
[node name="RigidBody3D" type="RigidBody3D" parent="." unique_id=1946674219]
|
||||||
|
collision_layer = 9
|
||||||
|
collision_mask = 13
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D" unique_id=1252834786]
|
||||||
|
shape = SubResource("BoxShape3D_1blfk")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D" unique_id=2082673006]
|
||||||
|
mesh = SubResource("BoxMesh_va8t4")
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cjqsmugd22cdh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://b143brnl7gf4f" path="res://Scripts/Pickupable.gd" id="1_kaux8"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_1blfk"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_va8t4"]
|
||||||
|
|
||||||
|
[node name="SimplePickupable" type="Node3D" unique_id=650555678 node_paths=PackedStringArray("body")]
|
||||||
|
script = ExtResource("1_kaux8")
|
||||||
|
body = NodePath("RigidBody3D")
|
||||||
|
springStrength = null
|
||||||
|
springDamping = null
|
||||||
|
rotateStrength = null
|
||||||
|
rotateDamping = null
|
||||||
|
maxDistance = null
|
||||||
|
metadata/_custom_type_script = "uid://b143brnl7gf4f"
|
||||||
|
|
||||||
|
[node name="RigidBody3D" type="RigidBody3D" parent="." unique_id=1946674219]
|
||||||
|
collision_layer = 8
|
||||||
|
collision_mask = 5
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D" unique_id=1252834786]
|
||||||
|
shape = SubResource("BoxShape3D_1blfk")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D" unique_id=2082673006]
|
||||||
|
mesh = SubResource("BoxMesh_va8t4")
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cjqsmugd22cdh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://b143brnl7gf4f" path="res://Scripts/Pickupable.gd" id="1_kaux8"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_1blfk"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_va8t4"]
|
||||||
|
|
||||||
|
[node name="SimplePickupable" type="Node3D" unique_id=650555678 node_paths=PackedStringArray("body")]
|
||||||
|
script = ExtResource("1_kaux8")
|
||||||
|
body = NodePath("RigidBody3D")
|
||||||
|
metadata/_custom_type_script = "uid://b143brnl7gf4f"
|
||||||
|
|
||||||
|
[node name="RigidBody3D" type="RigidBody3D" parent="." unique_id=1946674219]
|
||||||
|
collision_layer = 8
|
||||||
|
collision_mask = 5
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D" unique_id=1252834786]
|
||||||
|
shape = SubResource("BoxShape3D_1blfk")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D" unique_id=2082673006]
|
||||||
|
mesh = SubResource("BoxMesh_va8t4")
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cjqsmugd22cdh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://b143brnl7gf4f" path="res://Scripts/Pickupable.gd" id="1_kaux8"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_1blfk"]
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_va8t4"]
|
||||||
|
|
||||||
|
[node name="SimplePickupable" type="Node3D" unique_id=650555678 node_paths=PackedStringArray("body")]
|
||||||
|
script = ExtResource("1_kaux8")
|
||||||
|
body = NodePath("RigidBody3D")
|
||||||
|
metadata/_custom_type_script = "uid://b143brnl7gf4f"
|
||||||
|
|
||||||
|
[node name="RigidBody3D" type="RigidBody3D" parent="." unique_id=1946674219]
|
||||||
|
collision_layer = 8
|
||||||
|
collision_mask = 5
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D" unique_id=1252834786]
|
||||||
|
shape = SubResource("BoxShape3D_1blfk")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D" unique_id=2082673006]
|
||||||
|
mesh = SubResource("BoxMesh_va8t4")
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
[gd_scene format=3 uid="uid://cyn6cmirqiiya"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://d07hgc6eewoup" path="res://Scripts/SpatialAudioPlayer.gd" id="1_g20va"]
|
||||||
|
|
||||||
|
[node name="SpatialAudioPlayer" type="AudioStreamPlayer3D" unique_id=708850804]
|
||||||
|
script = ExtResource("1_g20va")
|
||||||
|
|
||||||
|
[node name="RayCastDown" type="RayCast3D" parent="." unique_id=1303526792]
|
||||||
|
target_position = Vector3(0, -100, 0)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastLeft" type="RayCast3D" parent="." unique_id=1754784517]
|
||||||
|
target_position = Vector3(100, 0, 0)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastRight" type="RayCast3D" parent="." unique_id=1209057136]
|
||||||
|
target_position = Vector3(-100, 0, 0)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastForward" type="RayCast3D" parent="." unique_id=1455084224]
|
||||||
|
target_position = Vector3(0, 0, 100)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastForwardLeft" type="RayCast3D" parent="." unique_id=2054830461]
|
||||||
|
transform = Transform3D(0.70710677, 0, 0.70710677, 0, 1, 0, -0.70710677, 0, 0.70710677, 0, 0, 0)
|
||||||
|
target_position = Vector3(0, 0, 100)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastForwardRight" type="RayCast3D" parent="." unique_id=885518827]
|
||||||
|
transform = Transform3D(0.7071067, 0, -0.7071067, 0, 1, 0, 0.7071067, 0, 0.7071067, 0, 0, 0)
|
||||||
|
target_position = Vector3(0, 0, 100)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastBackwardRight" type="RayCast3D" parent="." unique_id=1491942105]
|
||||||
|
transform = Transform3D(0.70710677, 0, 0.70710677, 0, 1, 0, -0.70710677, 0, 0.70710677, 0, 0, 0)
|
||||||
|
target_position = Vector3(0, 0, -100)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastBackwardLeft" type="RayCast3D" parent="." unique_id=1082500589]
|
||||||
|
transform = Transform3D(0.70710677, 0, -0.70710677, 0, 1, 0, 0.70710677, 0, 0.70710677, 0, 0, 0)
|
||||||
|
target_position = Vector3(0, 0, -100)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastBackward" type="RayCast3D" parent="." unique_id=441456695]
|
||||||
|
target_position = Vector3(0, 0, -100)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastUp" type="RayCast3D" parent="." unique_id=956781195]
|
||||||
|
target_position = Vector3(0, 100, 0)
|
||||||
|
collision_mask = 16
|
||||||
|
|
||||||
|
[node name="RayCastPlayer" type="RayCast3D" parent="." unique_id=1933512558]
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
extends Interactable
|
||||||
|
class_name Button3D
|
||||||
|
|
||||||
|
signal pressed(button: Button3D)
|
||||||
|
signal held(button: Button3D)
|
||||||
|
signal released(button: Button3D)
|
||||||
|
|
||||||
|
@export var pressDepth: float = 0.05
|
||||||
|
@export var pressSpeed: float = 10.0
|
||||||
|
@export var autoReset: bool = true
|
||||||
|
@export var buttonMesh: MeshInstance3D
|
||||||
|
@export var holdMode: bool = false
|
||||||
|
@export var pressArea: Area3D
|
||||||
|
|
||||||
|
var isPressed: bool = false
|
||||||
|
var offset: float = 0.0
|
||||||
|
var pressing_body: Node3D = null
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
if pressArea:
|
||||||
|
pressArea.monitoring = true
|
||||||
|
pressArea.monitorable = true
|
||||||
|
|
||||||
|
func beginInteract(player, hitPosition: Vector3):
|
||||||
|
if holdMode:
|
||||||
|
isPressed = true
|
||||||
|
offset = pressDepth
|
||||||
|
emit_signal("pressed", self)
|
||||||
|
else:
|
||||||
|
if isPressed:
|
||||||
|
return
|
||||||
|
isPressed = true
|
||||||
|
offset = pressDepth
|
||||||
|
emit_signal("pressed", self)
|
||||||
|
|
||||||
|
func updateInteract(player):
|
||||||
|
if holdMode and isPressed:
|
||||||
|
emit_signal("held", self)
|
||||||
|
|
||||||
|
func endInteract(player):
|
||||||
|
if holdMode:
|
||||||
|
isPressed = false
|
||||||
|
offset = 0.0
|
||||||
|
emit_signal("released", self)
|
||||||
|
else:
|
||||||
|
if autoReset:
|
||||||
|
offset = 0.0
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
var target = offset
|
||||||
|
var current = buttonMesh.position.z
|
||||||
|
var newZ = lerp(current, -target, delta * pressSpeed)
|
||||||
|
buttonMesh.position.z = newZ
|
||||||
|
|
||||||
|
if autoReset and isPressed and abs(newZ) < 0.001:
|
||||||
|
isPressed = false
|
||||||
|
|
||||||
|
#func _physics_process(delta):
|
||||||
|
## Detect rigidbody overlap
|
||||||
|
#var bodies = pressArea.get_overlapping_bodies()
|
||||||
|
#
|
||||||
|
#if bodies.size() > 0:
|
||||||
|
#var body = bodies[0]
|
||||||
|
#
|
||||||
|
#if pressing_body == null:
|
||||||
|
#pressing_body = body
|
||||||
|
#isPressed = true
|
||||||
|
#offset = pressDepth
|
||||||
|
#emit_signal("pressed", self)
|
||||||
|
#else:
|
||||||
|
#if holdMode:
|
||||||
|
#emit_signal("held", self)
|
||||||
|
#else:
|
||||||
|
#if pressing_body != null:
|
||||||
|
#pressing_body = null
|
||||||
|
#if autoReset:
|
||||||
|
#offset = 0.0
|
||||||
|
#isPressed = false
|
||||||
|
#emit_signal("released", self)
|
||||||
|
#
|
||||||
|
## Animate button
|
||||||
|
#var target = offset
|
||||||
|
#var current = buttonMesh.position.z
|
||||||
|
#var newZ = lerp(current, -target, delta * pressSpeed)
|
||||||
|
#buttonMesh.position.z = newZ
|
||||||
|
#
|
||||||
|
#if autoReset and isPressed and abs(newZ) < 0.001:
|
||||||
|
#isPressed = false
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://diphc7baic3px
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
extends CanvasLayer
|
||||||
|
class_name Crosshair
|
||||||
|
|
||||||
|
@export var normalTexture: Texture2D
|
||||||
|
@export var hoverTexture: Texture2D
|
||||||
|
|
||||||
|
@onready var normal = $NormalCrosshair
|
||||||
|
@onready var hover = $HoverCrosshair
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
normal.texture = normalTexture
|
||||||
|
hover.texture = hoverTexture
|
||||||
|
hover.visible = false
|
||||||
|
|
||||||
|
func setHover(active: bool):
|
||||||
|
normal.visible = !active
|
||||||
|
hover.visible = active
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://dd8ys8xg3q3sw
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
extends Interactable
|
||||||
|
class_name Door
|
||||||
|
|
||||||
|
@export var body: RigidBody3D
|
||||||
|
@export var springStrength: float = 200.0
|
||||||
|
@export var springDamping: float= 50.0
|
||||||
|
@export var maxGrabDistance: float = 6.0
|
||||||
|
@export var mouseForce: float = 0.02
|
||||||
|
|
||||||
|
@export var hinge: HingeJoint3D
|
||||||
|
@export var hingeAngularUpperLimit: float = 120
|
||||||
|
@export var hingeAngularLowerLimit: float = -120
|
||||||
|
|
||||||
|
@export var snapAngleThreshold: float = 1
|
||||||
|
@export var snapVelocityThreshold: float = 5.0
|
||||||
|
|
||||||
|
@export var mouseHorizontalFactor: float = 1.0
|
||||||
|
@export var mouseVerticalFactor: float = 1.0
|
||||||
|
|
||||||
|
var dragging: bool = false
|
||||||
|
var grabLocal: Vector3 = Vector3.ZERO
|
||||||
|
var handOffset: Vector3 = Vector3.ZERO
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
hinge.set_param(HingeJoint3D.PARAM_LIMIT_LOWER, deg_to_rad(hingeAngularLowerLimit))
|
||||||
|
hinge.set_param(HingeJoint3D.PARAM_LIMIT_UPPER, deg_to_rad(hingeAngularUpperLimit))
|
||||||
|
|
||||||
|
func _physics_process(_delta):
|
||||||
|
if dragging:
|
||||||
|
return
|
||||||
|
|
||||||
|
var angle = get_hinge_angle()
|
||||||
|
var ang_vel = get_hinge_ang_vel()
|
||||||
|
|
||||||
|
if abs(rad_to_deg(angle)) > snapAngleThreshold:
|
||||||
|
return
|
||||||
|
|
||||||
|
if abs(ang_vel) > snapVelocityThreshold:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Strong damping near closed position
|
||||||
|
var damping = springDamping * 4.0
|
||||||
|
|
||||||
|
# PD controller torque toward angle 0
|
||||||
|
var torque = -angle * springStrength - ang_vel * damping
|
||||||
|
|
||||||
|
var axis = hinge.global_transform.basis.y
|
||||||
|
body.apply_torque(axis * torque)
|
||||||
|
|
||||||
|
func beginInteract(player, hitPosition: Vector3):
|
||||||
|
dragging = true
|
||||||
|
handOffset = Vector3.ZERO
|
||||||
|
grabLocal = body.to_local(hitPosition)
|
||||||
|
player.setMouseFactors(mouseHorizontalFactor, mouseVerticalFactor)
|
||||||
|
|
||||||
|
func updateInteract(player):
|
||||||
|
if !dragging:
|
||||||
|
return
|
||||||
|
|
||||||
|
var worldGrab = body.to_global(grabLocal)
|
||||||
|
|
||||||
|
handOffset += player.camera.global_basis.x * player.interactionMouseDelta.x * mouseForce
|
||||||
|
handOffset += -player.camera.global_basis.y * player.interactionMouseDelta.y * mouseForce
|
||||||
|
handOffset = handOffset.limit_length(0.3)
|
||||||
|
|
||||||
|
var targetHand = player.hand.global_position + handOffset
|
||||||
|
|
||||||
|
var error = targetHand - worldGrab
|
||||||
|
|
||||||
|
var handDistance = player.hand.global_position.distance_to(worldGrab)
|
||||||
|
if handDistance > maxGrabDistance:
|
||||||
|
player.stopInteraction()
|
||||||
|
return
|
||||||
|
|
||||||
|
var offset = worldGrab - body.global_position
|
||||||
|
|
||||||
|
var pointVelocity = body.linear_velocity + body.angular_velocity.cross(offset)
|
||||||
|
|
||||||
|
var hingeAxis = body.global_basis.y
|
||||||
|
|
||||||
|
var tangent = hingeAxis.cross(offset)
|
||||||
|
if tangent.length_squared() < 0.0001:
|
||||||
|
return
|
||||||
|
tangent = tangent.normalized()
|
||||||
|
|
||||||
|
var tangentError = tangent * error.dot(tangent)
|
||||||
|
var tangentVelocity = tangent * pointVelocity.dot(tangent)
|
||||||
|
|
||||||
|
var force = tangentError * springStrength - tangentVelocity * springDamping
|
||||||
|
|
||||||
|
body.apply_force(force, offset)
|
||||||
|
|
||||||
|
func endInteract(player):
|
||||||
|
dragging = false
|
||||||
|
handOffset = Vector3.ZERO
|
||||||
|
player.setMouseFactors(1.0, 1.0)
|
||||||
|
|
||||||
|
#func get_hinge_angle() -> float:
|
||||||
|
#var body_basis = body.global_transform.basis
|
||||||
|
#var hinge_basis = hinge.global_transform.basis
|
||||||
|
#
|
||||||
|
## Body forward vector in world space
|
||||||
|
#var forward = body_basis.z
|
||||||
|
#
|
||||||
|
## Convert forward vector into hinge local space
|
||||||
|
#var local_forward = hinge_basis.inverse() * forward
|
||||||
|
#
|
||||||
|
## Angle around hinge axis (Y)
|
||||||
|
#return atan2(local_forward.x, local_forward.z)
|
||||||
|
|
||||||
|
func get_hinge_angle() -> float:
|
||||||
|
var hinge_axis = hinge.global_transform.basis.y.normalized()
|
||||||
|
|
||||||
|
# Door forward direction
|
||||||
|
var fwd = body.global_transform.basis.z.normalized()
|
||||||
|
|
||||||
|
# Reference forward direction (door closed direction)
|
||||||
|
var ref = hinge.global_transform.basis.z.normalized()
|
||||||
|
|
||||||
|
# Remove hinge axis component (project onto hinge plane)
|
||||||
|
var fwd_proj = (fwd - hinge_axis * fwd.dot(hinge_axis)).normalized()
|
||||||
|
var ref_proj = (ref - hinge_axis * ref.dot(hinge_axis)).normalized()
|
||||||
|
|
||||||
|
# Signed angle
|
||||||
|
var angle = atan2(
|
||||||
|
hinge_axis.dot(ref_proj.cross(fwd_proj)),
|
||||||
|
ref_proj.dot(fwd_proj)
|
||||||
|
)
|
||||||
|
|
||||||
|
return angle
|
||||||
|
|
||||||
|
|
||||||
|
func get_hinge_ang_vel() -> float:
|
||||||
|
var axis = hinge.global_transform.basis.y.normalized()
|
||||||
|
return body.angular_velocity.dot(axis)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cyw8ng7alo12e
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
extends Node3D
|
||||||
|
|
||||||
|
class_name Interactable
|
||||||
|
|
||||||
|
static func find(node: Node) -> Interactable:
|
||||||
|
while node:
|
||||||
|
if node is Interactable:
|
||||||
|
return node
|
||||||
|
node = node.get_parent()
|
||||||
|
return null
|
||||||
|
|
||||||
|
func beginInteract(player, hitPosition: Vector3):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func updateInteract(player):
|
||||||
|
pass
|
||||||
|
|
||||||
|
func endInteract(player):
|
||||||
|
pass
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://boc1b3v02ssn5
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
extends Interactable
|
||||||
|
class_name Lever
|
||||||
|
|
||||||
|
@export var body: RigidBody3D
|
||||||
|
@export var hinge: HingeJoint3D
|
||||||
|
|
||||||
|
@export var angleOn: float = -45.0
|
||||||
|
@export var angleOff: float = 0.0
|
||||||
|
|
||||||
|
@export var snapStrength: float = 200.0
|
||||||
|
@export var maxGrabDistance: float = 4.0
|
||||||
|
@export var mouseForce: float = 0.015
|
||||||
|
|
||||||
|
var dragging := false
|
||||||
|
var grabLocal := Vector3.ZERO
|
||||||
|
var handOffset := Vector3.ZERO
|
||||||
|
var targetAngle := 0.0
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
hinge.set_param(HingeJoint3D.PARAM_LIMIT_LOWER, deg_to_rad(angleOn))
|
||||||
|
hinge.set_param(HingeJoint3D.PARAM_LIMIT_UPPER, deg_to_rad(angleOff))
|
||||||
|
targetAngle = angleOff
|
||||||
|
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
if dragging:
|
||||||
|
return
|
||||||
|
|
||||||
|
var angle = rad_to_deg(get_hinge_angle())
|
||||||
|
|
||||||
|
# Snap to nearest end
|
||||||
|
var mid = (angleOn + angleOff) * 0.5
|
||||||
|
if angle < mid:
|
||||||
|
targetAngle = angleOn
|
||||||
|
else:
|
||||||
|
targetAngle = angleOff
|
||||||
|
|
||||||
|
var angleError = deg_to_rad(targetAngle) - get_hinge_angle()
|
||||||
|
|
||||||
|
# HARD SNAP — no spring
|
||||||
|
var axis = hinge.global_transform.basis.x
|
||||||
|
var torque = snapStrength * sign(angleError)
|
||||||
|
|
||||||
|
body.apply_torque(axis * torque)
|
||||||
|
|
||||||
|
|
||||||
|
func beginInteract(player, hitPosition: Vector3):
|
||||||
|
dragging = true
|
||||||
|
handOffset = Vector3.ZERO
|
||||||
|
grabLocal = body.to_local(hitPosition)
|
||||||
|
|
||||||
|
|
||||||
|
func updateInteract(player):
|
||||||
|
if !dragging:
|
||||||
|
return
|
||||||
|
|
||||||
|
var worldGrab = body.to_global(grabLocal)
|
||||||
|
|
||||||
|
# Only vertical mouse movement (Y)
|
||||||
|
handOffset += -player.camera.global_basis.y * player.interactionMouseDelta.y * mouseForce
|
||||||
|
handOffset = handOffset.limit_length(0.25)
|
||||||
|
|
||||||
|
var targetHand = player.hand.global_position + handOffset
|
||||||
|
var error = targetHand - worldGrab
|
||||||
|
|
||||||
|
var handDistance = player.hand.global_position.distance_to(worldGrab)
|
||||||
|
if handDistance > maxGrabDistance:
|
||||||
|
endInteract(player)
|
||||||
|
player.dragging = false
|
||||||
|
return
|
||||||
|
|
||||||
|
var offset = worldGrab - body.global_position
|
||||||
|
var pointVelocity = body.linear_velocity + body.angular_velocity.cross(offset)
|
||||||
|
|
||||||
|
# Correct hinge axis (X)
|
||||||
|
var hingeAxis = body.global_basis.x
|
||||||
|
var tangent = hingeAxis.cross(offset)
|
||||||
|
if tangent.length_squared() < 0.0001:
|
||||||
|
return
|
||||||
|
tangent = tangent.normalized()
|
||||||
|
|
||||||
|
var tangentError = tangent * error.dot(tangent)
|
||||||
|
var tangentVelocity = tangent * pointVelocity.dot(tangent)
|
||||||
|
|
||||||
|
var force = tangentError * snapStrength
|
||||||
|
body.apply_force(force, offset)
|
||||||
|
|
||||||
|
|
||||||
|
func endInteract(player):
|
||||||
|
dragging = false
|
||||||
|
handOffset = Vector3.ZERO
|
||||||
|
|
||||||
|
|
||||||
|
func get_hinge_angle() -> float:
|
||||||
|
var body_basis = body.global_transform.basis
|
||||||
|
var hinge_basis = hinge.global_transform.basis
|
||||||
|
|
||||||
|
# X-axis rotation → use UP vector
|
||||||
|
var up = body_basis.y
|
||||||
|
var local_up = hinge_basis.inverse() * up
|
||||||
|
|
||||||
|
return atan2(local_up.z, local_up.y)
|
||||||
|
|
||||||
|
|
||||||
|
func get_hinge_ang_vel() -> float:
|
||||||
|
var axis = hinge.global_transform.basis.x
|
||||||
|
return body.angular_velocity.dot(axis)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://2vyt44um2tty
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
extends Interactable
|
||||||
|
class_name Pickupable
|
||||||
|
|
||||||
|
@export var springStrength: float = 150.0
|
||||||
|
@export var springDamping: float = 50.0
|
||||||
|
|
||||||
|
@export var rotateStrength: float = 5.0
|
||||||
|
@export var rotateDamping: float = 5.0
|
||||||
|
|
||||||
|
@export var throwForce: float = 10.0
|
||||||
|
@export var maxDistance: float = 4.0
|
||||||
|
@export var body: RigidBody3D
|
||||||
|
@export var snapAnchor: Marker3D
|
||||||
|
|
||||||
|
@export_range(0.01, 1000.0, 0.01) var bodyMass: float = 1.0
|
||||||
|
|
||||||
|
var dragging: bool = false
|
||||||
|
var rotating: bool = false
|
||||||
|
var playerRef
|
||||||
|
|
||||||
|
var grabLocal: Vector3
|
||||||
|
var holdDistance: float
|
||||||
|
var rotationOffset: Basis
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
if body:
|
||||||
|
body.mass = bodyMass
|
||||||
|
|
||||||
|
func beginInteract(player, hitPosition: Vector3):
|
||||||
|
playerRef = player
|
||||||
|
dragging = true
|
||||||
|
|
||||||
|
grabLocal = body.to_local(hitPosition)
|
||||||
|
var holdPoint = player.hand
|
||||||
|
holdDistance = holdPoint.global_position.distance_to(hitPosition)
|
||||||
|
rotationOffset = holdPoint.global_basis.inverse() * body.global_basis
|
||||||
|
|
||||||
|
func updateInteract(player):
|
||||||
|
if !dragging:
|
||||||
|
return
|
||||||
|
|
||||||
|
# Toggle rotation mode
|
||||||
|
if Input.is_action_just_pressed("rotate"):
|
||||||
|
rotating = true
|
||||||
|
playerRef.setMouseFactors(0.0, 0.0)
|
||||||
|
|
||||||
|
if Input.is_action_just_released("rotate"):
|
||||||
|
rotating = false
|
||||||
|
playerRef.setMouseFactors(1.0, 1.0)
|
||||||
|
|
||||||
|
var holdPoint = player.hand
|
||||||
|
|
||||||
|
# Release if too far away
|
||||||
|
if body.global_position.distance_to(player.global_position) > maxDistance:
|
||||||
|
endInteract(player)
|
||||||
|
return
|
||||||
|
|
||||||
|
# Target position
|
||||||
|
var targetPosition = holdPoint.global_position + (-holdPoint.global_basis.z * holdDistance)
|
||||||
|
var offset = targetPosition - body.global_position
|
||||||
|
|
||||||
|
# Linear spring
|
||||||
|
body.apply_force(offset * springStrength - body.linear_velocity * springDamping, body.to_global(grabLocal) - body.global_position)
|
||||||
|
|
||||||
|
if rotating:
|
||||||
|
var delta = player.interactionMouseDelta
|
||||||
|
|
||||||
|
rotationOffset = Basis(Vector3.UP, deg_to_rad(-delta.x * 0.35)) * rotationOffset
|
||||||
|
rotationOffset = Basis(Vector3.RIGHT, deg_to_rad(delta.y * 0.35)) * rotationOffset
|
||||||
|
|
||||||
|
# Angular spring
|
||||||
|
var targetBasis = holdPoint.global_basis * rotationOffset
|
||||||
|
|
||||||
|
var currentQuat = body.global_basis.get_rotation_quaternion()
|
||||||
|
var targetQuat = targetBasis.get_rotation_quaternion()
|
||||||
|
var diff = targetQuat * currentQuat.inverse()
|
||||||
|
|
||||||
|
if diff.dot(Quaternion.IDENTITY) < 0:
|
||||||
|
diff = -diff
|
||||||
|
|
||||||
|
var angle = diff.get_angle()
|
||||||
|
|
||||||
|
if angle > 0.001:
|
||||||
|
body.apply_torque(diff.get_axis() * angle * rotateStrength - body.angular_velocity * rotateDamping)
|
||||||
|
|
||||||
|
func endInteract(player):
|
||||||
|
dragging = false
|
||||||
|
rotating = false
|
||||||
|
player.setMouseFactors(1.0, 1.0)
|
||||||
|
playerRef = null
|
||||||
|
|
||||||
|
func throw():
|
||||||
|
if !dragging:
|
||||||
|
return
|
||||||
|
|
||||||
|
var direction = -playerRef.camera.global_basis.z
|
||||||
|
body.apply_impulse(direction * throwForce)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://b143brnl7gf4f
|
||||||
@@ -0,0 +1,143 @@
|
|||||||
|
extends CharacterBody3D
|
||||||
|
|
||||||
|
@export var speed: float = 6.0
|
||||||
|
@export var jumpVelocity: float = 5.0
|
||||||
|
@export var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity") as float
|
||||||
|
|
||||||
|
@export var acceleration: float = 20.0
|
||||||
|
@export var airAcceleration: float = 4.0
|
||||||
|
@export var friction: float = 10.0
|
||||||
|
|
||||||
|
var mouseBaseSensitivity: float = 0.004
|
||||||
|
var mouseSensitivity: float = 0.0
|
||||||
|
@export var mouseSensitivityMultiplier: float = 0.2
|
||||||
|
|
||||||
|
@export var head: Node3D
|
||||||
|
@export var camera: Camera3D
|
||||||
|
@export var raycast: RayCast3D
|
||||||
|
@export var hand: Marker3D
|
||||||
|
@export var crosshair: CanvasLayer
|
||||||
|
|
||||||
|
var lateJumpTime: float = 0.15
|
||||||
|
var lateJumpTimer: float = 0.0
|
||||||
|
|
||||||
|
var currentInteractable: Interactable
|
||||||
|
var dragging: bool = false
|
||||||
|
|
||||||
|
var pitch: float = 0.0
|
||||||
|
|
||||||
|
var playerId: String
|
||||||
|
var displayName: String
|
||||||
|
|
||||||
|
var mouseDelta: Vector2 = Vector2.ZERO
|
||||||
|
var interactionMouseDelta: Vector2 = Vector2.ZERO
|
||||||
|
|
||||||
|
var mouseHorizontalFactor: float = 1.0
|
||||||
|
var mouseVerticalFactor: float = 1.0
|
||||||
|
|
||||||
|
var targetMouseHorizontalFactor: float = 1.0
|
||||||
|
var targetMouseVerticalFactor: float = 1.0
|
||||||
|
@export var mouseFactorLerpSpeed: float = 2.0
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
mouseSensitivity = mouseBaseSensitivity * mouseSensitivityMultiplier
|
||||||
|
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||||
|
|
||||||
|
func _input(event: InputEvent) -> void:
|
||||||
|
if event.is_action_pressed("ui_cancel"):
|
||||||
|
if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
|
||||||
|
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||||
|
else:
|
||||||
|
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||||
|
|
||||||
|
func _unhandled_input(event: InputEvent) -> void:
|
||||||
|
if Input.mouse_mode != Input.MOUSE_MODE_CAPTURED:
|
||||||
|
return
|
||||||
|
|
||||||
|
if event is InputEventMouseMotion:
|
||||||
|
if dragging and currentInteractable:
|
||||||
|
interactionMouseDelta += event.relative
|
||||||
|
mouseDelta += event.relative
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
mouseHorizontalFactor = lerp(mouseHorizontalFactor, targetMouseHorizontalFactor, delta * mouseFactorLerpSpeed)
|
||||||
|
mouseVerticalFactor = lerp(mouseVerticalFactor, targetMouseVerticalFactor, delta * mouseFactorLerpSpeed)
|
||||||
|
|
||||||
|
if mouseDelta != Vector2.ZERO:
|
||||||
|
rotate_y(-mouseDelta.x * mouseSensitivity * mouseHorizontalFactor)
|
||||||
|
|
||||||
|
pitch -= mouseDelta.y * mouseSensitivity * mouseVerticalFactor
|
||||||
|
pitch = clamp(pitch, deg_to_rad(-90), deg_to_rad(90))
|
||||||
|
head.rotation.x = pitch
|
||||||
|
|
||||||
|
mouseDelta = Vector2.ZERO
|
||||||
|
|
||||||
|
if !is_on_floor():
|
||||||
|
velocity.y -= gravity * delta
|
||||||
|
lateJumpTimer -= delta
|
||||||
|
else:
|
||||||
|
lateJumpTimer = lateJumpTime
|
||||||
|
|
||||||
|
# Interaction search
|
||||||
|
if !dragging:
|
||||||
|
if raycast.is_colliding():
|
||||||
|
currentInteractable = Interactable.find(raycast.get_collider())
|
||||||
|
crosshair.setHover(true)
|
||||||
|
else:
|
||||||
|
currentInteractable = null
|
||||||
|
crosshair.setHover(false)
|
||||||
|
|
||||||
|
# Start interaction
|
||||||
|
if !dragging and currentInteractable:
|
||||||
|
if Input.is_action_just_pressed("interact"):
|
||||||
|
dragging = true
|
||||||
|
currentInteractable.beginInteract(self, raycast.get_collision_point())
|
||||||
|
|
||||||
|
# Update interaction
|
||||||
|
if dragging and currentInteractable:
|
||||||
|
if Input.is_action_just_pressed("throw"):
|
||||||
|
if currentInteractable is Pickupable:
|
||||||
|
currentInteractable.throw()
|
||||||
|
stopInteraction()
|
||||||
|
return
|
||||||
|
|
||||||
|
currentInteractable.updateInteract(self)
|
||||||
|
interactionMouseDelta = Vector2.ZERO
|
||||||
|
|
||||||
|
# End interaction
|
||||||
|
if dragging and currentInteractable:
|
||||||
|
if Input.is_action_just_released("interact"):
|
||||||
|
stopInteraction()
|
||||||
|
|
||||||
|
# Late jump buffering
|
||||||
|
if Input.is_action_just_pressed("jump") and lateJumpTimer > 0.0:
|
||||||
|
velocity.y = jumpVelocity
|
||||||
|
|
||||||
|
# Movement
|
||||||
|
var inputDir := Input.get_vector("left", "right", "forward", "backward")
|
||||||
|
var direction := (transform.basis * Vector3(inputDir.x, 0, inputDir.y)).normalized()
|
||||||
|
|
||||||
|
if is_on_floor():
|
||||||
|
if direction != Vector3.ZERO:
|
||||||
|
velocity.x = direction.x * speed
|
||||||
|
velocity.z = direction.z * speed
|
||||||
|
else:
|
||||||
|
velocity.x = lerp(velocity.x, 0.0, delta * friction)
|
||||||
|
velocity.z = lerp(velocity.z, 0.0, delta * friction)
|
||||||
|
else:
|
||||||
|
velocity.x = lerp(velocity.x, direction.x * speed, delta * airAcceleration)
|
||||||
|
velocity.z = lerp(velocity.z, direction.z * speed, delta * airAcceleration)
|
||||||
|
|
||||||
|
move_and_slide()
|
||||||
|
|
||||||
|
func setMouseFactors(horizontal: float, vertical: float):
|
||||||
|
targetMouseHorizontalFactor = clamp(horizontal, 0.0, 1.0)
|
||||||
|
targetMouseVerticalFactor = clamp(vertical, 0.0, 1.0)
|
||||||
|
|
||||||
|
func stopInteraction():
|
||||||
|
if currentInteractable:
|
||||||
|
currentInteractable.endInteract(self)
|
||||||
|
|
||||||
|
currentInteractable = null
|
||||||
|
dragging = false
|
||||||
|
interactionMouseDelta = Vector2.ZERO
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://c1r1jpfh3vsn2
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
class_name Socket
|
||||||
|
extends Node3D
|
||||||
|
|
||||||
|
@export var snapPoint: Marker3D
|
||||||
|
@export var snapDistance: float = 0.5
|
||||||
|
@export var lockOnSnap: bool = true
|
||||||
|
|
||||||
|
var candidate: Pickupable = null
|
||||||
|
var snappedObject: Pickupable = null
|
||||||
|
|
||||||
|
func is_in_range(object: Pickupable) -> bool:
|
||||||
|
if object == null:
|
||||||
|
return false
|
||||||
|
|
||||||
|
if object.snapAnchor == null:
|
||||||
|
return false
|
||||||
|
|
||||||
|
var distance := object.snapAnchor.global_position.distance_to(
|
||||||
|
snapPoint.global_position
|
||||||
|
)
|
||||||
|
|
||||||
|
return distance <= snapDistance
|
||||||
|
|
||||||
|
func getSnapTransform(object: Pickupable) -> Transform3D:
|
||||||
|
var objectTransform := object.body.global_transform
|
||||||
|
var anchorTransform := object.snapAnchor.global_transform
|
||||||
|
|
||||||
|
# Where is the SnapAnchor relative to the Rigidbody?
|
||||||
|
var anchorOffset := objectTransform.affine_inverse() * anchorTransform
|
||||||
|
|
||||||
|
# We want the SnapAnchor to have exactly the same
|
||||||
|
# transform as the Socket's SnapPoint.
|
||||||
|
return snapPoint.global_transform * anchorOffset.affine_inverse()
|
||||||
|
|
||||||
|
func snapObject(object: Pickupable):
|
||||||
|
if not is_in_range(object):
|
||||||
|
return
|
||||||
|
|
||||||
|
var targetTransform := getSnapTransform(object)
|
||||||
|
|
||||||
|
var body := object.body
|
||||||
|
|
||||||
|
body.linear_velocity = Vector3.ZERO
|
||||||
|
body.angular_velocity = Vector3.ZERO
|
||||||
|
|
||||||
|
body.global_transform = targetTransform
|
||||||
|
|
||||||
|
if lockOnSnap:
|
||||||
|
body.freeze = true
|
||||||
|
|
||||||
|
snappedObject = object
|
||||||
|
candidate = null
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://xd03vepkva1l
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
extends AudioStreamPlayer3D
|
||||||
|
class_name SpatialAudioPlayer
|
||||||
|
|
||||||
|
@export var maxRaycastDistance: float = 30.0
|
||||||
|
@export var updateFrequencySeconds: float = 0.5
|
||||||
|
@export var maxReverbWetness: float = 0.5
|
||||||
|
@export var wallLowpassCutoffAmount: int = 600
|
||||||
|
|
||||||
|
var raycastArray: Array = []
|
||||||
|
var distanceArray: Array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||||
|
var lastUpdateTime: float = 0.0
|
||||||
|
var updateDistances: bool = true
|
||||||
|
var currentRaycastIndex: int = 0
|
||||||
|
|
||||||
|
var audioBusIndex = null
|
||||||
|
var audioBusName: String = ""
|
||||||
|
|
||||||
|
var reverbEffect: AudioEffectReverb
|
||||||
|
var lowpassFilterEffect: AudioEffectLowPassFilter
|
||||||
|
|
||||||
|
var targetLowpassCutoff: float = 20000
|
||||||
|
var targetReverbRoomSize: float = 0.0
|
||||||
|
var targetReverbWetness: float = 0.0
|
||||||
|
var targetVolumeDb: float = 0.0
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
audioBusIndex = AudioServer.bus_count
|
||||||
|
audioBusName = "SpatialBus#"+str(audioBusIndex)
|
||||||
|
AudioServer.add_bus(audioBusIndex)
|
||||||
|
AudioServer.set_bus_name(audioBusIndex, audioBusName)
|
||||||
|
AudioServer.set_bus_send(audioBusIndex, bus)
|
||||||
|
self.bus = audioBusName
|
||||||
|
|
||||||
|
AudioServer.add_bus_effect(audioBusIndex, AudioEffectReverb.new(), 0)
|
||||||
|
reverbEffect = AudioServer.get_bus_effect(audioBusIndex, 0)
|
||||||
|
AudioServer.add_bus_effect(audioBusIndex, AudioEffectLowPassFilter.new(), 1)
|
||||||
|
lowpassFilterEffect = AudioServer.get_bus_effect(audioBusIndex, 1)
|
||||||
|
|
||||||
|
targetVolumeDb = volume_db
|
||||||
|
volume_db = -60
|
||||||
|
|
||||||
|
$RayCastDown.target_position = Vector3(0, -maxRaycastDistance, 0)
|
||||||
|
$RayCastLeft.target_position = Vector3(maxRaycastDistance, 0, 0)
|
||||||
|
$RayCastRight.target_position = Vector3(-maxRaycastDistance, 0, 0)
|
||||||
|
$RayCastForward.target_position = Vector3(0, 0, maxRaycastDistance)
|
||||||
|
$RayCastForwardLeft.target_position = Vector3(0, 0, maxRaycastDistance)
|
||||||
|
$RayCastForwardRight.target_position = Vector3(0, 0, maxRaycastDistance)
|
||||||
|
$RayCastBackwardRight.target_position = Vector3(0, 0, -maxRaycastDistance)
|
||||||
|
$RayCastBackwardLeft.target_position = Vector3(0, 0, -maxRaycastDistance)
|
||||||
|
$RayCastBackward.target_position = Vector3(0, 0, -maxRaycastDistance)
|
||||||
|
$RayCastUp.target_position = Vector3(0, maxRaycastDistance, 0)
|
||||||
|
|
||||||
|
raycastArray.append($RayCastDown)
|
||||||
|
raycastArray.append($RayCastLeft)
|
||||||
|
raycastArray.append($RayCastRight)
|
||||||
|
raycastArray.append($RayCastForward)
|
||||||
|
raycastArray.append($RayCastForwardLeft)
|
||||||
|
raycastArray.append($RayCastForwardRight)
|
||||||
|
raycastArray.append($RayCastBackwardRight)
|
||||||
|
raycastArray.append($RayCastBackwardLeft)
|
||||||
|
raycastArray.append($RayCastBackward)
|
||||||
|
raycastArray.append($RayCastUp)
|
||||||
|
|
||||||
|
play()
|
||||||
|
|
||||||
|
func onUpdateRaycastDistance(raycast: RayCast3D, raycastIndex: int) -> void:
|
||||||
|
raycast.force_raycast_update()
|
||||||
|
var collider = raycast.get_collider()
|
||||||
|
if collider != null:
|
||||||
|
distanceArray[raycastIndex] = self.global_position.distance_to(raycast.get_collision_point())
|
||||||
|
else:
|
||||||
|
distanceArray[raycastIndex] = -1
|
||||||
|
raycast.enabled = false
|
||||||
|
|
||||||
|
func onUpdateSpatialAudio(player: Node3D) -> void:
|
||||||
|
onUpdateReverb(player)
|
||||||
|
onUpdateLowpassFilter(player)
|
||||||
|
|
||||||
|
func onUpdateReverb(player: Node3D) -> void:
|
||||||
|
if reverbEffect != null:
|
||||||
|
var roomSize: float = 0.0
|
||||||
|
var wetness: float = 0.0
|
||||||
|
for distance in distanceArray:
|
||||||
|
if distance >= 0:
|
||||||
|
roomSize += (distance / maxRaycastDistance) / (float(distanceArray.size()))
|
||||||
|
roomSize = min(roomSize, 1.0)
|
||||||
|
else:
|
||||||
|
wetness -= 1.0 / float(distanceArray.size())
|
||||||
|
wetness = max(wetness, 0.0)
|
||||||
|
targetReverbWetness = wetness
|
||||||
|
targetReverbRoomSize = roomSize
|
||||||
|
|
||||||
|
func onUpdateLowpassFilter(player : Node3D):
|
||||||
|
if lowpassFilterEffect != null:
|
||||||
|
var query = PhysicsRayQueryParameters3D.create(self.global_position,self.global_position + (player.global_position - self.global_position).normalized() * maxRaycastDistance, $RayCastForward.get_collision_mask())
|
||||||
|
var spaceState = get_world_3d().direct_space_state
|
||||||
|
var result = spaceState.intersect_ray(query)
|
||||||
|
var lowpassCutoff = 20000
|
||||||
|
if !result.is_empty():
|
||||||
|
var rayDistance = self.global_position.distance_to(result["position"])
|
||||||
|
var distanceToPlayer = self.global_position.distance_to(player.global_position)
|
||||||
|
var wallToPlayerRatio = rayDistance / max(distanceToPlayer, 0.001)
|
||||||
|
if rayDistance < distanceToPlayer:
|
||||||
|
lowpassCutoff = wallLowpassCutoffAmount * wallToPlayerRatio
|
||||||
|
targetLowpassCutoff = lowpassCutoff
|
||||||
|
|
||||||
|
func lerpParameters(delta: float) -> void:
|
||||||
|
volume_db = lerp(volume_db, targetVolumeDb, delta)
|
||||||
|
lowpassFilterEffect.cutoff_hz = lerp(lowpassFilterEffect.cutoff_hz, targetLowpassCutoff, delta * 5.0)
|
||||||
|
reverbEffect.wet = lerp(reverbEffect.wet, targetReverbRoomSize * maxReverbWetness, delta * 5.0)
|
||||||
|
reverbEffect.room_size = lerp(reverbEffect.room_size, targetReverbRoomSize, delta * 5.0)
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
lastUpdateTime += delta
|
||||||
|
|
||||||
|
if updateDistances:
|
||||||
|
onUpdateRaycastDistance(raycastArray[currentRaycastIndex], currentRaycastIndex)
|
||||||
|
currentRaycastIndex += 1
|
||||||
|
if currentRaycastIndex >= distanceArray.size():
|
||||||
|
currentRaycastIndex = 0
|
||||||
|
updateDistances = false
|
||||||
|
|
||||||
|
if lastUpdateTime > updateFrequencySeconds:
|
||||||
|
var playerCamera = get_viewport().get_camera_3d()
|
||||||
|
if playerCamera != null:
|
||||||
|
onUpdateSpatialAudio(playerCamera)
|
||||||
|
updateDistances = true
|
||||||
|
lastUpdateTime = 0.0
|
||||||
|
|
||||||
|
lerpParameters(delta)
|
||||||
|
print("Audio:", global_position)
|
||||||
|
print("Camera:", get_viewport().get_camera_3d().global_position)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://d07hgc6eewoup
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
extends Node3D
|
||||||
|
|
||||||
|
@export var moveDistance: float = 2.0
|
||||||
|
@export var moveSpeed: float = 3.0
|
||||||
|
|
||||||
|
var up: bool = false
|
||||||
|
var startPos: Vector3 = Vector3.ZERO
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
startPos = global_position
|
||||||
|
|
||||||
|
func toggleMove(button: Button3D):
|
||||||
|
up = !up
|
||||||
|
|
||||||
|
func holdMove(button: Button3D):
|
||||||
|
up = true
|
||||||
|
|
||||||
|
func releaseMove(button: Button3D):
|
||||||
|
up = false
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
var target: Vector3 = startPos
|
||||||
|
|
||||||
|
if up:
|
||||||
|
target += Vector3(0, moveDistance, 0)
|
||||||
|
|
||||||
|
global_position = global_position.lerp(target, delta * moveSpeed)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
uid://cvg1f1wtahy0t
|
||||||
|
After Width: | Height: | Size: 243 KiB |
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://jydmkkryke23"
|
||||||
|
path.s3tc="res://.godot/imported/Door.jpg-c6a7b4f9366d8eda11c309608374c71c.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "d922ba511a93b749cd47cd485c867293"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Textures/Door/Door.jpg"
|
||||||
|
dest_files=["res://.godot/imported/Door.jpg-c6a7b4f9366d8eda11c309608374c71c.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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
|
||||||
|
After Width: | Height: | Size: 292 KiB |
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cq1svjaaumlba"
|
||||||
|
path.s3tc="res://.godot/imported/RustedMetal.jpg-14b74405eb9d3557651a60b1325156d4.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "db1a56df5bbb9a0342dac4dd57244c19"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Textures/Door/RustedMetal.jpg"
|
||||||
|
dest_files=["res://.godot/imported/RustedMetal.jpg-14b74405eb9d3557651a60b1325156d4.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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
|
||||||
|
After Width: | Height: | Size: 125 KiB |
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dp4cgjr828p7j"
|
||||||
|
path.s3tc="res://.godot/imported/Stone.jpg-efa2510d35b8e14ff09c596e6b250d76.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "e7877b28c4ff8b50b6036698303f8c18"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Textures/Door/Stone.jpg"
|
||||||
|
dest_files=["res://.godot/imported/Stone.jpg-efa2510d35b8e14ff09c596e6b250d76.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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
|
||||||
|
After Width: | Height: | Size: 501 KiB |
@@ -0,0 +1,44 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dulhjsunch31g"
|
||||||
|
path.s3tc="res://.godot/imported/Wood.jpg-fc1b321183afe5311878845ad5ee0a37.s3tc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "af8e09e1c617e9fd729e4195fbb54b04"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Textures/Door/Wood.jpg"
|
||||||
|
dest_files=["res://.godot/imported/Wood.jpg-fc1b321183afe5311878845ad5ee0a37.s3tc.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=2
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=true
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 995 B |
@@ -0,0 +1,43 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://gxvllmsgh21p"
|
||||||
|
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://icon.svg"
|
||||||
|
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
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/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
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=1
|
||||||
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
; Engine configuration file.
|
||||||
|
; It's best edited using the editor UI and not directly,
|
||||||
|
; since the parameters that go here are not all obvious.
|
||||||
|
;
|
||||||
|
; Format:
|
||||||
|
; [section] ; section goes between []
|
||||||
|
; param=value ; assign values to parameters
|
||||||
|
|
||||||
|
config_version=5
|
||||||
|
|
||||||
|
[application]
|
||||||
|
|
||||||
|
config/name="InteractionSystem"
|
||||||
|
run/main_scene="uid://cwwsolupah1s3"
|
||||||
|
config/features=PackedStringArray("4.7", "Mobile")
|
||||||
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[display]
|
||||||
|
|
||||||
|
window/stretch/mode="canvas_items"
|
||||||
|
window/stretch/aspect="expand"
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
left={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"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":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
right={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"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":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
forward={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"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":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
backward={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"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":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
jump={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"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":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
interact={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"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":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
|
||||||
|
, 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":1,"position":Vector2(159, 9),"global_position":Vector2(168, 57),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
throw={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"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":2,"position":Vector2(114, 23),"global_position":Vector2(123, 71),"factor":1.0,"button_index":2,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
rotate={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"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,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
[layer_names]
|
||||||
|
|
||||||
|
3d_physics/layer_5="SpatialAudio"
|
||||||
|
|
||||||
|
[physics]
|
||||||
|
|
||||||
|
3d/physics_engine="Jolt Physics"
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
rendering_device/driver.windows="d3d12"
|
||||||
|
renderer/rendering_method="mobile"
|
||||||