the rumblerrrrrr

This commit is contained in:
Rob Kelly 2025-03-05 17:57:55 -07:00
parent e2996a373c
commit 64bdc09b41
5 changed files with 76 additions and 35 deletions

View File

@ -19,6 +19,7 @@ var firing := false
@onready var camera_pivot: CameraController = %CameraPivot @onready var camera_pivot: CameraController = %CameraPivot
@onready var spray_muzzle: Marker3D = %SprayMuzzle @onready var spray_muzzle: Marker3D = %SprayMuzzle
@onready var spray_rumbler: Rumbler3D = %SprayRumbler
@onready var interact_ray: RayCast3D = %InteractRay @onready var interact_ray: RayCast3D = %InteractRay
@ -51,9 +52,11 @@ func _physics_process(delta: float) -> void:
if Input.is_action_pressed("fire"): if Input.is_action_pressed("fire"):
get_spray().fire() get_spray().fire()
firing = true firing = true
spray_rumbler.intensity = 0.002
else: else:
get_spray().idle() get_spray().idle()
firing = false firing = false
spray_rumbler.intensity *= 0.8
# Gravity # Gravity
if not is_on_floor(): if not is_on_floor():

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=8 format=3 uid="uid://bwe2jdmvinhqd"] [gd_scene load_steps=9 format=3 uid="uid://bwe2jdmvinhqd"]
[ext_resource type="Script" path="res://src/player/player.gd" id="1_npueo"] [ext_resource type="Script" path="res://src/player/player.gd" id="1_npueo"]
[ext_resource type="Script" path="res://src/player/camera_controller.gd" id="2_veeqv"] [ext_resource type="Script" path="res://src/player/camera_controller.gd" id="2_veeqv"]
[ext_resource type="PackedScene" uid="uid://cc102xko0u6yj" path="res://src/equipment/point_spray/point_spray.tscn" id="3_6wgkm"] [ext_resource type="PackedScene" uid="uid://cc102xko0u6yj" path="res://src/equipment/point_spray/point_spray.tscn" id="3_6wgkm"]
[ext_resource type="PackedScene" uid="uid://d2hnxr5l6w2x4" path="res://src/equipment/wide_spray/wide_spray.tscn" id="3_ibq07"] [ext_resource type="PackedScene" uid="uid://d2hnxr5l6w2x4" path="res://src/equipment/wide_spray/wide_spray.tscn" id="3_ibq07"]
[ext_resource type="Script" path="res://src/ui/rumbler_3d.gd" id="5_ipd7g"]
[ext_resource type="PackedScene" uid="uid://dq1x21tq06dud" path="res://src/ui/hud/player_hud.tscn" id="5_jvafu"] [ext_resource type="PackedScene" uid="uid://dq1x21tq06dud" path="res://src/ui/hud/player_hud.tscn" id="5_jvafu"]
[sub_resource type="BoxMesh" id="BoxMesh_ua7a2"] [sub_resource type="BoxMesh" id="BoxMesh_ua7a2"]
@ -20,21 +21,27 @@ unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
script = ExtResource("2_veeqv") script = ExtResource("2_veeqv")
[node name="SprayNozzle" type="MeshInstance3D" parent="CameraPivot"] [node name="SprayMount" type="Node3D" parent="CameraPivot"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15, -0.1, -0.1) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.15, -0.1, -0.1)
layers = 2
mesh = SubResource("BoxMesh_ua7a2")
[node name="SprayMuzzle" type="Marker3D" parent="CameraPivot/SprayNozzle"] [node name="SprayMuzzle" type="Marker3D" parent="CameraPivot/SprayMount"]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 0.997564, -0.0697565, 0, 0.0697565, 0.997564, 0, 0, -0.15) transform = Transform3D(1, 0, 0, 0, 0.997564, -0.0697565, 0, 0.0697565, 0.997564, 0, 0, -0.15)
[node name="WideSpray" parent="CameraPivot/SprayNozzle/SprayMuzzle" instance=ExtResource("3_ibq07")] [node name="WideSpray" parent="CameraPivot/SprayMount/SprayMuzzle" instance=ExtResource("3_ibq07")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
[node name="PointSpray" parent="CameraPivot/SprayNozzle/SprayMuzzle" instance=ExtResource("3_6wgkm")] [node name="PointSpray" parent="CameraPivot/SprayMount/SprayMuzzle" instance=ExtResource("3_6wgkm")]
visible = false visible = false
[node name="SprayRumbler" type="Node3D" parent="CameraPivot/SprayMount"]
unique_name_in_owner = true
script = ExtResource("5_ipd7g")
[node name="SprayNozzle" type="MeshInstance3D" parent="CameraPivot/SprayMount/SprayRumbler"]
layers = 2
mesh = SubResource("BoxMesh_ua7a2")
skeleton = NodePath("../../..")
[node name="Camera3D" type="Camera3D" parent="CameraPivot"] [node name="Camera3D" type="Camera3D" parent="CameraPivot"]
current = true current = true

View File

@ -81,6 +81,33 @@ emission_energy_multiplier = 0.0
material = SubResource("StandardMaterial3D_0cc87") material = SubResource("StandardMaterial3D_0cc87")
size = Vector3(0.08, 0.05, 0.025) size = Vector3(0.08, 0.05, 0.025)
[sub_resource type="Animation" id="Animation_ugm6b"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Lights/DangerLight:mesh:material:emission_energy_multiplier")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Lights/SuccessLight:mesh:material:emission_energy_multiplier")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_pea1n"] [sub_resource type="Animation" id="Animation_pea1n"]
resource_name = "error_blink" resource_name = "error_blink"
length = 4.0 length = 4.0
@ -110,33 +137,6 @@ tracks/1/keys = {
"values": [0.0] "values": [0.0]
} }
[sub_resource type="Animation" id="Animation_ugm6b"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Lights/DangerLight:mesh:material:emission_energy_multiplier")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Lights/SuccessLight:mesh:material:emission_energy_multiplier")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_njbf4"] [sub_resource type="Animation" id="Animation_njbf4"]
resource_name = "success" resource_name = "success"
length = 0.5 length = 0.5

15
src/ui/rumbler.gd Normal file
View File

@ -0,0 +1,15 @@
@tool
class_name Rumbler extends Control
## Rumbles children.
const EPSILON := 1e-6
@export var intensity := 0.0
func _process(_delta: float) -> void:
if intensity > EPSILON:
position.x = randfn(0, intensity)
position.y = randfn(0, intensity)
else:
position = Vector2.ZERO

16
src/ui/rumbler_3d.gd Normal file
View File

@ -0,0 +1,16 @@
@tool
class_name Rumbler3D extends Node3D
## Rumbles children.
const EPSILON := 1e-6
@export var intensity := 0.0
func _process(_delta: float) -> void:
if intensity > EPSILON:
position.x = randfn(0, intensity)
position.y = randfn(0, intensity)
position.z = randfn(0, intensity)
else:
position = Vector3.ZERO