extends AudioStreamPlayer3D @export var _footsteps: FootstepsBank var _footsteps_shuffle: ShuffleBag = ShuffleBag.new() var _polyphonic: AudioStreamPlaybackPolyphonic func _ready() -> void: if not _footsteps: return _footsteps_shuffle.fill(_footsteps.streams.size()) _polyphonic = get_stream_playback() as AudioStreamPlaybackPolyphonic func play_footstep() -> void: _polyphonic.play_stream(_footsteps.streams[_footsteps_shuffle.take()])