diff --git a/modules/interactive_music/audio_stream_interactive.cpp b/modules/interactive_music/audio_stream_interactive.cpp index 8472c4e352..fb67b1a782 100644 --- a/modules/interactive_music/audio_stream_interactive.cpp +++ b/modules/interactive_music/audio_stream_interactive.cpp @@ -1011,6 +1011,10 @@ void AudioStreamPlaybackInteractive::switch_to_clip(int p_index) { switch_request = p_index; } +int AudioStreamPlaybackInteractive::get_current_clip_index() const { + return playback_current; +} + int AudioStreamPlaybackInteractive::get_loop_count() const { return 0; // Looping not supported } @@ -1026,4 +1030,5 @@ bool AudioStreamPlaybackInteractive::is_playing() const { void AudioStreamPlaybackInteractive::_bind_methods() { ClassDB::bind_method(D_METHOD("switch_to_clip_by_name", "clip_name"), &AudioStreamPlaybackInteractive::switch_to_clip_by_name); ClassDB::bind_method(D_METHOD("switch_to_clip", "clip_index"), &AudioStreamPlaybackInteractive::switch_to_clip); + ClassDB::bind_method(D_METHOD("get_current_clip_index"), &AudioStreamPlaybackInteractive::get_current_clip_index); } diff --git a/modules/interactive_music/audio_stream_interactive.h b/modules/interactive_music/audio_stream_interactive.h index 12d3ce8aad..fd9521f3b2 100644 --- a/modules/interactive_music/audio_stream_interactive.h +++ b/modules/interactive_music/audio_stream_interactive.h @@ -259,6 +259,7 @@ public: void switch_to_clip_by_name(const StringName &p_name); void switch_to_clip(int p_index); + int get_current_clip_index() const; virtual void set_parameter(const StringName &p_name, const Variant &p_value) override; virtual Variant get_parameter(const StringName &p_name) const override; diff --git a/modules/interactive_music/doc_classes/AudioStreamPlaybackInteractive.xml b/modules/interactive_music/doc_classes/AudioStreamPlaybackInteractive.xml index c87d7c8fcb..86b608b02f 100644 --- a/modules/interactive_music/doc_classes/AudioStreamPlaybackInteractive.xml +++ b/modules/interactive_music/doc_classes/AudioStreamPlaybackInteractive.xml @@ -9,6 +9,18 @@ + + + + Return the index of the currently playing clip. You can use this to get the name of the currently playing clip with [method AudioStreamInteractive.get_clip_name]. + [b]Example:[/b] Get the currently playing clip name from inside an [AudioStreamPlayer] node. + [codeblocks] + [gdscript] + var playing_clip_name = stream.get_clip_name(get_stream_playback().get_current_clip_index()) + [/gdscript] + [/codeblocks] + +