extends AudioStreamPlayer3D
class_name EngineNoise
@onready var strem: EngineStream = stream
@onready var car = get_parent()
var volume: float = 1: set = set_v, get = get_v
func _ready() -> void:
set_process(false)
for i in 4:
await RenderingServer.frame_post_draw # buffer underrun causes it to stop, and the cpu is busy when loading the track and rendering and stuff. https://github.com/godotengine/godot/pull/73162
play()
strem.set_stream(get_stream_playback())
set_process(true)
func _process(_d: float):
strem.engine_rpm = car.engine_rpm
strem.update()
func set_v(v: float) -> void:
strem.engine_volume = v
func get_v() -> float:
return strem.engine_volume