pir-serious-game-ethics/addons/dialogic/Editor/Events/AudioBlock.gd

64 lines
1.8 KiB
GDScript3
Raw Normal View History

tool
2021-03-27 10:53:28 +01:00
extends HBoxContainer
var editor_reference
var editorPopup
# This is the information of this event and it will get parsed and saved to the JSON file.
var event_data = {
2021-03-27 10:53:28 +01:00
'audio': 'stop',
'file': ''
}
2021-03-27 10:53:28 +01:00
func _ready():
load_audio('')
2021-04-10 18:29:03 +02:00
$PanelContainer/VBoxContainer/Header/ButtonClear.icon = get_icon("Remove", "EditorIcons")
$PanelContainer/VBoxContainer/Header/ButtonPreviewPlay.icon = get_icon("Play", "EditorIcons")
2021-03-27 10:53:28 +01:00
func _on_ButtonAudio_pressed():
editor_reference.godot_dialog("*.wav, *.ogg, *.mp3")
editor_reference.godot_dialog_connect(self, "_on_file_selected")
func _on_file_selected(path, target):
target.load_audio(path)
2021-03-27 10:53:28 +01:00
func load_audio(path: String):
if not path.empty():
$PanelContainer/VBoxContainer/Header/Name.text = path
$PanelContainer/VBoxContainer/Header/ButtonClear.disabled = false
$PanelContainer/VBoxContainer/Header/ButtonPreviewPlay.disabled = false
event_data['file'] = path
event_data['audio'] = 'play'
else:
$PanelContainer/VBoxContainer/Header/Name.text = 'No sound (will stop previous audio event)'
$PanelContainer/VBoxContainer/Header/ButtonClear.disabled = true
$PanelContainer/VBoxContainer/Header/ButtonPreviewPlay.disabled = true
event_data['file'] = ''
event_data['audio'] = 'stop'
func load_data(data):
event_data = data
2021-03-27 10:53:28 +01:00
load_audio(data['file'])
func _on_ButtonPreviewPlay_pressed():
if $PanelContainer/AudioPreview.is_playing():
$PanelContainer/AudioPreview.stop()
else:
$PanelContainer/AudioPreview.stream = load(event_data['file'])
$PanelContainer/AudioPreview.play()
2021-04-10 18:29:03 +02:00
$PanelContainer/VBoxContainer/Header/ButtonPreviewPlay.icon = get_icon("Stop", "EditorIcons")
func _on_AudioPreview_finished():
2021-04-10 18:29:03 +02:00
$PanelContainer/VBoxContainer/Header/ButtonPreviewPlay.icon = get_icon("Play", "EditorIcons")
2021-03-27 10:53:28 +01:00
func _on_ButtonClear_pressed():
load_audio('')