small racing game im working on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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