]> Untitled Git - wolf-seeking-sheep.git/blob - addons/dialogic/Editor/Events/Fields/field_audio_preview.gd
Updated export config options
[wolf-seeking-sheep.git] / addons / dialogic / Editor / Events / Fields / field_audio_preview.gd
1 @tool
2 extends DialogicVisualEditorField
3
4
5 var file_path: String
6
7
8 func _ready() -> void:
9         self.pressed.connect(_on_pressed)
10         %AudioStreamPlayer.finished.connect(_on_finished)
11
12
13 #region OVERWRITES
14 ################################################################################
15
16
17 ## To be overwritten
18 func _set_value(value:Variant) -> void:
19         file_path = value
20         self.disabled = file_path.is_empty()
21         _stop()
22
23 #endregion
24
25
26 #region SIGNAL METHODS
27 ################################################################################
28
29 func _on_pressed() -> void:
30         if %AudioStreamPlayer.playing:
31                 _stop()
32         elif not file_path.is_empty():
33                 _play()
34
35
36 func _on_finished() -> void:
37         _stop()
38
39 #endregion
40
41
42 func _stop() -> void:
43         %AudioStreamPlayer.stop()
44         %AudioStreamPlayer.stream = null
45         self.icon = get_theme_icon("Play", "EditorIcons")
46
47
48 func _play() -> void:
49         if ResourceLoader.exists(file_path):
50                 %AudioStreamPlayer.stream = load(file_path)
51                 %AudioStreamPlayer.play()
52                 self.icon = get_theme_icon("Stop", "EditorIcons")