generated from krampus/template-godot4
the rumblerrrrrr
This commit is contained in:
parent
e2996a373c
commit
64bdc09b41
@ -19,6 +19,7 @@ var firing := false
|
||||
|
||||
@onready var camera_pivot: CameraController = %CameraPivot
|
||||
@onready var spray_muzzle: Marker3D = %SprayMuzzle
|
||||
@onready var spray_rumbler: Rumbler3D = %SprayRumbler
|
||||
@onready var interact_ray: RayCast3D = %InteractRay
|
||||
|
||||
|
||||
@ -51,9 +52,11 @@ func _physics_process(delta: float) -> void:
|
||||
if Input.is_action_pressed("fire"):
|
||||
get_spray().fire()
|
||||
firing = true
|
||||
spray_rumbler.intensity = 0.002
|
||||
else:
|
||||
get_spray().idle()
|
||||
firing = false
|
||||
spray_rumbler.intensity *= 0.8
|
||||
|
||||
# Gravity
|
||||
if not is_on_floor():
|
||||
|
@ -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/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://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"]
|
||||
|
||||
[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)
|
||||
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)
|
||||
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
|
||||
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")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
[node name="WideSpray" parent="CameraPivot/SprayMount/SprayMuzzle" instance=ExtResource("3_ibq07")]
|
||||
|
||||
[node name="PointSpray" parent="CameraPivot/SprayNozzle/SprayMuzzle" instance=ExtResource("3_6wgkm")]
|
||||
[node name="PointSpray" parent="CameraPivot/SprayMount/SprayMuzzle" instance=ExtResource("3_6wgkm")]
|
||||
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"]
|
||||
current = true
|
||||
|
||||
|
@ -81,6 +81,33 @@ emission_energy_multiplier = 0.0
|
||||
material = SubResource("StandardMaterial3D_0cc87")
|
||||
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"]
|
||||
resource_name = "error_blink"
|
||||
length = 4.0
|
||||
@ -110,33 +137,6 @@ tracks/1/keys = {
|
||||
"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"]
|
||||
resource_name = "success"
|
||||
length = 0.5
|
||||
|
15
src/ui/rumbler.gd
Normal file
15
src/ui/rumbler.gd
Normal 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
16
src/ui/rumbler_3d.gd
Normal 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
|
Loading…
x
Reference in New Issue
Block a user