50 lines
741 B
GDScript
50 lines
741 B
GDScript
@tool
|
|
class_name MixedAudioStream extends AudioStream
|
|
|
|
enum TransIn {
|
|
HARD,
|
|
FROM_START,
|
|
SOFT
|
|
}
|
|
|
|
enum TransOut {
|
|
HARD,
|
|
TO_END,
|
|
SOFT
|
|
}
|
|
|
|
enum Loop {
|
|
HARD_IN_OUT,
|
|
HARD_IN_TO_END,
|
|
HARD_IN_SOFT_END,
|
|
HARD_OUT
|
|
}
|
|
|
|
enum Jump {
|
|
HARD,
|
|
SOFT
|
|
}
|
|
|
|
@export var tracks: Array[AudioTrack]:
|
|
set(dict):
|
|
tracks = dict
|
|
@export var transitions: Array[FillerTrack]
|
|
|
|
var _playback: AudioStreamPlaybackPolyphonic
|
|
|
|
func is_meta_stream():
|
|
return true
|
|
|
|
func is_monophonic():
|
|
return false
|
|
|
|
func initialize_mix(from_position: float, playback: AudioStreamPlaybackPolyphonic):
|
|
_playback = playback
|
|
|
|
func get_stream_by_id(id: int) -> AudioStream:
|
|
return tracks[id].audio
|
|
|
|
func fadeout(stream_id: int, delay: float):
|
|
var tween: Tween
|
|
tween = _playback.pla
|