From aad319ddb5be108e9ca81d407bd90c843bae502d Mon Sep 17 00:00:00 2001 From: Anson Bridges Date: Wed, 14 Sep 2022 23:59:22 -0400 Subject: GUNBRIG HULL PROTOTYPE --- godot/scenes/ballistics/Rocket.gd | 6 +- godot/scenes/characters/PlayerRigid.tscn | 7 - godot/scenes/environment/Water.gd | 13 ++ godot/scenes/environment/Water.tscn | 6 +- godot/scenes/machines/Cannon.tscn | 2 +- godot/scenes/vehicles/Gunbrig.tscn | 221 +++++++++++++++++++++++++++++++ 6 files changed, 244 insertions(+), 11 deletions(-) create mode 100644 godot/scenes/environment/Water.gd create mode 100644 godot/scenes/vehicles/Gunbrig.tscn (limited to 'godot/scenes') diff --git a/godot/scenes/ballistics/Rocket.gd b/godot/scenes/ballistics/Rocket.gd index 374bfd9..de92d24 100644 --- a/godot/scenes/ballistics/Rocket.gd +++ b/godot/scenes/ballistics/Rocket.gd @@ -19,8 +19,7 @@ func _physics_process(delta): add_central_force(global_transform.basis.x*strength) life += delta else: - rpc("explode") - $RocketTrail.emitting = false + if is_network_master(): rpc("explode") remotesync func explode(): @@ -46,3 +45,6 @@ remotesync func explode(): func _on_collision(_body): rpc("explode") + +func _on_area_entry(area): + pass diff --git a/godot/scenes/characters/PlayerRigid.tscn b/godot/scenes/characters/PlayerRigid.tscn index 89c9df0..77e76d0 100644 --- a/godot/scenes/characters/PlayerRigid.tscn +++ b/godot/scenes/characters/PlayerRigid.tscn @@ -69,13 +69,6 @@ cast_to = Vector3( 0, 0, -2.5 ) collision_mask = 262145 collide_with_areas = true -[node name="Camera" type="Camera" parent="Neck/Head"] -keep_aspect = 0 -cull_mask = 524287 -fov = 90.0 -near = 0.2 -far = 1449.4 - [node name="viewmodel_c" type="ViewportContainer" parent="Neck"] visible = false margin_right = 1024.0 diff --git a/godot/scenes/environment/Water.gd b/godot/scenes/environment/Water.gd new file mode 100644 index 0000000..6fd4dc2 --- /dev/null +++ b/godot/scenes/environment/Water.gd @@ -0,0 +1,13 @@ +extends Spatial + + +func create_splash(pos, size): + var splash = preload("res://particles/WaterSplash.tscn").instance() + get_parent().add_child(splash) + splash.global_transform.origin = pos + splash.scale = size*Vector3.ONE + +func _on_WaterArea_body_entered(body): + if body.has_method("extinguish"): body.extinguish() + #print(body.get_aabb().get_area()) + create_splash(body.global_transform.origin, 1.5) diff --git a/godot/scenes/environment/Water.tscn b/godot/scenes/environment/Water.tscn index 04410b1..8b7718b 100644 --- a/godot/scenes/environment/Water.tscn +++ b/godot/scenes/environment/Water.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=8 format=2] [ext_resource path="res://textures/WaterC.jpg" type="Texture" id=1] [ext_resource path="res://textures/WaterA.jpg" type="Texture" id=2] +[ext_resource path="res://scenes/environment/Water.gd" type="Script" id=3] [sub_resource type="QuadMesh" id=1] size = Vector2( 2, 2 ) @@ -95,6 +96,7 @@ shader_param/BackgroundTexture = ExtResource( 1 ) [sub_resource type="BoxShape" id=4] [node name="Water" type="Spatial"] +script = ExtResource( 3 ) [node name="MeshInstance" type="MeshInstance" parent="."] transform = Transform( 1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0 ) @@ -107,3 +109,5 @@ collision_layer = 4 [node name="CollisionShape" type="CollisionShape" parent="WaterArea"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0 ) shape = SubResource( 4 ) + +[connection signal="body_entered" from="WaterArea" to="." method="_on_WaterArea_body_entered"] diff --git a/godot/scenes/machines/Cannon.tscn b/godot/scenes/machines/Cannon.tscn index 20627fc..633d910 100644 --- a/godot/scenes/machines/Cannon.tscn +++ b/godot/scenes/machines/Cannon.tscn @@ -63,7 +63,7 @@ stream = ExtResource( 2 ) unit_db = 9.0 [node name="CameraPoint" type="Spatial" parent="YawJoint/PitchJoint"] -transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.513577, 0.363402, 0 ) +transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0.873605, 0.209748, 0.0103165 ) [node name="SteerArea" type="Area" parent="."] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.935472, 0.123637, 0 ) diff --git a/godot/scenes/vehicles/Gunbrig.tscn b/godot/scenes/vehicles/Gunbrig.tscn new file mode 100644 index 0000000..9b82828 --- /dev/null +++ b/godot/scenes/vehicles/Gunbrig.tscn @@ -0,0 +1,221 @@ +[gd_scene load_steps=20 format=2] + +[ext_resource path="res://scripts/vehicles/Gunboat.gd" type="Script" id=1] +[ext_resource path="res://scenes/machines/Cannon.tscn" type="PackedScene" id=2] +[ext_resource path="res://materials/GunbrigHullMat.material" type="Material" id=3] +[ext_resource path="res://meshes/gunbrig.tres" type="ArrayMesh" id=4] +[ext_resource path="res://scenes/environment/Ladder.tscn" type="PackedScene" id=5] + +[sub_resource type="PhysicsMaterial" id=28] +rough = true + +[sub_resource type="BoxShape" id=5] +extents = Vector3( 0.2, 0.2, 0.2 ) + +[sub_resource type="CubeMesh" id=6] +size = Vector3( 0.4, 0.4, 0.4 ) + +[sub_resource type="BoxShape" id=7] +extents = Vector3( 0.1, 0.1, 0.1 ) + +[sub_resource type="CubeMesh" id=9] +size = Vector3( 0.15, 24, 0.15 ) + +[sub_resource type="OpenSimplexNoise" id=10] + +[sub_resource type="NoiseTexture" id=11] +noise = SubResource( 10 ) + +[sub_resource type="SpatialMaterial" id=12] +albedo_color = Color( 0.266667, 0.215686, 0.215686, 1 ) +albedo_texture = SubResource( 11 ) + +[sub_resource type="CubeMesh" id=13] +size = Vector3( 0.05, 15, 13 ) + +[sub_resource type="CubeMesh" id=14] +size = Vector3( 2, 4, 0.15 ) + +[sub_resource type="NavigationMesh" id=26] +vertices = PoolVector3Array( -5.28514, 1.7234, -3.63542, -5.28514, 1.7234, -3.38542, -3.28514, 1.7234, -3.38542, -3.28514, 1.7234, -3.63542, -8.28514, 1.7234, -3.38542, -8.28514, 1.7234, -3.13542, -7.28514, 1.7234, -3.13542, -7.28514, 1.7234, -3.38542, -13.7851, 2.7234, -3.13542, -13.7851, 2.7234, 3.11458, -10.5351, 2.7234, 3.11458, -10.5351, 2.7234, -3.13542, -4.03514, 0.473404, 2.86458, -4.03514, 0.473404, 3.11458, 2.21486, 0.473404, 3.11458, -3.28514, 0.473404, -2.88542, -10.0351, 0.473404, -2.63542, -10.0351, 0.473404, 2.61458, -4.03514, 0.473404, 2.86458, -3.28514, 0.473404, -2.88542, -3.28514, 0.473404, -3.13542, -3.28514, 0.473404, -2.88542, 2.21486, 0.473404, 3.11458, 8.46486, 0.473404, 3.11458, 8.46486, 0.473404, -3.13542, 8.96486, 1.9734, -0.135424, 8.96486, 1.9734, 0.114576, 9.21486, 1.9734, 0.114576, 9.21486, 1.9734, -0.135424, 12.7149, 1.9734, -0.885424, 11.9649, 1.7234, -1.88542, 11.4649, 1.7234, -1.88542, 9.21486, 1.9734, 3.11458, 8.96486, 1.9734, 3.11458, 8.96486, 1.9734, 3.36458, 9.46486, 1.7234, 3.36458, 11.2149, 1.7234, 2.11458, 11.7149, 1.7234, 1.86458, 12.4649, 1.9734, 1.11458, 9.21486, 1.9734, 3.11458, 9.46486, 1.7234, 3.36458, 9.46486, 1.7234, 3.11458, 9.46486, 1.7234, 3.11458, 9.96486, 1.7234, 3.11458, 9.96486, 1.7234, 2.86458, 11.2149, 1.7234, 2.11458, 11.7149, 1.7234, 2.11458, 11.7149, 1.7234, 1.86458, 14.9649, 1.9734, 0.114576, 14.9649, 1.9734, -0.135424, 14.4649, 1.9734, -0.135424, 13.7149, 1.9734, -0.385424, 13.7149, 1.9734, -0.635424, 13.2149, 1.9734, -0.635424, 13.2149, 1.9734, 0.614576, 13.2149, 1.9734, -0.635424, 13.2149, 1.9734, -0.885424, 12.7149, 1.9734, -0.885424, 9.21486, 1.9734, 3.11458, 9.46486, 1.7234, 3.11458, 9.96486, 1.7234, 2.86458, 11.2149, 1.7234, 2.11458, 9.21486, 1.9734, 0.114576, 14.4649, 1.9734, -0.135424, 14.4649, 1.9734, -0.385424, 13.7149, 1.9734, -0.385424, 9.96486, 1.7234, -2.88542, 9.96486, 1.7234, -3.13542, 9.21486, 1.9734, -3.13542, 12.4649, 1.9734, 1.11458, 12.9649, 1.9734, 1.11458, 13.2149, 1.9734, 0.614576, 13.2149, 1.9734, -0.635424, 12.7149, 1.9734, -0.885424, 11.7149, 1.7234, 1.86458, 11.9649, 1.7234, 1.86458, 12.4649, 1.9734, 1.11458, 14.9649, 1.9734, 0.114576, 14.4649, 1.9734, -0.135424, 13.7149, 1.9734, -0.385424, 13.2149, 1.9734, 0.614576, 11.4649, 1.7234, -1.88542, 9.96486, 1.7234, -2.88542, 9.21486, 1.9734, -3.13542, 9.21486, 1.9734, -0.135424, 11.4649, 1.7234, -1.88542, 10.7149, 1.7234, -2.88542, 9.96486, 1.7234, -2.88542, 9.96486, 1.7234, 2.86458, 10.7149, 1.7234, 2.86458, 11.2149, 1.7234, 2.11458, 11.4649, 1.7234, -1.88542, 9.21486, 1.9734, -0.135424, 9.21486, 1.9734, 0.114576, 11.2149, 1.7234, 2.11458, 12.4649, 1.9734, 1.11458, 12.7149, 1.9734, -0.885424, -5.28514, 1.7234, 3.36458, -5.28514, 1.7234, 3.61458, -4.03514, 1.7234, 3.61458, -4.03514, 1.7234, 3.36458 ) +polygons = [ PoolIntArray( 3, 2, 0 ), PoolIntArray( 0, 2, 1 ), PoolIntArray( 7, 6, 4 ), PoolIntArray( 4, 6, 5 ), PoolIntArray( 11, 10, 8 ), PoolIntArray( 8, 10, 9 ), PoolIntArray( 12, 15, 13 ), PoolIntArray( 13, 15, 14 ), PoolIntArray( 17, 16, 18 ), PoolIntArray( 18, 16, 19 ), PoolIntArray( 21, 20, 22 ), PoolIntArray( 22, 20, 23 ), PoolIntArray( 23, 20, 24 ), PoolIntArray( 28, 27, 25 ), PoolIntArray( 25, 27, 26 ), PoolIntArray( 31, 30, 29 ), PoolIntArray( 33, 32, 34 ), PoolIntArray( 34, 32, 35 ), PoolIntArray( 37, 36, 38 ), PoolIntArray( 41, 40, 39 ), PoolIntArray( 44, 43, 42 ), PoolIntArray( 47, 46, 45 ), PoolIntArray( 50, 49, 48 ), PoolIntArray( 52, 51, 53 ), PoolIntArray( 53, 51, 54 ), PoolIntArray( 57, 56, 55 ), PoolIntArray( 59, 58, 60 ), PoolIntArray( 60, 58, 61 ), PoolIntArray( 61, 58, 62 ), PoolIntArray( 65, 64, 63 ), PoolIntArray( 68, 67, 66 ), PoolIntArray( 70, 69, 71 ), PoolIntArray( 71, 69, 72 ), PoolIntArray( 72, 69, 73 ), PoolIntArray( 76, 75, 74 ), PoolIntArray( 78, 77, 79 ), PoolIntArray( 79, 77, 80 ), PoolIntArray( 82, 81, 83 ), PoolIntArray( 83, 81, 84 ), PoolIntArray( 87, 86, 85 ), PoolIntArray( 90, 89, 88 ), PoolIntArray( 93, 92, 94 ), PoolIntArray( 94, 92, 95 ), PoolIntArray( 95, 92, 96 ), PoolIntArray( 96, 92, 91 ), PoolIntArray( 100, 99, 97 ), PoolIntArray( 97, 99, 98 ) ] +agent_height = 1.8 +agent_radius = 0.18 +agent_max_slope = 46.0 +edge_max_error = 0.68 + +[sub_resource type="BoxShape" id=30] +extents = Vector3( 1.71192, 1, 3.16087 ) + +[sub_resource type="BoxShape" id=31] +extents = Vector3( 9.67403, 1.72526, 3.39172 ) + +[sub_resource type="ConvexPolygonShape" id=32] +points = PoolVector3Array( 9.03568, -4.58351, -0.213987, 8.97102, -3.22678, -1.53091, 15.2737, 1.41891, -0.115287, 8.9733, 1.47226, -3.40048, 8.88502, 1.33463, 3.48596, 11.6287, -3.91187, -0.202437, 10.7609, -1.35963, -2.77775, 10.7609, -1.35963, 2.77775, 15.2737, 1.7663, 0.115287, 9.25625, -2.28365, 2.77775, 9.25625, -2.28365, -2.77775, 11.2356, -4.27522, 0.199394, 10.7609, -0.317433, -3.00905, 8.91702, -0.253313, -3.56211, 8.9733, 1.47226, 3.40048, 8.91702, -0.253313, 3.56211, 10.7609, -0.317433, 3.00905, 15.2737, 1.41891, 0.115287, 10.7405, 1.32393, -2.80184, 12.0335, -3.41686, 0.193231, 10.7405, 1.32393, 2.80184, 9.03568, -4.58351, 0.213987, 10.6968, -4.46334, -0.20556, 8.88502, 1.33463, -3.48596, 12.0335, -3.41686, -0.193231, 15.2737, 1.7663, -0.115287, 8.97102, -3.22678, 1.53091, 11.2356, -4.27522, -0.199394, 10.6968, -4.46334, 0.20556, 9.0556, -0.926408, -3.4196, 9.0556, -0.926408, 3.4196, 8.89468, 0.542091, -3.58764, 8.89468, 0.542091, 3.58764, 11.6287, -3.91187, 0.202437, 9.7238, 1.38374, 3.19069, 9.7238, 1.38374, -3.19069, 10.7609, -0.896644, -2.89304, 10.7609, -0.896644, 2.89304, 9.32136, 0.148591, 3.47247, 9.32136, 0.148591, -3.47247 ) + +[node name="Gunbrig" type="RigidBody"] +mass = 238000.0 +physics_material_override = SubResource( 28 ) +can_sleep = false +linear_damp = 1.0 +angular_damp = 1.0 +script = ExtResource( 1 ) + +[node name="SteerArea" type="Area" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -11.9762, 3.16531, 0 ) +monitoring = false + +[node name="CollisionShape" type="CollisionShape" parent="SteerArea"] +shape = SubResource( 5 ) + +[node name="MeshInstance" type="MeshInstance" parent="SteerArea"] +mesh = SubResource( 6 ) + +[node name="FloatPoints" type="Spatial" parent="."] + +[node name="FloatArea" type="Area" parent="FloatPoints"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 10.6148, -0.80712, -4.80671 ) +collision_layer = 0 +collision_mask = 4 +monitorable = false + +[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea"] +shape = SubResource( 7 ) + +[node name="FloatArea2" type="Area" parent="FloatPoints"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 10.615, -0.807, 4.807 ) +collision_layer = 0 +collision_mask = 4 +monitorable = false + +[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea2"] +shape = SubResource( 7 ) + +[node name="FloatArea5" type="Area" parent="FloatPoints"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.807551, 5.93268 ) +collision_layer = 0 +collision_mask = 4 +monitorable = false + +[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea5"] +shape = SubResource( 7 ) + +[node name="FloatArea6" type="Area" parent="FloatPoints"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.808, -5.933 ) +collision_layer = 0 +collision_mask = 4 +monitorable = false + +[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea6"] +shape = SubResource( 7 ) + +[node name="FloatArea3" type="Area" parent="FloatPoints"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -11.6768, -0.806844, 2.391 ) +collision_layer = 0 +collision_mask = 4 +monitorable = false + +[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea3"] +shape = SubResource( 7 ) + +[node name="FloatArea4" type="Area" parent="FloatPoints"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -11.6768, -0.806844, -4.63235 ) +collision_layer = 0 +collision_mask = 4 +monitorable = false + +[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea4"] +shape = SubResource( 7 ) + +[node name="Mast" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.97525, 5.76149, 0 ) + +[node name="MastPole" type="MeshInstance" parent="Mast"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.93756, 0 ) +mesh = SubResource( 9 ) +skeleton = NodePath("../..") +material/0 = SubResource( 12 ) + +[node name="Sail" type="Spatial" parent="Mast"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.113369, 8.41979, 0 ) + +[node name="SailMesh" type="MeshInstance" parent="Mast/Sail"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.617531, 0 ) +mesh = SubResource( 13 ) +skeleton = NodePath("../..") + +[node name="Rudder" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -12.6143, -3.23144, 0.0526202 ) + +[node name="RudderMesh" type="MeshInstance" parent="Rudder"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.651875, 0, 0 ) +mesh = SubResource( 14 ) +skeleton = NodePath("../..") + +[node name="Cannon" parent="." instance=ExtResource( 2 )] +transform = Transform( 1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 6.33448, 0.107111, 3.3196 ) + +[node name="Cannon2" parent="." instance=ExtResource( 2 )] +transform = Transform( 1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 3.36645, 0.107111, 3.3196 ) + +[node name="Cannon3" parent="." instance=ExtResource( 2 )] +transform = Transform( 1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, 0.322236, 0.107111, 3.3196 ) + +[node name="Cannon4" parent="." instance=ExtResource( 2 )] +transform = Transform( 1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -2.66973, 0.107111, 3.21655 ) + +[node name="Cannon5" parent="." instance=ExtResource( 2 )] +transform = Transform( 1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -5.62184, 0.107111, 3.19748 ) + +[node name="Cannon6" parent="." instance=ExtResource( 2 )] +transform = Transform( 1.31134e-07, 0, -1, 0, 1, 0, 1, 0, 1.31134e-07, -8.72409, 0.107111, 2.8206 ) + +[node name="Cannon7" parent="." instance=ExtResource( 2 )] +transform = Transform( -0.0811907, 0, 0.996699, 0, 1, 0, -0.996699, 0, -0.0811907, -8.6751, 0.107111, -2.89481 ) + +[node name="Cannon8" parent="." instance=ExtResource( 2 )] +transform = Transform( -2.18557e-07, 0, 1, 0, 1, 0, -1, 0, -2.18557e-07, -5.70608, 0.107111, -3.29825 ) + +[node name="Cannon9" parent="." instance=ExtResource( 2 )] +transform = Transform( -2.18557e-07, 0, 1, 0, 1, 0, -1, 0, -2.18557e-07, -2.67884, 0.107111, -3.31267 ) + +[node name="Cannon10" parent="." instance=ExtResource( 2 )] +transform = Transform( -2.18557e-07, 0, 1, 0, 1, 0, -1, 0, -2.18557e-07, 0.421378, 0.107111, -3.35383 ) + +[node name="Cannon11" parent="." instance=ExtResource( 2 )] +transform = Transform( 0.0172777, 0, 0.999851, 0, 1, 0, -0.999851, 0, 0.0172777, 3.36481, 0.107111, -3.38258 ) + +[node name="Cannon12" parent="." instance=ExtResource( 2 )] +transform = Transform( -2.18557e-07, 0, 1, 0, 1, 0, -1, 0, -2.18557e-07, 6.37315, 0.107111, -3.35613 ) + +[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."] +navmesh = SubResource( 26 ) + +[node name="Hull" type="MeshInstance" parent="NavigationMeshInstance"] +visible = false +mesh = ExtResource( 4 ) +material/0 = ExtResource( 3 ) + +[node name="Ladder" parent="." instance=ExtResource( 5 )] +transform = Transform( -0.999758, 0, -0.0220069, 0, 5, 0, 0.0220069, 0, -0.999758, 10.3861, -0.881159, -3.49393 ) + +[node name="Ladder2" parent="." instance=ExtResource( 5 )] +transform = Transform( 0.0175921, 0, -0.999845, 0, 1.5, 0, 0.999845, 0, 0.0175921, 8.877, 0.904923, -1.79943 ) + +[node name="Ladder3" parent="." instance=ExtResource( 5 )] +transform = Transform( -0.0175922, 0, 0.999845, 0, 2.3, 0, -0.999845, 0, -0.0175922, -10.4189, 1.52301, -1.29144 ) + +[node name="Hull" type="MeshInstance" parent="."] +mesh = ExtResource( 4 ) +material/0 = ExtResource( 3 ) + +[node name="Cabin" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -12.1895, 1.42881, 0 ) +shape = SubResource( 30 ) + +[node name="MainDeck" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.717534, -1.63676, 0 ) +shape = SubResource( 31 ) + +[node name="Bow" type="CollisionShape" parent="."] +shape = SubResource( 32 ) -- cgit v1.2.3