No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AudioBlock.gd 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. tool
  2. extends HBoxContainer
  3. var editor_reference
  4. var editorPopup
  5. var play_icon = load("res://addons/dialogic/Images/play.svg")
  6. var stop_icon = load("res://addons/dialogic/Images/stop.svg")
  7. # This is the information of this event and it will get parsed and saved to the JSON file.
  8. var event_data = {
  9. 'audio': 'stop',
  10. 'file': ''
  11. }
  12. func _ready():
  13. load_audio('')
  14. func _on_ButtonAudio_pressed():
  15. editor_reference.godot_dialog("*.wav, *.ogg, *.mp3")
  16. editor_reference.godot_dialog_connect(self, "_on_file_selected")
  17. func _on_file_selected(path, target):
  18. target.load_audio(path)
  19. func load_audio(path: String):
  20. if not path.empty():
  21. $PanelContainer/VBoxContainer/Header/Name.text = path
  22. $PanelContainer/VBoxContainer/Header/ButtonClear.disabled = false
  23. $PanelContainer/VBoxContainer/Header/ButtonPreviewPlay.disabled = false
  24. event_data['file'] = path
  25. event_data['audio'] = 'play'
  26. else:
  27. $PanelContainer/VBoxContainer/Header/Name.text = 'No sound (will stop previous audio event)'
  28. $PanelContainer/VBoxContainer/Header/ButtonClear.disabled = true
  29. $PanelContainer/VBoxContainer/Header/ButtonPreviewPlay.disabled = true
  30. event_data['file'] = ''
  31. event_data['audio'] = 'stop'
  32. func load_data(data):
  33. event_data = data
  34. load_audio(data['file'])
  35. func _on_ButtonPreviewPlay_pressed():
  36. if $PanelContainer/AudioPreview.is_playing():
  37. $PanelContainer/AudioPreview.stop()
  38. else:
  39. $PanelContainer/AudioPreview.stream = load(event_data['file'])
  40. $PanelContainer/AudioPreview.play()
  41. $PanelContainer/VBoxContainer/Header/ButtonPreviewPlay.icon = stop_icon
  42. func _on_AudioPreview_finished():
  43. $PanelContainer/VBoxContainer/Header/ButtonPreviewPlay.icon = play_icon
  44. func _on_ButtonClear_pressed():
  45. load_audio('')