diff --git a/addons/godot-xr-tools/objects/pickable.gd b/addons/godot-xr-tools/objects/pickable.gd index 0bf5ba4..f766adb 100644 --- a/addons/godot-xr-tools/objects/pickable.gd +++ b/addons/godot-xr-tools/objects/pickable.gd @@ -30,6 +30,9 @@ signal released(pickable, by) # Signal emitted when the user presses the action button while holding this object signal action_pressed(pickable) +# Signal emitted when the user releases the action button while holding this object +signal action_released(pickable) + # Signal emitted when the highlight state changes signal highlight_updated(pickable, enable) @@ -107,6 +110,10 @@ var _highlight_requests : Dictionary = {} # Is this node highlighted var _highlighted : bool = false +var _controller : XRController3D + +@onready var _gpu_particles: GPUParticles3D = get_node("GPUParticles3D") + # Remember some state so we can return to it when the user drops the object @onready var original_collision_mask : int = collision_mask @@ -120,12 +127,29 @@ func is_xr_class(name : String) -> bool: # Called when the node enters the scene tree for the first time. func _ready(): + if _gpu_particles != null: + _gpu_particles.amount_ratio = 0.0 # Get all grab points for child in get_children(): var grab_point := child as XRToolsGrabPoint if grab_point: _grab_points.push_back(grab_point) +@onready var rumble_timer = 0.0 + +func _process(delta): + if _controller: + var trigger_level = _controller.get_float("trigger") + if _gpu_particles != null and is_picked_up(): + _gpu_particles.amount_ratio = trigger_level + rumble_timer -= delta + if rumble_timer <= 0.0: + _controller.trigger_haptic_pulse(&"haptic", 30, trigger_level, 0.11, 0.0) + rumble_timer = 0.1 + else: + rumble_timer = 0.0 + + # Called when the node exits the tree func _exit_tree(): @@ -203,6 +227,7 @@ func drop(): if not is_picked_up(): return + # Request secondary grabber to drop if _grab_driver.secondary: _grab_driver.secondary.by.drop_object() @@ -292,6 +317,9 @@ func let_go(by: Node3D, p_linear_velocity: Vector3, p_angular_velocity: Vector3) # Skip if not picked up if not is_picked_up(): return + + if _gpu_particles != null: + _gpu_particles.amount_ratio = 0.0 # Get the grab information var grab := _grab_driver.get_grab(by) @@ -398,3 +426,7 @@ func _get_grab_point(grabber : Node3D, current : XRToolsGrabPoint) -> XRToolsGra func _set_ranged_grab_method(new_value: int) -> void: ranged_grab_method = new_value can_ranged_grab = new_value != RangedMethod.NONE + +func _on_action_pressed(variant: Variant): + _controller = get_picked_up_by_controller() + diff --git a/addons/godot-xr-tools/player/player_body.tscn b/addons/godot-xr-tools/player/player_body.tscn index dbddb9d..b664539 100644 --- a/addons/godot-xr-tools/player/player_body.tscn +++ b/addons/godot-xr-tools/player/player_body.tscn @@ -1,11 +1,11 @@ [gd_scene load_steps=2 format=3 uid="uid://diyu06cw06syv"] -[ext_resource type="Script" path="res://addons/godot-xr-tools/player/player_body.gd" id="1"] +[ext_resource type="Script" uid="uid://o50e27byd0b4" path="res://addons/godot-xr-tools/player/player_body.gd" id="1"] [node name="PlayerBody" type="CharacterBody3D" groups=["player_body"]] process_priority = -100 process_physics_priority = -100 top_level = true collision_layer = 524288 -collision_mask = 1023 +collision_mask = 1019 script = ExtResource("1") diff --git a/assets/psx-fire-extinguisher/source/extinguiseher.mtl b/assets/psx-fire-extinguisher/source/extinguiseher.mtl index 5c8c236..4006a21 100644 --- a/assets/psx-fire-extinguisher/source/extinguiseher.mtl +++ b/assets/psx-fire-extinguisher/source/extinguiseher.mtl @@ -1,4 +1,4 @@ -# Blender 4.3.2 MTL File: 'None' +# Blender 4.3.2 MTL File: 'extinguisher.blend' # www.blender.org newmtl Material_0 diff --git a/assets/psx-fire-extinguisher/source/extinguiseher.obj b/assets/psx-fire-extinguisher/source/extinguiseher.obj new file mode 100644 index 0000000..9984663 --- /dev/null +++ b/assets/psx-fire-extinguisher/source/extinguiseher.obj @@ -0,0 +1,584 @@ +# Blender 4.3.2 +# www.blender.org +mtllib extinguiseher.mtl +o tank +v 0.221341 0.000000 0.000000 +v 0.110670 0.000000 0.187500 +v 0.000000 0.000000 0.000000 +v 0.110670 0.000000 0.187500 +v 0.221341 0.000000 0.000000 +v 0.221341 1.000000 0.000000 +v 0.110670 1.000000 0.187500 +v 0.028235 1.203125 0.046875 +v 0.056470 1.203125 0.000000 +v 0.000000 1.203125 0.000000 +v 0.110670 0.000000 -0.187500 +v 0.221341 0.000000 0.000000 +v 0.000000 0.000000 0.000000 +v 0.221341 0.000000 0.000000 +v 0.110670 0.000000 -0.187500 +v 0.110670 1.000000 -0.187500 +v 0.221341 1.000000 0.000000 +v 0.056470 1.203125 0.000000 +v 0.028235 1.203125 -0.046875 +v 0.000000 1.203125 0.000000 +v -0.110670 0.000000 -0.187500 +v 0.110670 0.000000 -0.187500 +v 0.000000 0.000000 0.000000 +v 0.110670 0.000000 -0.187500 +v -0.110670 0.000000 -0.187500 +v -0.110670 1.000000 -0.187500 +v 0.110670 1.000000 -0.187500 +v 0.028235 1.203125 -0.046875 +v -0.028235 1.203125 -0.046875 +v 0.000000 1.203125 0.000000 +v -0.221341 0.000000 -0.000000 +v -0.110670 0.000000 -0.187500 +v 0.000000 0.000000 0.000000 +v -0.110670 0.000000 -0.187500 +v -0.221341 0.000000 -0.000000 +v -0.221341 1.000000 -0.000000 +v -0.110670 1.000000 -0.187500 +v -0.028235 1.203125 -0.046875 +v -0.056470 1.203125 -0.000000 +v 0.000000 1.203125 0.000000 +v -0.110670 0.000000 0.187500 +v -0.221341 0.000000 -0.000000 +v 0.000000 0.000000 0.000000 +v -0.221341 0.000000 -0.000000 +v -0.110670 0.000000 0.187500 +v -0.110670 1.000000 0.187500 +v -0.221341 1.000000 -0.000000 +v -0.056470 1.203125 -0.000000 +v -0.028235 1.203125 0.046875 +v 0.000000 1.203125 0.000000 +v 0.110670 0.000000 0.187500 +v -0.110670 0.000000 0.187500 +v 0.000000 0.000000 0.000000 +v -0.110670 0.000000 0.187500 +v 0.110670 0.000000 0.187500 +v 0.110670 1.000000 0.187500 +v -0.110670 1.000000 0.187500 +v -0.028235 1.203125 0.046875 +v 0.028235 1.203125 0.046875 +v 0.000000 1.203125 0.000000 +v 0.028235 1.109375 0.046875 +v -0.028235 1.109375 0.046875 +v -0.110670 1.000000 0.187500 +v 0.110670 1.000000 0.187500 +v 0.056470 1.109375 0.000000 +v 0.028235 1.109375 0.046875 +v 0.110670 1.000000 0.187500 +v 0.221341 1.000000 0.000000 +v 0.028235 1.109375 -0.046875 +v 0.056470 1.109375 0.000000 +v 0.221341 1.000000 0.000000 +v 0.110670 1.000000 -0.187500 +v -0.028235 1.109375 -0.046875 +v 0.028235 1.109375 -0.046875 +v 0.110670 1.000000 -0.187500 +v -0.110670 1.000000 -0.187500 +v -0.056470 1.109375 -0.000000 +v -0.028235 1.109375 -0.046875 +v -0.110670 1.000000 -0.187500 +v -0.221341 1.000000 -0.000000 +v -0.028235 1.109375 0.046875 +v -0.056470 1.109375 -0.000000 +v -0.221341 1.000000 -0.000000 +v -0.110670 1.000000 0.187500 +v 0.028235 1.203125 0.046875 +v -0.028235 1.203125 0.046875 +v -0.028235 1.109375 0.046875 +v 0.028235 1.109375 0.046875 +v 0.056470 1.203125 0.000000 +v 0.028235 1.203125 0.046875 +v 0.028235 1.109375 0.046875 +v 0.056470 1.109375 0.000000 +v 0.028235 1.203125 -0.046875 +v 0.056470 1.203125 0.000000 +v 0.056470 1.109375 0.000000 +v 0.028235 1.109375 -0.046875 +v -0.028235 1.203125 -0.046875 +v 0.028235 1.203125 -0.046875 +v 0.028235 1.109375 -0.046875 +v -0.028235 1.109375 -0.046875 +v -0.056470 1.203125 -0.000000 +v -0.028235 1.203125 -0.046875 +v -0.028235 1.109375 -0.046875 +v -0.056470 1.109375 -0.000000 +v -0.028235 1.203125 0.046875 +v -0.056470 1.203125 -0.000000 +v -0.056470 1.109375 -0.000000 +v -0.028235 1.109375 0.046875 +vn -0.0000 -1.0000 -0.0000 +vn 0.8612 -0.0000 0.5083 +vn -0.0000 1.0000 -0.0000 +vn 0.8612 -0.0000 -0.5083 +vn -0.0000 -0.0000 -1.0000 +vn -0.8612 -0.0000 -0.5083 +vn -0.8612 -0.0000 0.5083 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.7894 0.6139 +vn 0.5200 0.7947 0.3132 +vn 0.5200 0.7946 0.3132 +vn 0.5245 0.7906 -0.3159 +vn -0.0000 0.7894 -0.6139 +vn -0.5200 0.7947 -0.3132 +vn -0.5200 0.7946 -0.3132 +vn -0.5245 0.7906 0.3159 +vn 0.8566 -0.0000 0.5160 +vn 0.8566 -0.0000 -0.5160 +vn -0.8566 -0.0000 -0.5160 +vn -0.8566 -0.0000 0.5160 +vt 0.117836 0.671875 +vt 0.090167 0.718750 +vt 0.062500 0.671875 +vt 0.156250 0.750000 +vt 0.203125 0.750000 +vt 0.203125 1.000000 +vt 0.156250 1.000000 +vt 0.069559 0.664062 +vt 0.076617 0.675781 +vt 0.062500 0.675781 +vt 0.090167 0.625000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.069559 0.687500 +vt 0.034833 0.625000 +vt 0.312500 0.750000 +vt 0.312500 1.000000 +vt 0.055441 0.687500 +vt 0.007164 0.671875 +vt 0.000000 0.750000 +vt 0.046875 0.750000 +vt 0.046875 1.000000 +vt 0.000000 1.000000 +vt 0.048383 0.675781 +vt 0.034833 0.718750 +vt 0.093750 0.750000 +vt 0.093750 1.000000 +vt 0.055441 0.664062 +vt 0.070704 0.677298 +vt 0.056586 0.677298 +vt 0.035978 0.632760 +vt 0.091312 0.632760 +vt 0.079820 0.687500 +vt 0.091312 0.632760 +vt 0.127290 0.673605 +vt 0.047470 0.687500 +vt 0.000000 0.673606 +vt 0.035978 0.632761 +vt 0.062500 0.687500 +vt 0.046875 0.687500 +vt 0.046875 0.656250 +vt 0.062500 0.656250 +s 0 +usemtl Material_0 +f 1/1/1 2/2/1 3/3/1 +f 4/4/2 5/5/2 6/6/2 +f 4/4/2 6/6/2 7/7/2 +f 8/8/3 9/9/3 10/10/3 +f 11/11/1 12/1/1 13/3/1 +f 14/5/4 15/12/4 16/13/4 +f 14/5/4 16/13/4 17/6/4 +f 18/9/3 19/14/3 20/10/3 +f 21/15/1 22/11/1 23/3/1 +f 24/12/5 25/16/5 26/17/5 +f 24/12/5 26/17/5 27/13/5 +f 28/14/3 29/18/3 30/10/3 +f 31/19/1 32/15/1 33/3/1 +f 34/20/6 35/21/6 36/22/6 +f 34/20/6 36/22/6 37/23/6 +f 38/18/3 39/24/3 40/10/3 +f 41/25/1 42/19/1 43/3/1 +f 44/21/7 45/26/7 46/27/7 +f 44/21/7 46/27/7 47/22/7 +f 48/24/3 49/28/3 50/10/3 +f 51/2/1 52/25/1 53/3/1 +f 54/26/8 55/4/8 56/7/8 +f 54/26/8 56/7/8 57/27/8 +f 58/28/3 59/8/3 60/10/3 +f 61/29/9 62/30/9 63/31/9 +f 61/29/9 63/31/9 64/32/9 +f 65/33/10 66/29/10 67/34/10 +s 1 +f 65/33/11 67/34/10 68/35/10 +s 0 +f 69/30/12 70/36/12 71/37/12 +s 1 +f 69/30/12 71/37/12 72/38/12 +s 0 +f 73/29/13 74/30/13 75/31/13 +f 73/29/13 75/31/13 76/32/13 +f 77/33/14 78/29/14 79/34/14 +s 1 +f 77/33/15 79/34/14 80/35/14 +s 0 +f 81/30/16 82/36/16 83/37/16 +s 1 +f 81/30/16 83/37/16 84/38/16 +s 0 +f 85/39/8 86/40/8 87/41/8 +f 85/39/8 87/41/8 88/42/8 +f 89/39/17 90/40/17 91/41/17 +f 89/39/17 91/41/17 92/42/17 +f 93/39/18 94/40/18 95/41/18 +f 93/39/18 95/41/18 96/42/18 +f 97/39/5 98/40/5 99/41/5 +f 97/39/5 99/41/5 100/42/5 +f 101/39/19 102/40/19 103/41/19 +f 101/39/19 103/41/19 104/42/19 +f 105/39/20 106/40/20 107/41/20 +f 105/39/20 107/41/20 108/42/20 +o valve_assembly +v -0.068750 1.212244 -0.063335 +v -0.068750 1.140625 -0.039143 +v -0.068750 1.192449 -0.000000 +v -0.068750 1.140625 -0.039143 +v -0.068750 1.212244 -0.063335 +v 0.068750 1.212244 -0.063335 +v 0.068750 1.140625 -0.039143 +v 0.068750 1.140625 -0.039143 +v 0.068750 1.212244 -0.063335 +v 0.068750 1.192449 -0.000000 +v -0.068750 1.256506 -0.000000 +v -0.068750 1.212244 -0.063335 +v -0.068750 1.192449 -0.000000 +v -0.068750 1.212244 -0.063335 +v -0.068750 1.256506 -0.000000 +v 0.068750 1.256506 -0.000000 +v 0.068750 1.212244 -0.063335 +v 0.068750 1.212244 -0.063335 +v 0.068750 1.256506 -0.000000 +v 0.068750 1.192449 -0.000000 +v -0.068750 1.212244 0.063335 +v -0.068750 1.256506 -0.000000 +v -0.068750 1.192449 -0.000000 +v -0.068750 1.256506 -0.000000 +v -0.068750 1.212244 0.063335 +v 0.068750 1.212244 0.063335 +v 0.068750 1.256506 -0.000000 +v 0.068750 1.256506 -0.000000 +v 0.068750 1.212244 0.063335 +v 0.068750 1.192449 -0.000000 +v -0.068750 1.140625 0.039143 +v -0.068750 1.212244 0.063335 +v -0.068750 1.192449 -0.000000 +v -0.068750 1.212244 0.063335 +v -0.068750 1.140625 0.039143 +v 0.068750 1.140625 0.039143 +v 0.068750 1.212244 0.063335 +v 0.068750 1.212244 0.063335 +v 0.068750 1.140625 0.039143 +v 0.068750 1.192449 -0.000000 +v -0.068750 1.140625 -0.039143 +v -0.068750 1.140625 0.039143 +v -0.068750 1.192449 -0.000000 +v -0.068750 1.140625 0.039143 +v -0.068750 1.140625 -0.039143 +v 0.068750 1.140625 -0.039143 +v 0.068750 1.140625 0.039143 +v 0.068750 1.140625 0.039143 +v 0.068750 1.140625 -0.039143 +v 0.068750 1.192449 -0.000000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.3200 -0.9474 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 0.8197 -0.5728 +vn -0.0000 0.8197 0.5728 +vn -0.0000 -0.3200 0.9474 +vn -0.0000 -1.0000 -0.0000 +vt 0.179478 0.689780 +vt 0.185527 0.671875 +vt 0.195312 0.684831 +vt 0.203125 0.687500 +vt 0.203125 0.703125 +vt 0.171875 0.703125 +vt 0.171875 0.687500 +vt 0.205098 0.671875 +vt 0.211147 0.689780 +vt 0.195312 0.700845 +s 0 +usemtl Material_0 +f 109/43/21 110/44/21 111/45/21 +s 1 +f 112/46/22 113/47/22 114/48/22 +s 0 +f 112/46/22 114/48/22 115/49/22 +f 116/50/23 117/51/23 118/45/23 +f 119/52/21 120/43/21 121/45/21 +f 122/46/24 123/47/24 124/48/24 +f 122/46/24 124/48/24 125/49/24 +f 126/51/23 127/52/23 128/45/23 +f 129/51/21 130/52/21 131/45/21 +f 132/48/25 133/49/25 134/46/25 +f 132/48/25 134/46/25 135/47/25 +f 136/52/23 137/43/23 138/45/23 +f 139/50/21 140/51/21 141/45/21 +f 142/48/26 143/49/26 144/46/26 +s 1 +f 142/48/26 144/46/26 145/47/26 +s 0 +f 146/43/23 147/44/23 148/45/23 +f 149/44/21 150/50/21 151/45/21 +f 152/48/27 153/49/27 154/46/27 +f 152/48/27 154/46/27 155/47/27 +f 156/44/23 157/50/23 158/45/23 +o handle +v 0.025000 1.123991 0.207378 +v 0.025000 1.093019 0.224990 +v 0.046875 1.217561 0.005979 +v 0.046875 1.188689 -0.005979 +v -0.025000 1.123991 0.207378 +v -0.046875 1.217561 0.005979 +v -0.025000 1.093019 0.224990 +v -0.046875 1.188689 -0.005979 +v 0.025000 1.123991 0.207378 +v 0.046875 1.217561 0.005979 +v -0.025000 1.123991 0.207378 +v -0.046875 1.217561 0.005979 +v 0.025000 1.093019 0.224990 +v -0.025000 1.093019 0.224990 +v 0.046875 1.188689 -0.005979 +v -0.046875 1.188689 -0.005979 +v 0.025000 1.123991 0.207378 +v -0.025000 1.123991 0.207378 +v 0.025000 1.093019 0.224990 +v -0.025000 1.093019 0.224990 +vn 0.9859 0.0828 0.1455 +vn 0.9859 0.0827 0.1455 +vn -0.9859 0.0828 0.1455 +vn -0.9859 0.0827 0.1455 +vn -0.0000 0.9069 0.4213 +vn -0.0000 -0.9239 -0.3827 +vn -0.0000 0.4943 0.8693 +vt 0.254155 0.697807 +vt 0.256458 0.642067 +vt 0.269849 0.635076 +vt 0.269780 0.697807 +vt 0.260938 0.645064 +vt 0.266439 0.652070 +vt 0.268681 0.707812 +vt 0.260938 0.707796 +vt 0.254687 0.652294 +vt 0.267188 0.652294 +vt 0.272656 0.707812 +vt 0.249219 0.707812 +vt 0.267188 0.643750 +vt 0.267188 0.706489 +vt 0.262458 0.707578 +vt 0.251563 0.645793 +vt 0.267188 0.643386 +vt 0.254687 0.643386 +s 0 +usemtl Material_0 +f 161/53/28 159/54/28 160/55/28 +s 1 +f 161/53/28 160/55/28 162/56/29 +f 165/57/30 163/58/30 164/59/31 +f 165/57/30 164/59/31 166/60/31 +s 0 +f 169/61/32 167/62/32 168/63/32 +f 169/61/32 168/63/32 170/64/32 +f 173/65/33 171/66/33 172/67/33 +f 173/65/33 172/67/33 174/68/33 +f 177/69/34 175/62/34 176/61/34 +f 177/69/34 176/61/34 178/70/34 +o release_lever +v 0.046875 1.257989 -0.069419 +v 0.046875 1.284736 0.095438 +v 0.046875 1.314102 0.084749 +v 0.046875 1.184576 -0.042699 +v -0.046875 1.184576 -0.042699 +v -0.046875 1.314102 0.084749 +v -0.046875 1.284736 0.095438 +v -0.046875 1.257989 -0.069419 +v -0.046875 1.257989 -0.069419 +v 0.046875 1.314102 0.084749 +v -0.046875 1.314102 0.084749 +v 0.046875 1.257989 -0.069419 +v 0.046875 1.184576 -0.042699 +v -0.046875 1.284736 0.095438 +v 0.046875 1.284736 0.095438 +v -0.046875 1.184576 -0.042699 +v 0.031250 1.348838 0.180187 +v -0.031250 1.348838 0.180187 +v 0.031250 1.319473 0.190875 +v -0.031250 1.319473 0.190875 +v 0.046875 1.257989 -0.069419 +v 0.046875 1.184576 -0.042699 +v -0.046875 1.257989 -0.069419 +v -0.046875 1.184576 -0.042699 +v -0.031250 1.348838 0.180187 +v -0.046875 1.314102 0.084749 +v -0.046875 1.284736 0.095438 +v -0.031250 1.319473 0.190875 +v -0.031250 1.319473 0.190875 +v -0.046875 1.284736 0.095438 +v 0.046875 1.284736 0.095438 +v 0.031250 1.319473 0.190875 +v 0.031250 1.319473 0.190875 +v 0.046875 1.284736 0.095438 +v 0.046875 1.314102 0.084749 +v 0.031250 1.348838 0.180187 +v 0.031250 1.348838 0.180187 +v 0.046875 1.314102 0.084749 +v -0.046875 1.314102 0.084749 +v -0.031250 1.348838 0.180187 +vn 1.0000 -0.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.9397 -0.3420 +vn -0.0000 -0.8096 0.5870 +vn -0.0000 0.3420 0.9397 +vn -0.0000 -0.3420 -0.9397 +vn -0.9884 0.0520 0.1429 +vn -0.0000 -0.9397 0.3420 +vn 0.9884 0.0520 0.1429 +vt 0.247266 0.705618 +vt 0.247266 0.664602 +vt 0.255078 0.664602 +vt 0.266797 0.705618 +vt 0.266797 0.638913 +vt 0.255078 0.679929 +vt 0.247266 0.679929 +vt 0.247266 0.638913 +vt 0.250781 0.707812 +vt 0.250781 0.666797 +vt 0.274219 0.666797 +vt 0.274219 0.707812 +vt 0.274219 0.629687 +vt 0.274219 0.672345 +vt 0.250781 0.672345 +vt 0.250781 0.629687 +vt 0.262500 0.676562 +vt 0.262500 0.692187 +vt 0.246875 0.692187 +vt 0.246875 0.676562 +vt 0.247266 0.680078 +vt 0.247266 0.648828 +vt 0.262891 0.648828 +vt 0.262891 0.680078 +vt 0.255078 0.705618 +vt 0.254687 0.697736 +vt 0.270312 0.697736 +vt 0.255078 0.638913 +vt 0.270312 0.641406 +vt 0.254687 0.641406 +s 0 +usemtl Material_0 +f 179/71/35 181/72/35 180/73/35 +f 179/71/35 180/73/35 182/74/35 +f 183/75/36 185/76/36 184/77/36 +f 183/75/36 184/77/36 186/78/36 +f 187/79/37 189/80/37 188/81/37 +f 187/79/37 188/81/37 190/82/37 +f 191/83/38 193/84/38 192/85/38 +f 191/83/38 192/85/38 194/86/38 +f 197/87/39 195/88/39 196/89/39 +f 197/87/39 196/89/39 198/90/39 +f 201/91/40 199/92/40 200/93/40 +f 201/91/40 200/93/40 202/94/40 +f 203/71/41 204/77/41 205/76/41 +f 203/71/41 205/76/41 206/95/41 +f 207/96/42 208/85/42 209/84/42 +f 207/96/42 209/84/42 210/97/42 +f 211/98/43 212/73/43 213/72/43 +f 211/98/43 213/72/43 214/78/43 +f 215/99/37 216/81/37 217/80/37 +f 215/99/37 217/80/37 218/100/37 +o hose +v 0.032175 1.205103 -0.087212 +v 0.032175 1.140324 -0.087212 +v 0.032175 1.205103 -0.022433 +v 0.032175 1.140324 -0.022433 +v -0.032603 1.205103 -0.087212 +v -0.032603 1.140324 -0.087212 +v -0.032603 1.205103 -0.022433 +v -0.032603 1.140324 -0.022433 +v -0.032603 1.205103 -0.087212 +v -0.032603 1.140324 -0.087212 +v -0.032603 1.140324 -0.022433 +v -0.032603 1.205103 -0.022433 +v 0.032175 1.205103 -0.022433 +v 0.032175 1.205103 -0.087212 +v 0.032175 1.140324 -0.087212 +v 0.032175 1.140324 -0.022433 +v -0.032603 1.205103 -0.087212 +v -0.032603 1.140324 -0.087212 +v 0.032175 1.205103 -0.087212 +v 0.032175 1.140324 -0.087212 +v -0.072926 1.245425 -0.301188 +v -0.072926 1.100002 -0.301188 +v 0.072497 1.245425 -0.301188 +v 0.072497 1.100002 -0.301188 +v -0.086610 1.259110 -0.301188 +v -0.086610 1.086317 -0.301188 +v 0.086182 1.259110 -0.301188 +v 0.086182 1.086317 -0.301188 +v -0.023353 1.195853 -0.103970 +v -0.023353 1.149574 -0.103970 +v 0.022925 1.195853 -0.103970 +v 0.022925 1.149574 -0.103970 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.9696 0.2447 +vn -0.0000 -0.0000 -0.0000 +vn -0.9698 -0.0000 -0.2438 +vn -0.9696 -0.0000 0.2447 +vn 0.9696 -0.0000 0.2447 +vn -0.0000 0.9696 0.2447 +vn -0.0000 -0.9698 -0.2438 +vn -0.0000 0.9698 -0.2438 +vn 0.9698 -0.0000 -0.2438 +vt 0.375000 0.000000 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.375000 0.500000 +vt 0.625000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.605201 0.980200 +vt 0.394800 0.980201 +vt 0.605200 0.769799 +vt 0.394799 0.769799 +s 0 +usemtl Material_0 +f 220/101/44 222/102/44 221/103/44 219/104/44 +f 222/102/45 226/105/45 225/106/45 221/103/45 +f 226/105/46 224/107/46 223/108/46 225/106/46 +f 224/107/47 220/109/47 219/110/47 223/108/47 +f 224/111/48 226/112/48 222/107/48 220/105/48 +f 219/106/49 221/108/49 225/113/49 223/114/49 +f 233/101/46 232/104/46 231/103/46 234/102/46 +f 234/102/47 231/103/47 230/106/47 229/105/47 +f 229/105/44 230/106/44 227/108/44 228/107/44 +f 233/105/48 228/111/48 236/111/48 238/105/48 +f 228/111/49 233/105/49 234/107/49 229/112/49 +f 232/106/48 227/114/48 230/113/48 231/108/48 +f 238/105/50 236/111/50 244/111/50 246/105/50 +f 227/114/48 232/106/48 237/106/48 235/114/48 +f 228/107/51 227/108/51 235/108/51 236/107/51 +f 232/104/51 233/101/51 238/101/51 237/104/51 +f 241/115/52 242/116/52 250/116/52 249/115/52 +f 236/107/53 235/108/53 243/108/53 244/107/53 +f 237/104/54 238/101/54 246/101/54 245/104/54 +f 235/114/55 237/106/55 245/106/55 243/114/55 +f 239/117/45 240/118/45 244/107/45 243/108/45 +f 241/115/45 239/117/45 243/108/45 245/110/45 +f 240/118/45 242/116/45 246/109/45 244/107/45 +f 242/116/45 241/115/45 245/110/45 246/109/45 +f 248/118/45 247/117/45 249/115/45 250/116/45 +f 239/117/56 241/115/56 249/115/56 247/117/56 +f 242/116/57 240/118/57 248/118/57 250/116/57 +f 240/118/58 239/117/58 247/117/58 248/118/58 diff --git a/assets/psx-fire-extinguisher/source/extinguiseher.obj.import b/assets/psx-fire-extinguisher/source/extinguiseher.obj.import new file mode 100644 index 0000000..34ed891 --- /dev/null +++ b/assets/psx-fire-extinguisher/source/extinguiseher.obj.import @@ -0,0 +1,25 @@ +[remap] + +importer="wavefront_obj" +importer_version=1 +type="Mesh" +uid="uid://df54nl2t18ml2" +path="res://.godot/imported/extinguiseher.obj-5a5c4bbc41bf43f78968e31b7c021c62.mesh" + +[deps] + +files=["res://.godot/imported/extinguiseher.obj-5a5c4bbc41bf43f78968e31b7c021c62.mesh"] + +source_file="res://assets/psx-fire-extinguisher/source/extinguiseher.obj" +dest_files=["res://.godot/imported/extinguiseher.obj-5a5c4bbc41bf43f78968e31b7c021c62.mesh", "res://.godot/imported/extinguiseher.obj-5a5c4bbc41bf43f78968e31b7c021c62.mesh"] + +[params] + +generate_tangents=true +generate_lods=true +generate_shadow_mesh=true +generate_lightmap_uv2=false +generate_lightmap_uv2_texel_size=0.2 +scale_mesh=Vector3(1, 1, 1) +offset_mesh=Vector3(0, 0, 0) +force_disable_mesh_compression=false diff --git a/assets/psx-fire-extinguisher/source/extinguisher_model.tscn b/assets/psx-fire-extinguisher/source/extinguisher_model.tscn index ae77486..89c1f3a 100644 --- a/assets/psx-fire-extinguisher/source/extinguisher_model.tscn +++ b/assets/psx-fire-extinguisher/source/extinguisher_model.tscn @@ -1,10 +1,13 @@ -[gd_scene load_steps=18 format=4 uid="uid://bhdq6md7l8avi"] +[gd_scene load_steps=24 format=4 uid="uid://bhdq6md7l8avi"] [ext_resource type="PackedScene" uid="uid://c8l60rnugru40" path="res://addons/godot-xr-tools/objects/pickable.tscn" id="1_mhjx8"] [ext_resource type="Texture2D" uid="uid://du8qicq68ikm" path="res://assets/psx-fire-extinguisher/source/model_0.png" id="2_mhjx8"] [ext_resource type="PackedScene" uid="uid://ctw7nbntd5pcj" path="res://addons/godot-xr-tools/objects/grab_points/grab_point_hand_right.tscn" id="3_fnuwe"] +[ext_resource type="ArrayMesh" uid="uid://5km1hdev7qmn" path="res://assets/psx-fire-extinguisher/source/josé.obj" id="3_ugbnf"] [ext_resource type="Script" uid="uid://c6w5omkrnbahq" path="res://addons/godot-xr-tools/hands/poses/hand_pose_settings.gd" id="4_id8d5"] +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_ugbnf"] + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_uqffu"] resource_name = "material_0" transparency = 2 @@ -79,37 +82,8 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_i3swf") -[sub_resource type="ArrayMesh" id="ArrayMesh_eewkv"] -_surfaces = [{ -"aabb": AABB(-0.030486578, -0.5, -0.0073771244, 0.060973156, 1.0577122, 0.27667576), -"format": 34896613377, -"index_count": 348, -"index_data": PackedByteArray("AAABAAIAAgADAAAAAQAAAAQAAAAFAAQAAAADAAUABgABAAQABwAEAAUABwAGAAQAAwAIAAUACQAHAAUACQAFAAgAAgABAAoACwABAAYACgABAAsABgAHAAwABgAMAAsADQAHAAkADQAMAAcACgAOAAIAAgAOAAMACwAPAAoACwAMAA8ACgAPAA4AEAAMAA0AEAAPAAwAEQAPABAAEQAOAA8AEgAQAA0AEwAOABEAEwAUAA4AFQARABAAFQAQABIAFgATABEAFgARABUAFwAUABMAFwADABQAAwAXAAgAGAAXABMAGAATABYAFwAZAAgAFwAYABkAGgAIABkAGgAJAAgAGAAbABkAHAAJABoAHAANAAkAEgANABwAHQAaABkAHQAZABsAHgAcABoAHgAaAB0AHwASABwAHwAcAB4AIAASAB8AIAAVABIAIQAfAB4AIgAVACAAIgAWABUAIwAgAB8AIwAfACEAJAAiACAAJAAgACMAJQAWACIAJQAYABYAGAAlABsAJgAlACIAJgAiACQAJQAnABsAJQAmACcAKAAbACcAKAAdABsAKQAdACgAKQAeAB0AIQAeACkAKQAoACoAKgAoACcAIQApACsAKQAqACsAIQArACwAIwAhACwAKwAqAC0AKgAnAC4AJgAuACcALQAqAC4AIwAsAC8AJAAjAC8ALAArADAAKwAtADAALwAsADEALAAwADEAJAAvADIAJgAkADIALwAxADMAMgAvADMAMQAwADQAMAA1ADQAMAAtADUAMQA0ADYAMwAxADYALQA3ADUAMwA2ADgALQA5ADcAOgAzADgAMgAzADoAOgA4ADsAOQA8ADcALQAuADkAPQA7ADwAPQA6ADsAOQA9ADwAPgAyADoAPgA6AD0APgA9ADkAPgA5AC4AJgAyAD4AJgA+AC4A"), -"name": "material_0", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 63, -"vertex_data": PackedByteArray("//8AAJBcAAD/fwAAoWUAABrPAABffQAA//+BPJBcAAD/vwAAbFIAAP+/gTxsUgAA/38AAElIAAD/f4E8SUgAAP+/JIiYGAAA/38kiHUOAADkMAAAX30AAAAAAACQXAAAAACBPJBcAAAAACSIvCIAABrPgTxffQAA5DCBPF99AADkMCSIi0MAABrPJIiLQwAA5DCFtRY1AACM5ySIIzMAAIzngTz4bAAAGs+FtRY1AACM54W1riQAAP//JIi8IgAA//+FtUcUAAD/v4W1IwoAAP9/hbUAAAAA/7/G0yMKAAAAAIW1RxQAAP9/xtMAAAAAAADG00cUAADkMMbTFjUAABrPxtMWNQAA5DD243VPAACM58bTriQAABrP9uN1TwAAjOfx5ehAAAD//8bTRxQAAP//7edaMgAA/78m6VwpAAD/f2DqXiAAAAAA7edaMgAA/39Z+y5mAAAAAIr2wG4AAOQww+6efAAA/3+t/tikAAD/v/H4d2oAABrPw+6efAAAAABk+Z2mAADkMNfweakAAIznpvKvdQAAGs/X8HmpAAAAALb6Iv0AAP9///9e+wAA5DAp8v//AAD/v1r9QPwAABrPKfL//wAA/78J/LqlAACM5x71C6gAAIznb/aQ/gAA//+2+iL9AAD//2T5naYAAP//ivbAbgAA") -}] -blend_shape_mode = 0 - -[sub_resource type="ArrayMesh" id="ArrayMesh_l50a2"] -resource_name = "blockbench_export_mesh5" -_surfaces = [{ -"aabb": AABB(-0.030486578, -0.5, -0.0073771244, 0.060973156, 1.0577122, 0.27667576), -"attribute_data": PackedByteArray("JkXLUzJDK1NnRIZRzEAyXcxEMk3MRDJdzEAyTTJDK1MmRctTLER/VExBAFx/QplNf0IAXExBmU0/QctTMkMrUzJDMlV9QTJd5UMzTeVDMl19QTNN/kGGUTJDK1M/QctTjEF8XPBDfEzwQ3xcjEF8TGdEhlEyQytT/kGGUZdBSloBREpOAURKWpdBSk7vQgBO70KGXcZBN04XRE5dAUTkTZdBSlqXQeRNAURKWgREzkyrQe1cq0FyTARESV2tQXRb3kLQTt5CU1utQfFOtEQNT1hCFVtYQppOtESIW8ZBN07GQb1dnUBvTu9Chl1mRKVPQUKmWzRDpU9yQ6ZbAUTaT5dB5FuXQdpPAUTkWzBDcVC/QXJczEBxUCNEclwIQvBa0UPpTjxD8FqdQulO+ULoTihB71qSQOhOj0PvWjRDpU8PQaZbAkKlT0FCplv/Q3JQzUJyWM1CclD/Q3JYmkMNUTFBDVkxQQ1RmkMNWTBFC1LMQgtazEILUjBFC1qdQula0UPpUtFD6VqdQulS+ULoUpJA6FqSQOhS+ULoWs1CclCcQXJYnEFyUM1CclheRM9SLELFVy5DrlIuQ2dYAURmUpdBDVeXQWZSAUQNV4JE71E1QnFXIUK5UXBEllaeQoJYjkKXUtFDglhnQetSMURSUZNA6FbhQalQ+ULoVi5DrlIpQSJX/kGOUixCxFdmQsFZqUPeU5JDAlp6QhFUXkO4VulBMVIHQ8VRNkJqVmdE/1v+QcRXZ0TEV/5B/1vtQ1dWqUFrUfNDHFKpQRtXBETlU6lBxk0GRDROqUFeVIVEB1cHQ8VRJURaUV5DuFbFRO9PFEPDU51Dnk9HRNdT70KcVL5BLVHvQhFRxUFUVGdExFf+QZ1UZ0SdVP5BxFfrQb1SlkScT/lE91HJQKNQO0TbWDZBNVWaQ/hU8EGRWRhE5VTvQhFRH0T1UO9CnFThQbBTnEOeTxRDw1N0Qk1PQ0NAUkNDt1gjQq5SdkS8WFBDQ1JrQ4JYKEKXUp5EglgFRelS0UPpWtFD6VIFRelaBUXpTjxD8FrRQ+lOb0TwWg5Er07eQlNb3kLQTg5EMVuzQ5lNf0IAXH9CmU2zQwBcMkMyVTJDK1MsRH9UdkTrVtRC/lAGRPBQRUP5VuFBsFPMQsBZmUGtWRRDw1MUQ8NT/0PUWcxCwFlHRNdTQ0NhVwlBY1FtQ2NR30BhV2dEnVT+QZ9OZ0SfTv5BnVSaQ/hUuEA7TxxD/k42QTVVRUP5VqNBDFHUQv5QE0IHVw=="), -"format": 34896613399, -"index_count": 348, -"index_data": PackedByteArray("AAABAAIAAwAEAAUAAwAGAAQABwAIAAkACgALAAwACgANAAsADgAPABAAEQASABMAEQAUABIAFQAWABcAGAAZABoAGAAbABkAHAAdAB4AHwAgACEAHwAiACAAIwAkACUAIwAmACQAJwAoACkAJwAqACgAKwAsAC0AKwAuACwALwAwADEALwAyADAAMwA0ADUAMwA2ADQANwA4ADkANwA6ADgAOwA8AD0AOwA+ADwAPwBAAEEAPwBCAEAAQwBEAEUAQwBGAEQARwBIAEkARwBKAEgASwBMAE0ASwBOAEwATwBQAFEATwBSAFAAUwBUAFUAUwBWAFQAVwBYAFkAVwBaAFgAWwBcAF0AWwBeAFwAXwBgAGEAXwBiAGAAYwBkAGUAYwBmAGQAZwBoAGkAZwBqAGgAawBsAG0AawBuAGwAbwBwAHEAbwByAHAAcwB0AHUAcwB2AHQAdwB4AHkAdwB6AHgAewB8AH0AewB+AHwAfwCAAIEAfwCCAIAAgwCEAIUAgwCGAIQAhwCIAIkAhwCKAIgAiwCMAI0AiwCOAIwAjwCQAJEAjwCSAJAAkwCUAJUAkwCWAJQAlwCYAJkAlwCaAJgAmwCcAJ0AmwCeAJwAnwCgAKEAnwCiAKAAowCkAKUAowCmAKQApwCoAKkApwCqAKgAqwCsAK0AqwCuAKwArwCwALEArwCyALAAswC0ALUAswC2ALQAtwC4ALkAtwC6ALgAuwC8AL0AuwC+ALwAvwDAAMEAvwDCAMAAwwDEAMUAwwDGAMQAxwDIAMkAxwDKAMgAywDMAM0AywDOAMwAzwDQANEA0gDTANQA0gDVANMA1gDXANgA1gDZANcA2gDbANwA2gDdANsA3gDfAOAA3gDhAN8A4gDjAOQA4gDlAOMA5gDnAOgA5gDpAOcA6gDrAOwA6gDtAOsA"), -"material": SubResource("StandardMaterial3D_uqffu"), -"name": "material_0", -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 238, -"vertex_data": PackedByteArray("//8AAJBc/7//fwAAoWX/vxrPAABfff+/Gs8AAF99EbP//4E8kFwRs///AACQXBGzGs+BPF99EbP/fwAAoWX/v///AACQXP+//78AAGxS/7///wAAkFya5v+/gTxsUprm/78AAGxSmub//4E8kFya5gAAAACQXP+//38AAKFl/7//fwAASUj/v/9/AABJSJrmAACBPJBcmuYAAAAAkFya5v9/gTxJSJrm5DAAAF99/7//fwAAoWX/vwAAAACQXP+/AAAAAJBcEbPkMIE8X30Rs+QwAABffRGzAACBPJBcEbMazwAAX33/v/9/AAChZf+/5DAAAF99/7/kMAAAX30AgBrPgTxffQCAGs8AAF99AIDkMIE8X30AgP//JIi8IqazjOeBPPhsprOM5ySIIzOms///gTyQXKazGs8kiItDCojkMIE8X30KiOQwJIiLQwqIGs+BPF99CojkMCSIi0NhswAAgTyQXGGzAAAkiLwiYbPkMIE8X31hs///gTyQXF3n/78kiJgYXef/v4E8bFJd5///JIi8Il3nAAAkiLwi++f/f4E8SUj75/9/JIh1DvvnAACBPJBc++eM5ySIIzOmsxrPgTxffaazGs8kiItDprOM54E8+Gyms///hbVHFBSzjOckiCMzFLOM54W1riQUs///JIi8IhSzGs+FtRY1YoPkMCSIi0Nig+QwhbUWNWKDGs8kiItDYoPkMIW1FjUUswAAJIi8IhSzAACFtUcUFLPkMCSIi0MUs///JIi8Ip3m/7+FtSMKneb/vySImBid5v//hbVHFJ3mAACFtUcUneb/fySIdQ6d5v9/hbUAAJ3mAAAkiLwineaM54W1riQUsxrPJIiLQxSzGs+FtRY1FLOM5ySIIzMUs///xtNHFBGzjOeFta4kEbOM58bTriQRs///hbVHFBGzGs/G0xY1AIDkMIW1FjUAgOQwxtMWNQCAGs+FtRY1AIDkMMbTFjURswAAhbVHFBGzAADG00cUEbPkMIW1FjURs///hbVHFJrm/7/G0yMKmub/v4W1Iwqa5v//xtNHFJrmAADG00cUmub/f4W1AACa5v9/xtMAAJrmAACFtUcUmuaM58bTriQRsxrPhbUWNRGzGs/G0xY1EbOM54W1riQRs///7edaMgi3jOfG064kB7eM5/Hl6EAIt///xtNHFAe3Gs/243VPaJDkMMbTFjVokOQw9uN1T2iQGs/G0xY1aJDkMPbjdU8EtQAAxtNHFAS1AADt51oyBLXkMMbTFjUEtf//xtNHFOXm/78m6Vwp5ub/v8bTIwrl5v//7edaMubmAADt51oyzeX/f8bTAADN5f9/YOpeIM3lAADG00cUzeWM5/Hl6EAVtxrPxtMWNRW3Gs/243VPFbeM58bTriQVt///7edaMg/q/7/x+HdqD+r/vybpXCkP6v//ivbAbg/qjOfx5ehAgboaz8PunnyBuoznpvKvdYG6Gs/243VPgboaz/bjdU/SoeQww+6efNKhGs/D7p580qHkMPbjdU/SoeQw9uN1T267AACK9sBubrvkMMPunnxuuwAA7edaMm67AADt51oynun/f1n7Lmae6QAAivbAbp7p/39g6l4gnun//+3nWjJ6uoznpvKvdXu6//+K9sBue7qM5/Hl6EB6uv//ivbAbqfJ/78J/Lqlpsn/v/H4d2qnyf//ZPmdpqbJjOem8q91I8kaz9fweakjyYznHvULqCPJGs/D7p58I8kaz8PunnzXuOQw1/B5qde4Gs/X8Hmp17jkMMPunnzXuOQww+6efFm+AABk+Z2mWb7kMNfwealZvgAAivbAblm+AACK9sBut/D/f63+2KS38AAAZPmdprfw/39Z+y5mt/D//4r2wG4SyYznHvULqBHJ//9k+Z2mEcmM56byr3USyf9/rf7YpLvJ/7/x+Hdqu8n/vwn8uqW7yf9/WfsuZrzJ/39Z+y5mwub/vybpXCnB5v+/8fh3asLm/39g6l4gweb/f2DqXiDA5f+/xtMjCsDl/78m6VwpwOX/f8bTAADA5f9/xtMAAJrm/7+FtSMKmub/v8bTIwqa5v9/hbUAAJrm/3+FtQAAneb/vySImBid5v+/hbUjCp3m/38kiHUOneb/fySIdQ5d5/+/gTxsUl3n/78kiJgYXef/f4E8SUhd5/9/gTxJSJrm/78AAGxSmub/v4E8bFKa5v9/AABJSJrm/38AAElI/7//fwAAoWX/v/+/AABsUv+///9k+Z2mM8uM52/2kP4zy///tvoi/TPLjOce9QuoM8v/f63+2KRyxf+/Wv1A/HLF/3///177csX/vwn8uqVyxf+/Cfy6pXLF//+2+iL9csX/v1r9QPxyxf//ZPmdpnLF5DDX8HmpGswAALb6Iv0azOQwKfL//xrMAABk+Z2mGswaz9fweamgveQwKfL//6C9Gs8p8v//oL3kMNfweamgvQAAZPmdpuvv/3///1776+8AALb6Iv3r7/9/rf7YpOvvjOce9QuoM8sazyny//8zy4znb/aQ/jPLGs/X8HmpM8sAAP9/AAD/fwAA/3//fwAA/38AAP9/AAD/fwAAAAD/fwAA/38AAP9//38AAP9/AAD/fwAA/38AAAAAAIAAAP9/AAD/f/9/////f////3////9///8AAACAAAD/fwAAAID/f////3////9/////f///AAD/fwAA/38AAACA/3////9/////f////3///1aQ+B1WkPgdVpD4HVaQ+B3///9/////f////3////9/fZjB8X2YwfF9mMHxfZjB8daGvxLWhr8S1oa/EtaGvxImmgzzJpoM8yaaDPMmmgzzVpD4HVaQ+R1WkPkdVpD4HdeDOgLXgzoC14M6AteDOgL///9/////f////3////9/OYIn/DmCJ/w5gif8OYIn/Kp+eQWqfnkFqn55Bap+eQWGeqn+hnqp/oZ6qf6Geqn+14M6AteDOgLXgzoC14M6Av9/AAD/fwAA/38AAP9/AAD/f////3////9/////f////3////9/////f////3////9/AAD/fwAA/38AAP9/AAD/f////3////9/////f////38AAP9/AAD/fwAA/38AAHRKMRx3Si8cc0oxHHhKLxwAAP9/AAD/fwAA/38AAP9/nWhQ151oUNedaFDXnWhQ11yVNAVblTEFXZU0BVqVMAXbhFjr2oRY69uEWOvahFjrb0pxHHBKcRxuSnIccEpxHABRbQsAUW4LAVFtCwBRbguTQVElk0FRJZNBUSWTQVElAAD/fwAA/38AAP9/AAD/f6pZcL6qWW++qllvvqpZcL4IdXHRCHVx0Qh1cdEIdXHRlEFLJZFBTCWRQUwllUFLJUzQs2VM0LJlTNCzZUvQsmX5Klcx+ipXMfoqVzH5KlcxAAD/fwAA/38AAP9/AAD/f5ZgsuyWYLLslmCy7JZgsuyza6i5s2uoubNrqLmza6i58ipNMfIqTTHyKk0x8ipNMbzPemW8z3tlvM95ZbzPe2WOWMEDkFjAA45YwgOQWL8D85TpBPSU6gTzlOkE9JTrBP9/AAD/fwAA/38AAP9/AACqfnkFqn55Bap+eQWqfnkF1oa/EtaGvxLWhr8S1oa/Ev9/AAD/fwAA/38AAP9/AAAAAP9/AAD/fwAA/3/RKYsy0imKMtIpijLRKYsycc4hZnHOIWZxziFmcc4hZnHOIWZxziFmcc4hZnHOIWbvTFGo70xSqO9MUqjvTFGoAAD/fwAA/38AAP9/AAD/f7ZsN7e2bDe3tmw3t7ZsN7fSKYoy0imKMtIpijLSKYoy") -}] -blend_shape_mode = 0 -shadow_mesh = SubResource("ArrayMesh_eewkv") +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_id8d5"] +albedo_color = Color(0, 0, 0, 1) [sub_resource type="ArrayMesh" id="ArrayMesh_s2mu2"] _surfaces = [{ @@ -185,9 +159,42 @@ radius = 0.22167969 script = ExtResource("4_id8d5") metadata/_custom_type_script = "uid://c6w5omkrnbahq" +[sub_resource type="BoxShape3D" id="BoxShape3D_ugbnf"] +size = Vector3(0.06933594, 0.043426514, 0.26158905) + +[sub_resource type="BoxShape3D" id="BoxShape3D_id8d5"] +size = Vector3(0.17430115, 0.17147827, 0.2852173) + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ugbnf"] +lifetime_randomness = 0.41 +direction = Vector3(0, 0, -1) +spread = 1.621 +initial_velocity_min = 10.0 +initial_velocity_max = 15.0 +angular_velocity_min = -2.290016 +angular_velocity_max = -2.290016 +radial_velocity_min = -2.2000222 +radial_velocity_max = 2.1999776 +scale_min = 0.099999994 +scale_max = 0.5 +collision_mode = 1 +collision_friction = 0.32 +collision_bounce = 0.59 +collision_use_scale = true + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_27xdh"] + +[sub_resource type="QuadMesh" id="QuadMesh_bwwjp"] +material = SubResource("StandardMaterial3D_27xdh") + [node name="extinguisher_model" type="Node3D"] [node name="extinguisher_model" parent="." instance=ExtResource("1_mhjx8")] +mass = 0.534 +physics_material_override = SubResource("PhysicsMaterial_ugbnf") +center_of_mass_mode = 1 +center_of_mass = Vector3(0, -0.3, 0) +picked_up_layer = 65540 [node name="tank" type="MeshInstance3D" parent="extinguisher_model"] mesh = SubResource("ArrayMesh_ytjak") @@ -199,9 +206,10 @@ mesh = SubResource("ArrayMesh_s00sf") skeleton = NodePath("") [node name="hose" type="MeshInstance3D" parent="extinguisher_model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6875, -0.3125) -mesh = SubResource("ArrayMesh_l50a2") +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0028579235, -0.019274533) +mesh = ExtResource("3_ugbnf") skeleton = NodePath("") +surface_material_override/0 = SubResource("StandardMaterial3D_id8d5") [node name="release lever" type="MeshInstance3D" parent="extinguisher_model"] transform = Transform3D(1, 0, -2.3574103e-09, 0, 0.9396927, 0.34202003, 0, -0.3420201, 0.9396926, -6.2864274e-09, 1.25, 1.0430813e-07) @@ -217,4 +225,30 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.50219727, 0) shape = SubResource("CylinderShape3D_mhjx8") [node name="GrabPointHandRight" parent="extinguisher_model" instance=ExtResource("3_fnuwe")] +transform = Transform3D(1, 0, 0, 0, 0.9893639, -0.14546143, 0, 0.14546143, 0.9893639, 0, 1.3369559, 0.02234684) +snap_hand = false hand_pose = SubResource("Resource_ugbnf") + +[node name="GrabPointHandLeft" parent="extinguisher_model" instance=ExtResource("3_fnuwe")] +transform = Transform3D(1, 0, 0, 0, 0.9893639, -0.14546143, 0, 0.14546143, 0.9893639, 0, 1.3369559, 0.02234684) +hand = 0 +snap_hand = false +hand_pose = SubResource("Resource_ugbnf") + +[node name="CollisionShape3D3" type="CollisionShape3D" parent="extinguisher_model"] +transform = Transform3D(1, 0, 0, 0, 0.937142, 0.34894824, 0, -0.34894824, 0.937142, -0.0024414063, 1.2870162, 0.06027595) +shape = SubResource("BoxShape3D_ugbnf") + +[node name="CollisionShape3D4" type="CollisionShape3D" parent="extinguisher_model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00059975684, 1.1687922, -0.17868412) +shape = SubResource("BoxShape3D_id8d5") + +[node name="GPUParticles3D" type="GPUParticles3D" parent="extinguisher_model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1657132, -0.29093397) +amount = 65 +amount_ratio = 0.0 +process_material = SubResource("ParticleProcessMaterial_ugbnf") +draw_pass_1 = SubResource("QuadMesh_bwwjp") + +[connection signal="action_pressed" from="extinguisher_model" to="extinguisher_model" method="_on_action_pressed"] +[connection signal="released" from="extinguisher_model" to="extinguisher_model" method="_on_released"] diff --git a/assets/psx-fire-extinguisher/source/josé.mtl b/assets/psx-fire-extinguisher/source/josé.mtl new file mode 100644 index 0000000..4006a21 --- /dev/null +++ b/assets/psx-fire-extinguisher/source/josé.mtl @@ -0,0 +1,12 @@ +# Blender 4.3.2 MTL File: 'extinguisher.blend' +# www.blender.org + +newmtl Material_0 +Ns 0.000000 +Ka 1.000000 1.000000 1.000000 +Kd 0.800000 0.800000 0.800000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.500000 +d 1.000000 +illum 2 diff --git a/assets/psx-fire-extinguisher/source/josé.obj b/assets/psx-fire-extinguisher/source/josé.obj new file mode 100644 index 0000000..99eb35e --- /dev/null +++ b/assets/psx-fire-extinguisher/source/josé.obj @@ -0,0 +1,206 @@ +# Blender 4.3.2 +# www.blender.org +mtllib josé.mtl +o hose +v 0.032175 1.188286 -0.087212 +v 0.015358 1.205103 -0.087212 +v 0.015358 1.140324 -0.087212 +v 0.032175 1.157141 -0.087212 +v 0.032175 1.188295 -0.022433 +v 0.015368 1.205103 -0.022433 +v -0.015787 1.205103 -0.087212 +v -0.032603 1.188286 -0.087212 +v -0.032603 1.157141 -0.087212 +v -0.015787 1.140324 -0.087212 +v -0.032603 1.157132 -0.022433 +v -0.015796 1.140324 -0.022433 +v -0.015796 1.205103 -0.022433 +v -0.032603 1.188295 -0.022433 +v 0.015368 1.140324 -0.022433 +v 0.032175 1.157132 -0.022433 +v -0.086610 1.242283 -0.301188 +v -0.069784 1.259110 -0.301188 +v -0.074887 1.247386 -0.301188 +v -0.069784 1.086317 -0.301188 +v -0.086610 1.103144 -0.301188 +v -0.074887 1.098040 -0.301188 +v 0.069356 1.259110 -0.301188 +v 0.086182 1.242283 -0.301188 +v 0.074459 1.247386 -0.301188 +v 0.086182 1.103144 -0.301188 +v 0.069356 1.086317 -0.301188 +v 0.074459 1.098040 -0.301188 +v -0.055599 1.245425 -0.301188 +v -0.072926 1.228098 -0.301188 +v -0.074852 1.247351 -0.301188 +v -0.072926 1.117329 -0.301188 +v -0.055599 1.100002 -0.301188 +v -0.074852 1.098076 -0.301188 +v 0.072497 1.228098 -0.301188 +v 0.055171 1.245425 -0.301188 +v 0.074424 1.247351 -0.301188 +v 0.055171 1.100002 -0.301188 +v 0.072497 1.117329 -0.301188 +v 0.074424 1.098076 -0.301188 +v -0.023353 1.178526 -0.103970 +v -0.006027 1.195853 -0.103970 +v -0.006027 1.149574 -0.103970 +v -0.023353 1.166901 -0.103970 +v 0.005599 1.195853 -0.103970 +v 0.022925 1.178526 -0.103970 +v 0.022925 1.166901 -0.103970 +v 0.005599 1.149574 -0.103970 +vn -0.0000 -0.9696 0.2447 +vn -0.9696 -0.0000 0.2447 +vn -0.0000 -0.9698 -0.2438 +vn 0.9696 -0.0000 0.2447 +vn -0.0000 -0.0000 -1.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 0.9696 0.2447 +vn 1.0000 -0.0000 -0.0000 +vn -0.9698 -0.0000 -0.2438 +vn -0.0000 0.9698 -0.2438 +vn 0.7071 0.7071 -0.0001 +vn -0.7071 -0.7071 -0.0001 +vn 0.7071 -0.7071 -0.0001 +vn -0.7071 0.7071 -0.0001 +vn -0.6660 -0.6660 0.3361 +vn 0.6660 -0.6660 0.3361 +vn -0.6660 0.6660 0.3361 +vn 0.6660 0.6660 0.3361 +vn -0.0000 1.0000 -0.0000 +vn -0.6663 0.6663 -0.3349 +vn -0.6663 -0.6663 -0.3349 +vn 0.6663 -0.6663 -0.3349 +vn 0.6663 0.6663 -0.3349 +vn 0.9698 -0.0000 -0.2438 +vt 0.310099 0.500000 +vt 0.189901 0.500000 +vt 0.149345 0.500000 +vt 0.350655 0.500000 +vt 0.439901 0.750000 +vt 0.560099 0.750000 +vt 0.600655 0.750000 +vt 0.399345 0.750000 +vt 0.605200 0.794868 +vt 0.605201 0.955132 +vt 0.605201 0.901427 +vt 0.605200 0.848573 +vt 0.560099 0.000000 +vt 0.439901 0.000000 +vt 0.399345 0.000000 +vt 0.600655 0.000000 +vt 0.439866 0.250000 +vt 0.375000 0.314866 +vt 0.375000 0.435134 +vt 0.439866 0.500000 +vt 0.560134 0.500000 +vt 0.625000 0.435134 +vt 0.625000 0.314866 +vt 0.560134 0.250000 +vt 0.375000 0.814901 +vt 0.375000 0.935099 +vt 0.439901 1.000000 +vt 0.560099 1.000000 +vt 0.625000 0.935099 +vt 0.625000 0.814901 +vt 0.189901 0.500000 +vt 0.310134 0.750000 +vt 0.189866 0.750000 +vt 0.394799 0.848573 +vt 0.473573 0.769799 +vt 0.526427 0.769799 +vt 0.526427 0.980201 +vt 0.473573 0.980201 +vt 0.394800 0.901427 +vt 0.810099 0.500000 +vt 0.689901 0.500000 +vt 0.649345 0.500000 +vt 0.850655 0.500000 +vt 0.607987 0.767013 +vt 0.580132 0.769799 +vt 0.419868 0.769799 +vt 0.392013 0.767013 +vt 0.391962 0.766962 +vt 0.608038 0.766962 +vt 0.392013 0.982987 +vt 0.419868 0.980201 +vt 0.580132 0.980200 +vt 0.607987 0.982987 +vt 0.608038 0.983038 +vt 0.600655 1.000000 +vt 0.399345 1.000000 +vt 0.391962 0.983039 +vt 0.419868 0.980201 +vt 0.394800 0.955132 +vt 0.394799 0.794868 +vt 0.392013 0.767013 +vt 0.392013 0.982987 +vt 0.391962 0.983039 +vt 0.375000 0.975655 +vt 0.375000 0.774345 +vt 0.391962 0.766962 +vt 0.605200 0.955132 +vt 0.605201 0.794868 +vt 0.607987 0.767013 +vt 0.608038 0.766962 +vt 0.625000 0.774345 +vt 0.625000 0.975655 +vt 0.612828 0.762172 +vt 0.375000 0.750000 +vt 0.391541 0.750000 +vt 0.612828 0.987828 +vt 0.375000 0.500000 +vt 0.358459 0.500000 +vt 0.689866 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.000000 +vt 0.810134 0.750000 +vt 0.605201 0.768027 +vt 0.393027 0.769800 +vt 0.606973 0.980201 +vt 0.394800 0.981973 +s 0 +usemtl Material_0 +f 3/1/1 10/2/1 20/3/1 27/4/1 +f 9/5/2 8/6/2 17/7/2 21/8/2 +f 29/9/3 36/10/3 45/11/3 42/12/3 +f 1/13/4 4/14/4 26/15/4 24/16/4 +f 16/17/5 15/18/5 12/19/5 11/20/5 14/21/5 13/22/5 6/23/5 5/24/5 +f 9/5/6 10/25/6 3/26/6 4/27/6 1/28/6 2/29/6 7/30/6 8/6/6 +f 10/31/7 3/1/7 15/32/7 12/33/7 +f 43/34/5 44/35/5 41/36/5 42/12/5 45/11/5 46/37/5 47/38/5 48/39/5 +f 11/20/8 14/21/8 8/6/8 9/5/8 +f 7/40/9 2/41/9 23/42/9 18/43/9 +f 4/14/10 1/13/10 5/24/10 16/17/10 +f 31/44/5 30/45/5 32/46/5 34/47/5 22/48/5 21/8/5 17/7/5 19/49/5 +f 40/50/5 39/51/5 35/52/5 37/53/5 25/54/5 24/55/5 26/56/5 28/57/5 +f 35/52/11 39/58/11 47/38/11 46/37/11 +f 38/59/12 33/60/12 43/34/12 48/39/12 +f 34/61/5 33/60/5 38/59/5 40/62/5 28/63/5 27/64/5 20/65/5 22/66/5 +f 37/53/5 36/67/5 29/68/5 31/69/5 19/70/5 18/71/5 23/72/5 25/54/5 +f 17/73/5 18/71/5 19/70/5 +f 20/74/5 21/8/5 22/75/5 +f 23/76/5 24/55/5 25/54/5 +f 26/77/5 27/4/5 28/78/5 +f 2/41/13 6/79/13 5/80/13 1/81/13 +f 10/74/14 12/77/14 11/20/14 9/5/14 +f 15/32/15 3/1/15 4/77/15 16/74/15 +f 13/81/16 7/80/16 8/6/16 14/21/16 +f 9/5/17 21/8/17 20/74/17 10/74/17 +f 26/77/18 4/77/18 3/1/18 27/4/18 +f 7/80/19 18/80/19 17/7/19 8/6/19 +f 23/82/20 2/82/20 1/13/20 24/16/20 +f 2/41/21 7/40/21 13/83/21 6/79/21 +f 29/9/5 30/84/5 31/44/5 +f 32/46/5 33/85/5 34/61/5 +f 35/52/5 36/86/5 37/53/5 +f 38/59/5 39/87/5 40/50/5 +f 38/59/22 48/39/22 47/38/22 39/58/22 +f 45/11/23 36/10/23 35/52/23 46/37/23 +f 41/36/24 30/45/24 29/9/24 42/12/24 +f 32/46/25 44/35/25 43/34/25 33/60/25 +f 32/46/26 30/45/26 41/36/26 44/35/26 diff --git a/assets/psx-fire-extinguisher/source/josé.obj.import b/assets/psx-fire-extinguisher/source/josé.obj.import new file mode 100644 index 0000000..83fa49e --- /dev/null +++ b/assets/psx-fire-extinguisher/source/josé.obj.import @@ -0,0 +1,25 @@ +[remap] + +importer="wavefront_obj" +importer_version=1 +type="Mesh" +uid="uid://5km1hdev7qmn" +path="res://.godot/imported/josé.obj-58471131465eeb42be42f5beebcf037b.mesh" + +[deps] + +files=["res://.godot/imported/josé.obj-58471131465eeb42be42f5beebcf037b.mesh"] + +source_file="res://assets/psx-fire-extinguisher/source/josé.obj" +dest_files=["res://.godot/imported/josé.obj-58471131465eeb42be42f5beebcf037b.mesh", "res://.godot/imported/josé.obj-58471131465eeb42be42f5beebcf037b.mesh"] + +[params] + +generate_tangents=true +generate_lods=true +generate_shadow_mesh=true +generate_lightmap_uv2=false +generate_lightmap_uv2_texel_size=0.2 +scale_mesh=Vector3(1, 1, 1) +offset_mesh=Vector3(0, 0, 0) +force_disable_mesh_compression=false diff --git a/game/game_state.gd b/game/game_state.gd index 7d4dd86..db6e721 100644 --- a/game/game_state.gd +++ b/game/game_state.gd @@ -10,6 +10,7 @@ extends PersistentWorld ## The [GameStaging] script populates the staging and current_zone fields ## of this script in response to scene switching. +@export var comfort_vignette = false ## Game difficulty options enum GameDifficulty { @@ -107,6 +108,7 @@ func save_world_state() -> bool: set_value("game_difficulty", game_difficulty) set_value("current_zone_id", current_zone.zone_info.zone_id) set_value("current_location", body.global_transform) + set_value("comfort_vignette", comfort_vignette) return true @@ -130,6 +132,8 @@ func load_world_state() -> bool: # Restore the game difficulty game_difficulty = get_value("game_difficulty") + + comfort_vignette = get_value("comfort_vignette") # Get the zone var zone := zone_database.get_zone(zone_id) diff --git a/game/start_scene/start_ui.gd b/game/start_scene/start_ui.gd index a03d9a9..5e65e2c 100644 --- a/game/start_scene/start_ui.gd +++ b/game/start_scene/start_ui.gd @@ -26,7 +26,7 @@ func _set_pane(p_no): # Main menu func _on_new_game_btn_pressed(): - _set_pane(2) + GameState.new_game(GameState.GameDifficulty.GAME_EASY) func _on_load_game_btn_pressed(): _set_pane(3) @@ -52,6 +52,7 @@ func _on_back_btn_pressed(): _set_pane(1) # Load game + func _on_start_button_pressed(): var selected_items = save_list_node.get_selected_items() @@ -63,3 +64,10 @@ func _on_start_button_pressed(): var save_name = save_list[selected_item] print("Loading save: ", save_name) GameState.load_game(save_name) + + +func _on_comfort_vignette_btn_button_up() -> void: + GameState.comfort_vignette = true + +func _on_comfort_vignette_btn_button_down() -> void: + GameState.comfort_vignette = false diff --git a/game/start_scene/start_ui.tscn b/game/start_scene/start_ui.tscn index 66bc806..4747476 100644 --- a/game/start_scene/start_ui.tscn +++ b/game/start_scene/start_ui.tscn @@ -94,12 +94,6 @@ layout_mode = 2 theme_override_font_sizes/font_size = 25 text = "Back " -[node name="SmoothTurnBtn" type="CheckButton" parent="Options"] -layout_mode = 2 - -[node name="SmoothMoveBtn" type="CheckButton" parent="Options"] -layout_mode = 2 - [node name="ComfortVignetteBtn" type="CheckButton" parent="Options"] layout_mode = 2 @@ -114,3 +108,5 @@ layout_mode = 2 [connection signal="pressed" from="LoadGame/StartBtn" to="." method="_on_start_button_pressed"] [connection signal="pressed" from="LoadGame/BackBtn" to="." method="_on_back_btn_pressed"] [connection signal="pressed" from="Options/BackBtn" to="." method="_on_back_btn_pressed"] +[connection signal="button_down" from="Options/ComfortVignetteBtn" to="." method="_on_comfort_vignette_btn_button_down"] +[connection signal="button_up" from="Options/ComfortVignetteBtn" to="." method="_on_comfort_vignette_btn_button_up"] diff --git a/game/zones/outside/extinguishers.gd b/game/zones/outside/extinguishers.gd new file mode 100644 index 0000000..01a8571 --- /dev/null +++ b/game/zones/outside/extinguishers.gd @@ -0,0 +1,17 @@ +extends Node3D + +func _ready() -> void: + # Avoid duplicating again if already created + if has_node("extinguisher_model_0"): + return + + var original = find_child("extinguisher_model", true, false) + if not original: + push_warning("No node named 'extinguisher_model' found.") + return + + for i in range(10): + var copy = original.duplicate() + copy.name = "extinguisher_model_%d" % i + copy.position = original.position + Vector3(0, 0, i * 0.5) + add_child(copy) diff --git a/game/zones/outside/extinguishers.gd.uid b/game/zones/outside/extinguishers.gd.uid new file mode 100644 index 0000000..e8ec978 --- /dev/null +++ b/game/zones/outside/extinguishers.gd.uid @@ -0,0 +1 @@ +uid://elfxvp7ojn1s diff --git a/game/zones/outside/outside_zone.tscn b/game/zones/outside/outside_zone.tscn index f8bd822..b8e9673 100644 --- a/game/zones/outside/outside_zone.tscn +++ b/game/zones/outside/outside_zone.tscn @@ -1,80 +1,73 @@ -[gd_scene load_steps=39 format=3 uid="uid://cjat5u6nsihgw"] +[gd_scene load_steps=27 format=3 uid="uid://cjat5u6nsihgw"] [ext_resource type="PackedScene" uid="uid://cvn48xcmsmkrb" path="res://game/zones/zone_base.tscn" id="1_sk0kv"] [ext_resource type="Material" uid="uid://csepeix2yvih" path="res://assets/prototype_materials/grass.tres" id="2_uryyw"] [ext_resource type="Material" uid="uid://c7prktlpm7tmm" path="res://assets/prototype_materials/forest.tres" id="3_wfk2d"] [ext_resource type="Resource" uid="uid://to5lown6orfd" path="res://game/zones/outside/outside_zone_info.tres" id="3_wyepd"] [ext_resource type="Script" uid="uid://dn6lkhk3gbq4n" path="res://components/helpers/scatter.gd" id="4_v2d8i"] -[ext_resource type="Material" uid="uid://c386ygo86nqfc" path="res://assets/prototype_materials/wood_brown.tres" id="4_yw2go"] -[ext_resource type="Material" uid="uid://cjylinr1vdjcw" path="res://assets/prototype_materials/dark_brown.tres" id="5_peq87"] -[ext_resource type="Material" uid="uid://ccdofvku4c7w3" path="res://assets/prototype_materials/stone_grey.tres" id="6_y2a7s"] -[ext_resource type="PackedScene" uid="uid://vm423o6hdlya" path="res://components/helpers/zone_switch_area.tscn" id="7_omnq0"] [ext_resource type="Environment" uid="uid://er867l7dl10j" path="res://default_env.tres" id="8_82q6b"] +[ext_resource type="Script" uid="uid://elfxvp7ojn1s" path="res://game/zones/outside/extinguishers.gd" id="8_cuabg"] [ext_resource type="PackedScene" uid="uid://bhdq6md7l8avi" path="res://assets/psx-fire-extinguisher/source/extinguisher_model.tscn" id="9_twjr1"] -[ext_resource type="PackedScene" uid="uid://c4rpcr7s5pt3v" path="res://game/items/rock/rock.tscn" id="12_cxbia"] -[ext_resource type="PackedScene" uid="uid://chch4r7wddwdj" path="res://game/objects/storage/storage_box.tscn" id="13_galon"] -[ext_resource type="PackedScene" uid="uid://dbepe4i2q62yy" path="res://game/items/crate/crate.tscn" id="13_mtgv7"] -[ext_resource type="PackedScene" uid="uid://c33bpwxnrb0gr" path="res://game/items/toolbox/toolbox.tscn" id="14_68l3l"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vljgg"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_cuabg"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_tk2pl"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_j0qyq"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_twjr1"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_2oy5v"] filter_enabled = true filters = ["Armature/Skeleton3D:Little_Distal_L", "Armature/Skeleton3D:Little_Intermediate_L", "Armature/Skeleton3D:Little_Metacarpal_L", "Armature/Skeleton3D:Little_Proximal_L", "Armature/Skeleton3D:Middle_Distal_L", "Armature/Skeleton3D:Middle_Intermediate_L", "Armature/Skeleton3D:Middle_Metacarpal_L", "Armature/Skeleton3D:Middle_Proximal_L", "Armature/Skeleton3D:Ring_Distal_L", "Armature/Skeleton3D:Ring_Intermediate_L", "Armature/Skeleton3D:Ring_Metacarpal_L", "Armature/Skeleton3D:Ring_Proximal_L", "Armature/Skeleton3D:Thumb_Distal_L", "Armature/Skeleton3D:Thumb_Metacarpal_L", "Armature/Skeleton3D:Thumb_Proximal_L", "Armature/Skeleton:Little_Distal_L", "Armature/Skeleton:Little_Intermediate_L", "Armature/Skeleton:Little_Proximal_L", "Armature/Skeleton:Middle_Distal_L", "Armature/Skeleton:Middle_Intermediate_L", "Armature/Skeleton:Middle_Proximal_L", "Armature/Skeleton:Ring_Distal_L", "Armature/Skeleton:Ring_Intermediate_L", "Armature/Skeleton:Ring_Proximal_L", "Armature/Skeleton:Thumb_Distal_L", "Armature/Skeleton:Thumb_Proximal_L"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u7c0g"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_vljgg"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_gfaum"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_tk2pl"] filter_enabled = true filters = ["Armature/Skeleton3D:Index_Distal_L", "Armature/Skeleton3D:Index_Intermediate_L", "Armature/Skeleton3D:Index_Metacarpal_L", "Armature/Skeleton3D:Index_Proximal_L", "Armature/Skeleton:Index_Distal_L", "Armature/Skeleton:Index_Intermediate_L", "Armature/Skeleton:Index_Proximal_L"] -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_mpg1a"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_twjr1"] graph_offset = Vector2(-536, 11) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_vljgg") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_cuabg") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_tk2pl") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_j0qyq") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_twjr1") +nodes/Grip/node = SubResource("AnimationNodeBlend2_2oy5v") nodes/Grip/position = Vector2(0, 20) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_u7c0g") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_vljgg") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_gfaum") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_tk2pl") nodes/Trigger/position = Vector2(-360, 20) node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_airyt"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_u7c0g"] animation = &"Grip" -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_qeajv"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_gfaum"] animation = &"Grip" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_rejpy"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_mpg1a"] filter_enabled = true filters = ["Armature/Skeleton3D:Little_Distal_R", "Armature/Skeleton3D:Little_Intermediate_R", "Armature/Skeleton3D:Little_Metacarpal_R", "Armature/Skeleton3D:Little_Proximal_R", "Armature/Skeleton3D:Middle_Distal_R", "Armature/Skeleton3D:Middle_Intermediate_R", "Armature/Skeleton3D:Middle_Metacarpal_R", "Armature/Skeleton3D:Middle_Proximal_R", "Armature/Skeleton3D:Ring_Distal_R", "Armature/Skeleton3D:Ring_Intermediate_R", "Armature/Skeleton3D:Ring_Metacarpal_R", "Armature/Skeleton3D:Ring_Proximal_R", "Armature/Skeleton3D:Thumb_Distal_R", "Armature/Skeleton3D:Thumb_Metacarpal_R", "Armature/Skeleton3D:Thumb_Proximal_R", "Armature/Skeleton:Little_Distal_R", "Armature/Skeleton:Little_Intermediate_R", "Armature/Skeleton:Little_Proximal_R", "Armature/Skeleton:Middle_Distal_R", "Armature/Skeleton:Middle_Intermediate_R", "Armature/Skeleton:Middle_Proximal_R", "Armature/Skeleton:Ring_Distal_R", "Armature/Skeleton:Ring_Intermediate_R", "Armature/Skeleton:Ring_Proximal_R", "Armature/Skeleton:Thumb_Distal_R", "Armature/Skeleton:Thumb_Proximal_R"] -[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_xhwk3"] +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_airyt"] animation = &"Grip 5" -[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_if2vo"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_qeajv"] filter_enabled = true filters = ["Armature/Skeleton3D:Index_Distal_R", "Armature/Skeleton3D:Index_Intermediate_R", "Armature/Skeleton3D:Index_Metacarpal_R", "Armature/Skeleton3D:Index_Proximal_R", "Armature/Skeleton:Index_Distal_R", "Armature/Skeleton:Index_Intermediate_R", "Armature/Skeleton:Index_Proximal_R"] -[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_qimua"] +[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_rejpy"] graph_offset = Vector2(-552.664, 107.301) -nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_airyt") +nodes/ClosedHand1/node = SubResource("AnimationNodeAnimation_u7c0g") nodes/ClosedHand1/position = Vector2(-600, 300) -nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_qeajv") +nodes/ClosedHand2/node = SubResource("AnimationNodeAnimation_gfaum") nodes/ClosedHand2/position = Vector2(-360, 300) -nodes/Grip/node = SubResource("AnimationNodeBlend2_rejpy") +nodes/Grip/node = SubResource("AnimationNodeBlend2_mpg1a") nodes/Grip/position = Vector2(0, 40) -nodes/OpenHand/node = SubResource("AnimationNodeAnimation_xhwk3") +nodes/OpenHand/node = SubResource("AnimationNodeAnimation_airyt") nodes/OpenHand/position = Vector2(-600, 100) -nodes/Trigger/node = SubResource("AnimationNodeBlend2_if2vo") +nodes/Trigger/node = SubResource("AnimationNodeBlend2_qeajv") nodes/Trigger/position = Vector2(-360, 40) node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"] @@ -99,29 +92,12 @@ size = Vector2(0.02, 0.1) cull_mode = 2 albedo_color = Color(0, 0.603922, 0.0901961, 1) -[sub_resource type="SphereMesh" id="SphereMesh_6ysum"] -material = ExtResource("6_y2a7s") -radius = 3.0 -height = 4.0 -radial_segments = 5 -rings = 3 - -[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_f4wyk"] -points = PackedVector3Array(-1.7634, 0, -2.42705, -1.24728, -1.41425, -1.71626, -2.85317, 0, 0.926607, -1.24728, 1.41386, -1.71626, 1.76284, 0, -2.42705, 1.24673, -1.41425, -1.71626, 0, -2, -0.000390053, -2.01755, -1.41425, 0.655149, -2.01755, 1.41386, 0.655149, 0, 0, 3, 0, 2, -0.000390053, 1.24673, 1.41386, -1.71626, 2.85317, 0, 0.926607, 2.01699, -1.41425, 0.655149, 0, -1.41425, 2.12081, 0, 1.41386, 2.12081, 2.01699, 1.41386, 0.655149) - -[sub_resource type="BoxMesh" id="BoxMesh_s0cu3"] -material = ExtResource("5_peq87") -size = Vector3(1, 3, 0.2) - -[sub_resource type="BoxShape3D" id="BoxShape3D_lsqhn"] -size = Vector3(1, 3, 0.1) - -[sub_resource type="BoxShape3D" id="BoxShape3D_wdgkd"] -size = Vector3(1, 3, 0.2) - [node name="OutsideZone" instance=ExtResource("1_sk0kv")] zone_info = ExtResource("3_wyepd") +[node name="BackPocket" parent="XROrigin3D/XRCamera3D" index="0"] +visible = false + [node name="Skeleton3D" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L/Armature" index="0"] bones/1/rotation = Quaternion(0.323537, -2.5658142e-05, -0.027220426, 0.9458239) bones/2/rotation = Quaternion(-0.09044407, -0.04151748, -0.16629349, 0.98104167) @@ -148,7 +124,7 @@ transform = Transform3D(0.5408296, 0.8408128, -0.023173608, -0.08262672, 0.08052 [node name="AnimationTree" parent="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand" index="1"] root_node = NodePath("../Hand_Nails_low_L") -tree_root = SubResource("AnimationNodeBlendTree_mpg1a") +tree_root = SubResource("AnimationNodeBlendTree_twjr1") [node name="WristUI" parent="XROrigin3D/LeftHand/CollisionHandLeft" index="7"] scene_properties_keys = PackedStringArray("zone_wrist_ui.gd") @@ -179,7 +155,13 @@ transform = Transform3D(0.5408295, -0.8408129, 0.023173586, 0.08262676, 0.080524 [node name="AnimationTree" parent="XROrigin3D/RightHand/CollisionHandRight/RightHand" index="1"] root_node = NodePath("../Hand_Nails_low_R") -tree_root = SubResource("AnimationNodeBlendTree_qimua") +tree_root = SubResource("AnimationNodeBlendTree_rejpy") + +[node name="LeftPocket" parent="XROrigin3D/PlayerBody" index="0"] +visible = false + +[node name="RightPocket" parent="XROrigin3D/PlayerBody" index="1"] +visible = false [node name="World" type="Node3D" parent="." index="1"] @@ -247,89 +229,12 @@ instance_count = 3000 mesh = SubResource("QuadMesh_pt6e2") material_override = SubResource("StandardMaterial3D_srm7c") -[node name="Stone1" type="StaticBody3D" parent="World" index="8"] -transform = Transform3D(0.764321, 0.0519332, 0.642742, -0.26228, 0.935615, 0.236294, -0.589087, -0.349183, 0.72873, 7, 0, 8) +[node name="extinguishers" type="Node3D" parent="World" index="8"] +transform = Transform3D(0.38699996, 1.8626451e-09, 0, -1.8626451e-09, 0.387, -1.8626451e-09, 1.4901161e-08, -9.313226e-10, 0.38699996, 0, 0.06884384, -2.2083645) +script = ExtResource("8_cuabg") -[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Stone1" index="0"] -transform = Transform3D(1, -1.42492e-07, 0, 3.63216e-08, 1, 0, 0, 1.49012e-08, 1, 0, 0, 0) -mesh = SubResource("SphereMesh_6ysum") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Stone1" index="1"] -transform = Transform3D(1, -1.42492e-07, 0, 3.63216e-08, 1, 0, 0, 1.49012e-08, 1, 0, 0, 0) -shape = SubResource("ConvexPolygonShape3D_f4wyk") - -[node name="Stone2" type="StaticBody3D" parent="World" index="9"] -transform = Transform3D(0.417223, -0.0502081, 0.907416, -0.0618827, 0.994586, 0.0834845, -0.906695, -0.0909851, 0.411857, -8, -0.4, 8) - -[node name="MeshInstance3D" type="MeshInstance3D" parent="World/Stone2" index="0"] -transform = Transform3D(1, -1.56462e-07, 0, 4.47035e-08, 1, 3.35276e-08, 0, 1.49012e-08, 1, 0, 0, 0) -mesh = SubResource("SphereMesh_6ysum") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="World/Stone2" index="1"] -transform = Transform3D(1, -1.42492e-07, 0, 3.63216e-08, 1, 0, 0, 1.49012e-08, 1, 0, 0, 0) -shape = SubResource("ConvexPolygonShape3D_f4wyk") - -[node name="extinguisher_model" parent="World" index="10" instance=ExtResource("9_twjr1")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.06884384, -2.2083645) - -[node name="HouseEntrance" type="Node3D" parent="." index="2"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8.6) - -[node name="Exterior" type="CSGPolygon3D" parent="HouseEntrance" index="0"] -use_collision = true -polygon = PackedVector2Array(-3, 0, -3, 3, 0, 5, 3, 3, 3, 0, 0.5, 0, 0.5, 3, -0.5, 3, -0.5, 0) -material = ExtResource("4_yw2go") - -[node name="Door" type="StaticBody3D" parent="HouseEntrance" index="1"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, -0.5) - -[node name="MeshInstance3D" type="MeshInstance3D" parent="HouseEntrance/Door" index="0"] -mesh = SubResource("BoxMesh_s0cu3") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="HouseEntrance/Door" index="1"] -shape = SubResource("BoxShape3D_lsqhn") - -[node name="ToHouseInterior" parent="." index="3" instance=ExtResource("7_omnq0")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8.7) -zone_scene = "res://game/zones/house_interior/house_interior_zone.tscn" -spawn_node_name = "FromOutside" - -[node name="CollisionShape3D" type="CollisionShape3D" parent="ToHouseInterior" index="0"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) -shape = SubResource("BoxShape3D_wdgkd") - -[node name="FromHouseInterior" type="Marker3D" parent="." index="4"] -transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, -7.6) - -[node name="Rock1" parent="." index="5" instance=ExtResource("12_cxbia")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.02816, 0.159056, 5.29193) -item_id = "rock_outside_1" - -[node name="Rock2" parent="." index="6" instance=ExtResource("12_cxbia")] -transform = Transform3D(0.5, 0, 0.866025, 0, 1, 0, -0.866025, 0, 0.5, 4.52816, 0.159056, 5.29193) -item_id = "rock_outside_2" - -[node name="Rock3" parent="." index="7" instance=ExtResource("12_cxbia")] -transform = Transform3D(0.258819, 0, 0.965926, 0, 1, 0, -0.965926, 0, 0.258819, 4.82816, 0.159056, 5.69193) -item_id = "rock_outside_3" - -[node name="Crate1" parent="." index="8" instance=ExtResource("13_mtgv7")] -transform = Transform3D(0.965926, 0, -0.258819, 0, 1, 0, 0.258819, 0, 0.965926, -6, 0.5, -8.6) -item_id = "crate_outside_1" - -[node name="Crate2" parent="." index="9" instance=ExtResource("13_mtgv7")] -transform = Transform3D(0.996195, 0, 0.0871557, 0, 1, 0, -0.0871557, 0, 0.996195, -4.7, 0.5, -8.6) -item_id = "crate_outside_2" - -[node name="Crate3" parent="." index="10" instance=ExtResource("13_mtgv7")] -transform = Transform3D(1, 0, -2.23517e-08, 0, 1, 0, 2.23517e-08, 0, 1, -5.4, 1.5, -8.6) -item_id = "crate_outside_3" - -[node name="StorageBox" parent="." index="11" instance=ExtResource("13_galon")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, -9) - -[node name="Toolbox" parent="." index="12" instance=ExtResource("14_68l3l")] -transform = Transform3D(0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, 6, 0.117771, 4) +[node name="extinguisher_model" parent="World/extinguishers" index="0" instance=ExtResource("9_twjr1")] +transform = Transform3D(0.78, -3.754169e-09, 3.0033352e-08, 3.754169e-09, 0.78, -1.8770845e-09, -3.0033352e-08, 1.8770847e-09, 0.78, 0, 0, 0) [editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand"] [editable path="XROrigin3D/LeftHand/CollisionHandLeft/LeftHand/Hand_Nails_low_L"] diff --git a/project.godot b/project.godot index 226e54f..2ee7d0a 100644 --- a/project.godot +++ b/project.godot @@ -62,4 +62,5 @@ environment/defaults/default_environment="res://default_env.tres" [xr] openxr/enabled=true +openxr/default_action_map="uid://dsy7663pl3py3" shaders/enabled=true