small racing game im working on
Diffstat (limited to 'assets/cars/engine.gd')
-rw-r--r--assets/cars/engine.gd36
1 files changed, 6 insertions, 30 deletions
diff --git a/assets/cars/engine.gd b/assets/cars/engine.gd
index f5f0511..6fadd31 100644
--- a/assets/cars/engine.gd
+++ b/assets/cars/engine.gd
@@ -1,34 +1,10 @@
-extends Node3D
+extends EngineNoise
-@onready var idle := $idle as AudioStreamPlayer
-@onready var low := $low as AudioStreamPlayer
-@onready var med := $med as AudioStreamPlayer
-@onready var high := $high as AudioStreamPlayer
-
-@onready var players: Array[AudioStreamPlayer] = [idle, low, med, high]
-@export var db_curves: Array[Curve]
-@export var pitch_curves: Array[Curve]
-
-@export var car: Car
-
-var n: float = 0
+@onready var car: Car = get_parent();
func _ready() -> void:
- await get_tree().physics_frame
- for p in players: p.play()
-
-func _process(d: float):
- var r := car.rpm()
- if car.engine_force > 0.1 and car.is_on_ground():
- n = move_toward(n, clampf(r / 700.0, 0, 1), 1 * d)
- for i in 4:
- curve_player(i)
- else:
- n = move_toward(n, 0, 1 * d)
- curve_player(0)
- for i in 4:
- curve_player(i)
+ set_stream($Player.get_stream_playback())
-func curve_player(i: int) -> void:
- players[i].volume_db = db_curves[i].sample_baked(n) - 50
- players[i].pitch_scale = (pitch_curves[i].sample_baked(n) * 2) + .001
+func _process(_d: float):
+ set_rpm((car.rpm() * car.engine_force * 0.0015) + 800)
+ update()