Browse Source

update dialogic to 1.1pre

Arnaud Vergnet 3 years ago
parent
commit
5fc8d1426b
99 changed files with 2867 additions and 901 deletions
  1. 5
    5
      addons/dialogic/Dialog.tscn
  2. 1
    1
      addons/dialogic/Editor/CharacterEditor/CharacterEditor.gd
  3. 1
    1
      addons/dialogic/Editor/DefinitionEditor/DefinitionEditor.gd
  4. 53
    19
      addons/dialogic/Editor/EditorView.gd
  5. 72
    81
      addons/dialogic/Editor/EditorView.tscn
  6. 142
    22
      addons/dialogic/Editor/MasterTree/MasterTree.gd
  7. 93
    0
      addons/dialogic/Editor/Pieces/CallNode.gd
  8. 143
    0
      addons/dialogic/Editor/Pieces/CallNode.tscn
  9. 3
    4
      addons/dialogic/Editor/Pieces/Common/PieceExtraSettings.gd
  10. 1
    1
      addons/dialogic/Editor/Pieces/Common/PieceExtraSettings.tscn
  11. 8
    0
      addons/dialogic/Editor/Pieces/Common/SpinBoxPreventDnD.gd
  12. 2
    1
      addons/dialogic/Editor/Pieces/IfCondition.tscn
  13. 3
    3
      addons/dialogic/Editor/Pieces/SceneEvent.gd
  14. 26
    1
      addons/dialogic/Editor/Pieces/TextBlock.gd
  15. 5
    2
      addons/dialogic/Editor/Pieces/TextBlock.tscn
  16. 3
    1
      addons/dialogic/Editor/Pieces/WaitSeconds.tscn
  17. 10
    0
      addons/dialogic/Editor/SettingsEditor/SettingsEditor.gd
  18. 39
    18
      addons/dialogic/Editor/SettingsEditor/SettingsEditor.tscn
  19. 207
    52
      addons/dialogic/Editor/ThemeEditor/ThemeEditor.gd
  20. 512
    486
      addons/dialogic/Editor/ThemeEditor/ThemeEditor.tscn
  21. 16
    0
      addons/dialogic/Editor/TimelineEditor/EventButton.gd
  22. 139
    0
      addons/dialogic/Editor/TimelineEditor/TimelineArea.gd
  23. 180
    8
      addons/dialogic/Editor/TimelineEditor/TimelineEditor.gd
  24. 132
    85
      addons/dialogic/Editor/TimelineEditor/TimelineEditor.tscn
  25. 4
    0
      addons/dialogic/Images/Resources/character-1.25.svg
  26. 34
    0
      addons/dialogic/Images/Resources/character-1.25.svg.import
  27. 4
    0
      addons/dialogic/Images/Resources/character-2.svg
  28. 34
    0
      addons/dialogic/Images/Resources/character-2.svg.import
  29. 4
    0
      addons/dialogic/Images/Resources/character.svg
  30. 3
    3
      addons/dialogic/Images/Resources/character.svg.import
  31. 3
    0
      addons/dialogic/Images/Resources/definition-1.25.svg
  32. 34
    0
      addons/dialogic/Images/Resources/definition-1.25.svg.import
  33. 3
    0
      addons/dialogic/Images/Resources/definition-2.svg
  34. 34
    0
      addons/dialogic/Images/Resources/definition-2.svg.import
  35. 2
    2
      addons/dialogic/Images/Resources/definition.svg
  36. 3
    0
      addons/dialogic/Images/Resources/glossary-1.25.svg
  37. 34
    0
      addons/dialogic/Images/Resources/glossary-1.25.svg.import
  38. 3
    0
      addons/dialogic/Images/Resources/glossary-2.svg
  39. 34
    0
      addons/dialogic/Images/Resources/glossary-2.svg.import
  40. 2
    2
      addons/dialogic/Images/Resources/glossary.svg
  41. 4
    0
      addons/dialogic/Images/Resources/theme-1.25.svg
  42. 34
    0
      addons/dialogic/Images/Resources/theme-1.25.svg.import
  43. 4
    0
      addons/dialogic/Images/Resources/theme-2.svg
  44. 3
    3
      addons/dialogic/Images/Resources/theme-2.svg.import
  45. 3
    3
      addons/dialogic/Images/Resources/theme.svg
  46. 6
    0
      addons/dialogic/Images/Resources/timeline-1.25.svg
  47. 34
    0
      addons/dialogic/Images/Resources/timeline-1.25.svg.import
  48. 6
    0
      addons/dialogic/Images/Resources/timeline-2.svg
  49. 34
    0
      addons/dialogic/Images/Resources/timeline-2.svg.import
  50. 7
    0
      addons/dialogic/Images/Resources/timeline.svg
  51. 3
    3
      addons/dialogic/Images/Resources/timeline.svg.import
  52. 4
    0
      addons/dialogic/Images/Toolbar/add-character-1.25.svg
  53. 34
    0
      addons/dialogic/Images/Toolbar/add-character-1.25.svg.import
  54. 4
    0
      addons/dialogic/Images/Toolbar/add-character-2.svg
  55. 34
    0
      addons/dialogic/Images/Toolbar/add-character-2.svg.import
  56. 3
    3
      addons/dialogic/Images/Toolbar/add-character.svg
  57. 4
    0
      addons/dialogic/Images/Toolbar/add-definition-1.25.svg
  58. 34
    0
      addons/dialogic/Images/Toolbar/add-definition-1.25.svg.import
  59. 4
    0
      addons/dialogic/Images/Toolbar/add-definition-2.svg
  60. 34
    0
      addons/dialogic/Images/Toolbar/add-definition-2.svg.import
  61. 3
    3
      addons/dialogic/Images/Toolbar/add-definition.svg
  62. 4
    0
      addons/dialogic/Images/Toolbar/add-glossary-1.25.svg
  63. 34
    0
      addons/dialogic/Images/Toolbar/add-glossary-1.25.svg.import
  64. 4
    0
      addons/dialogic/Images/Toolbar/add-glossary-2.svg
  65. 34
    0
      addons/dialogic/Images/Toolbar/add-glossary-2.svg.import
  66. 4
    0
      addons/dialogic/Images/Toolbar/add-glossary.svg
  67. 34
    0
      addons/dialogic/Images/Toolbar/add-glossary.svg.import
  68. 5
    0
      addons/dialogic/Images/Toolbar/add-theme-1.25.svg
  69. 34
    0
      addons/dialogic/Images/Toolbar/add-theme-1.25.svg.import
  70. 5
    0
      addons/dialogic/Images/Toolbar/add-theme-2.svg
  71. 34
    0
      addons/dialogic/Images/Toolbar/add-theme-2.svg.import
  72. 4
    4
      addons/dialogic/Images/Toolbar/add-theme.svg
  73. 7
    0
      addons/dialogic/Images/Toolbar/add-timeline-1.25.svg
  74. 34
    0
      addons/dialogic/Images/Toolbar/add-timeline-1.25.svg.import
  75. 7
    0
      addons/dialogic/Images/Toolbar/add-timeline-2.svg
  76. 34
    0
      addons/dialogic/Images/Toolbar/add-timeline-2.svg.import
  77. 6
    6
      addons/dialogic/Images/Toolbar/add-timeline.svg
  78. 0
    1
      addons/dialogic/Images/Tools.svg
  79. 0
    5
      addons/dialogic/Images/icon.svg
  80. BIN
      addons/dialogic/Images/logo.png
  81. 129
    50
      addons/dialogic/Nodes/dialog_node.gd
  82. 38
    2
      addons/dialogic/Other/DialogicResources.gd
  83. 16
    1
      addons/dialogic/Other/inspector_timeline_picker.gd
  84. 57
    5
      addons/dialogic/Other/timeline_picker.gd
  85. 2
    0
      addons/dialogic/dialogic.gd
  86. 1
    1
      addons/dialogic/plugin.cfg
  87. 1
    1
      dialogic/characters/character-1616658471.json
  88. 1
    1
      dialogic/timelines/timeline-1616656510.json
  89. 1
    1
      dialogic/timelines/timeline-1616657347.json
  90. 1
    1
      dialogic/timelines/timeline-1616659153.json
  91. 1
    1
      dialogic/timelines/timeline-1616659306.json
  92. 1
    1
      dialogic/timelines/timeline-1616659917.json
  93. 1
    1
      dialogic/timelines/timeline-1616660188.json
  94. 1
    1
      dialogic/timelines/timeline-1616660446.json
  95. 1
    1
      dialogic/timelines/timeline-1616660984.json
  96. 1
    1
      dialogic/timelines/timeline-1616661304.json
  97. 1
    1
      dialogic/timelines/timeline-1616661658.json
  98. 1
    1
      dialogic/timelines/timeline-1616661685.json
  99. 1
    1
      dialogic/timelines/timeline-1616662258.json

+ 5
- 5
addons/dialogic/Dialog.tscn View File

87
 anchor_top = 1.0
87
 anchor_top = 1.0
88
 anchor_right = 0.5
88
 anchor_right = 0.5
89
 anchor_bottom = 1.0
89
 anchor_bottom = 1.0
90
-margin_left = -455.0
90
+margin_left = -250.0
91
 margin_top = -207.0
91
 margin_top = -207.0
92
-margin_right = 455.0
92
+margin_right = 250.0
93
 margin_bottom = -40.0
93
 margin_bottom = -40.0
94
 __meta__ = {
94
 __meta__ = {
95
 "_edit_use_anchors_": false
95
 "_edit_use_anchors_": false
136
 "_edit_use_anchors_": false
136
 "_edit_use_anchors_": false
137
 }
137
 }
138
 
138
 
139
-[node name="Tween" type="Tween" parent="TextBubble"]
140
-
141
 [node name="NextIndicator" type="TextureRect" parent="TextBubble"]
139
 [node name="NextIndicator" type="TextureRect" parent="TextBubble"]
142
 visible = false
140
 visible = false
143
 anchor_left = 1.0
141
 anchor_left = 1.0
203
 "_edit_use_anchors_": false
201
 "_edit_use_anchors_": false
204
 }
202
 }
205
 
203
 
204
+[node name="Tween" type="Tween" parent="TextBubble"]
205
+
206
 [node name="Options" type="VBoxContainer" parent="."]
206
 [node name="Options" type="VBoxContainer" parent="."]
207
 anchor_left = 0.5
207
 anchor_left = 0.5
208
 anchor_top = 0.5
208
 anchor_top = 0.5
340
 [node name="Timer" type="Timer" parent="DefinitionInfo"]
340
 [node name="Timer" type="Timer" parent="DefinitionInfo"]
341
 
341
 
342
 [node name="WaitSeconds" type="Timer" parent="."]
342
 [node name="WaitSeconds" type="Timer" parent="."]
343
+
343
 [connection signal="meta_hover_ended" from="TextBubble/RichTextLabel" to="." method="_on_RichTextLabel_meta_hover_ended"]
344
 [connection signal="meta_hover_ended" from="TextBubble/RichTextLabel" to="." method="_on_RichTextLabel_meta_hover_ended"]
344
 [connection signal="meta_hover_started" from="TextBubble/RichTextLabel" to="." method="_on_RichTextLabel_meta_hover_started"]
345
 [connection signal="meta_hover_started" from="TextBubble/RichTextLabel" to="." method="_on_RichTextLabel_meta_hover_started"]
345
-[connection signal="tween_completed" from="TextBubble/Tween" to="." method="_on_Tween_tween_completed"]
346
 [connection signal="timeout" from="DefinitionInfo/Timer" to="." method="_on_Definition_Timer_timeout"]
346
 [connection signal="timeout" from="DefinitionInfo/Timer" to="." method="_on_Definition_Timer_timeout"]
347
 [connection signal="timeout" from="WaitSeconds" to="." method="_on_WaitSeconds_timeout"]
347
 [connection signal="timeout" from="WaitSeconds" to="." method="_on_WaitSeconds_timeout"]

+ 1
- 1
addons/dialogic/Editor/CharacterEditor/CharacterEditor.gd View File

2
 extends ScrollContainer
2
 extends ScrollContainer
3
 
3
 
4
 var editor_reference
4
 var editor_reference
5
-onready var master_tree = get_node('../MasterTree')
5
+onready var master_tree = get_node('../MasterTreeContainer/MasterTree')
6
 var opened_character_data
6
 var opened_character_data
7
 var portrait_entry = load("res://addons/dialogic/Editor/CharacterEditor/PortraitEntry.tscn")
7
 var portrait_entry = load("res://addons/dialogic/Editor/CharacterEditor/PortraitEntry.tscn")
8
 onready var nodes = {
8
 onready var nodes = {

+ 1
- 1
addons/dialogic/Editor/DefinitionEditor/DefinitionEditor.gd View File

2
 extends ScrollContainer
2
 extends ScrollContainer
3
 
3
 
4
 var editor_reference
4
 var editor_reference
5
-onready var master_tree = get_node('../MasterTree')
5
+onready var master_tree = get_node('../MasterTreeContainer/MasterTree')
6
 var current_definition = null
6
 var current_definition = null
7
 
7
 
8
 onready var nodes = {
8
 onready var nodes = {

+ 53
- 19
addons/dialogic/Editor/EditorView.gd View File

6
 var file_picker_data: Dictionary = {'method': '', 'node': self}
6
 var file_picker_data: Dictionary = {'method': '', 'node': self}
7
 var current_editor_view: String = 'Master'
7
 var current_editor_view: String = 'Master'
8
 var version_string: String 
8
 var version_string: String 
9
-onready var master_tree = $MainPanel/MasterTree
9
+onready var master_tree = $MainPanel/MasterTreeContainer/MasterTree
10
 onready var timeline_editor = $MainPanel/TimelineEditor
10
 onready var timeline_editor = $MainPanel/TimelineEditor
11
 onready var character_editor = $MainPanel/CharacterEditor
11
 onready var character_editor = $MainPanel/CharacterEditor
12
 onready var definition_editor = $MainPanel/DefinitionEditor
12
 onready var definition_editor = $MainPanel/DefinitionEditor
27
 
27
 
28
 	master_tree.connect("editor_selected", self, 'on_master_tree_editor_selected')
28
 	master_tree.connect("editor_selected", self, 'on_master_tree_editor_selected')
29
 
29
 
30
+	
31
+	# Sizes
32
+	# This part of the code is a bit terrible. But there is no better way
33
+	# of doing this in Godot at the moment. I'm sorry.
34
+	var separation = get_constant("separation", "BoxContainer")
35
+	$MainPanel.margin_left = separation
36
+	$MainPanel.margin_right = separation * -1
37
+	$MainPanel.margin_bottom = separation * -1
38
+	$MainPanel.margin_top = 38
39
+	var modifier = ''
40
+	var _scale = get_constant("inspector_margin", "Editor")
41
+	_scale = _scale * 0.125
42
+	if _scale == 1:
43
+		$MainPanel.margin_top = 30
44
+	if _scale == 1.25:
45
+		modifier = '-1.25'
46
+		$MainPanel.margin_top = 37
47
+	if _scale == 1.5:
48
+		modifier = '-1.25'
49
+		$MainPanel.margin_top = 46
50
+	if _scale == 1.75:
51
+		modifier = '-1.25'
52
+		$MainPanel.margin_top = 53
53
+	if _scale == 2:
54
+		$MainPanel.margin_top = 59
55
+		modifier = '-2'
56
+	$ToolBar/NewTimelineButton.icon = load("res://addons/dialogic/Images/Toolbar/add-timeline" + modifier + ".svg")
57
+	$ToolBar/NewCharactersButton.icon = load("res://addons/dialogic/Images/Toolbar/add-character" + modifier + ".svg")
58
+	$ToolBar/NewDefinitionButton.icon = load("res://addons/dialogic/Images/Toolbar/add-definition" + modifier + ".svg")
59
+	$ToolBar/NewThemeButton.icon = load("res://addons/dialogic/Images/Toolbar/add-theme" + modifier + ".svg")
60
+	$ToolBar/NewThemeButton.icon = load("res://addons/dialogic/Images/Toolbar/add-theme" + modifier + ".svg")
61
+	
62
+	$ToolBar/FoldTools/ButtonFold.icon = get_icon("GuiTreeArrowRight", "EditorIcons")
63
+	$ToolBar/FoldTools/ButtonUnfold.icon = get_icon("GuiTreeArrowDown", "EditorIcons")
30
 	# Toolbar
64
 	# Toolbar
31
 	$ToolBar/NewTimelineButton.connect('pressed', $MainPanel/TimelineEditor, 'new_timeline')
65
 	$ToolBar/NewTimelineButton.connect('pressed', $MainPanel/TimelineEditor, 'new_timeline')
32
 	$ToolBar/NewCharactersButton.connect('pressed', $MainPanel/CharacterEditor, 'new_character')
66
 	$ToolBar/NewCharactersButton.connect('pressed', $MainPanel/CharacterEditor, 'new_character')
55
 	var err = config.load("res://addons/dialogic/plugin.cfg")
89
 	var err = config.load("res://addons/dialogic/plugin.cfg")
56
 	if err == OK:
90
 	if err == OK:
57
 		version_string = config.get_value("plugin", "version", "?")
91
 		version_string = config.get_value("plugin", "version", "?")
58
-		$ToolBar/Version.text = 'v' + version_string
92
+		$ToolBar/Version.text = 'Dialogic v' + version_string
93
+		
94
+	$MainPanel/MasterTreeContainer/FilterMasterTreeEdit.right_icon = get_icon("Search", "EditorIcons")
59
 
95
 
60
 
96
 
61
 func on_master_tree_editor_selected(editor: String):
97
 func on_master_tree_editor_selected(editor: String):
75
 func _on_RemoveTimelineConfirmation_confirmed():
111
 func _on_RemoveTimelineConfirmation_confirmed():
76
 	var dir = Directory.new()
112
 	var dir = Directory.new()
77
 	var target = $MainPanel/TimelineEditor.timeline_file
113
 	var target = $MainPanel/TimelineEditor.timeline_file
78
-	print('target: ', target)
114
+	#'target: ', target)
79
 	DialogicResources.delete_timeline(target)
115
 	DialogicResources.delete_timeline(target)
80
-	$MainPanel/MasterTree.remove_selected()
81
-	$MainPanel/MasterTree.hide_all_editors()
116
+	$MainPanel/MasterTreeContainer/MasterTree.remove_selected()
117
+	$MainPanel/MasterTreeContainer/MasterTree.hide_all_editors()
82
 
118
 
83
 
119
 
84
 # Character context menu
120
 # Character context menu
95
 		OS.shell_open(ProjectSettings.globalize_path(DialogicResources.get_path('THEME_DIR')))
131
 		OS.shell_open(ProjectSettings.globalize_path(DialogicResources.get_path('THEME_DIR')))
96
 	if id == 1:
132
 	if id == 1:
97
 		$RemoveThemeConfirmation.popup_centered()
133
 		$RemoveThemeConfirmation.popup_centered()
134
+	if id == 2:
135
+		var filename = $MainPanel/MasterTreeContainer/MasterTree.get_selected().get_metadata(0)['file']
136
+		if (filename.begins_with('theme-')):
137
+			theme_editor.duplicate_theme(filename)
98
 
138
 
99
 
139
 
100
 # Definition context menu
140
 # Definition context menu
108
 func _on_RemoveDefinitionConfirmation_confirmed():
148
 func _on_RemoveDefinitionConfirmation_confirmed():
109
 	var target = $MainPanel/DefinitionEditor.current_definition['id']
149
 	var target = $MainPanel/DefinitionEditor.current_definition['id']
110
 	DialogicResources.delete_default_definition(target)
150
 	DialogicResources.delete_default_definition(target)
111
-	$MainPanel/MasterTree.remove_selected()
112
-	$MainPanel/MasterTree.hide_all_editors()
151
+	$MainPanel/MasterTreeContainer/MasterTree.remove_selected()
152
+	$MainPanel/MasterTreeContainer/MasterTree.hide_all_editors()
113
 
153
 
114
 
154
 
115
 func _on_RemoveCharacterConfirmation_confirmed():
155
 func _on_RemoveCharacterConfirmation_confirmed():
116
-	var filename = DialogicResources.get_path('CHAR_DIR', $MainPanel/CharacterEditor.opened_character_data['id']) 
156
+	var filename = $MainPanel/CharacterEditor.opened_character_data['id']
117
 	DialogicResources.delete_character(filename)
157
 	DialogicResources.delete_character(filename)
118
-	$MainPanel/MasterTree.remove_selected()
119
-	$MainPanel/MasterTree.hide_all_editors()
158
+	$MainPanel/MasterTreeContainer/MasterTree.remove_selected()
159
+	$MainPanel/MasterTreeContainer/MasterTree.hide_all_editors()
120
 
160
 
121
 
161
 
122
 func _on_RemoveThemeConfirmation_confirmed():
162
 func _on_RemoveThemeConfirmation_confirmed():
123
-	var filename = $MainPanel/MasterTree.get_selected().get_metadata(0)['file']
163
+	var filename = $MainPanel/MasterTreeContainer/MasterTree.get_selected().get_metadata(0)['file']
124
 	DialogicResources.delete_theme(filename)
164
 	DialogicResources.delete_theme(filename)
125
-	$MainPanel/MasterTree.remove_selected()
126
-	$MainPanel/MasterTree.hide_all_editors()
165
+	$MainPanel/MasterTreeContainer/MasterTree.remove_selected()
166
+	$MainPanel/MasterTreeContainer/MasterTree.hide_all_editors()
127
 
167
 
128
 
168
 
129
 # Godot dialog
169
 # Godot dialog
157
 	dprint(path)
197
 	dprint(path)
158
 
198
 
159
 
199
 
160
-func _on_Logo_gui_input(event) -> void:
161
-	# I should probably replace this with an "About Dialogic" dialog
162
-	if event is InputEventMouseButton and event.button_index == 1:
163
-		OS.shell_open("https://github.com/coppolaemilio/dialogic")
164
-
165
-
166
 func dprint(what) -> void:
200
 func dprint(what) -> void:
167
 	if debug_mode:
201
 	if debug_mode:
168
 		print(what)
202
 		print(what)

+ 72
- 81
addons/dialogic/Editor/EditorView.tscn View File

1
-[gd_scene load_steps=20 format=2]
1
+[gd_scene load_steps=17 format=2]
2
 
2
 
3
 [ext_resource path="res://addons/dialogic/Editor/EditorView.gd" type="Script" id=1]
3
 [ext_resource path="res://addons/dialogic/Editor/EditorView.gd" type="Script" id=1]
4
 [ext_resource path="res://addons/dialogic/Editor/TimelineEditor/TimelineEditor.tscn" type="PackedScene" id=2]
4
 [ext_resource path="res://addons/dialogic/Editor/TimelineEditor/TimelineEditor.tscn" type="PackedScene" id=2]
5
-[ext_resource path="res://addons/dialogic/Images/Toolbar/add-timeline.svg" type="Texture" id=3]
6
-[ext_resource path="res://addons/dialogic/Images/Toolbar/add-character.svg" type="Texture" id=4]
7
-[ext_resource path="res://addons/dialogic/Images/Toolbar/add-theme.svg" type="Texture" id=5]
5
+[ext_resource path="res://addons/dialogic/Images/Toolbar/add-character.svg" type="Texture" id=3]
6
+[ext_resource path="res://addons/dialogic/Images/Toolbar/add-timeline.svg" type="Texture" id=4]
7
+[ext_resource path="res://addons/dialogic/Images/Toolbar/add-definition.svg" type="Texture" id=5]
8
 [ext_resource path="res://addons/dialogic/Editor/SettingsEditor/SettingsEditor.tscn" type="PackedScene" id=6]
8
 [ext_resource path="res://addons/dialogic/Editor/SettingsEditor/SettingsEditor.tscn" type="PackedScene" id=6]
9
 [ext_resource path="res://addons/dialogic/Editor/CharacterEditor/CharacterEditor.tscn" type="PackedScene" id=7]
9
 [ext_resource path="res://addons/dialogic/Editor/CharacterEditor/CharacterEditor.tscn" type="PackedScene" id=7]
10
 [ext_resource path="res://addons/dialogic/Editor/ThemeEditor/ThemeEditor.tscn" type="PackedScene" id=8]
10
 [ext_resource path="res://addons/dialogic/Editor/ThemeEditor/ThemeEditor.tscn" type="PackedScene" id=8]
11
-[ext_resource path="res://addons/dialogic/Images/open-icon.svg" type="Texture" id=9]
12
-[ext_resource path="res://addons/dialogic/Images/closed-icon.svg" type="Texture" id=10]
13
 [ext_resource path="res://addons/dialogic/Images/ActionCopy.svg" type="Texture" id=11]
11
 [ext_resource path="res://addons/dialogic/Images/ActionCopy.svg" type="Texture" id=11]
14
 [ext_resource path="res://addons/dialogic/Editor/DefinitionEditor/DefinitionEditor.tscn" type="PackedScene" id=12]
12
 [ext_resource path="res://addons/dialogic/Editor/DefinitionEditor/DefinitionEditor.tscn" type="PackedScene" id=12]
15
-[ext_resource path="res://addons/dialogic/Images/Toolbar/add-definition.svg" type="Texture" id=13]
16
-[ext_resource path="res://addons/dialogic/Images/logo.png" type="Texture" id=14]
13
+[ext_resource path="res://addons/dialogic/Images/Toolbar/add-theme.svg" type="Texture" id=13]
17
 [ext_resource path="res://addons/dialogic/Images/Remove.svg" type="Texture" id=22]
14
 [ext_resource path="res://addons/dialogic/Images/Remove.svg" type="Texture" id=22]
18
 [ext_resource path="res://addons/dialogic/Images/Filesystem.svg" type="Texture" id=26]
15
 [ext_resource path="res://addons/dialogic/Images/Filesystem.svg" type="Texture" id=26]
19
 [ext_resource path="res://addons/dialogic/Editor/MasterTree/MasterTree.tscn" type="PackedScene" id=35]
16
 [ext_resource path="res://addons/dialogic/Editor/MasterTree/MasterTree.tscn" type="PackedScene" id=35]
20
 
17
 
21
-[sub_resource type="Image" id=3]
18
+[sub_resource type="Image" id=1]
22
 data = {
19
 data = {
23
 "data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
20
 "data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
24
 "format": "LumAlpha8",
21
 "format": "LumAlpha8",
30
 [sub_resource type="ImageTexture" id=2]
27
 [sub_resource type="ImageTexture" id=2]
31
 flags = 4
28
 flags = 4
32
 flags = 4
29
 flags = 4
33
-image = SubResource( 3 )
30
+image = SubResource( 1 )
34
 size = Vector2( 16, 16 )
31
 size = Vector2( 16, 16 )
35
 
32
 
36
 [node name="EditorView" type="Control"]
33
 [node name="EditorView" type="Control"]
37
 anchor_right = 1.0
34
 anchor_right = 1.0
38
 anchor_bottom = 1.0
35
 anchor_bottom = 1.0
39
-margin_left = 8.0
40
-margin_top = 8.0
41
-margin_right = -8.0
42
-margin_bottom = -8.0
43
 rect_min_size = Vector2( 0, 200 )
36
 rect_min_size = Vector2( 0, 200 )
44
 size_flags_horizontal = 3
37
 size_flags_horizontal = 3
45
 size_flags_vertical = 3
38
 size_flags_vertical = 3
50
 
43
 
51
 [node name="ToolBar" type="HBoxContainer" parent="."]
44
 [node name="ToolBar" type="HBoxContainer" parent="."]
52
 anchor_right = 1.0
45
 anchor_right = 1.0
53
-margin_bottom = 30.0
46
+margin_bottom = 32.0
54
 custom_constants/separation = 0
47
 custom_constants/separation = 0
55
 __meta__ = {
48
 __meta__ = {
56
 "_edit_use_anchors_": false
49
 "_edit_use_anchors_": false
58
 
51
 
59
 [node name="NewTimelineButton" type="Button" parent="ToolBar"]
52
 [node name="NewTimelineButton" type="Button" parent="ToolBar"]
60
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
53
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
61
-margin_right = 34.0
62
-margin_bottom = 30.0
54
+margin_right = 28.0
55
+margin_bottom = 32.0
63
 hint_tooltip = "New Timeline"
56
 hint_tooltip = "New Timeline"
64
 focus_mode = 0
57
 focus_mode = 0
65
-icon = ExtResource( 3 )
58
+icon = ExtResource( 4 )
66
 flat = true
59
 flat = true
67
 
60
 
68
 [node name="NewCharactersButton" type="ToolButton" parent="ToolBar"]
61
 [node name="NewCharactersButton" type="ToolButton" parent="ToolBar"]
69
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
62
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
70
-margin_left = 34.0
71
-margin_right = 68.0
72
-margin_bottom = 30.0
63
+margin_left = 28.0
64
+margin_right = 56.0
65
+margin_bottom = 32.0
73
 hint_tooltip = "New Character"
66
 hint_tooltip = "New Character"
74
 focus_mode = 0
67
 focus_mode = 0
75
-icon = ExtResource( 4 )
68
+icon = ExtResource( 3 )
76
 
69
 
77
 [node name="NewDefinitionButton" type="Button" parent="ToolBar"]
70
 [node name="NewDefinitionButton" type="Button" parent="ToolBar"]
78
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
71
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
79
-margin_left = 68.0
80
-margin_right = 102.0
81
-margin_bottom = 30.0
72
+margin_left = 56.0
73
+margin_right = 84.0
74
+margin_bottom = 32.0
82
 hint_tooltip = "New Definition"
75
 hint_tooltip = "New Definition"
83
 focus_mode = 0
76
 focus_mode = 0
84
-icon = ExtResource( 13 )
77
+icon = ExtResource( 5 )
85
 flat = true
78
 flat = true
86
 
79
 
87
 [node name="NewThemeButton" type="Button" parent="ToolBar"]
80
 [node name="NewThemeButton" type="Button" parent="ToolBar"]
88
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
81
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
89
-margin_left = 102.0
90
-margin_right = 136.0
91
-margin_bottom = 30.0
82
+margin_left = 84.0
83
+margin_right = 112.0
84
+margin_bottom = 32.0
92
 hint_tooltip = "New Theme"
85
 hint_tooltip = "New Theme"
93
 focus_mode = 0
86
 focus_mode = 0
94
-icon = ExtResource( 5 )
87
+icon = ExtResource( 13 )
95
 flat = true
88
 flat = true
96
 
89
 
97
 [node name="FoldTools" type="HBoxContainer" parent="ToolBar"]
90
 [node name="FoldTools" type="HBoxContainer" parent="ToolBar"]
98
 visible = false
91
 visible = false
99
-margin_left = 136.0
100
-margin_right = 271.0
101
-margin_bottom = 30.0
92
+margin_left = 112.0
93
+margin_right = 203.0
94
+margin_bottom = 32.0
102
 
95
 
103
 [node name="Label" type="Label" parent="ToolBar/FoldTools"]
96
 [node name="Label" type="Label" parent="ToolBar/FoldTools"]
104
-margin_top = 8.0
97
+margin_top = 9.0
105
 margin_right = 59.0
98
 margin_right = 59.0
106
-margin_bottom = 22.0
99
+margin_bottom = 23.0
107
 text = "      Fold  "
100
 text = "      Fold  "
108
 
101
 
109
-[node name="ButtonFold" type="Button" parent="ToolBar/FoldTools"]
102
+[node name="ButtonFold" type="ToolButton" parent="ToolBar/FoldTools"]
110
 margin_left = 63.0
103
 margin_left = 63.0
111
-margin_right = 97.0
112
-margin_bottom = 30.0
113
-icon = ExtResource( 10 )
104
+margin_right = 75.0
105
+margin_bottom = 32.0
106
+icon = SubResource( 2 )
114
 align = 0
107
 align = 0
115
 
108
 
116
-[node name="ButtonUnfold" type="Button" parent="ToolBar/FoldTools"]
117
-margin_left = 101.0
118
-margin_right = 135.0
119
-margin_bottom = 30.0
120
-icon = ExtResource( 9 )
109
+[node name="ButtonUnfold" type="ToolButton" parent="ToolBar/FoldTools"]
110
+margin_left = 79.0
111
+margin_right = 91.0
112
+margin_bottom = 32.0
113
+icon = SubResource( 2 )
121
 align = 0
114
 align = 0
122
 
115
 
123
 [node name="Spacer" type="Control" parent="ToolBar"]
116
 [node name="Spacer" type="Control" parent="ToolBar"]
124
-margin_left = 136.0
125
-margin_right = 751.0
126
-margin_bottom = 30.0
117
+margin_left = 112.0
118
+margin_right = 832.0
119
+margin_bottom = 32.0
127
 size_flags_horizontal = 3
120
 size_flags_horizontal = 3
128
 
121
 
129
 [node name="Docs" type="ToolButton" parent="ToolBar"]
122
 [node name="Docs" type="ToolButton" parent="ToolBar"]
130
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
123
 self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
131
-margin_left = 751.0
132
-margin_right = 861.0
133
-margin_bottom = 30.0
124
+margin_left = 832.0
125
+margin_right = 942.0
126
+margin_bottom = 32.0
134
 hint_tooltip = "Theme Editor"
127
 hint_tooltip = "Theme Editor"
135
 mouse_default_cursor_shape = 2
128
 mouse_default_cursor_shape = 2
136
 text = "Online Docs"
129
 text = "Online Docs"
137
 icon = SubResource( 2 )
130
 icon = SubResource( 2 )
138
 
131
 
139
-[node name="Logo" type="TextureRect" parent="ToolBar"]
140
-margin_left = 861.0
141
-margin_right = 981.0
142
-margin_bottom = 30.0
143
-rect_min_size = Vector2( 120, 0 )
144
-mouse_default_cursor_shape = 2
145
-texture = ExtResource( 14 )
146
-expand = true
147
-stretch_mode = 5
148
-
149
 [node name="Version" type="Label" parent="ToolBar"]
132
 [node name="Version" type="Label" parent="ToolBar"]
150
 self_modulate = Color( 1, 1, 1, 0.631373 )
133
 self_modulate = Color( 1, 1, 1, 0.631373 )
151
-margin_left = 981.0
152
-margin_top = 8.0
153
-margin_right = 1008.0
154
-margin_bottom = 22.0
155
-text = "v1.0"
134
+margin_left = 942.0
135
+margin_top = 9.0
136
+margin_right = 1024.0
137
+margin_bottom = 23.0
138
+text = "Dialogic v1.1"
156
 
139
 
157
 [node name="MainPanel" type="HSplitContainer" parent="."]
140
 [node name="MainPanel" type="HSplitContainer" parent="."]
158
 anchor_right = 1.0
141
 anchor_right = 1.0
159
 anchor_bottom = 1.0
142
 anchor_bottom = 1.0
160
-margin_left = 6.0
161
 margin_top = 38.0
143
 margin_top = 38.0
162
-margin_right = -5.0
163
-margin_bottom = -5.0
164
 __meta__ = {
144
 __meta__ = {
165
 "_edit_use_anchors_": false
145
 "_edit_use_anchors_": false
166
 }
146
 }
167
 
147
 
168
-[node name="MasterTree" parent="MainPanel" instance=ExtResource( 35 )]
148
+[node name="MasterTreeContainer" type="VBoxContainer" parent="MainPanel"]
149
+margin_right = 150.0
150
+margin_bottom = 562.0
151
+
152
+[node name="FilterMasterTreeEdit" type="LineEdit" parent="MainPanel/MasterTreeContainer"]
153
+margin_right = 150.0
154
+margin_bottom = 26.0
155
+clear_button_enabled = true
156
+right_icon = SubResource( 2 )
157
+placeholder_text = "Filter"
158
+
159
+[node name="MasterTree" parent="MainPanel/MasterTreeContainer" instance=ExtResource( 35 )]
169
 anchor_right = 0.0
160
 anchor_right = 0.0
170
 anchor_bottom = 0.0
161
 anchor_bottom = 0.0
171
-margin_right = 180.0
172
-margin_bottom = 541.0
173
-rect_min_size = Vector2( 180, 0 )
162
+margin_top = 30.0
163
+margin_right = 150.0
164
+margin_bottom = 562.0
165
+rect_min_size = Vector2( 150, 0 )
174
 size_flags_vertical = 3
166
 size_flags_vertical = 3
175
 
167
 
176
 [node name="TimelineEditor" parent="MainPanel" instance=ExtResource( 2 )]
168
 [node name="TimelineEditor" parent="MainPanel" instance=ExtResource( 2 )]
194
 margin_bottom = 661.0
186
 margin_bottom = 661.0
195
 
187
 
196
 [node name="Empty" type="CenterContainer" parent="MainPanel"]
188
 [node name="Empty" type="CenterContainer" parent="MainPanel"]
197
-margin_left = 192.0
198
-margin_right = 997.0
199
-margin_bottom = 541.0
189
+margin_left = 162.0
190
+margin_right = 1024.0
191
+margin_bottom = 562.0
200
 
192
 
201
 [node name="VBoxContainer" type="VBoxContainer" parent="MainPanel/Empty"]
193
 [node name="VBoxContainer" type="VBoxContainer" parent="MainPanel/Empty"]
202
-margin_left = 262.0
203
-margin_top = 263.0
204
-margin_right = 542.0
205
-margin_bottom = 277.0
194
+margin_left = 291.0
195
+margin_top = 274.0
196
+margin_right = 571.0
197
+margin_bottom = 288.0
206
 
198
 
207
 [node name="Label" type="Label" parent="MainPanel/Empty/VBoxContainer"]
199
 [node name="Label" type="Label" parent="MainPanel/Empty/VBoxContainer"]
208
 margin_right = 280.0
200
 margin_right = 280.0
234
 margin_top = 209.0
226
 margin_top = 209.0
235
 margin_right = 267.799
227
 margin_right = 267.799
236
 margin_bottom = 229.0
228
 margin_bottom = 229.0
237
-items = [ "Show in File Manager", ExtResource( 26 ), 0, false, false, 0, 0, null, "", false, "Remove Theme", ExtResource( 22 ), 0, false, false, 1, 0, null, "", false ]
229
+items = [ "Show in File Manager", ExtResource( 26 ), 0, false, false, 0, 0, null, "", false, "Remove Theme", ExtResource( 22 ), 0, false, false, 1, 0, null, "", false, "Duplicate Theme", ExtResource( 11 ), 0, false, false, 2, 0, null, "", false ]
238
 __meta__ = {
230
 __meta__ = {
239
 "_edit_use_anchors_": false
231
 "_edit_use_anchors_": false
240
 }
232
 }
298
 __meta__ = {
290
 __meta__ = {
299
 "_edit_use_anchors_": false
291
 "_edit_use_anchors_": false
300
 }
292
 }
301
-[connection signal="gui_input" from="ToolBar/Logo" to="." method="_on_Logo_gui_input"]

+ 142
- 22
addons/dialogic/Editor/MasterTree/MasterTree.gd View File

1
 tool
1
 tool
2
 extends Tree
2
 extends Tree
3
 
3
 
4
-onready var editor_reference = get_node('../..')
5
-onready var timeline_editor = get_node('../TimelineEditor')
6
-onready var character_editor = get_node('../CharacterEditor')
7
-onready var definition_editor = get_node('../DefinitionEditor')
8
-onready var settings_editor = get_node('../SettingsEditor')
9
-onready var theme_editor = get_node('../ThemeEditor')
10
-onready var empty_editor = get_node('../Empty')
4
+onready var editor_reference = get_node('../../../')
5
+onready var timeline_editor = get_node('../../TimelineEditor')
6
+onready var character_editor = get_node('../../CharacterEditor')
7
+onready var definition_editor = get_node('../../DefinitionEditor')
8
+onready var settings_editor = get_node('../../SettingsEditor')
9
+onready var theme_editor = get_node('../../ThemeEditor')
10
+onready var empty_editor = get_node('../../Empty')
11
+onready var filter_tree_edit = get_node('../FilterMasterTreeEdit')
11
 
12
 
12
 onready var tree = self
13
 onready var tree = self
13
-var timeline_icon = load("res://addons/dialogic/Images/timeline.svg")
14
-var character_icon = load("res://addons/dialogic/Images/character.svg")
15
-var theme_icon = load("res://addons/dialogic/Images/Resources/theme.svg")
16
-var definition_icon = load("res://addons/dialogic/Images/Resources/definition.svg")
17
-var glossary_icon = load("res://addons/dialogic/Images/Resources/glossary.svg")
14
+
15
+var timeline_icon
16
+var character_icon
17
+var theme_icon
18
+var definition_icon
19
+var glossary_icon
20
+
18
 var timelines_tree
21
 var timelines_tree
19
 var characters_tree
22
 var characters_tree
20
 var definitions_tree
23
 var definitions_tree
21
 var themes_tree
24
 var themes_tree
22
 var settings_tree
25
 var settings_tree
23
 
26
 
27
+var filter_tree_term = ''
28
+
24
 signal editor_selected(selected)
29
 signal editor_selected(selected)
25
 
30
 
26
 func _ready():
31
 func _ready():
28
 	var root = tree.create_item()
33
 	var root = tree.create_item()
29
 	tree.set_hide_root(true)
34
 	tree.set_hide_root(true)
30
 	
35
 	
36
+	var modifier = ''
37
+	var _scale = get_constant("inspector_margin", "Editor")
38
+	_scale = _scale * 0.125
39
+	rect_min_size.x = 150
40
+	if _scale == 1.25:
41
+		modifier = '-1.25'
42
+		rect_min_size.x = 180
43
+	if _scale == 1.5:
44
+		modifier = '-1.25'
45
+		rect_min_size.x = 250
46
+	if _scale == 1.75:
47
+		modifier = '-1.25'
48
+		rect_min_size.x = 250
49
+	if _scale == 2:
50
+		modifier = '-2'
51
+		rect_min_size.x = 360
52
+	rect_size.x = 0
53
+	timeline_icon = load("res://addons/dialogic/Images/Resources/timeline" + modifier + ".svg")
54
+	character_icon = load("res://addons/dialogic/Images/Resources/character" + modifier + ".svg")
55
+	theme_icon = load("res://addons/dialogic/Images/Resources/theme" + modifier + ".svg")
56
+	definition_icon = load("res://addons/dialogic/Images/Resources/definition" + modifier + ".svg")
57
+	glossary_icon = load("res://addons/dialogic/Images/Resources/glossary" + modifier + ".svg")
58
+	
31
 	# Creating the parents
59
 	# Creating the parents
32
 	timelines_tree = tree.create_item(root)
60
 	timelines_tree = tree.create_item(root)
33
 	timelines_tree.set_selectable(0, false)
61
 	timelines_tree.set_selectable(0, false)
34
 	timelines_tree.set_text(0, "Timelines")
62
 	timelines_tree.set_text(0, "Timelines")
35
-	#timelines_tree.set_icon(0, get_icon("Folder", "EditorIcons"))
63
+	timelines_tree.set_icon(0, get_icon("Folder", "EditorIcons"))
36
 	
64
 	
37
 	characters_tree = tree.create_item(root)
65
 	characters_tree = tree.create_item(root)
38
 	characters_tree.set_selectable(0, false)
66
 	characters_tree.set_selectable(0, false)
39
 	characters_tree.set_text(0, "Characters")
67
 	characters_tree.set_text(0, "Characters")
40
-	#characters_tree.set_icon(0, get_icon("Folder", "EditorIcons"))
68
+	characters_tree.set_icon(0, get_icon("Folder", "EditorIcons"))
41
 
69
 
42
 	definitions_tree = tree.create_item(root)
70
 	definitions_tree = tree.create_item(root)
43
 	definitions_tree.set_selectable(0, false)
71
 	definitions_tree.set_selectable(0, false)
44
 	definitions_tree.set_text(0, "Definitions")
72
 	definitions_tree.set_text(0, "Definitions")
45
-	#definitions_tree.set_icon(0, get_icon("Folder", "EditorIcons"))
73
+	definitions_tree.set_icon(0, get_icon("Folder", "EditorIcons"))
46
 	
74
 	
47
 	themes_tree = tree.create_item(root)
75
 	themes_tree = tree.create_item(root)
48
 	themes_tree.set_selectable(0, false)
76
 	themes_tree.set_selectable(0, false)
49
 	themes_tree.set_text(0, "Themes")
77
 	themes_tree.set_text(0, "Themes")
50
-	#themes_tree.set_icon(0, get_icon("Folder", "EditorIcons"))
78
+	themes_tree.set_icon(0, get_icon("Folder", "EditorIcons"))
51
 	
79
 	
52
 	settings_tree = tree.create_item(root)
80
 	settings_tree = tree.create_item(root)
53
 	settings_tree.set_selectable(0, true)
81
 	settings_tree.set_selectable(0, true)
62
 	connect('item_edited', self, '_on_item_edited')
90
 	connect('item_edited', self, '_on_item_edited')
63
 	$RenamerReset.connect("timeout", self, '_on_renamer_reset_timeout')
91
 	$RenamerReset.connect("timeout", self, '_on_renamer_reset_timeout')
64
 	
92
 	
93
+	filter_tree_edit.connect("text_changed", self, '_on_filter_tree_edit_changed')
94
+	
65
 	#var subchild1 = tree.create_item(timelines_tree)
95
 	#var subchild1 = tree.create_item(timelines_tree)
66
 	#subchild1.set_text(0, "Subchild1")
96
 	#subchild1.set_text(0, "Subchild1")
67
 	
97
 	
93
 func build_timelines(selected_item: String=''):
123
 func build_timelines(selected_item: String=''):
94
 	_clear_tree_children(timelines_tree)
124
 	_clear_tree_children(timelines_tree)
95
 	for t in DialogicUtil.get_sorted_timeline_list():
125
 	for t in DialogicUtil.get_sorted_timeline_list():
96
-		_add_timeline(t, not selected_item.empty() and t['file'] == selected_item)
126
+		if (filter_tree_term != ''):
127
+			if (filter_tree_term.to_lower() in t['file'].to_lower() or filter_tree_term.to_lower() in t['name'].to_lower()):
128
+				_add_timeline(t, not selected_item.empty() and t['file'] == selected_item)
129
+		else:
130
+			_add_timeline(t, not selected_item.empty() and t['file'] == selected_item)
131
+	# force redraw control
132
+	update()
97
 
133
 
98
 
134
 
99
 func _add_timeline(timeline, select = false):
135
 func _add_timeline(timeline, select = false):
115
 func build_themes(selected_item: String=''):
151
 func build_themes(selected_item: String=''):
116
 	_clear_tree_children(themes_tree)
152
 	_clear_tree_children(themes_tree)
117
 	for t in DialogicUtil.get_sorted_theme_list():
153
 	for t in DialogicUtil.get_sorted_theme_list():
118
-		_add_theme(t, not selected_item.empty() and t['file'] == selected_item)
154
+		if (filter_tree_term != ''):
155
+			if (filter_tree_term.to_lower() in t['file'].to_lower() or filter_tree_term.to_lower() in t['name'].to_lower()):
156
+				_add_theme(t, not selected_item.empty() and t['file'] == selected_item)
157
+		else:
158
+			_add_theme(t, not selected_item.empty() and t['file'] == selected_item)
159
+	# force redraw tree
160
+	update()
119
 
161
 
120
 
162
 
121
 func _add_theme(theme_item, select = false):
163
 func _add_theme(theme_item, select = false):
133
 func build_characters(selected_item: String=''):
175
 func build_characters(selected_item: String=''):
134
 	_clear_tree_children(characters_tree)
176
 	_clear_tree_children(characters_tree)
135
 	for t in DialogicUtil.get_sorted_character_list():
177
 	for t in DialogicUtil.get_sorted_character_list():
136
-		_add_character(t, not selected_item.empty() and t['file'] == selected_item)
178
+		if (filter_tree_term != ''):
179
+			if (filter_tree_term.to_lower() in t['file'].to_lower() or filter_tree_term.to_lower() in t['name'].to_lower()):
180
+				_add_character(t, not selected_item.empty() and t['file'] == selected_item)
181
+		else:		
182
+			_add_character(t, not selected_item.empty() and t['file'] == selected_item)
183
+	# force redraw tree
184
+	update()
137
 
185
 
138
 
186
 
139
 func _add_character(character, select = false):
187
 func _add_character(character, select = false):
156
 func build_definitions(selected_item: String=''):
204
 func build_definitions(selected_item: String=''):
157
 	_clear_tree_children(definitions_tree)
205
 	_clear_tree_children(definitions_tree)
158
 	for t in DialogicUtil.get_sorted_default_definitions_list():
206
 	for t in DialogicUtil.get_sorted_default_definitions_list():
159
-		_add_definition(t, not selected_item.empty() and t['id'] == selected_item)
207
+		if (filter_tree_term != ''):
208
+			if (filter_tree_term.to_lower() in t['name'].to_lower()):
209
+				_add_definition(t, not selected_item.empty() and t['id'] == selected_item)
210
+		else:		
211
+			_add_definition(t, not selected_item.empty() and t['id'] == selected_item)
212
+	# force redraw tree
213
+	update()
160
 
214
 
161
 
215
 
162
 func _add_definition(definition, select = false):
216
 func _add_definition(definition, select = false):
209
 	settings_editor.visible = false
263
 	settings_editor.visible = false
210
 	empty_editor.visible = false
264
 	empty_editor.visible = false
211
 
265
 
266
+
212
 func show_timeline_editor():
267
 func show_timeline_editor():
213
 	emit_signal("editor_selected", 'timeline')
268
 	emit_signal("editor_selected", 'timeline')
214
 	character_editor.visible = false
269
 	character_editor.visible = false
218
 	settings_editor.visible = false
273
 	settings_editor.visible = false
219
 	empty_editor.visible = false
274
 	empty_editor.visible = false
220
 
275
 
276
+
221
 func show_definition_editor():
277
 func show_definition_editor():
222
 	emit_signal("editor_selected", 'definition')
278
 	emit_signal("editor_selected", 'definition')
223
 	character_editor.visible = false
279
 	character_editor.visible = false
227
 	settings_editor.visible = false
283
 	settings_editor.visible = false
228
 	empty_editor.visible = false
284
 	empty_editor.visible = false
229
 
285
 
286
+
230
 func show_theme_editor():
287
 func show_theme_editor():
231
 	emit_signal("editor_selected", 'theme')
288
 	emit_signal("editor_selected", 'theme')
232
 	character_editor.visible = false
289
 	character_editor.visible = false
236
 	settings_editor.visible = false
293
 	settings_editor.visible = false
237
 	empty_editor.visible = false
294
 	empty_editor.visible = false
238
 
295
 
296
+
239
 func show_settings_editor():
297
 func show_settings_editor():
240
 	emit_signal("editor_selected", 'theme')
298
 	emit_signal("editor_selected", 'theme')
241
 	character_editor.visible = false
299
 	character_editor.visible = false
245
 	settings_editor.visible = true
303
 	settings_editor.visible = true
246
 	empty_editor.visible = false
304
 	empty_editor.visible = false
247
 
305
 
306
+
248
 func hide_all_editors():
307
 func hide_all_editors():
249
 	emit_signal("editor_selected", 'none')
308
 	emit_signal("editor_selected", 'none')
250
 	character_editor.visible = false
309
 	character_editor.visible = false
279
 
338
 
280
 
339
 
281
 func refresh_timeline_list():
340
 func refresh_timeline_list():
282
-	print('update timeline list')
341
+	#print('update timeline list')
342
+	pass
283
 
343
 
284
 
344
 
285
 func _on_renamer_reset_timeout():
345
 func _on_renamer_reset_timeout():
296
 
356
 
297
 
357
 
298
 func _on_item_edited():
358
 func _on_item_edited():
299
-	print('edited')
300
 	var item = get_selected()
359
 	var item = get_selected()
301
 	var metadata = item.get_metadata(0)
360
 	var metadata = item.get_metadata(0)
302
 	if metadata['editor'] == 'Timeline':
361
 	if metadata['editor'] == 'Timeline':
320
 
379
 
321
 func _on_autosave_timeout():
380
 func _on_autosave_timeout():
322
 	save_current_resource()
381
 	save_current_resource()
382
+	
383
+	
384
+func _on_filter_tree_edit_changed(value):
385
+	filter_tree_term = value
386
+	build_timelines()
387
+	build_themes()
388
+	build_characters()
389
+	build_definitions()
323
 
390
 
324
 
391
 
325
 func save_current_resource():
392
 func save_current_resource():
336
 			if metadata['editor'] == 'Definition':
403
 			if metadata['editor'] == 'Definition':
337
 				definition_editor.save_definition()
404
 				definition_editor.save_definition()
338
 			# Note: Theme files auto saves on change
405
 			# Note: Theme files auto saves on change
406
+
407
+
408
+func select_timeline_item(timeline_name):
409
+	if (timeline_name == ''):
410
+		return
411
+
412
+	var main_item = tree.get_root().get_children()
413
+	
414
+	# wow, godots tree traversal is extremly odd, or I just don't get it
415
+	while (main_item):
416
+		
417
+		if (main_item == null):
418
+			break
419
+			
420
+		if (main_item.has_method("get_text") && main_item.get_text(0) == "Timelines"):
421
+			var item = main_item.get_children()
422
+			while (item):
423
+							
424
+				if (not item.has_method("get_metadata")):
425
+					item = item.get_next()
426
+					continue
427
+			
428
+				var meta = item.get_metadata(0)
429
+		
430
+				if (meta == null):
431
+					item = item.get_next()
432
+					continue
433
+		
434
+				if (not meta.has("editor") or meta["editor"] != "Timeline"):
435
+					item = item.get_next()
436
+					continue
437
+			
438
+				# search for filename
439
+				if (meta.has("file") and meta["file"] == timeline_name):
440
+					# select this one
441
+					item.select(0)
442
+					return;
443
+			
444
+				# search for name
445
+				if (meta.has("name") and meta["name"] == timeline_name):
446
+					# select this one
447
+					item.select(0)
448
+					return;
449
+	
450
+				item = item.get_next()
451
+			break
452
+		else:
453
+			main_item = main_item.get_next()
454
+			
455
+	# fallback
456
+	hide_all_editors()
457
+	pass
458
+

+ 93
- 0
addons/dialogic/Editor/Pieces/CallNode.gd View File

1
+tool
2
+extends Control
3
+
4
+var editor_reference
5
+var editorPopup
6
+
7
+
8
+# This is the information of this event and it will get parsed and saved to the JSON file.
9
+var event_data = {
10
+	'call_node': {
11
+		'target_node_path': '',
12
+		'method_name': '',
13
+		'arguments': []
14
+	}
15
+}
16
+
17
+
18
+func load_data(data):
19
+	event_data = data
20
+	
21
+	if (not event_data['call_node']['arguments'] is Array):
22
+		event_data['call_node']['arguments'] = []
23
+	
24
+	for i in range(event_data['call_node']['arguments'].size()):
25
+		if (event_data['call_node']['arguments'][i] == null):
26
+			event_data['call_node']['arguments'][i] = ''
27
+	
28
+	$PanelContainer/VBoxContainer/Properties/TargetNodeEdit.text = event_data['call_node']['target_node_path']
29
+	$PanelContainer/VBoxContainer/Properties/CallMethodEdit.text = event_data['call_node']['method_name']
30
+	$PanelContainer/VBoxContainer/Properties/ArgumentsSpinBox.value = event_data['call_node']['arguments'].size()
31
+	
32
+	_create_argument_controls()
33
+
34
+
35
+# signal callbacks
36
+
37
+func _on_Target_LineEdit_text_changed(new_text):
38
+	event_data['call_node']['target_node_path'] = new_text
39
+	
40
+func _on_Method_LineEdit_text_changed(new_text):
41
+	event_data['call_node']['method_name'] = new_text
42
+
43
+func _on_ArgumentsSpinBox_value_changed(value):
44
+	event_data['call_node']['arguments'].resize(max(0, value))
45
+	
46
+	for i in range(event_data['call_node']['arguments'].size()):
47
+		if (event_data['call_node']['arguments'][i] == null):
48
+			event_data['call_node']['arguments'][i] = ''
49
+			
50
+	_create_argument_controls()
51
+	pass
52
+	
53
+func _on_argument_value_changed(value, arg_index):
54
+	if (arg_index < 0 or arg_index >= event_data['call_node']['arguments'].size()):
55
+		return
56
+		
57
+	event_data['call_node']['arguments'][arg_index] = str(value)
58
+	pass
59
+	
60
+# helpers
61
+func _create_argument_controls():
62
+	if (not event_data['call_node']['arguments'] is Array):
63
+		return
64
+		
65
+	# clear old
66
+	for c in $PanelContainer/VBoxContainer/Arguments.get_children():
67
+		$PanelContainer/VBoxContainer/Arguments.remove_child(c)
68
+		c.queue_free()
69
+		
70
+	# create controls
71
+	var index = 0
72
+	for a in event_data['call_node']['arguments']:
73
+		var container = HBoxContainer.new()
74
+		container.name = "Argument%s" % index
75
+		
76
+		var label = Label.new()
77
+		label.name = "ArgumentLabel"
78
+		label.text = "Argument %s:" % index
79
+		label.rect_min_size.x = 100
80
+		container.add_child(label)
81
+		
82
+		var edit = LineEdit.new()
83
+		edit.name = "ArgumentValue"
84
+		edit.text = str(a)
85
+		edit.connect("text_changed", self, "_on_argument_value_changed", [ index ])
86
+		edit.rect_min_size.x = 250
87
+		container.add_child(edit)
88
+		
89
+		$PanelContainer/VBoxContainer/Arguments.add_child(container)
90
+		
91
+		index += 1
92
+		
93
+	pass

+ 143
- 0
addons/dialogic/Editor/Pieces/CallNode.tscn View File

1
+[gd_scene load_steps=6 format=2]
2
+
3
+[ext_resource path="res://addons/dialogic/Images/Script.svg" type="Texture" id=1]
4
+[ext_resource path="res://addons/dialogic/Editor/Pieces/CallNode.gd" type="Script" id=2]
5
+[ext_resource path="res://addons/dialogic/Editor/Pieces/Common/Spacer.tscn" type="PackedScene" id=3]
6
+[ext_resource path="res://addons/dialogic/Editor/Pieces/Common/PieceExtraSettings.tscn" type="PackedScene" id=4]
7
+
8
+[sub_resource type="StyleBoxFlat" id=1]
9
+content_margin_left = 16.0
10
+content_margin_right = 6.0
11
+content_margin_top = 6.0
12
+content_margin_bottom = 6.0
13
+bg_color = Color( 0.14902, 0.333333, 0.509804, 0.4 )
14
+border_width_left = 2
15
+border_width_top = 2
16
+border_width_right = 2
17
+border_width_bottom = 2
18
+border_color = Color( 0.12549, 0.12549, 0.12549, 1 )
19
+corner_radius_top_left = 6
20
+corner_radius_top_right = 6
21
+corner_radius_bottom_right = 6
22
+corner_radius_bottom_left = 6
23
+
24
+[node name="CallNode" type="HBoxContainer"]
25
+margin_right = 1004.0
26
+margin_bottom = 100.0
27
+size_flags_horizontal = 3
28
+size_flags_vertical = 9
29
+script = ExtResource( 2 )
30
+__meta__ = {
31
+"_edit_use_anchors_": false
32
+}
33
+
34
+[node name="Indent" type="Control" parent="."]
35
+visible = false
36
+margin_bottom = 42.0
37
+
38
+[node name="PanelContainer" type="PanelContainer" parent="."]
39
+margin_right = 1004.0
40
+margin_bottom = 100.0
41
+mouse_filter = 1
42
+size_flags_horizontal = 3
43
+size_flags_vertical = 3
44
+custom_styles/panel = SubResource( 1 )
45
+__meta__ = {
46
+"_edit_use_anchors_": false
47
+}
48
+
49
+[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
50
+margin_left = 16.0
51
+margin_top = 6.0
52
+margin_right = 998.0
53
+margin_bottom = 94.0
54
+size_flags_horizontal = 3
55
+
56
+[node name="Header" type="HBoxContainer" parent="PanelContainer/VBoxContainer"]
57
+margin_right = 982.0
58
+margin_bottom = 28.0
59
+
60
+[node name="TextureRect" type="TextureRect" parent="PanelContainer/VBoxContainer/Header"]
61
+margin_right = 22.0
62
+margin_bottom = 28.0
63
+texture = ExtResource( 1 )
64
+stretch_mode = 6
65
+
66
+[node name="Title" type="Label" parent="PanelContainer/VBoxContainer/Header"]
67
+margin_left = 26.0
68
+margin_top = 7.0
69
+margin_right = 87.0
70
+margin_bottom = 21.0
71
+text = "Call Node"
72
+
73
+[node name="Preview" type="Label" parent="PanelContainer/VBoxContainer/Header"]
74
+margin_left = 91.0
75
+margin_top = 7.0
76
+margin_right = 91.0
77
+margin_bottom = 21.0
78
+custom_colors/font_color = Color( 1, 1, 1, 0.513726 )
79
+
80
+[node name="Spacer" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 3 )]
81
+margin_left = 95.0
82
+margin_right = 941.0
83
+margin_bottom = 28.0
84
+
85
+[node name="OptionButton" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 4 )]
86
+margin_left = 945.0
87
+margin_right = 982.0
88
+margin_bottom = 28.0
89
+items = [ "Move Up", null, 0, false, false, 0, 0, null, "", false, "Move Down", null, 0, false, false, 1, 0, null, "", false, "", null, 0, false, false, 2, 0, null, "", true, "Remove", null, 0, false, false, 3, 0, null, "", false ]
90
+
91
+[node name="Properties" type="HBoxContainer" parent="PanelContainer/VBoxContainer"]
92
+margin_top = 32.0
93
+margin_right = 982.0
94
+margin_bottom = 56.0
95
+custom_constants/separation = 8
96
+
97
+[node name="TargetNodeLabel" type="Label" parent="PanelContainer/VBoxContainer/Properties"]
98
+margin_top = 5.0
99
+margin_right = 81.0
100
+margin_bottom = 19.0
101
+text = "Target Node:"
102
+
103
+[node name="TargetNodeEdit" type="LineEdit" parent="PanelContainer/VBoxContainer/Properties"]
104
+margin_left = 89.0
105
+margin_right = 339.0
106
+margin_bottom = 24.0
107
+rect_min_size = Vector2( 250, 0 )
108
+
109
+[node name="CallMethodLabel" type="Label" parent="PanelContainer/VBoxContainer/Properties"]
110
+margin_left = 347.0
111
+margin_top = 5.0
112
+margin_right = 427.0
113
+margin_bottom = 19.0
114
+text = "Call Method:"
115
+
116
+[node name="CallMethodEdit" type="LineEdit" parent="PanelContainer/VBoxContainer/Properties"]
117
+margin_left = 435.0
118
+margin_right = 635.0
119
+margin_bottom = 24.0
120
+rect_min_size = Vector2( 200, 0 )
121
+
122
+[node name="ArgumentsLabel" type="Label" parent="PanelContainer/VBoxContainer/Properties"]
123
+margin_left = 643.0
124
+margin_top = 5.0
125
+margin_right = 717.0
126
+margin_bottom = 19.0
127
+text = "Arguments:"
128
+
129
+[node name="ArgumentsSpinBox" type="SpinBox" parent="PanelContainer/VBoxContainer/Properties"]
130
+margin_left = 725.0
131
+margin_right = 799.0
132
+margin_bottom = 24.0
133
+max_value = 99.0
134
+
135
+[node name="Arguments" type="VBoxContainer" parent="PanelContainer/VBoxContainer"]
136
+margin_top = 60.0
137
+margin_right = 982.0
138
+margin_bottom = 60.0
139
+custom_constants/separation = 5
140
+
141
+[connection signal="text_changed" from="PanelContainer/VBoxContainer/Properties/TargetNodeEdit" to="." method="_on_Target_LineEdit_text_changed"]
142
+[connection signal="text_changed" from="PanelContainer/VBoxContainer/Properties/CallMethodEdit" to="." method="_on_Method_LineEdit_text_changed"]
143
+[connection signal="value_changed" from="PanelContainer/VBoxContainer/Properties/ArgumentsSpinBox" to="." method="_on_ArgumentsSpinBox_value_changed"]

+ 3
- 4
addons/dialogic/Editor/Pieces/Common/PieceExtraSettings.gd View File

21
 		timeline_editor.move_block(current_piece, 'down')
21
 		timeline_editor.move_block(current_piece, 'down')
22
 	elif index == 3:
22
 	elif index == 3:
23
 		# Removing a piece
23
 		# Removing a piece
24
-		if timeline_editor.selected_item == current_piece:
25
-			timeline_editor.selected_item = null
26
-		# TODO: Add a warning here if the event has changes
27
-		current_piece.queue_free()
24
+		if timeline_editor.selected_item != current_piece:
25
+			timeline_editor._select_item(current_piece)
26
+		timeline_editor.delete_event()
28
 	timeline_editor.indent_events()
27
 	timeline_editor.indent_events()

+ 1
- 1
addons/dialogic/Editor/Pieces/Common/PieceExtraSettings.tscn View File

11
 icon = ExtResource( 1 )
11
 icon = ExtResource( 1 )
12
 clip_text = true
12
 clip_text = true
13
 align = 2
13
 align = 2
14
-items = [ "Move Up", null, 0, false, false, 0, 0, null, "", false, "Move Down", null, 0, false, false, 1, 0, null, "", false, "", null, 0, false, false, 2, 0, null, "", true, "Remove", null, 0, false, false, 3, 0, null, "", false ]
14
+items = [ "Move Up (Alt+Up)", null, 0, false, false, 0, 0, null, "", false, "Move Down (Alt+Down)", null, 0, false, false, 1, 0, null, "", false, "", null, 0, false, false, 2, 0, null, "", true, "Remove", null, 0, false, false, 3, 0, null, "", false ]
15
 script = ExtResource( 2 )
15
 script = ExtResource( 2 )
16
 __meta__ = {
16
 __meta__ = {
17
 "_edit_use_anchors_": false
17
 "_edit_use_anchors_": false

+ 8
- 0
addons/dialogic/Editor/Pieces/Common/SpinBoxPreventDnD.gd View File

1
+tool
2
+extends SpinBox
3
+
4
+func can_drop_data(position, data):
5
+	# this prevents locking the mouse
6
+	# on some operating systems
7
+	# due to a godot editor bug with SpinBox drag/drop
8
+	return false

+ 2
- 1
addons/dialogic/Editor/Pieces/IfCondition.tscn View File

75
 
75
 
76
 [node name="CustomLineEdit" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 6 )]
76
 [node name="CustomLineEdit" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 6 )]
77
 margin_left = 256.0
77
 margin_left = 256.0
78
-margin_right = 304.0
78
+margin_right = 352.0
79
 margin_bottom = 28.0
79
 margin_bottom = 28.0
80
+hint_tooltip = "you can enter a text-value, a number or you can enter the name of another definition to compare against."
80
 
81
 
81
 [node name="Preview" type="Label" parent="PanelContainer/VBoxContainer/Header"]
82
 [node name="Preview" type="Label" parent="PanelContainer/VBoxContainer/Header"]
82
 margin_left = 308.0
83
 margin_left = 308.0

+ 3
- 3
addons/dialogic/Editor/Pieces/SceneEvent.gd View File

18
 
18
 
19
 
19
 
20
 func _on_ImageButton_pressed():
20
 func _on_ImageButton_pressed():
21
-	editor_reference.godot_dialog("*.png, *.jpg, *.jpeg, *.tga, *.svg, *.svgz, *.bmp, *.webp;Image")
21
+	editor_reference.godot_dialog("*.png, *.jpg, *.jpeg, *.tga, *.svg, *.svgz, *.bmp, *.webp, *.tscn")
22
 	editor_reference.godot_dialog_connect(self, "_on_file_selected")
22
 	editor_reference.godot_dialog_connect(self, "_on_file_selected")
23
 
23
 
24
 
24
 
33
 
33
 
34
 func load_image(img_src):
34
 func load_image(img_src):
35
 	event_data['background'] = img_src
35
 	event_data['background'] = img_src
36
-	if event_data['background'] != '':
37
-		$PanelContainer/VBoxContainer/HBoxContainer/LineEdit.text = event_data['background']
36
+	$PanelContainer/VBoxContainer/HBoxContainer/LineEdit.text = event_data['background']
37
+	if event_data['background'] != '' and not event_data['background'].ends_with('.tscn'):
38
 		$PanelContainer/VBoxContainer/TextureRect.texture = load(event_data['background'])
38
 		$PanelContainer/VBoxContainer/TextureRect.texture = load(event_data['background'])
39
 		$PanelContainer/VBoxContainer/TextureRect.rect_min_size = Vector2(200,200)
39
 		$PanelContainer/VBoxContainer/TextureRect.rect_min_size = Vector2(200,200)
40
 		preview = event_data['background']
40
 		preview = event_data['background']

+ 26
- 1
addons/dialogic/Editor/Pieces/TextBlock.gd View File

1
 tool
1
 tool
2
 extends Control
2
 extends Control
3
 
3
 
4
-var text_height = 26
4
+var text_height = 21
5
 var editor_reference
5
 var editor_reference
6
 var preview = ''
6
 var preview = ''
7
 onready var toggler = get_node("PanelContainer/VBoxContainer/Header/VisibleToggle")
7
 onready var toggler = get_node("PanelContainer/VBoxContainer/Header/VisibleToggle")
16
 onready var portrait_picker = $PanelContainer/VBoxContainer/Header/PortraitPicker
16
 onready var portrait_picker = $PanelContainer/VBoxContainer/Header/PortraitPicker
17
 
17
 
18
 func _ready():
18
 func _ready():
19
+	var _scale = get_constant("inspector_margin", "Editor")
20
+	_scale = _scale * 0.125
21
+	text_height = text_height * _scale
19
 	connect("gui_input", self, '_on_gui_input')
22
 	connect("gui_input", self, '_on_gui_input')
23
+	$PanelContainer/VBoxContainer/TextEdit.connect("focus_entered", self, "_on_TextEdit_focus_entered")
20
 	$PanelContainer/VBoxContainer/TextEdit.set("rect_min_size", Vector2(0, 80))
24
 	$PanelContainer/VBoxContainer/TextEdit.set("rect_min_size", Vector2(0, 80))
21
 	$PanelContainer/VBoxContainer/Header/CharacterPicker.connect('character_selected', self , '_on_character_selected')
25
 	$PanelContainer/VBoxContainer/Header/CharacterPicker.connect('character_selected', self , '_on_character_selected')
22
 	portrait_picker.get_popup().connect("index_pressed", self, '_on_portrait_selected')
26
 	portrait_picker.get_popup().connect("index_pressed", self, '_on_portrait_selected')
96
 				toggler.pressed = true
100
 				toggler.pressed = true
97
 
101
 
98
 
102
 
103
+func _on_TextEdit_focus_entered():
104
+	# propagate to timeline to make this text event as active selected
105
+	# to help improve keyboard shortcut workflows
106
+	# only maybe only do this on left click since mouse wheel and
107
+	# touch scrolling may triggers this event too
108
+	if (Input.is_mouse_button_pressed(BUTTON_LEFT)):
109
+		var timeline_editor = editor_reference.get_node_or_null('MainPanel/TimelineEditor')
110
+		if (timeline_editor != null):
111
+			# @todo select item and clear selection is marked as "private" in TimelineEditor.gd
112
+			# consider to make it "public" or add a public helper function
113
+			timeline_editor._clear_selection()
114
+			timeline_editor._select_item(self)
115
+		pass
116
+	
117
+	
99
 func _on_saver_timer_timeout():
118
 func _on_saver_timer_timeout():
100
 	update_preview()
119
 	update_preview()
120
+	
121
+	
122
+# gets called when the user selects this node in the timeline
123
+func on_timeline_selected():
124
+	$PanelContainer/VBoxContainer/TextEdit.grab_focus()
125
+	pass

+ 5
- 2
addons/dialogic/Editor/Pieces/TextBlock.tscn View File

76
 
76
 
77
 [node name="Label" type="Label" parent="PanelContainer/VBoxContainer/Header"]
77
 [node name="Label" type="Label" parent="PanelContainer/VBoxContainer/Header"]
78
 visible = false
78
 visible = false
79
-margin_left = 60.0
79
+margin_left = 35.0
80
 margin_top = 8.0
80
 margin_top = 8.0
81
-margin_right = 103.0
81
+margin_right = 78.0
82
 margin_bottom = 22.0
82
 margin_bottom = 22.0
83
 text = "  Text  "
83
 text = "  Text  "
84
 
84
 
93
 
93
 
94
 [node name="PortraitPicker" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 7 )]
94
 [node name="PortraitPicker" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 7 )]
95
 visible = false
95
 visible = false
96
+margin_left = 153.0
97
+margin_right = 187.0
96
 
98
 
97
 [node name="VisibleToggle" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 2 )]
99
 [node name="VisibleToggle" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 2 )]
98
 margin_left = 153.0
100
 margin_left = 153.0
127
 show_line_numbers = true
129
 show_line_numbers = true
128
 smooth_scrolling = true
130
 smooth_scrolling = true
129
 wrap_enabled = true
131
 wrap_enabled = true
132
+
130
 [connection signal="text_changed" from="PanelContainer/VBoxContainer/TextEdit" to="." method="_on_TextEdit_text_changed"]
133
 [connection signal="text_changed" from="PanelContainer/VBoxContainer/TextEdit" to="." method="_on_TextEdit_text_changed"]

+ 3
- 1
addons/dialogic/Editor/Pieces/WaitSeconds.tscn View File

1
-[gd_scene load_steps=6 format=2]
1
+[gd_scene load_steps=8 format=2]
2
 
2
 
3
 [ext_resource path="res://addons/dialogic/Images/Events/Wait.svg" type="Texture" id=1]
3
 [ext_resource path="res://addons/dialogic/Images/Events/Wait.svg" type="Texture" id=1]
4
 [ext_resource path="res://addons/dialogic/Editor/Pieces/WaitSeconds.gd" type="Script" id=2]
4
 [ext_resource path="res://addons/dialogic/Editor/Pieces/WaitSeconds.gd" type="Script" id=2]
5
 [ext_resource path="res://addons/dialogic/Editor/Pieces/Common/Spacer.tscn" type="PackedScene" id=3]
5
 [ext_resource path="res://addons/dialogic/Editor/Pieces/Common/Spacer.tscn" type="PackedScene" id=3]
6
 [ext_resource path="res://addons/dialogic/Editor/Pieces/Common/PieceExtraSettings.tscn" type="PackedScene" id=4]
6
 [ext_resource path="res://addons/dialogic/Editor/Pieces/Common/PieceExtraSettings.tscn" type="PackedScene" id=4]
7
+[ext_resource path="res://addons/dialogic/Editor/Pieces/Common/SpinBoxPreventDnD.gd" type="Script" id=6]
7
 
8
 
8
 [sub_resource type="StyleBoxFlat" id=1]
9
 [sub_resource type="StyleBoxFlat" id=1]
9
 content_margin_left = 16.0
10
 content_margin_left = 16.0
78
 value = 0.1
79
 value = 0.1
79
 allow_greater = true
80
 allow_greater = true
80
 align = 1
81
 align = 1
82
+script = ExtResource( 6 )
81
 
83
 
82
 [node name="Title2" type="Label" parent="PanelContainer/VBoxContainer/Header"]
84
 [node name="Title2" type="Label" parent="PanelContainer/VBoxContainer/Header"]
83
 margin_left = 157.0
85
 margin_left = 157.0

+ 10
- 0
addons/dialogic/Editor/SettingsEditor/SettingsEditor.gd View File

7
 	'remove_empty_messages': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer/RemoveEmptyMessages,
7
 	'remove_empty_messages': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer/RemoveEmptyMessages,
8
 	'auto_color_names': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer3/AutoColorNames,
8
 	'auto_color_names': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer3/AutoColorNames,
9
 	'propagate_input': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer4/PropagateInput,
9
 	'propagate_input': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer4/PropagateInput,
10
+	'dim_characters': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer5/DimCharacters,
10
 }
11
 }
12
+
13
+
11
 func _ready():
14
 func _ready():
12
 	update_data()
15
 	update_data()
13
 	
16
 	
16
 	nodes['remove_empty_messages'].connect('toggled', self, '_on_remove_empty_message_toggled')
19
 	nodes['remove_empty_messages'].connect('toggled', self, '_on_remove_empty_message_toggled')
17
 	nodes['auto_color_names'].connect('toggled', self, '_on_auto_color_names_toggled')
20
 	nodes['auto_color_names'].connect('toggled', self, '_on_auto_color_names_toggled')
18
 	nodes['propagate_input'].connect('toggled', self, '_on_propagate_input_toggled')
21
 	nodes['propagate_input'].connect('toggled', self, '_on_propagate_input_toggled')
22
+	nodes['dim_characters'].connect('toggled', self, '_on_dim_characters_toggled')
19
 
23
 
20
 
24
 
21
 func update_data():
25
 func update_data():
33
 		nodes['auto_color_names'].pressed = settings.get_value('dialog', 'auto_color_names')
37
 		nodes['auto_color_names'].pressed = settings.get_value('dialog', 'auto_color_names')
34
 	if settings.has_section_key('dialog', 'propagate_input'):
38
 	if settings.has_section_key('dialog', 'propagate_input'):
35
 		nodes['propagate_input'].pressed = settings.get_value('dialog', 'propagate_input')
39
 		nodes['propagate_input'].pressed = settings.get_value('dialog', 'propagate_input')
40
+	if settings.has_section_key('dialog', 'dim_characters'):
41
+		nodes['dim_characters'].pressed = settings.get_value('dialog', 'dim_characters')
36
 
42
 
37
 
43
 
38
 func refresh_themes(settings):
44
 func refresh_themes(settings):
74
 func _on_auto_color_names_toggled(value):
80
 func _on_auto_color_names_toggled(value):
75
 	set_value('dialog', 'auto_color_names', value)
81
 	set_value('dialog', 'auto_color_names', value)
76
 
82
 
83
+
77
 func _on_propagate_input_toggled(value):
84
 func _on_propagate_input_toggled(value):
78
 	set_value('dialog', 'propagate_input', value)
85
 	set_value('dialog', 'propagate_input', value)
79
 
86
 
80
 
87
 
88
+func _on_dim_characters_toggled(value):
89
+	set_value('dialog', 'dim_characters', value)
90
+
81
 # Reading and saving data to the settings file
91
 # Reading and saving data to the settings file
82
 func set_value(section, key, value):
92
 func set_value(section, key, value):
83
 	DialogicResources.set_settings_value(section, key, value)
93
 	DialogicResources.set_settings_value(section, key, value)

+ 39
- 18
addons/dialogic/Editor/SettingsEditor/SettingsEditor.tscn View File

18
 
18
 
19
 [node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer"]
19
 [node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer"]
20
 margin_right = 1024.0
20
 margin_right = 1024.0
21
-margin_bottom = 212.0
21
+margin_bottom = 240.0
22
 
22
 
23
 [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3"]
23
 [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3"]
24
-margin_right = 288.0
25
-margin_bottom = 212.0
24
+margin_right = 304.0
25
+margin_bottom = 240.0
26
 custom_constants/separation = 16
26
 custom_constants/separation = 16
27
 
27
 
28
 [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer"]
28
 [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer"]
29
-margin_right = 288.0
29
+margin_right = 304.0
30
 margin_bottom = 54.0
30
 margin_bottom = 54.0
31
 
31
 
32
 [node name="Panel" type="Panel" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer"]
32
 [node name="Panel" type="Panel" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer"]
33
-margin_right = 288.0
33
+margin_right = 304.0
34
 margin_bottom = 30.0
34
 margin_bottom = 30.0
35
 rect_min_size = Vector2( 0, 30 )
35
 rect_min_size = Vector2( 0, 30 )
36
 size_flags_horizontal = 3
36
 size_flags_horizontal = 3
45
 
45
 
46
 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer"]
46
 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer"]
47
 margin_top = 34.0
47
 margin_top = 34.0
48
-margin_right = 288.0
48
+margin_right = 304.0
49
 margin_bottom = 54.0
49
 margin_bottom = 54.0
50
 
50
 
51
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer/HBoxContainer"]
51
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer/HBoxContainer"]
59
 margin_right = 190.0
59
 margin_right = 190.0
60
 margin_bottom = 20.0
60
 margin_bottom = 20.0
61
 rect_min_size = Vector2( 140, 0 )
61
 rect_min_size = Vector2( 140, 0 )
62
-text = "test"
63
-items = [ "test", null, false, 0, {
64
-"file": "theme-1616687382.cfg"
62
+text = "Basic"
63
+items = [ "Alternative", null, false, 0, {
64
+"file": "theme-1617143167.cfg"
65
+}, "Basic", null, false, 1, {
66
+"file": "theme-1616778229.cfg"
67
+}, "New Theme", null, false, 2, {
68
+"file": "theme-1617143282.cfg"
65
 } ]
69
 } ]
66
-selected = 0
70
+selected = 1
67
 
71
 
68
 [node name="VBoxContainer2" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer"]
72
 [node name="VBoxContainer2" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer"]
69
 margin_top = 70.0
73
 margin_top = 70.0
70
-margin_right = 288.0
71
-margin_bottom = 212.0
74
+margin_right = 304.0
75
+margin_bottom = 240.0
72
 
76
 
73
 [node name="Panel2" type="Panel" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
77
 [node name="Panel2" type="Panel" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
74
-margin_right = 288.0
78
+margin_right = 304.0
75
 margin_bottom = 30.0
79
 margin_bottom = 30.0
76
 rect_min_size = Vector2( 0, 30 )
80
 rect_min_size = Vector2( 0, 30 )
77
 size_flags_horizontal = 3
81
 size_flags_horizontal = 3
86
 
90
 
87
 [node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
91
 [node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
88
 margin_top = 34.0
92
 margin_top = 34.0
89
-margin_right = 288.0
93
+margin_right = 304.0
90
 margin_bottom = 58.0
94
 margin_bottom = 58.0
91
 
95
 
92
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer2"]
96
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer2"]
105
 
109
 
106
 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
110
 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
107
 margin_top = 62.0
111
 margin_top = 62.0
108
-margin_right = 288.0
112
+margin_right = 304.0
109
 margin_bottom = 86.0
113
 margin_bottom = 86.0
110
 
114
 
111
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer"]
115
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer"]
116
 
120
 
117
 [node name="RemoveEmptyMessages" type="CheckBox" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer"]
121
 [node name="RemoveEmptyMessages" type="CheckBox" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer"]
118
 margin_left = 169.0
122
 margin_left = 169.0
119
-margin_right = 288.0
123
+margin_right = 304.0
120
 margin_bottom = 24.0
124
 margin_bottom = 24.0
121
 size_flags_horizontal = 3
125
 size_flags_horizontal = 3
122
 pressed = true
126
 pressed = true
123
 
127
 
124
 [node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
128
 [node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
125
 margin_top = 90.0
129
 margin_top = 90.0
126
-margin_right = 288.0
130
+margin_right = 304.0
127
 margin_bottom = 114.0
131
 margin_bottom = 114.0
128
 
132
 
129
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer3"]
133
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer3"]
140
 
144
 
141
 [node name="HBoxContainer4" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
145
 [node name="HBoxContainer4" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
142
 margin_top = 118.0
146
 margin_top = 118.0
143
-margin_right = 288.0
147
+margin_right = 304.0
144
 margin_bottom = 142.0
148
 margin_bottom = 142.0
145
 
149
 
146
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer4"]
150
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer4"]
154
 margin_right = 247.0
158
 margin_right = 247.0
155
 margin_bottom = 24.0
159
 margin_bottom = 24.0
156
 pressed = true
160
 pressed = true
161
+
162
+[node name="HBoxContainer5" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
163
+margin_top = 146.0
164
+margin_right = 304.0
165
+margin_bottom = 170.0
166
+
167
+[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer5"]
168
+margin_top = 5.0
169
+margin_right = 276.0
170
+margin_bottom = 19.0
171
+text = "Dim characters when they are not speaking"
172
+
173
+[node name="DimCharacters" type="CheckBox" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer5"]
174
+margin_left = 280.0
175
+margin_right = 304.0
176
+margin_bottom = 24.0
177
+pressed = true

+ 207
- 52
addons/dialogic/Editor/ThemeEditor/ThemeEditor.gd View File

2
 extends Control
2
 extends Control
3
 
3
 
4
 var editor_reference
4
 var editor_reference
5
-onready var master_tree = get_node('../MasterTree')
5
+onready var master_tree = get_node('../MasterTreeContainer/MasterTree')
6
 onready var settings_editor = get_node('../SettingsEditor')
6
 onready var settings_editor = get_node('../SettingsEditor')
7
 var current_theme = ''
7
 var current_theme = ''
8
 
8
 
9
+# When loading the variables to the input fields in the 
10
+# load_theme function, every element thinks the value was updated
11
+# so it has to perform a "saving" of that property. 
12
+# The loading variable is a way to check if the values should be saved
13
+# or not.
14
+var loading = true 
15
+
9
 # The amazing and revolutionary path system that magically works and you can't
16
 # The amazing and revolutionary path system that magically works and you can't
10
 # complain because "that is not how you are supposed to work". If there was only
17
 # complain because "that is not how you are supposed to work". If there was only
11
 # a way to set an id and then access that node via id...
18
 # a way to set an id and then access that node via id...
12
 # Here you have paths in all its glory. Praise the paths (っ´ω`c)♡
19
 # Here you have paths in all its glory. Praise the paths (っ´ω`c)♡
13
 onready var n = {
20
 onready var n = {
14
 	# Text
21
 	# Text
15
-	'theme_text_shadow': $VBoxContainer/HBoxContainer2/Text/GridContainer/HBoxContainer2/CheckBoxShadow,
16
-	'theme_text_shadow_color': $VBoxContainer/HBoxContainer2/Text/GridContainer/HBoxContainer2/ColorPickerButtonShadow,
17
-	'theme_text_color': $VBoxContainer/HBoxContainer2/Text/GridContainer/ColorPickerButton,
18
-	'theme_font': $VBoxContainer/HBoxContainer2/Text/GridContainer/FontButton,
19
-	'theme_shadow_offset_x': $VBoxContainer/HBoxContainer2/Text/GridContainer/HBoxContainer/ShadowOffsetX,
20
-	'theme_shadow_offset_y': $VBoxContainer/HBoxContainer2/Text/GridContainer/HBoxContainer/ShadowOffsetY,
21
-	'theme_text_speed': $VBoxContainer/HBoxContainer2/Text/GridContainer/TextSpeed,
22
-	'alignment': $VBoxContainer/HBoxContainer2/Text/GridContainer/HBoxContainer3/Alignment,
22
+	'theme_text_shadow': $VBoxContainer/TabContainer/Text/Column/GridContainer/HBoxContainer2/CheckBoxShadow,
23
+	'theme_text_shadow_color': $VBoxContainer/TabContainer/Text/Column/GridContainer/HBoxContainer2/ColorPickerButtonShadow,
24
+	'theme_text_color': $VBoxContainer/TabContainer/Text/Column/GridContainer/ColorPickerButton,
25
+	'theme_font': $VBoxContainer/TabContainer/Text/Column/GridContainer/FontButton,
26
+	'theme_shadow_offset_x': $VBoxContainer/TabContainer/Text/Column/GridContainer/HBoxContainer/ShadowOffsetX,
27
+	'theme_shadow_offset_y': $VBoxContainer/TabContainer/Text/Column/GridContainer/HBoxContainer/ShadowOffsetY,
28
+	'theme_text_speed': $VBoxContainer/TabContainer/Text/Column/GridContainer/TextSpeed,
29
+	'alignment': $VBoxContainer/TabContainer/Text/Column/GridContainer/HBoxContainer3/Alignment,
23
 	
30
 	
24
 	# Dialog box
31
 	# Dialog box
25
-	'background_texture_button_visible': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/HBoxContainer3/CheckBox,
26
-	'theme_background_image': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/HBoxContainer3/BackgroundTextureButton,
27
-	'theme_next_image': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/NextIndicatorButton,
28
-	'next_animation': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/NextAnimation,
29
-	'theme_action_key': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/BoxContainer/ActionOptionButton,
30
-	'theme_background_color_visible': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/HBoxContainer2/CheckBox,
31
-	'theme_background_color': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/HBoxContainer2/ColorPickerButton,
32
-	'theme_text_margin': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/HBoxContainer/TextOffsetV,
33
-	'theme_text_margin_h': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/HBoxContainer/TextOffsetH,
34
-	'size_w': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/HBoxContainer4/BoxSizeW,
35
-	'size_h': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/HBoxContainer4/BoxSizeH, 
36
-	'bottom_gap': $VBoxContainer/HBoxContainer2/DialogBox/GridContainer/HBoxContainer5/BottomGap,
32
+	'background_texture_button_visible': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer3/CheckBox",
33
+	'theme_background_image': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer3/BackgroundTextureButton",
34
+	'theme_next_image': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/NextIndicatorButton",
35
+	'next_animation': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/NextAnimation",
36
+	'theme_action_key': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/BoxContainer/ActionOptionButton",
37
+	'theme_background_color_visible': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer2/CheckBox",
38
+	'theme_background_color': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer2/ColorPickerButton",
39
+	'theme_text_margin': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer/TextOffsetV",
40
+	'theme_text_margin_h': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer/TextOffsetH",
41
+	'size_w': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer4/BoxSizeW",
42
+	'size_h': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer4/BoxSizeH", 
43
+	'bottom_gap': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer5/BottomGap",
44
+	'background_modulation': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer6/CheckBox",
45
+	'background_modulation_color': $"VBoxContainer/TabContainer/Dialog Box/Column/GridContainer/HBoxContainer6/ColorPickerButton",
46
+	
37
 	
47
 	
38
 	# Buttons
48
 	# Buttons
39
-	'button_text_color_enabled': $VBoxContainer/HBoxContainer2/ButtonStyle/GridContainer/HBoxContainer4/CheckBox2,
40
-	'button_text_color': $VBoxContainer/HBoxContainer2/ButtonStyle/GridContainer/HBoxContainer4/ButtonTextColor,
41
-	'button_background': $VBoxContainer/HBoxContainer2/ButtonStyle/GridContainer/HBoxContainer2/ColorPickerButton,
42
-	'button_background_visible': $VBoxContainer/HBoxContainer2/ButtonStyle/GridContainer/HBoxContainer2/CheckBox,
43
-	'button_image': $VBoxContainer/HBoxContainer2/ButtonStyle/GridContainer/HBoxContainer3/BackgroundTextureButton,
44
-	'button_image_visible': $VBoxContainer/HBoxContainer2/ButtonStyle/GridContainer/HBoxContainer3/CheckBox,
45
-	'button_offset_x': $VBoxContainer/HBoxContainer2/ButtonStyle/GridContainer/HBoxContainer/TextOffsetH,
46
-	'button_offset_y': $VBoxContainer/HBoxContainer2/ButtonStyle/GridContainer/HBoxContainer/TextOffsetV,
47
-	'button_separation': $VBoxContainer/HBoxContainer2/ButtonStyle/GridContainer/VerticalSeparation,
49
+	'button_text_color_enabled': $"VBoxContainer/TabContainer/Choice Buttons/Column/GridContainer/HBoxContainer4/CheckBox2",
50
+	'button_text_color': $"VBoxContainer/TabContainer/Choice Buttons/Column/GridContainer/HBoxContainer4/ButtonTextColor",
51
+	'button_background': $"VBoxContainer/TabContainer/Choice Buttons/Column/GridContainer/HBoxContainer2/ColorPickerButton",
52
+	'button_background_visible': $"VBoxContainer/TabContainer/Choice Buttons/Column/GridContainer/HBoxContainer2/CheckBox",
53
+	'button_image': $"VBoxContainer/TabContainer/Choice Buttons/Column/GridContainer/HBoxContainer3/BackgroundTextureButton",
54
+	'button_image_visible': $"VBoxContainer/TabContainer/Choice Buttons/Column/GridContainer/HBoxContainer3/CheckBox",
55
+	'button_offset_x': $"VBoxContainer/TabContainer/Choice Buttons/Column/GridContainer/HBoxContainer/TextOffsetH",
56
+	'button_offset_y': $"VBoxContainer/TabContainer/Choice Buttons/Column/GridContainer/HBoxContainer/TextOffsetV",
57
+	'button_separation': $"VBoxContainer/TabContainer/Choice Buttons/Column/GridContainer/VerticalSeparation",
48
 	
58
 	
49
 	# Definitions
59
 	# Definitions
50
-	'glossary_font': $VBoxContainer/HBoxContainer2/Glossary/GridContainer/FontButton,
51
-	'glossary_color': $VBoxContainer/HBoxContainer2/Glossary/GridContainer/ColorPickerButton,
60
+	'glossary_font': $VBoxContainer/TabContainer/Glossary/Column/GridContainer/FontButton,
61
+	'glossary_color': $VBoxContainer/TabContainer/Glossary/Column/GridContainer/ColorPickerButton,
62
+	
52
 	# Text preview
63
 	# Text preview
53
-	'preview_panel': $VBoxContainer/Panel,
54
 	'text_preview': $VBoxContainer/HBoxContainer3/TextEdit,
64
 	'text_preview': $VBoxContainer/HBoxContainer3/TextEdit,
55
 	
65
 	
56
 	# Character Names
66
 	# Character Names
57
-	'name_auto_color': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/CheckBox,
58
-	'name_background_visible': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/HBoxContainer2/CheckBox,
59
-	'name_background': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/HBoxContainer2/ColorPickerButton,
60
-	'name_image': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/HBoxContainer3/BackgroundTextureButton,
61
-	'name_image_visible': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/HBoxContainer3/CheckBox,
62
-	'name_shadow': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/HBoxContainer4/ColorPickerButtonShadow,
63
-	'name_shadow_visible': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/HBoxContainer4/CheckBoxShadow,
64
-	'name_shadow_offset_x': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/HBoxContainer/ShadowOffsetX,
65
-	'name_shadow_offset_y': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/HBoxContainer/ShadowOffsetY,
66
-	'name_bottom_gap': $VBoxContainer/HBoxContainer2/Glossary/GridContainer2/HBoxContainer5/BottomGap,
67
+	'name_auto_color': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/CheckBox",
68
+	'name_background_visible': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/HBoxContainer2/CheckBox",
69
+	'name_background': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/HBoxContainer2/ColorPickerButton",
70
+	'name_image': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/HBoxContainer3/BackgroundTextureButton",
71
+	'name_image_visible': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/HBoxContainer3/CheckBox",
72
+	'name_shadow': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/HBoxContainer4/ColorPickerButtonShadow",
73
+	'name_shadow_visible': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/HBoxContainer4/CheckBoxShadow",
74
+	'name_shadow_offset_x': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/HBoxContainer/ShadowOffsetX",
75
+	'name_shadow_offset_y': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/HBoxContainer/ShadowOffsetY",
76
+	'name_bottom_gap': $"VBoxContainer/TabContainer/Name Label/Column/GridContainer/HBoxContainer5/BottomGap",
67
 }
77
 }
68
 
78
 
69
 func _ready():
79
 func _ready():
73
 		$VBoxContainer/HBoxContainer3/PreviewButton.icon = load("res://addons/dialogic/Images/Plugin/plugin-editor-icon-dark-theme.svg")
83
 		$VBoxContainer/HBoxContainer3/PreviewButton.icon = load("res://addons/dialogic/Images/Plugin/plugin-editor-icon-dark-theme.svg")
74
 	else:
84
 	else:
75
 		$VBoxContainer/HBoxContainer3/PreviewButton.icon = load("res://addons/dialogic/Images/Plugin/plugin-editor-icon-light-theme.svg")
85
 		$VBoxContainer/HBoxContainer3/PreviewButton.icon = load("res://addons/dialogic/Images/Plugin/plugin-editor-icon-light-theme.svg")
86
+	
87
+	$DelayPreviewTimer.one_shot = true
88
+	$DelayPreviewTimer.connect("timeout", self, '_on_DelayPreview_timer_timeout')
76
 	# Force preview update
89
 	# Force preview update
77
 	_on_visibility_changed()
90
 	_on_visibility_changed()
78
 
91
 
79
 
92
 
80
 func load_theme(filename):
93
 func load_theme(filename):
94
+	loading = true
81
 	current_theme = filename
95
 	current_theme = filename
82
 	var theme = DialogicResources.get_theme_config(filename) 
96
 	var theme = DialogicResources.get_theme_config(filename) 
83
 	# Settings
97
 	# Settings
89
 	n['theme_background_color'].color = Color(theme.get_value('background', 'color', '#ff000000'))
103
 	n['theme_background_color'].color = Color(theme.get_value('background', 'color', '#ff000000'))
90
 	n['theme_background_color_visible'].pressed = theme.get_value('background', 'use_color', false)
104
 	n['theme_background_color_visible'].pressed = theme.get_value('background', 'use_color', false)
91
 	n['theme_next_image'].text = DialogicResources.get_filename_from_path(theme.get_value('next_indicator', 'image', 'res://addons/dialogic/Images/next-indicator.png'))
105
 	n['theme_next_image'].text = DialogicResources.get_filename_from_path(theme.get_value('next_indicator', 'image', 'res://addons/dialogic/Images/next-indicator.png'))
106
+
107
+	n['background_modulation'].pressed = theme.get_value('background', 'modulation', false)
108
+	n['background_modulation_color'].color = Color(theme.get_value('background', 'modulation_color', '#ffffffff'))
109
+	
92
 	
110
 	
93
 	var size_value = theme.get_value('box', 'size', Vector2(910, 167))
111
 	var size_value = theme.get_value('box', 'size', Vector2(910, 167))
94
 	n['size_w'].value = size_value.x
112
 	n['size_w'].value = size_value.x
160
 	# Preview text
178
 	# Preview text
161
 	n['text_preview'].text = theme.get_value('text', 'preview', 'This is preview text. You can use  [color=#A5EFAC]BBCode[/color] to style it.\n[wave amp=50 freq=2]You can even use effects![/wave]')
179
 	n['text_preview'].text = theme.get_value('text', 'preview', 'This is preview text. You can use  [color=#A5EFAC]BBCode[/color] to style it.\n[wave amp=50 freq=2]You can even use effects![/wave]')
162
 	
180
 	
181
+	# Finished loading
182
+	loading = false
163
 	# Updating the preview
183
 	# Updating the preview
164
 	_on_PreviewButton_pressed()
184
 	_on_PreviewButton_pressed()
165
 
185
 
171
 	load_theme(theme_file)
191
 	load_theme(theme_file)
172
 	# Check if it is the only theme to set as default
192
 	# Check if it is the only theme to set as default
173
 	if DialogicUtil.get_theme_list().size() == 1:
193
 	if DialogicUtil.get_theme_list().size() == 1:
174
-		print('only theme, setting as default')
194
+		#print('only theme, setting as default')
175
 		settings_editor.set_value('theme', 'default', theme_file)
195
 		settings_editor.set_value('theme', 'default', theme_file)
176
 
196
 
177
 
197
 
198
+func duplicate_theme(from_filename):
199
+	var duplicate_theme = 'theme-' + str(OS.get_unix_time()) + '.cfg'
200
+	DialogicResources.duplicate_theme(from_filename, duplicate_theme)
201
+	DialogicResources.set_theme_value(duplicate_theme, 'settings', 'name', duplicate_theme)
202
+	master_tree.build_themes(duplicate_theme)
203
+	load_theme(duplicate_theme)
204
+	
205
+
178
 func _on_BackgroundTextureButton_pressed():
206
 func _on_BackgroundTextureButton_pressed():
179
 	editor_reference.godot_dialog("*.png")
207
 	editor_reference.godot_dialog("*.png")
180
 	editor_reference.godot_dialog_connect(self, "_on_background_selected")
208
 	editor_reference.godot_dialog_connect(self, "_on_background_selected")
181
 
209
 
182
 
210
 
183
 func _on_background_selected(path, target):
211
 func _on_background_selected(path, target):
212
+	if loading == true:
213
+		return
184
 	DialogicResources.set_theme_value(current_theme, 'background','image', path)
214
 	DialogicResources.set_theme_value(current_theme, 'background','image', path)
185
 	n['theme_background_image'].text = DialogicResources.get_filename_from_path(path)
215
 	n['theme_background_image'].text = DialogicResources.get_filename_from_path(path)
216
+	_on_PreviewButton_pressed() # Refreshing the preview
186
 
217
 
187
 
218
 
188
 func _on_NextIndicatorButton_pressed():
219
 func _on_NextIndicatorButton_pressed():
191
 
222
 
192
 
223
 
193
 func _on_indicator_selected(path, target):
224
 func _on_indicator_selected(path, target):
225
+	if loading == true:
226
+		return
194
 	DialogicResources.set_theme_value(current_theme, 'next_indicator','image', path)
227
 	DialogicResources.set_theme_value(current_theme, 'next_indicator','image', path)
195
 	n['theme_next_image'].text = DialogicResources.get_filename_from_path(path)
228
 	n['theme_next_image'].text = DialogicResources.get_filename_from_path(path)
229
+	_on_PreviewButton_pressed() # Refreshing the preview
196
 
230
 
197
 
231
 
198
 func _on_NextAnimation_item_selected(index):
232
 func _on_NextAnimation_item_selected(index):
199
 	DialogicResources.set_theme_value(current_theme, 'next_indicator', 'animation', n['next_animation'].get_item_text(index))
233
 	DialogicResources.set_theme_value(current_theme, 'next_indicator', 'animation', n['next_animation'].get_item_text(index))
234
+	_on_PreviewButton_pressed() # Refreshing the preview
200
 
235
 
201
 
236
 
202
 func _on_ColorPickerButton_color_changed(color):
237
 func _on_ColorPickerButton_color_changed(color):
238
+	if loading == true:
239
+		return
203
 	DialogicResources.set_theme_value(current_theme, 'text','color', '#' + color.to_html())
240
 	DialogicResources.set_theme_value(current_theme, 'text','color', '#' + color.to_html())
241
+	$DelayPreviewTimer.start(0.5) # Calling a timer so the update doesn't get triggered many times
204
 
242
 
205
 
243
 
206
 func _on_ColorPickerButtonShadow_color_changed(color):
244
 func _on_ColorPickerButtonShadow_color_changed(color):
245
+	if loading == true:
246
+		return
207
 	DialogicResources.set_theme_value(current_theme, 'text','shadow_color', '#' + color.to_html())
247
 	DialogicResources.set_theme_value(current_theme, 'text','shadow_color', '#' + color.to_html())
248
+	$DelayPreviewTimer.start(0.5) # Calling a timer so the update doesn't get triggered many times
208
 
249
 
209
 
250
 
210
 func _on_CheckBoxShadow_toggled(button_pressed):
251
 func _on_CheckBoxShadow_toggled(button_pressed):
252
+	if loading == true:
253
+		return
211
 	DialogicResources.set_theme_value(current_theme, 'text','shadow', button_pressed)
254
 	DialogicResources.set_theme_value(current_theme, 'text','shadow', button_pressed)
255
+	_on_PreviewButton_pressed() # Refreshing the preview
212
 
256
 
213
 
257
 
214
 func _on_ShadowOffset_value_changed(_value):
258
 func _on_ShadowOffset_value_changed(_value):
259
+	if loading == true:
260
+		return
215
 	DialogicResources.set_theme_value(current_theme, 'text','shadow_offset', Vector2(n['theme_shadow_offset_x'].value,n['theme_shadow_offset_y'].value))
261
 	DialogicResources.set_theme_value(current_theme, 'text','shadow_offset', Vector2(n['theme_shadow_offset_x'].value,n['theme_shadow_offset_y'].value))
262
+	_on_PreviewButton_pressed() # Refreshing the preview
216
 
263
 
217
 
264
 
218
 func _on_PreviewButton_pressed():
265
 func _on_PreviewButton_pressed():
219
-	for i in n['preview_panel'].get_children():
266
+	for i in $VBoxContainer/Panel.get_children():
220
 		i.free()
267
 		i.free()
221
 	var dialogic_node = load("res://addons/dialogic/Dialog.tscn")
268
 	var dialogic_node = load("res://addons/dialogic/Dialog.tscn")
222
 	var preview_dialog = dialogic_node.instance()
269
 	var preview_dialog = dialogic_node.instance()
270
+	preview_dialog.timeline = ''
223
 	preview_dialog.preview = true
271
 	preview_dialog.preview = true
272
+	preview_dialog.debug_mode = false
224
 	preview_dialog.get_node('DefinitionInfo').in_theme_editor = true
273
 	preview_dialog.get_node('DefinitionInfo').in_theme_editor = true
225
 	
274
 	
226
 	# Random character preview if there are any
275
 	# Random character preview if there are any
230
 		characters.shuffle()
279
 		characters.shuffle()
231
 		character_file = characters[0]['file']
280
 		character_file = characters[0]['file']
232
 	
281
 	
282
+	# Loading the theme here because I need it for the parse_alignment
283
+	preview_dialog.current_theme = preview_dialog.load_theme(current_theme)
284
+	
233
 	# Creating the one event timeline for the dialog
285
 	# Creating the one event timeline for the dialog
286
+	var text = preview_dialog.parse_definitions(n['text_preview'].text)
234
 	preview_dialog.dialog_script['events'] = [{
287
 	preview_dialog.dialog_script['events'] = [{
235
 		"character": character_file,
288
 		"character": character_file,
236
 		"portrait":'',
289
 		"portrait":'',
237
-		"text": preview_dialog.parse_definitions(n['text_preview'].text)
290
+		"text": text
238
 	}]
291
 	}]
239
 	preview_dialog.parse_characters(preview_dialog.dialog_script)
292
 	preview_dialog.parse_characters(preview_dialog.dialog_script)
240
 	preview_dialog.settings = DialogicResources.get_settings_config()
293
 	preview_dialog.settings = DialogicResources.get_settings_config()
241
 	
294
 	
242
 	# Alignment
295
 	# Alignment
243
-	n['preview_panel'].add_child(preview_dialog)
296
+	$VBoxContainer/Panel.add_child(preview_dialog)
244
 	
297
 	
245
 	preview_dialog.load_dialog()
298
 	preview_dialog.load_dialog()
299
+	# Reloading the theme
246
 	preview_dialog.current_theme = preview_dialog.load_theme(current_theme)
300
 	preview_dialog.current_theme = preview_dialog.load_theme(current_theme)
247
 	
301
 	
302
+	
248
 	# When not performing this step, the dialog name doesn't update the color for some reason
303
 	# When not performing this step, the dialog name doesn't update the color for some reason
249
 	# I should probably refactor the preview dialog to stop making everything manually.
304
 	# I should probably refactor the preview dialog to stop making everything manually.
250
 	if n['name_auto_color'].pressed:
305
 	if n['name_auto_color'].pressed:
252
 			preview_dialog.get_node('TextBubble/NameLabel').set('custom_colors/font_color', characters[0]['color'])
307
 			preview_dialog.get_node('TextBubble/NameLabel').set('custom_colors/font_color', characters[0]['color'])
253
 	
308
 	
254
 	# maintaining the preview panel big enough for the dialog box
309
 	# maintaining the preview panel big enough for the dialog box
255
-	n['preview_panel'].rect_min_size.y = preview_dialog.current_theme.get_value('box', 'size', Vector2(910, 167)).y + 90 + preview_dialog.current_theme.get_value('box', 'bottom_gap', 40)
256
-	n['preview_panel'].rect_size.y = 0
310
+	$VBoxContainer/Panel.rect_min_size.y = preview_dialog.current_theme.get_value('box', 'size', Vector2(910, 167)).y + 90 + preview_dialog.current_theme.get_value('box', 'bottom_gap', 40)
311
+	$VBoxContainer/Panel.rect_size.y = 0
257
 
312
 
258
 
313
 
259
 func _on_ActionOptionButton_item_selected(index):
314
 func _on_ActionOptionButton_item_selected(index):
315
+	if loading == true:
316
+		return
260
 	DialogicResources.set_theme_value(current_theme, 'settings','action_key', n['theme_action_key'].text)
317
 	DialogicResources.set_theme_value(current_theme, 'settings','action_key', n['theme_action_key'].text)
261
 
318
 
262
 
319
 
274
 
331
 
275
 
332
 
276
 func _on_Font_selected(path, target):
333
 func _on_Font_selected(path, target):
334
+	if loading == true:
335
+		return
277
 	DialogicResources.set_theme_value(current_theme, 'text','font', path)
336
 	DialogicResources.set_theme_value(current_theme, 'text','font', path)
278
 	n['theme_font'].text = DialogicResources.get_filename_from_path(path)
337
 	n['theme_font'].text = DialogicResources.get_filename_from_path(path)
338
+	_on_PreviewButton_pressed() # Refreshing the preview
279
 
339
 
280
 
340
 
281
 func _on_textSpeed_value_changed(value):
341
 func _on_textSpeed_value_changed(value):
342
+	if loading == true:
343
+		return
282
 	DialogicResources.set_theme_value(current_theme, 'text','speed', value)
344
 	DialogicResources.set_theme_value(current_theme, 'text','speed', value)
345
+	_on_PreviewButton_pressed() # Refreshing the preview
283
 
346
 
284
 
347
 
285
 func _on_TextMargin_value_changed(value):
348
 func _on_TextMargin_value_changed(value):
349
+	if loading == true:
350
+		return
286
 	var final_vector = Vector2(
351
 	var final_vector = Vector2(
287
 		n['theme_text_margin'].value,
352
 		n['theme_text_margin'].value,
288
 		n['theme_text_margin_h'].value
353
 		n['theme_text_margin_h'].value
289
 	)
354
 	)
290
 	DialogicResources.set_theme_value(current_theme, 'text', 'margin', final_vector)
355
 	DialogicResources.set_theme_value(current_theme, 'text', 'margin', final_vector)
356
+	_on_PreviewButton_pressed() # Refreshing the preview
291
 
357
 
292
 
358
 
293
 func _on_BackgroundColor_CheckBox_toggled(button_pressed):
359
 func _on_BackgroundColor_CheckBox_toggled(button_pressed):
360
+	if loading == true:
361
+		return
294
 	DialogicResources.set_theme_value(current_theme, 'background', 'use_color', button_pressed)
362
 	DialogicResources.set_theme_value(current_theme, 'background', 'use_color', button_pressed)
363
+	_on_PreviewButton_pressed() # Refreshing the preview
295
 
364
 
296
 
365
 
297
 func _on_BackgroundColor_ColorPickerButton_color_changed(color):
366
 func _on_BackgroundColor_ColorPickerButton_color_changed(color):
367
+	if loading == true:
368
+		return
298
 	DialogicResources.set_theme_value(current_theme, 'background', 'color', '#' + color.to_html())
369
 	DialogicResources.set_theme_value(current_theme, 'background', 'color', '#' + color.to_html())
370
+	$DelayPreviewTimer.start(0.5) # Calling a timer so the update doesn't get triggered many times
299
 
371
 
300
 
372
 
301
 func _on_BackgroundTexture_CheckBox_toggled(button_pressed):
373
 func _on_BackgroundTexture_CheckBox_toggled(button_pressed):
374
+	if loading == true:
375
+		return
302
 	DialogicResources.set_theme_value(current_theme, 'background', 'use_image', button_pressed)
376
 	DialogicResources.set_theme_value(current_theme, 'background', 'use_image', button_pressed)
303
-
377
+	_on_PreviewButton_pressed() # Refreshing the preview
378
+	
304
 
379
 
305
 func _on_button_background_visible_toggled(button_pressed):
380
 func _on_button_background_visible_toggled(button_pressed):
381
+	if loading == true:
382
+		return
306
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'use_background_color', button_pressed)
383
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'use_background_color', button_pressed)
307
 
384
 
308
 
385
 
309
 func _on_button_background_color_color_changed(color):
386
 func _on_button_background_color_color_changed(color):
387
+	if loading == true:
388
+		return
310
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'background_color', '#' + color.to_html())
389
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'background_color', '#' + color.to_html())
390
+	$DelayPreviewTimer.start(0.5) # Calling a timer so the update doesn't get triggered many times
311
 
391
 
312
 
392
 
313
 func _on_ButtonOffset_value_changed(value):
393
 func _on_ButtonOffset_value_changed(value):
394
+	if loading == true:
395
+		return
314
 	var final_vector = Vector2(
396
 	var final_vector = Vector2(
315
 		n['button_offset_x'].value,
397
 		n['button_offset_x'].value,
316
 		n['button_offset_y'].value
398
 		n['button_offset_y'].value
319
 
401
 
320
 
402
 
321
 func _on_VerticalSeparation_value_changed(value):
403
 func _on_VerticalSeparation_value_changed(value):
404
+	if loading == true:
405
+		return
322
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'gap', n['button_separation'].value)
406
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'gap', n['button_separation'].value)
323
 
407
 
324
 
408
 
325
 func _on_button_texture_toggled(button_pressed):
409
 func _on_button_texture_toggled(button_pressed):
410
+	if loading == true:
411
+		return
326
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'use_image', button_pressed)
412
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'use_image', button_pressed)
327
 
413
 
328
 
414
 
332
 
418
 
333
 
419
 
334
 func _on_button_texture_selected(path, target):
420
 func _on_button_texture_selected(path, target):
421
+	if loading == true:
422
+		return
335
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'image', path)
423
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'image', path)
336
 	n['button_image'].text = DialogicResources.get_filename_from_path(path)
424
 	n['button_image'].text = DialogicResources.get_filename_from_path(path)
337
 
425
 
338
 
426
 
339
 func _on_ButtonTextColor_color_changed(color):
427
 func _on_ButtonTextColor_color_changed(color):
428
+	if loading == true:
429
+		return
340
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'text_color', '#' + color.to_html())
430
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'text_color', '#' + color.to_html())
431
+	$DelayPreviewTimer.start(0.5) # Calling a timer so the update doesn't get triggered many times
341
 
432
 
342
 
433
 
343
 func _on_Custom_Button_Color_toggled(button_pressed):
434
 func _on_Custom_Button_Color_toggled(button_pressed):
435
+	if loading == true:
436
+		return
344
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'text_color_enabled', button_pressed)
437
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'text_color_enabled', button_pressed)
345
 
438
 
346
 
439
 
347
 func _on_GlossaryColorPicker_color_changed(color):
440
 func _on_GlossaryColorPicker_color_changed(color):
441
+	if loading == true:
442
+		return
348
 	DialogicResources.set_theme_value(current_theme, 'definitions', 'color', '#' + color.to_html())
443
 	DialogicResources.set_theme_value(current_theme, 'definitions', 'color', '#' + color.to_html())
444
+	$DelayPreviewTimer.start(0.5) # Calling a timer so the update doesn't get triggered many times
349
 
445
 
350
 
446
 
351
 func _on_GlossaryFontButton_pressed():
447
 func _on_GlossaryFontButton_pressed():
352
 	editor_reference.godot_dialog("*.tres")
448
 	editor_reference.godot_dialog("*.tres")
353
 	editor_reference.godot_dialog_connect(self, "_on_Glossary_Font_selected")
449
 	editor_reference.godot_dialog_connect(self, "_on_Glossary_Font_selected")
354
 
450
 
451
+
355
 func _on_Glossary_Font_selected(path, target):
452
 func _on_Glossary_Font_selected(path, target):
453
+	if loading == true:
454
+		return
356
 	DialogicResources.set_theme_value(current_theme, 'definitions', 'font', path)
455
 	DialogicResources.set_theme_value(current_theme, 'definitions', 'font', path)
357
 	n['glossary_font'].text = DialogicResources.get_filename_from_path(path)
456
 	n['glossary_font'].text = DialogicResources.get_filename_from_path(path)
457
+	_on_PreviewButton_pressed() # Refreshing the preview
358
 
458
 
359
 
459
 
360
 func _on_visibility_changed():
460
 func _on_visibility_changed():
364
 	else:
464
 	else:
365
 		# Erasing all previews since them keeps working
465
 		# Erasing all previews since them keeps working
366
 		# on background
466
 		# on background
367
-		for i in n['preview_panel'].get_children():
467
+		for i in $VBoxContainer/Panel.get_children():
368
 			i.queue_free()
468
 			i.queue_free()
369
 
469
 
370
 
470
 
371
 func _on_BoxSize_value_changed(value):
471
 func _on_BoxSize_value_changed(value):
472
+	if loading == true:
473
+		return
372
 	var size_value = Vector2(n['size_w'].value, n['size_h'].value)
474
 	var size_value = Vector2(n['size_w'].value, n['size_h'].value)
373
 	DialogicResources.set_theme_value(current_theme, 'box', 'size', size_value)
475
 	DialogicResources.set_theme_value(current_theme, 'box', 'size', size_value)
476
+	_on_PreviewButton_pressed() # Refreshing the preview
374
 
477
 
375
 
478
 
376
 func _on_BottomGap_value_changed(value):
479
 func _on_BottomGap_value_changed(value):
480
+	if loading == true:
481
+		return
377
 	DialogicResources.set_theme_value(current_theme, 'box', 'bottom_gap', value)
482
 	DialogicResources.set_theme_value(current_theme, 'box', 'bottom_gap', value)
483
+	_on_PreviewButton_pressed() # Refreshing the preview
378
 
484
 
379
 
485
 
380
 func _on_Alignment_item_selected(index):
486
 func _on_Alignment_item_selected(index):
487
+	if loading == true:
488
+		return
381
 	if index == 0:
489
 	if index == 0:
382
 		DialogicResources.set_theme_value(current_theme, 'text', 'alignment', 'Left')
490
 		DialogicResources.set_theme_value(current_theme, 'text', 'alignment', 'Left')
383
 	elif index == 1:
491
 	elif index == 1:
384
 		DialogicResources.set_theme_value(current_theme, 'text', 'alignment', 'Center')
492
 		DialogicResources.set_theme_value(current_theme, 'text', 'alignment', 'Center')
385
 	elif index == 2:
493
 	elif index == 2:
386
 		DialogicResources.set_theme_value(current_theme, 'text', 'alignment', 'Right')
494
 		DialogicResources.set_theme_value(current_theme, 'text', 'alignment', 'Right')
387
-
495
+	_on_PreviewButton_pressed() # Refreshing the preview
388
 
496
 
389
 
497
 
390
 func _on_Preview_text_changed():
498
 func _on_Preview_text_changed():
499
+	if loading == true:
500
+		return
391
 	DialogicResources.set_theme_value(current_theme, 'text', 'preview', n['text_preview'].text)
501
 	DialogicResources.set_theme_value(current_theme, 'text', 'preview', n['text_preview'].text)
392
 
502
 
393
 
503
 
394
 func _on_name_auto_color_toggled(button_pressed):
504
 func _on_name_auto_color_toggled(button_pressed):
505
+	if loading == true:
506
+		return
395
 	DialogicResources.set_theme_value(current_theme, 'name', 'auto_color', button_pressed)
507
 	DialogicResources.set_theme_value(current_theme, 'name', 'auto_color', button_pressed)
508
+	_on_PreviewButton_pressed() # Refreshing the preview
396
 
509
 
397
 
510
 
398
 func _on_name_background_visible_toggled(button_pressed):
511
 func _on_name_background_visible_toggled(button_pressed):
512
+	if loading == true:
513
+		return
399
 	DialogicResources.set_theme_value(current_theme, 'name', 'background_visible', button_pressed)
514
 	DialogicResources.set_theme_value(current_theme, 'name', 'background_visible', button_pressed)
515
+	_on_PreviewButton_pressed() # Refreshing the preview
400
 
516
 
401
 
517
 
402
 func _on_name_background_color_changed(color):
518
 func _on_name_background_color_changed(color):
519
+	if loading == true:
520
+		return
403
 	DialogicResources.set_theme_value(current_theme, 'name', 'background', '#' + color.to_html())
521
 	DialogicResources.set_theme_value(current_theme, 'name', 'background', '#' + color.to_html())
522
+	$DelayPreviewTimer.start(0.5) # Calling a timer so the update doesn't get triggered many times
404
 
523
 
405
 
524
 
406
 func _on_name_image_visible_toggled(button_pressed):
525
 func _on_name_image_visible_toggled(button_pressed):
526
+	if loading == true:
527
+		return
407
 	DialogicResources.set_theme_value(current_theme, 'name', 'image_visible', button_pressed)
528
 	DialogicResources.set_theme_value(current_theme, 'name', 'image_visible', button_pressed)
529
+	_on_PreviewButton_pressed() # Refreshing the preview
408
 
530
 
409
 
531
 
410
 func _on_name_image_pressed():
532
 func _on_name_image_pressed():
413
 
535
 
414
 
536
 
415
 func _on_name_texture_selected(path, target):
537
 func _on_name_texture_selected(path, target):
538
+	if loading == true:
539
+		return
416
 	DialogicResources.set_theme_value(current_theme, 'name', 'image', path)
540
 	DialogicResources.set_theme_value(current_theme, 'name', 'image', path)
417
 	n['name_image'].text = DialogicResources.get_filename_from_path(path)
541
 	n['name_image'].text = DialogicResources.get_filename_from_path(path)
542
+	_on_PreviewButton_pressed() # Refreshing the preview
418
 
543
 
419
 
544
 
420
 func _on_shadow_visible_toggled(button_pressed):
545
 func _on_shadow_visible_toggled(button_pressed):
546
+	if loading == true:
547
+		return
421
 	DialogicResources.set_theme_value(current_theme, 'name', 'shadow_visible', button_pressed)
548
 	DialogicResources.set_theme_value(current_theme, 'name', 'shadow_visible', button_pressed)
549
+	_on_PreviewButton_pressed() # Refreshing the preview
422
 
550
 
423
 
551
 
424
 func _on_name_shadow_color_changed(color):
552
 func _on_name_shadow_color_changed(color):
553
+	if loading == true:
554
+		return
425
 	DialogicResources.set_theme_value(current_theme, 'name', 'shadow', '#' + color.to_html())
555
 	DialogicResources.set_theme_value(current_theme, 'name', 'shadow', '#' + color.to_html())
556
+	$DelayPreviewTimer.start(0.5) # Calling a timer so the update doesn't get triggered many times
426
 
557
 
427
 
558
 
428
 func _on_name_ShadowOffset_value_changed(_value):
559
 func _on_name_ShadowOffset_value_changed(_value):
560
+	if loading == true:
561
+		return
429
 	DialogicResources.set_theme_value(current_theme, 'name','shadow_offset', 
562
 	DialogicResources.set_theme_value(current_theme, 'name','shadow_offset', 
430
 			Vector2(n['name_shadow_offset_x'].value,n['name_shadow_offset_y'].value))
563
 			Vector2(n['name_shadow_offset_x'].value,n['name_shadow_offset_y'].value))
564
+	_on_PreviewButton_pressed() # Refreshing the preview
431
 
565
 
432
 
566
 
433
 func _on_name_BottomGap_value_changed(value):
567
 func _on_name_BottomGap_value_changed(value):
568
+	if loading == true:
569
+		return
434
 	DialogicResources.set_theme_value(current_theme, 'name', 'bottom_gap', value)
570
 	DialogicResources.set_theme_value(current_theme, 'name', 'bottom_gap', value)
571
+	_on_PreviewButton_pressed() # Refreshing the preview
572
+
573
+
574
+func _on_DelayPreview_timer_timeout():
575
+	_on_PreviewButton_pressed() # Refreshing the preview
576
+
577
+
578
+func _on_BackgroundTexture_Modulation_toggled(button_pressed):
579
+	if loading == true:
580
+		return
581
+	DialogicResources.set_theme_value(current_theme, 'background', 'modulation', button_pressed)
582
+	_on_PreviewButton_pressed() # Refreshing the preview
583
+
584
+
585
+func _on_ColorPicker_Background_texture_modulation_color_changed(color):
586
+	if loading == true:
587
+		return
588
+	DialogicResources.set_theme_value(current_theme, 'background', 'modulation_color', '#' + color.to_html())
589
+	$DelayPreviewTimer.start(0.5) # Calling a timer so the update doesn't get triggered many times

+ 512
- 486
addons/dialogic/Editor/ThemeEditor/ThemeEditor.tscn
File diff suppressed because it is too large
View File


+ 16
- 0
addons/dialogic/Editor/TimelineEditor/EventButton.gd View File

1
+tool
2
+extends Button
3
+
4
+export (String) var EventName = ''
5
+
6
+func get_drag_data(position):
7
+	var preview_label = Label.new()
8
+	
9
+	if (self.text != ''):
10
+		preview_label.text = text
11
+	else:
12
+		preview_label.text = 'Add Event %s' % [ EventName ]
13
+		
14
+	set_drag_preview(preview_label)
15
+	
16
+	return { "source": "EventButton", "event_name": EventName }

+ 139
- 0
addons/dialogic/Editor/TimelineEditor/TimelineArea.gd View File

1
+tool
2
+extends ScrollContainer
3
+
4
+var _drag_drop_indicator = null
5
+# store last attempts since godot sometimes misses drop events
6
+var _is_drag_receiving = false
7
+var _last_event_button_drop_attempt = '' 
8
+var _mouse_exited = false
9
+
10
+func _ready():
11
+	connect("mouse_entered", self, '_on_mouse_entered')
12
+	connect("mouse_exited", self, '_on_mouse_exited')
13
+	connect("gui_input", self, '_on_gui_input')
14
+
15
+
16
+func can_drop_data(position, data):
17
+	if (data != null and data is Dictionary and data.has("source")):
18
+		if (data["source"] == "EventButton"):
19
+			# position drop indicator
20
+			_set_indicator_position(position)
21
+			_is_drag_receiving = true
22
+			_last_event_button_drop_attempt = data["event_name"]
23
+			return true
24
+	
25
+	_remove_drop_indicator()
26
+	return false
27
+	
28
+
29
+func cancel_drop():
30
+	_is_drag_receiving = false
31
+	_last_event_button_drop_attempt = ''
32
+	_remove_drop_indicator()
33
+	pass
34
+
35
+	
36
+func drop_data(position, data):
37
+	# todo, getting timeline like this is prone to fail someday
38
+	var timeline_editor = get_parent()
39
+	
40
+	# add event
41
+	if (data["source"] == "EventButton"):
42
+		var piece = timeline_editor.create_event(data["event_name"])
43
+		if (piece != null and _drag_drop_indicator != null):
44
+			var parent = piece.get_parent()
45
+			if (parent != null):
46
+				parent.remove_child(piece)
47
+				parent.add_child_below_node(_drag_drop_indicator, piece)
48
+				timeline_editor.indent_events()
49
+				# @todo _select_item seems to be a "private" function
50
+				# maybe expose it as "public" or add a public helper function
51
+				# to TimelineEditor.gd
52
+				timeline_editor._select_item(piece)
53
+				
54
+	_is_drag_receiving = false
55
+	_last_event_button_drop_attempt = ''
56
+	_remove_drop_indicator()
57
+	
58
+	
59
+func _on_mouse_exited():
60
+	_mouse_exited = true
61
+	
62
+  
63
+func _on_mouse_entered():
64
+	_mouse_exited = false	
65
+	
66
+  
67
+func _input(event):
68
+	if (event is InputEventMouseButton and is_visible_in_tree() and event.button_index == BUTTON_LEFT):
69
+		if (_mouse_exited and _is_drag_receiving):
70
+			cancel_drop()
71
+			
72
+      
73
+func _on_gui_input(event):
74
+	# godot sometimes misses drop events
75
+	if (event is InputEventMouseButton and event.button_index == BUTTON_LEFT):
76
+		if (_is_drag_receiving):
77
+			if (_last_event_button_drop_attempt != ''):
78
+				drop_data(Vector2.ZERO, { "source": "EventButton", "event_name": _last_event_button_drop_attempt} )
79
+			_is_drag_receiving = false
80
+			_remove_drop_indicator()
81
+	pass
82
+	
83
+	
84
+func _create_drop_indicator():
85
+	_remove_drop_indicator()
86
+	
87
+	var timeline = get_child(0)
88
+	if (timeline == null):
89
+		return
90
+	
91
+	var indicator = ColorRect.new()
92
+	indicator.name = "DropIndicator"
93
+	indicator.rect_size.y = 100
94
+	indicator.rect_min_size.y = 100
95
+	indicator.color = Color(0.35, 0.37, 0.44) # default editor light blue
96
+	indicator.mouse_filter = MOUSE_FILTER_IGNORE
97
+	
98
+	# add indent node like the other scene nodes have
99
+	var indent = Control.new()
100
+	indent.rect_min_size.x = 25
101
+	indent.visible = false
102
+	indent.name = "Indent"
103
+	indicator.add_child(indent)
104
+	
105
+	var label = Label.new()
106
+	label.text = "Drop here"
107
+	indicator.add_child(label)
108
+	
109
+	timeline.add_child(indicator)
110
+	
111
+	_drag_drop_indicator = indicator
112
+	
113
+	
114
+func _remove_drop_indicator():	
115
+	if (_drag_drop_indicator != null):
116
+		_drag_drop_indicator.get_parent().remove_child(_drag_drop_indicator)
117
+		_drag_drop_indicator.queue_free()
118
+		
119
+	_drag_drop_indicator = null
120
+	
121
+	
122
+func _set_indicator_position(position):
123
+	var timeline = get_child(0)
124
+	if (timeline == null):
125
+		return
126
+		
127
+	if (_drag_drop_indicator == null):
128
+		_create_drop_indicator()
129
+		
130
+	var highest_index = 0
131
+	var index = 0
132
+	for child in timeline.get_children():
133
+		if child.get_local_mouse_position().y > 0 and index > highest_index:
134
+			highest_index = index
135
+		index += 1
136
+		
137
+	if (_drag_drop_indicator.is_inside_tree()):
138
+		timeline.move_child(_drag_drop_indicator, max(0, highest_index))
139
+	pass

+ 180
- 8
addons/dialogic/Editor/TimelineEditor/TimelineEditor.gd View File

6
 var timeline_file: String = ''
6
 var timeline_file: String = ''
7
 var current_timeline: Dictionary = {}
7
 var current_timeline: Dictionary = {}
8
 
8
 
9
-onready var master_tree = get_node('../MasterTree')
9
+onready var master_tree = get_node('../MasterTreeContainer/MasterTree')
10
 onready var timeline = $TimelineArea/TimeLine
10
 onready var timeline = $TimelineArea/TimeLine
11
 onready var events_warning = $ScrollContainer/EventContainer/EventsWarning
11
 onready var events_warning = $ScrollContainer/EventContainer/EventsWarning
12
 
12
 
18
 
18
 
19
 
19
 
20
 var moving_piece = null
20
 var moving_piece = null
21
+var piece_was_dragged = false
21
 
22
 
22
 func _ready():
23
 func _ready():
24
+	var modifier = ''
25
+	var _scale = get_constant("inspector_margin", "Editor")
26
+	_scale = _scale * 0.125
27
+	$ScrollContainer.rect_min_size.x = 180
28
+	if _scale == 1.25:
29
+		modifier = '-1.25'
30
+		$ScrollContainer.rect_min_size.x = 200
31
+	if _scale == 1.5:
32
+		modifier = '-1.25'
33
+		$ScrollContainer.rect_min_size.x = 200
34
+	if _scale == 1.75:
35
+		modifier = '-1.25'
36
+		$ScrollContainer.rect_min_size.x = 390
37
+	if _scale == 2:
38
+		modifier = '-2'
39
+		$ScrollContainer.rect_min_size.x = 390
40
+	
23
 	# We connect all the event buttons to the event creation functions
41
 	# We connect all the event buttons to the event creation functions
24
 	for b in $ScrollContainer/EventContainer.get_children():
42
 	for b in $ScrollContainer/EventContainer.get_children():
25
 		if b is Button:
43
 		if b is Button:
34
 	style.set('bg_color', get_color("dark_color_1", "Editor"))
52
 	style.set('bg_color', get_color("dark_color_1", "Editor"))
35
 
53
 
36
 
54
 
55
+func delete_event():
56
+	# get next element
57
+	var next = min(timeline.get_child_count() - 1, selected_item.get_index() + 1)
58
+	var next_node = timeline.get_child(next)
59
+	if (next_node == selected_item):
60
+		next_node = null
61
+		
62
+	# remove current
63
+	selected_item.get_parent().remove_child(selected_item)
64
+	selected_item.queue_free()
65
+	selected_item = null
66
+	
67
+	# select next
68
+	if (next_node != null):
69
+		_select_item(next_node)
70
+	else:
71
+		if (timeline.get_child_count() > 0):
72
+			next_node = timeline.get_child(max(0, timeline.get_child_count() - 1))
73
+			if (next_node != null):
74
+				_select_item(next_node)
75
+				
76
+	indent_events()
77
+
78
+func _input(event):
79
+	# some shortcuts need to get handled in the common input event
80
+	# especially CTRL-based
81
+	# because certain godot controls swallow events (like textedit)
82
+	# we protect this with is_visible_in_tree to not 
83
+	# invoke a shortcut by accident
84
+	if (event is InputEventKey and event is InputEventWithModifiers and is_visible_in_tree()):
85
+		# CTRL UP
86
+		if (event.pressed
87
+			and event.alt == false
88
+			and event.shift == false
89
+			and event.control == true
90
+			and event.scancode == KEY_UP
91
+			and event.echo == false
92
+		):
93
+			# select previous
94
+			if (selected_item != null):
95
+				var prev = max(0, selected_item.get_index() - 1)
96
+				var prev_node = timeline.get_child(prev)
97
+				if (prev_node != selected_item):
98
+					_select_item(prev_node)
99
+				get_tree().set_input_as_handled()
100
+				
101
+			pass
102
+			
103
+		# CTRL DOWN
104
+		if (event.pressed
105
+			and event.alt == false
106
+			and event.shift == false
107
+			and event.control == true
108
+			and event.scancode == KEY_DOWN
109
+			and event.echo == false
110
+		):
111
+			# select next
112
+			if (selected_item != null):
113
+				var next = min(timeline.get_child_count() - 1, selected_item.get_index() + 1)
114
+				var next_node = timeline.get_child(next)
115
+				if (next_node != selected_item):
116
+					_select_item(next_node)
117
+				get_tree().set_input_as_handled()
118
+				
119
+			pass
120
+			
121
+		# CTRL DELETE
122
+		if (event.pressed
123
+			and event.alt == false
124
+			and event.shift == false
125
+			and event.control == true
126
+			and event.scancode == KEY_DELETE
127
+			and event.echo == false
128
+		):
129
+			if (selected_item != null):
130
+				delete_event()
131
+				get_tree().set_input_as_handled()
132
+			pass
133
+			
134
+		# CTRL T
135
+		if (event.pressed
136
+			and event.alt == false
137
+			and event.shift == false
138
+			and event.control == true
139
+			and event.scancode == KEY_T
140
+			and event.echo == false
141
+		):
142
+			var new_text = create_event("TextBlock")
143
+			_select_item(new_text)
144
+			indent_events()
145
+			get_tree().set_input_as_handled()
146
+			pass
147
+
148
+
149
+func _unhandled_key_input(event):
150
+	if (event is InputEventWithModifiers):
151
+		# ALT UP
152
+		if (event.pressed
153
+			and event.alt == true 
154
+			and event.shift == false 
155
+			and event.control == false 
156
+			and event.scancode == KEY_UP
157
+			and event.echo == false
158
+		):
159
+			# move selected up
160
+			if (selected_item != null):
161
+				move_block(selected_item, "up")
162
+				indent_events()
163
+				get_tree().set_input_as_handled()
164
+				
165
+			pass
166
+			
167
+		# ALT DOWN
168
+		if (event.pressed
169
+			and event.alt == true 
170
+			and event.shift == false 
171
+			and event.control == false 
172
+			and event.scancode == KEY_DOWN
173
+			and event.echo == false
174
+		):
175
+			# move selected down
176
+			if (selected_item != null):
177
+				move_block(selected_item, "down")
178
+				indent_events()
179
+				get_tree().set_input_as_handled()
180
+				
181
+			pass
182
+			
183
+	pass
184
+	
37
 func _process(delta):
185
 func _process(delta):
38
 	if moving_piece != null:
186
 	if moving_piece != null:
39
 		var current_position = get_global_mouse_position()
187
 		var current_position = get_global_mouse_position()
45
 			up_offset = (up_offset / 2) + 5
193
 			up_offset = (up_offset / 2) + 5
46
 			if current_position.y < node_position - up_offset:
194
 			if current_position.y < node_position - up_offset:
47
 				move_block(moving_piece, 'up')
195
 				move_block(moving_piece, 'up')
196
+				piece_was_dragged = true
48
 		if down_offset != null:
197
 		if down_offset != null:
49
 			down_offset = height + (down_offset / 2) + 5
198
 			down_offset = height + (down_offset / 2) + 5
50
 			if current_position.y > node_position + down_offset:
199
 			if current_position.y > node_position + down_offset:
51
 				move_block(moving_piece, 'down')
200
 				move_block(moving_piece, 'down')
201
+				piece_was_dragged = true
52
 
202
 
53
 
203
 
54
 func _clear_selection():
204
 func _clear_selection():
56
 		var selected_panel: PanelContainer = selected_item.get_node("PanelContainer")
206
 		var selected_panel: PanelContainer = selected_item.get_node("PanelContainer")
57
 		if selected_panel != null:
207
 		if selected_panel != null:
58
 			selected_panel.set('custom_styles/panel', saved_style)
208
 			selected_panel.set('custom_styles/panel', saved_style)
209
+			
59
 	selected_item = null
210
 	selected_item = null
60
 	saved_style = null
211
 	saved_style = null
61
 
212
 
75
 				panel.set('custom_styles/panel', selected_style_text)
226
 				panel.set('custom_styles/panel', selected_style_text)
76
 			else:
227
 			else:
77
 				panel.set('custom_styles/panel', selected_style)
228
 				panel.set('custom_styles/panel', selected_style)
229
+			# allow event panels to do additional operation when getting selected
230
+			if (selected_item.has_method("on_timeline_selected")):
231
+				selected_item.on_timeline_selected()
78
 	else:
232
 	else:
79
 		_clear_selection()
233
 		_clear_selection()
80
 
234
 
81
 
235
 
82
 func _on_gui_input(event, item: Node):
236
 func _on_gui_input(event, item: Node):
83
 	if event is InputEventMouseButton and event.button_index == 1:
237
 	if event is InputEventMouseButton and event.button_index == 1:
84
-		if event.is_pressed():
238
+		if (not event.is_pressed()):
239
+			if (not piece_was_dragged and moving_piece != null):
240
+				_clear_selection()
241
+			if (moving_piece != null):
242
+				indent_events()
243
+			moving_piece = null
244
+		elif event.is_pressed():
245
+			moving_piece = item
85
 			if not _is_item_selected(item):
246
 			if not _is_item_selected(item):
86
 				_select_item(item)
247
 				_select_item(item)
87
-			moving_piece = item
88
-		else:
89
-			moving_piece = null
248
+				piece_was_dragged = true
249
+			else:
250
+				piece_was_dragged = false
90
 
251
 
91
 
252
 
92
 # Event Creation signal for buttons
253
 # Event Creation signal for buttons
154
 	for event in event_list:
315
 	for event in event_list:
155
 		var indent_node = event.get_node("Indent")
316
 		var indent_node = event.get_node("Indent")
156
 		indent_node.visible = false
317
 		indent_node.visible = false
318
+		
157
 	# Adding new indents
319
 	# Adding new indents
158
 	for event in event_list:
320
 	for event in event_list:
321
+		# since there are indicators now, not all elements
322
+		# in this list have an event_data property
323
+		if (not "event_data" in event):
324
+			continue
325
+			
159
 		if event.event_data.has('question') or event.event_data.has('condition'):
326
 		if event.event_data.has('question') or event.event_data.has('condition'):
160
 			indent += 1
327
 			indent += 1
161
 			starter = true
328
 			starter = true
186
 
353
 
187
 
354
 
188
 func load_timeline(filename: String):
355
 func load_timeline(filename: String):
189
-	print('---------------------------')
190
-	print('Loading: ', filename)
356
+	#print('---------------------------')
357
+	#print('Loading: ', filename)
191
 	clear_timeline()
358
 	clear_timeline()
192
 	var start_time = OS.get_system_time_msecs()
359
 	var start_time = OS.get_system_time_msecs()
193
 	timeline_file = filename
360
 	timeline_file = filename
234
 				create_event("SetValue", i)
401
 				create_event("SetValue", i)
235
 			{'set_theme'}:
402
 			{'set_theme'}:
236
 				create_event("SetTheme", i)
403
 				create_event("SetTheme", i)
404
+			{'call_node'}:
405
+				create_event("CallNode", i)
237
 
406
 
238
 	if data.size() < 1:
407
 	if data.size() < 1:
239
 		events_warning.visible = true
408
 		events_warning.visible = true
243
 		#fold_all_nodes()
412
 		#fold_all_nodes()
244
 	
413
 	
245
 	var elapsed_time = (OS.get_system_time_msecs() - start_time) * 0.001
414
 	var elapsed_time = (OS.get_system_time_msecs() - start_time) * 0.001
246
-	editor_reference.dprint("Loading time: " + str(elapsed_time))
415
+	#editor_reference.dprint("Loading time: " + str(elapsed_time))
247
 
416
 
248
 
417
 
249
 func clear_timeline():
418
 func clear_timeline():
317
 		'events': []
486
 		'events': []
318
 	}
487
 	}
319
 	for event in timeline.get_children():
488
 	for event in timeline.get_children():
489
+		# check that event has event_data (e.g. drag drop indicators)
490
+		if (not "event_data" in event):
491
+			continue
320
 		if event.is_queued_for_deletion() == false: # Checking that the event is not waiting to be removed
492
 		if event.is_queued_for_deletion() == false: # Checking that the event is not waiting to be removed
321
 			info_to_save['events'].append(event.event_data)
493
 			info_to_save['events'].append(event.event_data)
322
 	return info_to_save
494
 	return info_to_save

+ 132
- 85
addons/dialogic/Editor/TimelineEditor/TimelineEditor.tscn View File

1
-[gd_scene load_steps=22 format=2]
1
+[gd_scene load_steps=25 format=2]
2
 
2
 
3
 [ext_resource path="res://addons/dialogic/Images/character-join.svg" type="Texture" id=1]
3
 [ext_resource path="res://addons/dialogic/Images/character-join.svg" type="Texture" id=1]
4
 [ext_resource path="res://addons/dialogic/Images/dialog.svg" type="Texture" id=2]
4
 [ext_resource path="res://addons/dialogic/Images/dialog.svg" type="Texture" id=2]
19
 [ext_resource path="res://addons/dialogic/Editor/TimelineEditor/TimelineEditor.gd" type="Script" id=17]
19
 [ext_resource path="res://addons/dialogic/Editor/TimelineEditor/TimelineEditor.gd" type="Script" id=17]
20
 [ext_resource path="res://addons/dialogic/Images/theme.svg" type="Texture" id=18]
20
 [ext_resource path="res://addons/dialogic/Images/theme.svg" type="Texture" id=18]
21
 [ext_resource path="res://addons/dialogic/Images/Events/background-music.svg" type="Texture" id=19]
21
 [ext_resource path="res://addons/dialogic/Images/Events/background-music.svg" type="Texture" id=19]
22
+[ext_resource path="res://addons/dialogic/Images/Script.svg" type="Texture" id=20]
23
+[ext_resource path="res://addons/dialogic/Editor/TimelineEditor/EventButton.gd" type="Script" id=21]
24
+[ext_resource path="res://addons/dialogic/Editor/TimelineEditor/TimelineArea.gd" type="Script" id=22]
22
 
25
 
23
 [sub_resource type="StyleBoxFlat" id=1]
26
 [sub_resource type="StyleBoxFlat" id=1]
24
 content_margin_left = 5.0
27
 content_margin_left = 5.0
48
 margin_bottom = 138.0
51
 margin_bottom = 138.0
49
 size_flags_horizontal = 3
52
 size_flags_horizontal = 3
50
 size_flags_vertical = 3
53
 size_flags_vertical = 3
51
-custom_constants/separation = 0
52
 split_offset = 7
54
 split_offset = 7
53
 script = ExtResource( 17 )
55
 script = ExtResource( 17 )
54
 __meta__ = {
56
 __meta__ = {
56
 }
58
 }
57
 
59
 
58
 [node name="TimelineArea" type="ScrollContainer" parent="."]
60
 [node name="TimelineArea" type="ScrollContainer" parent="."]
59
-margin_right = 816.0
61
+margin_right = 836.0
60
 margin_bottom = 738.0
62
 margin_bottom = 738.0
61
 size_flags_horizontal = 3
63
 size_flags_horizontal = 3
62
 size_flags_vertical = 3
64
 size_flags_vertical = 3
63
 custom_styles/bg = SubResource( 1 )
65
 custom_styles/bg = SubResource( 1 )
66
+script = ExtResource( 22 )
64
 __meta__ = {
67
 __meta__ = {
65
 "_edit_use_anchors_": false
68
 "_edit_use_anchors_": false
66
 }
69
 }
68
 [node name="TimeLine" type="VBoxContainer" parent="TimelineArea"]
71
 [node name="TimeLine" type="VBoxContainer" parent="TimelineArea"]
69
 margin_left = 5.0
72
 margin_left = 5.0
70
 margin_top = 5.0
73
 margin_top = 5.0
71
-margin_right = 811.0
74
+margin_right = 831.0
72
 margin_bottom = 733.0
75
 margin_bottom = 733.0
73
 grow_horizontal = 2
76
 grow_horizontal = 2
74
 grow_vertical = 2
77
 grow_vertical = 2
76
 size_flags_vertical = 3
79
 size_flags_vertical = 3
77
 
80
 
78
 [node name="ScrollContainer" type="ScrollContainer" parent="."]
81
 [node name="ScrollContainer" type="ScrollContainer" parent="."]
79
-margin_left = 824.0
82
+margin_left = 844.0
80
 margin_right = 1024.0
83
 margin_right = 1024.0
81
 margin_bottom = 738.0
84
 margin_bottom = 738.0
82
-rect_min_size = Vector2( 200, 0 )
85
+rect_min_size = Vector2( 180, 0 )
83
 
86
 
84
 [node name="EventContainer" type="VBoxContainer" parent="ScrollContainer"]
87
 [node name="EventContainer" type="VBoxContainer" parent="ScrollContainer"]
85
-margin_right = 200.0
88
+margin_right = 180.0
86
 margin_bottom = 738.0
89
 margin_bottom = 738.0
87
 size_flags_horizontal = 3
90
 size_flags_horizontal = 3
88
 size_flags_vertical = 3
91
 size_flags_vertical = 3
91
 }
94
 }
92
 
95
 
93
 [node name="EventsWarning" type="PanelContainer" parent="ScrollContainer/EventContainer"]
96
 [node name="EventsWarning" type="PanelContainer" parent="ScrollContainer/EventContainer"]
94
-margin_right = 200.0
95
-margin_bottom = 60.0
97
+margin_right = 180.0
98
+margin_bottom = 68.0
96
 custom_styles/panel = SubResource( 2 )
99
 custom_styles/panel = SubResource( 2 )
97
 
100
 
98
 [node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/EventContainer/EventsWarning"]
101
 [node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/EventContainer/EventsWarning"]
99
 margin_top = 10.0
102
 margin_top = 10.0
100
-margin_right = 194.0
101
-margin_bottom = 50.0
103
+margin_right = 174.0
104
+margin_bottom = 58.0
102
 size_flags_horizontal = 3
105
 size_flags_horizontal = 3
103
 size_flags_vertical = 3
106
 size_flags_vertical = 3
104
 __meta__ = {
107
 __meta__ = {
107
 
110
 
108
 [node name="TextureRect" type="TextureRect" parent="ScrollContainer/EventContainer/EventsWarning/HBoxContainer"]
111
 [node name="TextureRect" type="TextureRect" parent="ScrollContainer/EventContainer/EventsWarning/HBoxContainer"]
109
 margin_right = 40.0
112
 margin_right = 40.0
110
-margin_bottom = 40.0
113
+margin_bottom = 48.0
111
 rect_min_size = Vector2( 40, 40 )
114
 rect_min_size = Vector2( 40, 40 )
112
 texture = ExtResource( 13 )
115
 texture = ExtResource( 13 )
113
 stretch_mode = 4
116
 stretch_mode = 4
114
 
117
 
115
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/EventsWarning/HBoxContainer"]
118
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/EventsWarning/HBoxContainer"]
116
 margin_left = 44.0
119
 margin_left = 44.0
117
-margin_right = 194.0
118
-margin_bottom = 40.0
120
+margin_right = 174.0
121
+margin_bottom = 48.0
119
 rect_min_size = Vector2( 100, 0 )
122
 rect_min_size = Vector2( 100, 0 )
120
 size_flags_horizontal = 3
123
 size_flags_horizontal = 3
121
 size_flags_vertical = 1
124
 size_flags_vertical = 1
124
 autowrap = true
127
 autowrap = true
125
 
128
 
126
 [node name="HBoxContainer6" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
129
 [node name="HBoxContainer6" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
127
-margin_top = 64.0
128
-margin_right = 200.0
129
-margin_bottom = 78.0
130
+margin_top = 72.0
131
+margin_right = 180.0
132
+margin_bottom = 86.0
130
 
133
 
131
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer6"]
134
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer6"]
132
 margin_right = 77.0
135
 margin_right = 77.0
135
 
138
 
136
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer6"]
139
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer6"]
137
 margin_left = 81.0
140
 margin_left = 81.0
138
-margin_right = 200.0
141
+margin_right = 180.0
139
 margin_bottom = 14.0
142
 margin_bottom = 14.0
140
 size_flags_horizontal = 3
143
 size_flags_horizontal = 3
141
 
144
 
142
 [node name="TextBlock" type="Button" parent="ScrollContainer/EventContainer"]
145
 [node name="TextBlock" type="Button" parent="ScrollContainer/EventContainer"]
143
-margin_top = 82.0
144
-margin_right = 200.0
145
-margin_bottom = 110.0
146
+margin_top = 90.0
147
+margin_right = 180.0
148
+margin_bottom = 118.0
146
 text = "  Text Event"
149
 text = "  Text Event"
147
 icon = ExtResource( 2 )
150
 icon = ExtResource( 2 )
148
 align = 0
151
 align = 0
152
+script = ExtResource( 21 )
153
+EventName = "TextBlock"
149
 
154
 
150
 [node name="CharacterJoinBlock" type="Button" parent="ScrollContainer/EventContainer"]
155
 [node name="CharacterJoinBlock" type="Button" parent="ScrollContainer/EventContainer"]
151
-margin_top = 114.0
152
-margin_right = 200.0
153
-margin_bottom = 142.0
156
+margin_top = 122.0
157
+margin_right = 180.0
158
+margin_bottom = 150.0
154
 text = "  Character Join"
159
 text = "  Character Join"
155
 icon = ExtResource( 1 )
160
 icon = ExtResource( 1 )
156
 align = 0
161
 align = 0
162
+script = ExtResource( 21 )
163
+EventName = "CharacterJoinBlock"
157
 
164
 
158
 [node name="CharacterLeaveBlock" type="Button" parent="ScrollContainer/EventContainer"]
165
 [node name="CharacterLeaveBlock" type="Button" parent="ScrollContainer/EventContainer"]
159
-margin_top = 146.0
160
-margin_right = 200.0
161
-margin_bottom = 174.0
166
+margin_top = 154.0
167
+margin_right = 180.0
168
+margin_bottom = 182.0
162
 text = "  Character Leave"
169
 text = "  Character Leave"
163
 icon = ExtResource( 7 )
170
 icon = ExtResource( 7 )
164
 align = 0
171
 align = 0
172
+script = ExtResource( 21 )
173
+EventName = "CharacterLeaveBlock"
165
 
174
 
166
 [node name="HBoxContainer5" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
175
 [node name="HBoxContainer5" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
167
-margin_top = 178.0
168
-margin_right = 200.0
169
-margin_bottom = 192.0
176
+margin_top = 186.0
177
+margin_right = 180.0
178
+margin_bottom = 200.0
170
 
179
 
171
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer5"]
180
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer5"]
172
 margin_right = 33.0
181
 margin_right = 33.0
175
 
184
 
176
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer5"]
185
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer5"]
177
 margin_left = 37.0
186
 margin_left = 37.0
178
-margin_right = 200.0
187
+margin_right = 180.0
179
 margin_bottom = 14.0
188
 margin_bottom = 14.0
180
 size_flags_horizontal = 3
189
 size_flags_horizontal = 3
181
 
190
 
182
 [node name="ButtonQuestion" type="Button" parent="ScrollContainer/EventContainer"]
191
 [node name="ButtonQuestion" type="Button" parent="ScrollContainer/EventContainer"]
183
-margin_top = 196.0
184
-margin_right = 200.0
185
-margin_bottom = 224.0
192
+margin_top = 204.0
193
+margin_right = 180.0
194
+margin_bottom = 232.0
186
 text = "  Question"
195
 text = "  Question"
187
 icon = ExtResource( 8 )
196
 icon = ExtResource( 8 )
188
 align = 0
197
 align = 0
198
+script = ExtResource( 21 )
199
+EventName = "Question"
189
 
200
 
190
 [node name="Choice" type="Button" parent="ScrollContainer/EventContainer"]
201
 [node name="Choice" type="Button" parent="ScrollContainer/EventContainer"]
191
-margin_top = 228.0
192
-margin_right = 200.0
193
-margin_bottom = 256.0
202
+margin_top = 236.0
203
+margin_right = 180.0
204
+margin_bottom = 264.0
194
 text = "  Choice"
205
 text = "  Choice"
195
 icon = ExtResource( 12 )
206
 icon = ExtResource( 12 )
196
 align = 0
207
 align = 0
208
+script = ExtResource( 21 )
209
+EventName = "Choice"
197
 
210
 
198
 [node name="IfCondition" type="Button" parent="ScrollContainer/EventContainer"]
211
 [node name="IfCondition" type="Button" parent="ScrollContainer/EventContainer"]
199
-margin_top = 260.0
200
-margin_right = 200.0
201
-margin_bottom = 288.0
212
+margin_top = 268.0
213
+margin_right = 180.0
214
+margin_bottom = 296.0
202
 text = " Condition"
215
 text = " Condition"
203
 icon = ExtResource( 5 )
216
 icon = ExtResource( 5 )
204
 align = 0
217
 align = 0
218
+script = ExtResource( 21 )
219
+EventName = "IfCondition"
205
 
220
 
206
 [node name="EndBranch" type="Button" parent="ScrollContainer/EventContainer"]
221
 [node name="EndBranch" type="Button" parent="ScrollContainer/EventContainer"]
207
-margin_top = 292.0
208
-margin_right = 200.0
209
-margin_bottom = 320.0
222
+margin_top = 300.0
223
+margin_right = 180.0
224
+margin_bottom = 328.0
210
 text = "  End Branch"
225
 text = "  End Branch"
211
 icon = ExtResource( 9 )
226
 icon = ExtResource( 9 )
212
 align = 0
227
 align = 0
228
+script = ExtResource( 21 )
229
+EventName = "EndBranch"
213
 
230
 
214
 [node name="SetValue" type="Button" parent="ScrollContainer/EventContainer"]
231
 [node name="SetValue" type="Button" parent="ScrollContainer/EventContainer"]
215
-margin_top = 324.0
216
-margin_right = 200.0
217
-margin_bottom = 352.0
232
+margin_top = 332.0
233
+margin_right = 180.0
234
+margin_bottom = 354.0
218
 text = "  Set Value"
235
 text = "  Set Value"
219
 icon = ExtResource( 11 )
236
 icon = ExtResource( 11 )
220
 align = 0
237
 align = 0
238
+script = ExtResource( 21 )
239
+EventName = "SetValue"
221
 
240
 
222
 [node name="HBoxContainer3" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
241
 [node name="HBoxContainer3" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
223
-margin_top = 356.0
224
-margin_right = 200.0
225
-margin_bottom = 370.0
242
+margin_top = 358.0
243
+margin_right = 180.0
244
+margin_bottom = 372.0
226
 
245
 
227
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer3"]
246
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer3"]
228
 margin_right = 56.0
247
 margin_right = 56.0
231
 
250
 
232
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer3"]
251
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer3"]
233
 margin_left = 60.0
252
 margin_left = 60.0
234
-margin_right = 200.0
253
+margin_right = 180.0
235
 margin_bottom = 14.0
254
 margin_bottom = 14.0
236
 size_flags_horizontal = 3
255
 size_flags_horizontal = 3
237
 
256
 
238
 [node name="ChangeTimeline" type="Button" parent="ScrollContainer/EventContainer"]
257
 [node name="ChangeTimeline" type="Button" parent="ScrollContainer/EventContainer"]
239
-margin_top = 374.0
240
-margin_right = 200.0
241
-margin_bottom = 402.0
258
+margin_top = 376.0
259
+margin_right = 180.0
260
+margin_bottom = 404.0
242
 hint_tooltip = "This will instantly teleport you to the start of the desired timeline."
261
 hint_tooltip = "This will instantly teleport you to the start of the desired timeline."
243
 text = "  Change Timeline"
262
 text = "  Change Timeline"
244
 icon = ExtResource( 10 )
263
 icon = ExtResource( 10 )
245
 align = 0
264
 align = 0
265
+script = ExtResource( 21 )
266
+EventName = "ChangeTimeline"
246
 
267
 
247
 [node name="SceneEvent" type="Button" parent="ScrollContainer/EventContainer"]
268
 [node name="SceneEvent" type="Button" parent="ScrollContainer/EventContainer"]
248
-margin_top = 406.0
249
-margin_right = 200.0
250
-margin_bottom = 434.0
269
+margin_top = 408.0
270
+margin_right = 180.0
271
+margin_bottom = 436.0
251
 text = "  Scene Event"
272
 text = "  Scene Event"
252
 icon = ExtResource( 4 )
273
 icon = ExtResource( 4 )
253
 align = 0
274
 align = 0
275
+script = ExtResource( 21 )
276
+EventName = "SceneEvent"
254
 
277
 
255
 [node name="CloseDialog" type="Button" parent="ScrollContainer/EventContainer"]
278
 [node name="CloseDialog" type="Button" parent="ScrollContainer/EventContainer"]
256
-margin_top = 438.0
257
-margin_right = 200.0
258
-margin_bottom = 466.0
279
+margin_top = 440.0
280
+margin_right = 180.0
281
+margin_bottom = 468.0
259
 text = "  Close Dialog"
282
 text = "  Close Dialog"
260
 icon = ExtResource( 6 )
283
 icon = ExtResource( 6 )
261
 align = 0
284
 align = 0
285
+script = ExtResource( 21 )
286
+EventName = "CloseDialog"
262
 
287
 
263
 [node name="WaitSeconds" type="Button" parent="ScrollContainer/EventContainer"]
288
 [node name="WaitSeconds" type="Button" parent="ScrollContainer/EventContainer"]
264
-margin_top = 470.0
265
-margin_right = 200.0
266
-margin_bottom = 498.0
289
+margin_top = 472.0
290
+margin_right = 180.0
291
+margin_bottom = 500.0
267
 text = "  Wait Seconds"
292
 text = "  Wait Seconds"
268
 icon = ExtResource( 14 )
293
 icon = ExtResource( 14 )
269
 align = 0
294
 align = 0
295
+script = ExtResource( 21 )
296
+EventName = "WaitSeconds"
270
 
297
 
271
 [node name="SetTheme" type="Button" parent="ScrollContainer/EventContainer"]
298
 [node name="SetTheme" type="Button" parent="ScrollContainer/EventContainer"]
272
-margin_top = 502.0
273
-margin_right = 200.0
274
-margin_bottom = 530.0
299
+margin_top = 504.0
300
+margin_right = 180.0
301
+margin_bottom = 532.0
275
 text = "  Set Theme"
302
 text = "  Set Theme"
276
 icon = ExtResource( 18 )
303
 icon = ExtResource( 18 )
277
 align = 0
304
 align = 0
305
+script = ExtResource( 21 )
306
+EventName = "SetTheme"
278
 
307
 
279
 [node name="HBoxContainer4" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
308
 [node name="HBoxContainer4" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
280
-margin_top = 534.0
281
-margin_right = 200.0
282
-margin_bottom = 548.0
309
+margin_top = 536.0
310
+margin_right = 180.0
311
+margin_bottom = 550.0
283
 
312
 
284
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer4"]
313
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer4"]
285
 margin_right = 37.0
314
 margin_right = 37.0
288
 
317
 
289
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer4"]
318
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer4"]
290
 margin_left = 41.0
319
 margin_left = 41.0
291
-margin_right = 200.0
320
+margin_right = 180.0
292
 margin_bottom = 14.0
321
 margin_bottom = 14.0
293
 size_flags_horizontal = 3
322
 size_flags_horizontal = 3
294
 
323
 
295
 [node name="AudioBlock" type="Button" parent="ScrollContainer/EventContainer"]
324
 [node name="AudioBlock" type="Button" parent="ScrollContainer/EventContainer"]
296
-margin_top = 552.0
297
-margin_right = 200.0
298
-margin_bottom = 580.0
325
+margin_top = 554.0
326
+margin_right = 180.0
327
+margin_bottom = 582.0
299
 text = "  Audio Event"
328
 text = "  Audio Event"
300
 icon = ExtResource( 3 )
329
 icon = ExtResource( 3 )
301
 align = 0
330
 align = 0
331
+script = ExtResource( 21 )
332
+EventName = "AudioBlock"
302
 
333
 
303
 [node name="BackgroundMusic" type="Button" parent="ScrollContainer/EventContainer"]
334
 [node name="BackgroundMusic" type="Button" parent="ScrollContainer/EventContainer"]
304
-margin_top = 584.0
305
-margin_right = 200.0
306
-margin_bottom = 612.0
335
+margin_top = 586.0
336
+margin_right = 180.0
337
+margin_bottom = 614.0
307
 text = "  Background Music"
338
 text = "  Background Music"
308
 icon = ExtResource( 19 )
339
 icon = ExtResource( 19 )
309
 align = 0
340
 align = 0
341
+script = ExtResource( 21 )
342
+EventName = "BackgroundMusic"
310
 
343
 
311
 [node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
344
 [node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/EventContainer"]
312
-margin_top = 616.0
313
-margin_right = 200.0
314
-margin_bottom = 630.0
345
+margin_top = 618.0
346
+margin_right = 180.0
347
+margin_bottom = 632.0
315
 
348
 
316
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer"]
349
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer"]
317
 margin_right = 39.0
350
 margin_right = 39.0
320
 
353
 
321
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer"]
354
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer"]
322
 margin_left = 43.0
355
 margin_left = 43.0
323
-margin_right = 200.0
356
+margin_right = 180.0
324
 margin_bottom = 14.0
357
 margin_bottom = 14.0
325
 size_flags_horizontal = 3
358
 size_flags_horizontal = 3
326
 
359
 
327
 [node name="EmitSignal" type="Button" parent="ScrollContainer/EventContainer"]
360
 [node name="EmitSignal" type="Button" parent="ScrollContainer/EventContainer"]
328
-margin_top = 634.0
329
-margin_right = 200.0
330
-margin_bottom = 662.0
361
+margin_top = 636.0
362
+margin_right = 180.0
363
+margin_bottom = 664.0
331
 text = "  Emit Signal"
364
 text = "  Emit Signal"
332
 icon = ExtResource( 16 )
365
 icon = ExtResource( 16 )
333
 align = 0
366
 align = 0
367
+script = ExtResource( 21 )
368
+EventName = "EmitSignal"
334
 
369
 
335
 [node name="ChangeScene" type="Button" parent="ScrollContainer/EventContainer"]
370
 [node name="ChangeScene" type="Button" parent="ScrollContainer/EventContainer"]
336
-margin_top = 666.0
337
-margin_right = 200.0
338
-margin_bottom = 694.0
371
+margin_top = 668.0
372
+margin_right = 180.0
373
+margin_bottom = 696.0
339
 hint_tooltip = "This will instantly change
374
 hint_tooltip = "This will instantly change
340
 the current scene."
375
 the current scene."
341
 text = "  Change Scene"
376
 text = "  Change Scene"
342
 icon = ExtResource( 15 )
377
 icon = ExtResource( 15 )
343
 align = 0
378
 align = 0
379
+script = ExtResource( 21 )
380
+EventName = "ChangeScene"
381
+
382
+[node name="CallNode" type="Button" parent="ScrollContainer/EventContainer"]
383
+margin_top = 700.0
384
+margin_right = 180.0
385
+margin_bottom = 728.0
386
+text = "  Call Node"
387
+icon = ExtResource( 20 )
388
+align = 0
389
+script = ExtResource( 21 )
390
+EventName = "CallNode"

+ 4
- 0
addons/dialogic/Images/Resources/character-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<circle cx="11" cy="6" r="5" fill="white"/>
3
+<path d="M17 18.4118C17 21 14.3137 21 11 21C7.68629 21 5 21 5 18.4118C5 13.7661 7.68629 10 11 10C14.3137 10 17 13.7661 17 18.4118Z" fill="white"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Resources/character-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/character-1.25.svg-f8560c64a6c9ea126837d22490545cc1.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Resources/character-1.25.svg"
13
+dest_files=[ "res://.import/character-1.25.svg-f8560c64a6c9ea126837d22490545cc1.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 4
- 0
addons/dialogic/Images/Resources/character-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M23.2727 8.72726C23.2727 12.7439 20.0166 16 16 16C11.9834 16 8.72725 12.7439 8.72725 8.72726C8.72725 4.71064 11.9834 1.45453 16 1.45453C20.0166 1.45453 23.2727 4.71064 23.2727 8.72726Z" fill="white"/>
3
+<path d="M24.7272 26.7807C24.7272 30.5454 20.8199 30.5454 16 30.5454C11.18 30.5454 7.27271 30.5454 7.27271 26.7807C7.27271 20.0234 11.18 14.5454 16 14.5454C20.8199 14.5454 24.7272 20.0234 24.7272 26.7807Z" fill="white"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Resources/character-2.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/character-2.svg-6a7c147375663e487c6aad504c0ac5e9.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Resources/character-2.svg"
13
+dest_files=[ "res://.import/character-2.svg-6a7c147375663e487c6aad504c0ac5e9.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 4
- 0
addons/dialogic/Images/Resources/character.svg View File

1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M11.6364 4.36363C11.6364 6.37194 10.0083 7.99999 8 7.99999C5.99169 7.99999 4.36363 6.37194 4.36363 4.36363C4.36363 2.35532 5.99169 0.727264 8 0.727264C10.0083 0.727264 11.6364 2.35532 11.6364 4.36363Z" fill="white"/>
3
+<path d="M12.3636 13.3904C12.3636 15.2727 10.41 15.2727 8 15.2727C5.59003 15.2727 3.63636 15.2727 3.63636 13.3904C3.63636 10.0117 5.59003 7.27272 8 7.27272C10.41 7.27272 12.3636 10.0117 12.3636 13.3904Z" fill="white"/>
4
+</svg>

addons/dialogic/Images/icon.svg.import → addons/dialogic/Images/Resources/character.svg.import View File

2
 
2
 
3
 importer="texture"
3
 importer="texture"
4
 type="StreamTexture"
4
 type="StreamTexture"
5
-path="res://.import/icon.svg-ea02ac3b105238214f20335b7e707d35.stex"
5
+path="res://.import/character.svg-dce8982b5c5669e98479bbff64aab08f.stex"
6
 metadata={
6
 metadata={
7
 "vram_texture": false
7
 "vram_texture": false
8
 }
8
 }
9
 
9
 
10
 [deps]
10
 [deps]
11
 
11
 
12
-source_file="res://addons/dialogic/Images/icon.svg"
13
-dest_files=[ "res://.import/icon.svg-ea02ac3b105238214f20335b7e707d35.stex" ]
12
+source_file="res://addons/dialogic/Images/Resources/character.svg"
13
+dest_files=[ "res://.import/character.svg-dce8982b5c5669e98479bbff64aab08f.stex" ]
14
 
14
 
15
 [params]
15
 [params]
16
 
16
 

+ 3
- 0
addons/dialogic/Images/Resources/definition-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M19.2012 3.61523L17.6631 7.18359C17.3623 6.9375 17.0273 6.72559 16.6582 6.54785C16.3027 6.35645 15.9336 6.26074 15.5508 6.26074C15.25 6.26074 14.9629 6.32227 14.6895 6.44531C14.4297 6.56836 14.1904 6.73242 13.9717 6.9375C13.7529 7.14258 13.5615 7.375 13.3975 7.63477C13.2334 7.88086 13.0967 8.12695 12.9873 8.37305L12.5771 9.54199C12.8643 10.1436 13.1445 10.7178 13.418 11.2646C13.6504 11.7295 13.8896 12.2012 14.1357 12.6797C14.3818 13.1445 14.5869 13.5137 14.751 13.7871C15.0107 14.1836 15.2705 14.5938 15.5303 15.0176C15.79 15.4277 16.0771 15.8037 16.3916 16.1455C16.5283 16.2959 16.6924 16.3984 16.8838 16.4531C17.0889 16.4941 17.2734 16.5146 17.4375 16.5146C17.6973 16.5146 17.9434 16.4805 18.1758 16.4121C18.4082 16.3438 18.627 16.2549 18.832 16.1455L19.3447 16.8018C19.1533 17.1025 18.9209 17.4033 18.6475 17.7041C18.374 18.0049 18.0732 18.2783 17.7451 18.5244C17.4307 18.7705 17.0889 18.9688 16.7197 19.1191C16.3643 19.2832 16.002 19.3652 15.6328 19.3652C15.3047 19.3652 15.0107 19.3105 14.751 19.2012C14.5049 19.1055 14.2793 18.9756 14.0742 18.8115C13.8691 18.6338 13.6777 18.4287 13.5 18.1963C13.3223 17.9639 13.1377 17.7246 12.9463 17.4785C12.7959 17.2461 12.6318 16.9658 12.4541 16.6377C12.29 16.2959 12.1191 15.9473 11.9414 15.5918C11.7637 15.2363 11.5859 14.8945 11.4082 14.5664C11.2305 14.2246 11.0596 13.9375 10.8955 13.7051C10.8271 13.9375 10.7656 14.1699 10.7109 14.4023C10.6562 14.5938 10.5947 14.792 10.5264 14.9971C10.458 15.2021 10.3965 15.3594 10.3418 15.4688C10.1367 15.9062 9.87695 16.3574 9.5625 16.8223C9.24805 17.2871 8.88574 17.7109 8.47559 18.0938C8.0791 18.4629 7.6416 18.7705 7.16309 19.0166C6.68457 19.249 6.17871 19.3652 5.64551 19.3652C5.16699 19.3652 4.70215 19.2695 4.25098 19.0781C3.7998 18.9004 3.38281 18.6611 3 18.3604L4.29199 14.9561C4.72949 15.2295 5.20801 15.4756 5.72754 15.6943C6.24707 15.8994 6.7666 16.002 7.28613 16.002C7.4502 16.002 7.62109 15.9883 7.79883 15.9609C7.97656 15.9199 8.14746 15.8652 8.31152 15.7969C8.48926 15.7148 8.64648 15.6191 8.7832 15.5098C8.91992 15.3867 9.02246 15.2432 9.09082 15.0791C9.18652 14.9014 9.28906 14.6689 9.39844 14.3818C9.50781 14.0947 9.61719 13.8076 9.72656 13.5205C9.84961 13.1924 9.97266 12.8438 10.0957 12.4746L6.24023 6.30176C6.0625 6.09668 5.84375 5.93262 5.58398 5.80957C5.33789 5.67285 5.07812 5.60449 4.80469 5.60449C4.57227 5.60449 4.35352 5.65234 4.14844 5.74805C3.94336 5.83008 3.74512 5.94629 3.55371 6.09668L3 5.37891C3.19141 5.0918 3.41699 4.81152 3.67676 4.53809C3.9502 4.25098 4.24414 3.99805 4.55859 3.7793C4.87305 3.54688 5.20801 3.3623 5.56348 3.22559C5.91895 3.0752 6.28125 3 6.65039 3C7.10156 3 7.51855 3.11621 7.90137 3.34863C8.28418 3.56738 8.63965 3.84082 8.96777 4.16895C9.2959 4.49707 9.59668 4.85254 9.87012 5.23535C10.1436 5.61816 10.3896 5.97363 10.6084 6.30176C10.7178 6.45215 10.834 6.64355 10.957 6.87598C11.0938 7.09473 11.2236 7.31348 11.3467 7.53223C11.4971 7.77832 11.6406 8.04492 11.7773 8.33203C11.9141 8.00391 12.0576 7.67578 12.208 7.34766C12.3311 7.07422 12.4541 6.79395 12.5771 6.50684C12.7139 6.20605 12.8369 5.94629 12.9463 5.72754C13.1514 5.34473 13.3838 4.98926 13.6436 4.66113C13.9033 4.33301 14.1904 4.0459 14.5049 3.7998C14.833 3.55371 15.1885 3.3623 15.5713 3.22559C15.9541 3.0752 16.3711 3 16.8223 3C17.2461 3 17.6562 3.05469 18.0527 3.16406C18.4492 3.27344 18.832 3.42383 19.2012 3.61523Z" fill="white"/>
3
+</svg>

+ 34
- 0
addons/dialogic/Images/Resources/definition-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/definition-1.25.svg-7298ef82f76fa611485bd53d1f0aebe0.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Resources/definition-1.25.svg"
13
+dest_files=[ "res://.import/definition-1.25.svg-7298ef82f76fa611485bd53d1f0aebe0.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 3
- 0
addons/dialogic/Images/Resources/definition-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M27.929 5.25853L25.6918 10.4489C25.2543 10.0909 24.7671 9.78268 24.2301 9.52416C23.7131 9.24575 23.1761 9.10655 22.6193 9.10655C22.1818 9.10655 21.7642 9.19603 21.3665 9.37501C20.9886 9.55399 20.6406 9.79262 20.3225 10.0909C20.0043 10.3892 19.7259 10.7273 19.4872 11.1051C19.2486 11.4631 19.0497 11.821 18.8906 12.179L18.294 13.8793C18.7117 14.7543 19.1193 15.5895 19.5171 16.385C19.8551 17.0611 20.2031 17.7472 20.5611 18.4432C20.919 19.1193 21.2173 19.6563 21.456 20.054C21.8338 20.6307 22.2117 21.2273 22.5895 21.8438C22.9673 22.4404 23.385 22.9872 23.8423 23.4844C24.0412 23.7031 24.2798 23.8523 24.5583 23.9318C24.8565 23.9915 25.125 24.0213 25.3636 24.0213C25.7415 24.0213 26.0994 23.9716 26.4375 23.8722C26.7756 23.7727 27.0938 23.6435 27.3921 23.4844L28.1378 24.4389C27.8594 24.8764 27.5213 25.3139 27.1236 25.7514C26.7259 26.1889 26.2884 26.5867 25.8111 26.9446C25.3537 27.3026 24.8565 27.5909 24.3196 27.8097C23.8026 28.0483 23.2756 28.1676 22.7386 28.1676C22.2614 28.1676 21.8338 28.0881 21.456 27.929C21.098 27.7898 20.7699 27.6009 20.4716 27.3622C20.1733 27.1037 19.8949 26.8054 19.6364 26.4673C19.3779 26.1293 19.1094 25.7813 18.831 25.4233C18.6122 25.0852 18.3736 24.6776 18.1151 24.2003C17.8764 23.7031 17.6279 23.196 17.3693 22.679C17.1108 22.1619 16.8523 21.6648 16.5938 21.1875C16.3352 20.6904 16.0867 20.2727 15.848 19.9347C15.7486 20.2727 15.6591 20.6108 15.5796 20.9489C15.5 21.2273 15.4105 21.5156 15.3111 21.8139C15.2117 22.1122 15.1222 22.3409 15.0426 22.5C14.7443 23.1364 14.3665 23.7926 13.9091 24.4688C13.4517 25.1449 12.9247 25.7614 12.3281 26.3182C11.7514 26.8551 11.1151 27.3026 10.419 27.6605C9.72302 27.9986 8.98723 28.1676 8.21166 28.1676C7.51564 28.1676 6.8395 28.0284 6.18325 27.75C5.527 27.4915 4.92047 27.1435 4.36365 26.706L6.24291 21.7543C6.87927 22.152 7.5753 22.51 8.33098 22.8281C9.08666 23.1264 9.84234 23.2756 10.598 23.2756C10.8367 23.2756 11.0852 23.2557 11.3438 23.2159C11.6023 23.1563 11.8509 23.0767 12.0895 22.9773C12.348 22.858 12.5767 22.7188 12.7756 22.5597C12.9744 22.3807 13.1236 22.1719 13.223 21.9333C13.3622 21.6747 13.5114 21.3367 13.6705 20.919C13.8296 20.5014 13.9886 20.0838 14.1477 19.6662C14.3267 19.1889 14.5057 18.6818 14.6847 18.1449L9.07672 9.1662C8.81819 8.86791 8.50001 8.62927 8.12217 8.4503C7.76422 8.25143 7.38637 8.152 6.98865 8.152C6.65058 8.152 6.3324 8.2216 6.0341 8.36081C5.73581 8.48012 5.44745 8.64916 5.16905 8.86791L4.36365 7.82387C4.64206 7.40626 4.97018 6.99859 5.34802 6.60086C5.74575 6.18325 6.17331 5.81535 6.63069 5.49717C7.08808 5.1591 7.5753 4.89064 8.09234 4.69177C8.60939 4.47302 9.13637 4.36365 9.67331 4.36365C10.3296 4.36365 10.9361 4.53268 11.4929 4.87075C12.0497 5.18893 12.5668 5.58666 13.044 6.06393C13.5213 6.5412 13.9588 7.05825 14.3565 7.61507C14.7543 8.17189 15.1122 8.68893 15.4304 9.1662C15.5895 9.38495 15.7585 9.66336 15.9375 10.0014C16.1364 10.3196 16.3253 10.6378 16.5043 10.956C16.723 11.3139 16.9318 11.7017 17.1307 12.1193C17.3296 11.6421 17.5384 11.1648 17.7571 10.6875C17.9361 10.2898 18.1151 9.88211 18.294 9.4645C18.4929 9.027 18.6719 8.64916 18.831 8.33098C19.1293 7.77416 19.4673 7.25711 19.8452 6.77984C20.223 6.30257 20.6406 5.88495 21.098 5.527C21.5753 5.16905 22.0923 4.89064 22.6492 4.69177C23.206 4.47302 23.8125 4.36365 24.4688 4.36365C25.0852 4.36365 25.6818 4.44319 26.2585 4.60228C26.8352 4.76137 27.3921 4.98012 27.929 5.25853Z" fill="white"/>
3
+</svg>

+ 34
- 0
addons/dialogic/Images/Resources/definition-2.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/definition-2.svg-533f2834cedbb3e21c178f7a40ec34a3.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Resources/definition-2.svg"
13
+dest_files=[ "res://.import/definition-2.svg-533f2834cedbb3e21c178f7a40ec34a3.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 2
- 2
addons/dialogic/Images/Resources/definition.svg View File

1
-<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
-<path d="M19.2012 3.61523L17.6631 7.18359C17.3623 6.9375 17.0273 6.72559 16.6582 6.54785C16.3027 6.35645 15.9336 6.26074 15.5508 6.26074C15.25 6.26074 14.9629 6.32227 14.6895 6.44531C14.4297 6.56836 14.1904 6.73242 13.9717 6.9375C13.7529 7.14258 13.5615 7.375 13.3975 7.63477C13.2334 7.88086 13.0967 8.12695 12.9873 8.37305L12.5771 9.54199C12.8643 10.1436 13.1445 10.7178 13.418 11.2646C13.6504 11.7295 13.8896 12.2012 14.1357 12.6797C14.3818 13.1445 14.5869 13.5137 14.751 13.7871C15.0107 14.1836 15.2705 14.5938 15.5303 15.0176C15.79 15.4277 16.0771 15.8037 16.3916 16.1455C16.5283 16.2959 16.6924 16.3984 16.8838 16.4531C17.0889 16.4941 17.2734 16.5146 17.4375 16.5146C17.6973 16.5146 17.9434 16.4805 18.1758 16.4121C18.4082 16.3438 18.627 16.2549 18.832 16.1455L19.3447 16.8018C19.1533 17.1025 18.9209 17.4033 18.6475 17.7041C18.374 18.0049 18.0732 18.2783 17.7451 18.5244C17.4307 18.7705 17.0889 18.9688 16.7197 19.1191C16.3643 19.2832 16.002 19.3652 15.6328 19.3652C15.3047 19.3652 15.0107 19.3105 14.751 19.2012C14.5049 19.1055 14.2793 18.9756 14.0742 18.8115C13.8691 18.6338 13.6777 18.4287 13.5 18.1963C13.3223 17.9639 13.1377 17.7246 12.9463 17.4785C12.7959 17.2461 12.6318 16.9658 12.4541 16.6377C12.29 16.2959 12.1191 15.9473 11.9414 15.5918C11.7637 15.2363 11.5859 14.8945 11.4082 14.5664C11.2305 14.2246 11.0596 13.9375 10.8955 13.7051C10.8271 13.9375 10.7656 14.1699 10.7109 14.4023C10.6562 14.5938 10.5947 14.792 10.5264 14.9971C10.458 15.2021 10.3965 15.3594 10.3418 15.4688C10.1367 15.9062 9.87695 16.3574 9.5625 16.8223C9.24805 17.2871 8.88574 17.7109 8.47559 18.0938C8.0791 18.4629 7.6416 18.7705 7.16309 19.0166C6.68457 19.249 6.17871 19.3652 5.64551 19.3652C5.16699 19.3652 4.70215 19.2695 4.25098 19.0781C3.7998 18.9004 3.38281 18.6611 3 18.3604L4.29199 14.9561C4.72949 15.2295 5.20801 15.4756 5.72754 15.6943C6.24707 15.8994 6.7666 16.002 7.28613 16.002C7.4502 16.002 7.62109 15.9883 7.79883 15.9609C7.97656 15.9199 8.14746 15.8652 8.31152 15.7969C8.48926 15.7148 8.64648 15.6191 8.7832 15.5098C8.91992 15.3867 9.02246 15.2432 9.09082 15.0791C9.18652 14.9014 9.28906 14.6689 9.39844 14.3818C9.50781 14.0947 9.61719 13.8076 9.72656 13.5205C9.84961 13.1924 9.97266 12.8438 10.0957 12.4746L6.24023 6.30176C6.0625 6.09668 5.84375 5.93262 5.58398 5.80957C5.33789 5.67285 5.07812 5.60449 4.80469 5.60449C4.57227 5.60449 4.35352 5.65234 4.14844 5.74805C3.94336 5.83008 3.74512 5.94629 3.55371 6.09668L3 5.37891C3.19141 5.0918 3.41699 4.81152 3.67676 4.53809C3.9502 4.25098 4.24414 3.99805 4.55859 3.7793C4.87305 3.54688 5.20801 3.3623 5.56348 3.22559C5.91895 3.0752 6.28125 3 6.65039 3C7.10156 3 7.51855 3.11621 7.90137 3.34863C8.28418 3.56738 8.63965 3.84082 8.96777 4.16895C9.2959 4.49707 9.59668 4.85254 9.87012 5.23535C10.1436 5.61816 10.3896 5.97363 10.6084 6.30176C10.7178 6.45215 10.834 6.64355 10.957 6.87598C11.0938 7.09473 11.2236 7.31348 11.3467 7.53223C11.4971 7.77832 11.6406 8.04492 11.7773 8.33203C11.9141 8.00391 12.0576 7.67578 12.208 7.34766C12.3311 7.07422 12.4541 6.79395 12.5771 6.50684C12.7139 6.20605 12.8369 5.94629 12.9463 5.72754C13.1514 5.34473 13.3838 4.98926 13.6436 4.66113C13.9033 4.33301 14.1904 4.0459 14.5049 3.7998C14.833 3.55371 15.1885 3.3623 15.5713 3.22559C15.9541 3.0752 16.3711 3 16.8223 3C17.2461 3 17.6562 3.05469 18.0527 3.16406C18.4492 3.27344 18.832 3.42383 19.2012 3.61523Z" fill="white"/>
1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M13.9645 2.62927L12.8459 5.22444C12.6271 5.04546 12.3835 4.89134 12.1151 4.76208C11.8565 4.62287 11.5881 4.55327 11.3097 4.55327C11.0909 4.55327 10.8821 4.59802 10.6832 4.68751C10.4943 4.77699 10.3203 4.89631 10.1612 5.04546C10.0021 5.19461 9.86293 5.36364 9.74361 5.55256C9.6243 5.73154 9.52486 5.91052 9.44532 6.08949L9.14702 6.93964C9.35583 7.37714 9.55966 7.79475 9.75853 8.19248C9.92756 8.53055 10.1016 8.87359 10.2805 9.2216C10.4595 9.55966 10.6087 9.82813 10.728 10.027C10.9169 10.3153 11.1058 10.6136 11.2948 10.9219C11.4837 11.2202 11.6925 11.4936 11.9212 11.7422C12.0206 11.8516 12.1399 11.9261 12.2791 11.9659C12.4283 11.9957 12.5625 12.0107 12.6818 12.0107C12.8707 12.0107 13.0497 11.9858 13.2188 11.9361C13.3878 11.8864 13.5469 11.8217 13.696 11.7422L14.0689 12.2195C13.9297 12.4382 13.7607 12.657 13.5618 12.8757C13.3629 13.0945 13.1442 13.2933 12.9055 13.4723C12.6769 13.6513 12.4283 13.7955 12.1598 13.9048C11.9013 14.0242 11.6378 14.0838 11.3693 14.0838C11.1307 14.0838 10.9169 14.044 10.728 13.9645C10.549 13.8949 10.3849 13.8004 10.2358 13.6811C10.0867 13.5519 9.94745 13.4027 9.81819 13.2337C9.68893 13.0646 9.55469 12.8906 9.41549 12.7117C9.30611 12.5426 9.1868 12.3388 9.05753 12.1001C8.93822 11.8516 8.81393 11.598 8.68466 11.3395C8.5554 11.081 8.42614 10.8324 8.29688 10.5938C8.16762 10.3452 8.04333 10.1364 7.92401 9.96734C7.8743 10.1364 7.82955 10.3054 7.78978 10.4744C7.75001 10.6136 7.70526 10.7578 7.65555 10.907C7.60583 11.0561 7.56109 11.1705 7.52131 11.25C7.37216 11.5682 7.18324 11.8963 6.95455 12.2344C6.72586 12.5724 6.46236 12.8807 6.16407 13.1591C5.87572 13.4276 5.55753 13.6513 5.20952 13.8303C4.86151 13.9993 4.49361 14.0838 4.10583 14.0838C3.75782 14.0838 3.41975 14.0142 3.09162 13.875C2.7635 13.7457 2.46023 13.5717 2.18182 13.353L3.12145 10.8771C3.43964 11.076 3.78765 11.255 4.16549 11.4141C4.54333 11.5632 4.92117 11.6378 5.29901 11.6378C5.41833 11.6378 5.54262 11.6278 5.67188 11.608C5.80114 11.5781 5.92543 11.5384 6.04475 11.4886C6.17401 11.429 6.28836 11.3594 6.38779 11.2798C6.48722 11.1903 6.5618 11.0859 6.61151 10.9666C6.68111 10.8374 6.75569 10.6683 6.83523 10.4595C6.91478 10.2507 6.99432 10.0419 7.07387 9.8331C7.16336 9.59447 7.25285 9.34091 7.34234 9.07245L4.53836 4.5831C4.4091 4.43395 4.25001 4.31464 4.06109 4.22515C3.88211 4.12572 3.69319 4.076 3.49432 4.076C3.32529 4.076 3.1662 4.1108 3.01705 4.1804C2.8679 4.24006 2.72373 4.32458 2.58452 4.43395L2.18182 3.91194C2.32103 3.70313 2.48509 3.4993 2.67401 3.30043C2.87287 3.09162 3.08665 2.90768 3.31535 2.74859C3.54404 2.57955 3.78765 2.44532 4.04617 2.34589C4.30469 2.23651 4.56819 2.18182 4.83665 2.18182C5.16478 2.18182 5.46805 2.26634 5.74645 2.43537C6.02486 2.59447 6.28339 2.79333 6.52202 3.03197C6.76066 3.2706 6.97941 3.52912 7.17827 3.80753C7.37714 4.08594 7.55611 4.34447 7.7152 4.5831C7.79475 4.69248 7.87927 4.83168 7.96876 5.00072C8.06819 5.15981 8.16265 5.3189 8.25214 5.47799C8.36151 5.65697 8.46591 5.85086 8.56535 6.05966C8.66478 5.82103 8.76918 5.58239 8.87856 5.34376C8.96805 5.14489 9.05753 4.94106 9.14702 4.73225C9.24645 4.5135 9.33594 4.32458 9.41549 4.16549C9.56464 3.88708 9.73367 3.62856 9.92259 3.38992C10.1115 3.15128 10.3203 2.94248 10.549 2.7635C10.7876 2.58452 11.0462 2.44532 11.3246 2.34589C11.603 2.23651 11.9063 2.18182 12.2344 2.18182C12.5426 2.18182 12.8409 2.2216 13.1293 2.30114C13.4176 2.38069 13.696 2.49006 13.9645 2.62927Z" fill="white"/>
3
 </svg>
3
 </svg>

+ 3
- 0
addons/dialogic/Images/Resources/glossary-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3H18V19H4V3ZM6.33333 5.28571H15.6667V7.57143H6.33333V5.28571ZM15.6667 9.85714H6.33333V12.1429H15.6667V9.85714ZM6.33333 14.4286H15.6667V16.7143H6.33333V14.4286Z" fill="white"/>
3
+</svg>

+ 34
- 0
addons/dialogic/Images/Resources/glossary-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/glossary-1.25.svg-853d6e210a417c56901de57c59157131.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Resources/glossary-1.25.svg"
13
+dest_files=[ "res://.import/glossary-1.25.svg-853d6e210a417c56901de57c59157131.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 3
- 0
addons/dialogic/Images/Resources/glossary-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.81818 4.36365H26.1818V27.6364H5.81818V4.36365ZM9.21212 7.68832H22.7879V11.013H9.21212V7.68832ZM22.7879 14.3377H9.21212V17.6623H22.7879V14.3377ZM9.21212 20.987H22.7879V24.3117H9.21212V20.987Z" fill="white"/>
3
+</svg>

+ 34
- 0
addons/dialogic/Images/Resources/glossary-2.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/glossary-2.svg-6efb4c020432fe8dab1483fce35f5665.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Resources/glossary-2.svg"
13
+dest_files=[ "res://.import/glossary-2.svg-6efb4c020432fe8dab1483fce35f5665.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 2
- 2
addons/dialogic/Images/Resources/glossary.svg View File

1
-<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
-<path fill-rule="evenodd" clip-rule="evenodd" d="M4 3H18V19H4V3ZM6.33333 5.28571H15.6667V7.57143H6.33333V5.28571ZM15.6667 9.85714H6.33333V12.1429H15.6667V9.85714ZM6.33333 14.4286H15.6667V16.7143H6.33333V14.4286Z" fill="white"/>
1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path fill-rule="evenodd" clip-rule="evenodd" d="M2.90909 2.18182H13.0909V13.8182H2.90909V2.18182ZM4.60606 3.84416H11.3939V5.5065H4.60606V3.84416ZM11.3939 7.16884H4.60606V8.83117H11.3939V7.16884ZM4.60606 10.4935H11.3939V12.1558H4.60606V10.4935Z" fill="white"/>
3
 </svg>
3
 </svg>

+ 4
- 0
addons/dialogic/Images/Resources/theme-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M2 3C2 2.44772 2.44772 2 3 2H19C19.5523 2 20 2.44772 20 3V14C20 15 19 15.5 19 15.5L9 20L11 15H3C2.44772 15 2 14.5523 2 14V3Z" fill="white"/>
3
+<path d="M8.32939 6.132C8.68939 5.972 9.12939 5.84 9.64939 5.736C10.1774 5.632 10.7214 5.58 11.2814 5.58C11.7214 5.58 12.0894 5.632 12.3854 5.736C12.6894 5.84 12.9294 5.992 13.1054 6.192C13.2814 6.384 13.4054 6.62 13.4774 6.9C13.5574 7.172 13.5974 7.476 13.5974 7.812C13.5974 8.22 13.5814 8.624 13.5494 9.024C13.5174 9.424 13.5014 9.848 13.5014 10.296C13.5014 10.6 13.5214 10.896 13.5614 11.184C13.6014 11.472 13.6654 11.748 13.7534 12.012H12.3854L12.1094 11.076H11.9654C11.7574 11.356 11.4934 11.596 11.1734 11.796C10.8534 11.996 10.4414 12.096 9.93739 12.096C9.63339 12.096 9.35339 12.052 9.09739 11.964C8.84939 11.876 8.63339 11.752 8.44939 11.592C8.27339 11.424 8.13339 11.228 8.02939 11.004C7.93339 10.78 7.88539 10.536 7.88539 10.272C7.88539 9.56 8.12139 9.024 8.59339 8.664C9.07339 8.296 9.79739 8.112 10.7654 8.112C10.9894 8.112 11.2134 8.132 11.4374 8.172C11.6614 8.204 11.8174 8.228 11.9054 8.244C11.9294 8.076 11.9414 7.932 11.9414 7.812C11.9414 7.508 11.8654 7.284 11.7134 7.14C11.5614 6.996 11.2774 6.924 10.8614 6.924C10.4774 6.924 10.1014 6.972 9.73339 7.068C9.37339 7.156 9.05339 7.268 8.77339 7.404L8.32939 6.132ZM10.5254 10.752C10.9014 10.752 11.2014 10.664 11.4254 10.488C11.6494 10.312 11.8134 10.128 11.9174 9.936V9.216C11.8774 9.2 11.8134 9.184 11.7254 9.168C11.6454 9.152 11.5534 9.136 11.4494 9.12C11.3534 9.104 11.2534 9.092 11.1494 9.084C11.0534 9.076 10.9654 9.072 10.8854 9.072C10.4534 9.072 10.1334 9.152 9.92539 9.312C9.71739 9.464 9.61339 9.656 9.61339 9.888C9.61339 10.176 9.69339 10.392 9.85339 10.536C10.0214 10.68 10.2454 10.752 10.5254 10.752Z" fill="#939393"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Resources/theme-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/theme-1.25.svg-77e4506f492a590268d4307cdc31e4f8.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Resources/theme-1.25.svg"
13
+dest_files=[ "res://.import/theme-1.25.svg-77e4506f492a590268d4307cdc31e4f8.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 4
- 0
addons/dialogic/Images/Resources/theme-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M2.90912 4.36366C2.90912 3.56034 3.56034 2.90912 4.36366 2.90912H27.6364C28.4397 2.90912 29.0909 3.56034 29.0909 4.36366V20.3637C29.0909 21.8182 27.6364 22.5455 27.6364 22.5455L13.0909 29.0909L16 21.8182H4.36366C3.56034 21.8182 2.90912 21.167 2.90912 20.3637V4.36366Z" fill="white"/>
3
+<path d="M12.1155 8.9193C12.6391 8.68658 13.2791 8.49458 14.0355 8.3433C14.8035 8.19203 15.5948 8.11639 16.4093 8.11639C17.0493 8.11639 17.5846 8.19203 18.0151 8.3433C18.4573 8.49458 18.8064 8.71567 19.0624 9.00658C19.3184 9.28585 19.4988 9.62912 19.6035 10.0364C19.7198 10.432 19.778 10.8742 19.778 11.3629C19.778 11.9564 19.7548 12.544 19.7082 13.1258C19.6617 13.7077 19.6384 14.3244 19.6384 14.976C19.6384 15.4182 19.6675 15.8488 19.7257 16.2677C19.7838 16.6866 19.8769 17.088 20.0049 17.472H18.0151L17.6137 16.1106H17.4042C17.1017 16.5178 16.7177 16.8669 16.2522 17.1578C15.7868 17.4488 15.1875 17.5942 14.4544 17.5942C14.0122 17.5942 13.6049 17.5302 13.2326 17.4022C12.8718 17.2742 12.5577 17.0938 12.29 16.8611C12.034 16.6168 11.8304 16.3317 11.6791 16.0058C11.5395 15.68 11.4697 15.3251 11.4697 14.9411C11.4697 13.9055 11.8129 13.1258 12.4995 12.6022C13.1977 12.0669 14.2508 11.7993 15.6588 11.7993C15.9846 11.7993 16.3104 11.8284 16.6362 11.8866C16.962 11.9331 17.1889 11.968 17.3169 11.9913C17.3518 11.7469 17.3693 11.5375 17.3693 11.3629C17.3693 10.9208 17.2588 10.5949 17.0377 10.3855C16.8166 10.176 16.4035 10.0713 15.7984 10.0713C15.2398 10.0713 14.6929 10.1411 14.1577 10.2808C13.634 10.4088 13.1686 10.5717 12.7613 10.7695L12.1155 8.9193ZM15.3097 15.6393C15.8566 15.6393 16.2929 15.5113 16.6188 15.2553C16.9446 14.9993 17.1831 14.7317 17.3344 14.4524V13.4051C17.2762 13.3818 17.1831 13.3586 17.0551 13.3353C16.9388 13.312 16.8049 13.2888 16.6537 13.2655C16.514 13.2422 16.3686 13.2248 16.2173 13.2131C16.0777 13.2015 15.9497 13.1957 15.8333 13.1957C15.2049 13.1957 14.7395 13.312 14.4369 13.5448C14.1344 13.7658 13.9831 14.0451 13.9831 14.3826C13.9831 14.8015 14.0995 15.1157 14.3322 15.3251C14.5766 15.5346 14.9024 15.6393 15.3097 15.6393Z" fill="#939393"/>
4
+</svg>

addons/dialogic/Images/Tools.svg.import → addons/dialogic/Images/Resources/theme-2.svg.import View File

2
 
2
 
3
 importer="texture"
3
 importer="texture"
4
 type="StreamTexture"
4
 type="StreamTexture"
5
-path="res://.import/Tools.svg-55329d2aaa20f24bd86cd6875ebc09c7.stex"
5
+path="res://.import/theme-2.svg-17486fa9879ca7d5056e82b248808b3d.stex"
6
 metadata={
6
 metadata={
7
 "vram_texture": false
7
 "vram_texture": false
8
 }
8
 }
9
 
9
 
10
 [deps]
10
 [deps]
11
 
11
 
12
-source_file="res://addons/dialogic/Images/Tools.svg"
13
-dest_files=[ "res://.import/Tools.svg-55329d2aaa20f24bd86cd6875ebc09c7.stex" ]
12
+source_file="res://addons/dialogic/Images/Resources/theme-2.svg"
13
+dest_files=[ "res://.import/theme-2.svg-17486fa9879ca7d5056e82b248808b3d.stex" ]
14
 
14
 
15
 [params]
15
 [params]
16
 
16
 

+ 3
- 3
addons/dialogic/Images/Resources/theme.svg View File

1
-<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
-<path d="M2 3C2 2.44772 2.44772 2 3 2H19C19.5523 2 20 2.44772 20 3V14C20 15 19 15.5 19 15.5L9 20L11 15H3C2.44772 15 2 14.5523 2 14V3Z" fill="white"/>
3
-<path d="M8.32939 6.132C8.68939 5.972 9.12939 5.84 9.64939 5.736C10.1774 5.632 10.7214 5.58 11.2814 5.58C11.7214 5.58 12.0894 5.632 12.3854 5.736C12.6894 5.84 12.9294 5.992 13.1054 6.192C13.2814 6.384 13.4054 6.62 13.4774 6.9C13.5574 7.172 13.5974 7.476 13.5974 7.812C13.5974 8.22 13.5814 8.624 13.5494 9.024C13.5174 9.424 13.5014 9.848 13.5014 10.296C13.5014 10.6 13.5214 10.896 13.5614 11.184C13.6014 11.472 13.6654 11.748 13.7534 12.012H12.3854L12.1094 11.076H11.9654C11.7574 11.356 11.4934 11.596 11.1734 11.796C10.8534 11.996 10.4414 12.096 9.93739 12.096C9.63339 12.096 9.35339 12.052 9.09739 11.964C8.84939 11.876 8.63339 11.752 8.44939 11.592C8.27339 11.424 8.13339 11.228 8.02939 11.004C7.93339 10.78 7.88539 10.536 7.88539 10.272C7.88539 9.56 8.12139 9.024 8.59339 8.664C9.07339 8.296 9.79739 8.112 10.7654 8.112C10.9894 8.112 11.2134 8.132 11.4374 8.172C11.6614 8.204 11.8174 8.228 11.9054 8.244C11.9294 8.076 11.9414 7.932 11.9414 7.812C11.9414 7.508 11.8654 7.284 11.7134 7.14C11.5614 6.996 11.2774 6.924 10.8614 6.924C10.4774 6.924 10.1014 6.972 9.73339 7.068C9.37339 7.156 9.05339 7.268 8.77339 7.404L8.32939 6.132ZM10.5254 10.752C10.9014 10.752 11.2014 10.664 11.4254 10.488C11.6494 10.312 11.8134 10.128 11.9174 9.936V9.216C11.8774 9.2 11.8134 9.184 11.7254 9.168C11.6454 9.152 11.5534 9.136 11.4494 9.12C11.3534 9.104 11.2534 9.092 11.1494 9.084C11.0534 9.076 10.9654 9.072 10.8854 9.072C10.4534 9.072 10.1334 9.152 9.92539 9.312C9.71739 9.464 9.61339 9.656 9.61339 9.888C9.61339 10.176 9.69339 10.392 9.85339 10.536C10.0214 10.68 10.2454 10.752 10.5254 10.752Z" fill="#939393"/>
1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M1.45454 2.18183C1.45454 1.78017 1.78016 1.45456 2.18182 1.45456H13.8182C14.2198 1.45456 14.5455 1.78017 14.5455 2.18183V10.1818C14.5455 10.9091 13.8182 11.2727 13.8182 11.2727L6.54545 14.5455L8 10.9091H2.18182C1.78016 10.9091 1.45454 10.5835 1.45454 10.1818V2.18183Z" fill="white"/>
3
+<path d="M6.05774 4.45965C6.31956 4.34329 6.63956 4.24729 7.01774 4.17165C7.40174 4.09602 7.79738 4.0582 8.20465 4.0582C8.52465 4.0582 8.79229 4.09602 9.00756 4.17165C9.22865 4.24729 9.4032 4.35783 9.5312 4.50329C9.6592 4.64292 9.74938 4.81456 9.80174 5.0182C9.85992 5.21601 9.88901 5.43711 9.88901 5.68147C9.88901 5.9782 9.87738 6.27202 9.85411 6.56292C9.83083 6.85383 9.8192 7.1622 9.8192 7.48801C9.8192 7.70911 9.83374 7.92438 9.86283 8.13383C9.89192 8.34329 9.93847 8.54402 10.0025 8.73602H9.00756L8.80683 8.05529H8.70211C8.55083 8.25892 8.35883 8.43347 8.12611 8.57892C7.89338 8.72438 7.59374 8.79711 7.2272 8.79711C7.00611 8.79711 6.80247 8.76511 6.61629 8.70111C6.43592 8.63711 6.27883 8.54692 6.14501 8.43056C6.01701 8.30838 5.9152 8.16583 5.83956 8.00292C5.76974 7.84001 5.73483 7.66256 5.73483 7.47056C5.73483 6.95274 5.90647 6.56292 6.24974 6.30111C6.59883 6.03347 7.12538 5.89965 7.82938 5.89965C7.99229 5.89965 8.1552 5.9142 8.31811 5.94329C8.48101 5.96656 8.59447 5.98401 8.65847 5.99565C8.67592 5.87347 8.68465 5.76874 8.68465 5.68147C8.68465 5.46038 8.62938 5.29747 8.51883 5.19274C8.40829 5.08801 8.20174 5.03565 7.8992 5.03565C7.61992 5.03565 7.34647 5.07056 7.07883 5.14038C6.81701 5.20438 6.58429 5.28583 6.38065 5.38474L6.05774 4.45965ZM7.65483 7.81965C7.92829 7.81965 8.14647 7.75565 8.30938 7.62765C8.47229 7.49965 8.59156 7.36583 8.6672 7.2262V6.70256C8.63811 6.69092 8.59156 6.67929 8.52756 6.66765C8.46938 6.65602 8.40247 6.64438 8.32683 6.63274C8.25701 6.62111 8.18429 6.61238 8.10865 6.60656C8.03883 6.60074 7.97483 6.59783 7.91665 6.59783C7.60247 6.59783 7.36974 6.65602 7.21847 6.77238C7.0672 6.88292 6.99156 7.02256 6.99156 7.19129C6.99156 7.40074 7.04974 7.55783 7.16611 7.66256C7.28829 7.76729 7.4512 7.81965 7.65483 7.81965Z" fill="#939393"/>
4
 </svg>
4
 </svg>

+ 6
- 0
addons/dialogic/Images/Resources/timeline-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M2 8C2 7.44772 2.44772 7 3 7H19C19.5523 7 20 7.44772 20 8V9C20 9.55228 19.5523 10 19 10H3C2.44772 10 2 9.55228 2 9V8Z" fill="white"/>
3
+<path d="M2 13C2 12.4477 2.44772 12 3 12H19C19.5523 12 20 12.4477 20 13V14C20 14.5523 19.5523 15 19 15H3C2.44772 15 2 14.5523 2 14V13Z" fill="white"/>
4
+<path d="M2 3C2 2.44772 2.44772 2 3 2H19C19.5523 2 20 2.44772 20 3V4C20 4.55228 19.5523 5 19 5H3C2.44772 5 2 4.55228 2 4V3Z" fill="white"/>
5
+<path d="M2 18C2 17.4477 2.44772 17 3 17H19C19.5523 17 20 17.4477 20 18V19C20 19.5523 19.5523 20 19 20H3C2.44772 20 2 19.5523 2 19V18Z" fill="white"/>
6
+</svg>

+ 34
- 0
addons/dialogic/Images/Resources/timeline-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/timeline-1.25.svg-1c9e495370ebe35a5587d303d470cad6.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Resources/timeline-1.25.svg"
13
+dest_files=[ "res://.import/timeline-1.25.svg-1c9e495370ebe35a5587d303d470cad6.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 6
- 0
addons/dialogic/Images/Resources/timeline-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M2.90912 4.36366C2.90912 3.56034 3.56034 2.90912 4.36366 2.90912H27.6364C28.4397 2.90912 29.0909 3.56034 29.0909 4.36366V5.81821C29.0909 6.62153 28.4397 7.27276 27.6364 7.27276H4.36366C3.56034 7.27276 2.90912 6.62153 2.90912 5.81821V4.36366Z" fill="white"/>
3
+<path d="M2.90912 11.6364C2.90912 10.8331 3.56034 10.1818 4.36366 10.1818H27.6364C28.4397 10.1818 29.0909 10.8331 29.0909 11.6364V13.0909C29.0909 13.8943 28.4397 14.5455 27.6364 14.5455H4.36366C3.56034 14.5455 2.90912 13.8943 2.90912 13.0909V11.6364Z" fill="white"/>
4
+<path d="M2.90912 18.9091C2.90912 18.1058 3.56034 17.4546 4.36366 17.4546H27.6364C28.4397 17.4546 29.0909 18.1058 29.0909 18.9091V20.3637C29.0909 21.167 28.4397 21.8182 27.6364 21.8182H4.36366C3.56034 21.8182 2.90912 21.167 2.90912 20.3637V18.9091Z" fill="white"/>
5
+<path d="M2.90912 26.1818C2.90912 25.3785 3.56034 24.7273 4.36366 24.7273H27.6364C28.4397 24.7273 29.0909 25.3785 29.0909 26.1818V27.6364C29.0909 28.4397 28.4397 29.0909 27.6364 29.0909H4.36366C3.56034 29.0909 2.90912 28.4397 2.90912 27.6364V26.1818Z" fill="white"/>
6
+</svg>

+ 34
- 0
addons/dialogic/Images/Resources/timeline-2.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/timeline-2.svg-48d1e0a121d5a544a47b67fe1241eed2.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Resources/timeline-2.svg"
13
+dest_files=[ "res://.import/timeline-2.svg-48d1e0a121d5a544a47b67fe1241eed2.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 7
- 0
addons/dialogic/Images/Resources/timeline.svg View File

1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M1.45454 2.18183C1.45454 1.78017 1.78016 1.45456 2.18182 1.45456H13.8182C14.2198 1.45456 14.5455 1.78017 14.5455 2.18183V2.9091C14.5455 3.31077 14.2198 3.63638 13.8182 3.63638H2.18182C1.78016 3.63638 1.45454 3.31077 1.45454 2.9091V2.18183Z" fill="white"/>
3
+<path d="M1.45454 5.8182C1.45454 5.41653 1.78016 5.09092 2.18182 5.09092H13.8182C14.2198 5.09092 14.5455 5.41653 14.5455 5.8182V6.54547C14.5455 6.94713 14.2198 7.27274 13.8182 7.27274H2.18182C1.78016 7.27274 1.45454 6.94713 1.45454 6.54547V5.8182Z" fill="white"/>
4
+<path d="M1.45454 9.45456C1.45454 9.0529 1.78016 8.72729 2.18182 8.72729H13.8182C14.2198 8.72729 14.5455 9.0529 14.5455 9.45456V10.1818C14.5455 10.5835 14.2198 10.9091 13.8182 10.9091H2.18182C1.78016 10.9091 1.45454 10.5835 1.45454 10.1818V9.45456Z" fill="white"/>
5
+<path d="M1.45454 13.0909C1.45454 12.6893 1.78016 12.3637 2.18182 12.3637H13.8182C14.2198 12.3637 14.5455 12.6893 14.5455 13.0909V13.8182C14.5455 14.2199 14.2198 14.5455 13.8182 14.5455H2.18182C1.78016 14.5455 1.45454 14.2199 1.45454 13.8182V13.0909Z" fill="white"/>
6
+</svg>
7
+  

addons/dialogic/Images/logo.png.import → addons/dialogic/Images/Resources/timeline.svg.import View File

2
 
2
 
3
 importer="texture"
3
 importer="texture"
4
 type="StreamTexture"
4
 type="StreamTexture"
5
-path="res://.import/logo.png-f156ce86697c9eb967d19393aa69e86f.stex"
5
+path="res://.import/timeline.svg-4646668e3960b7f37ecffae1640eccc7.stex"
6
 metadata={
6
 metadata={
7
 "vram_texture": false
7
 "vram_texture": false
8
 }
8
 }
9
 
9
 
10
 [deps]
10
 [deps]
11
 
11
 
12
-source_file="res://addons/dialogic/Images/logo.png"
13
-dest_files=[ "res://.import/logo.png-f156ce86697c9eb967d19393aa69e86f.stex" ]
12
+source_file="res://addons/dialogic/Images/Resources/timeline.svg"
13
+dest_files=[ "res://.import/timeline.svg-4646668e3960b7f37ecffae1640eccc7.stex" ]
14
 
14
 
15
 [params]
15
 [params]
16
 
16
 

+ 4
- 0
addons/dialogic/Images/Toolbar/add-character-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M18 13H21V15H18V18H16V15H13V13H16V10H18V13Z" fill="#A5EFAC"/>
3
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.0004 9C15.6281 8.16434 16 7.12561 16 6C16 3.23858 13.7614 1 11 1C8.23858 1 6 3.23858 6 6C6 8.0077 7.18332 9.73902 8.89057 10.5346C6.61752 11.7315 5 14.8068 5 18.4118C5 21 7.68629 21 11 21C14.0408 21 16.5533 21 16.9465 19H15V16H12V12H14.884C14.3618 11.3777 13.7627 10.8786 13.1094 10.5346C13.8593 10.1851 14.5081 9.65514 15 9.00048V9H15.0004Z" fill="white"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-character-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-character-1.25.svg-3c1ef7e0cdcd97fe5a24f5d6eb32b444.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-character-1.25.svg"
13
+dest_files=[ "res://.import/add-character-1.25.svg-3c1ef7e0cdcd97fe5a24f5d6eb32b444.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 4
- 0
addons/dialogic/Images/Toolbar/add-character-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M26.1818 18.9091H30.5455V21.8182H26.1818V26.1818H23.2727V21.8182H18.9091V18.9091H23.2727V14.5455H26.1818V18.9091Z" fill="#A5EFAC"/>
3
+<path fill-rule="evenodd" clip-rule="evenodd" d="M21.8187 13.0909C22.7317 11.8754 23.2727 10.3645 23.2727 8.72726C23.2727 4.71064 20.0166 1.45453 16 1.45453C11.9834 1.45453 8.72727 4.71064 8.72727 8.72726C8.72727 11.6475 10.4485 14.1658 12.9317 15.323C9.62549 17.064 7.27273 21.5372 7.27273 26.7807C7.27273 30.5454 11.1801 30.5454 16 30.5454C20.423 30.5454 24.0775 30.5454 24.6494 27.6363H21.8182V23.2727H17.4545V17.4545H21.6494C20.8899 16.5494 20.0185 15.8234 19.0683 15.323C20.159 14.8147 21.1028 14.0438 21.8182 13.0916V13.0909H21.8187Z" fill="white"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-character-2.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-character-2.svg-9c2d45663361c0aec7fda875cb579ae0.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-character-2.svg"
13
+dest_files=[ "res://.import/add-character-2.svg-9c2d45663361c0aec7fda875cb579ae0.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 3
- 3
addons/dialogic/Images/Toolbar/add-character.svg View File

1
-<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
-<path d="M18 13H21V15H18V18H16V15H13V13H16V10H18V13Z" fill="#A5EFAC"/>
3
-<path fill-rule="evenodd" clip-rule="evenodd" d="M15.0004 9C15.6281 8.16434 16 7.12561 16 6C16 3.23858 13.7614 1 11 1C8.23858 1 6 3.23858 6 6C6 8.0077 7.18332 9.73902 8.89057 10.5346C6.61752 11.7315 5 14.8068 5 18.4118C5 21 7.68629 21 11 21C14.0408 21 16.5533 21 16.9465 19H15V16H12V12H14.884C14.3618 11.3777 13.7627 10.8786 13.1094 10.5346C13.8593 10.1851 14.5081 9.65514 15 9.00049V9H15.0004Z" fill="white"/>
1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M13.0909 9.45455H15.2727V10.9091H13.0909V13.0909H11.6364V10.9091H9.45454V9.45455H11.6364V7.27274H13.0909V9.45455Z" fill="#A5EFAC"/>
3
+<path fill-rule="evenodd" clip-rule="evenodd" d="M10.9094 6.54545C11.3659 5.93769 11.6364 5.18225 11.6364 4.36363C11.6364 2.35532 10.0083 0.727264 8 0.727264C5.99169 0.727264 4.36363 2.35532 4.36363 4.36363C4.36363 5.82377 5.22423 7.08291 6.46587 7.66149C4.81274 8.532 3.63636 10.7686 3.63636 13.3904C3.63636 15.2727 5.59003 15.2727 8 15.2727C10.2115 15.2727 12.0388 15.2727 12.3247 13.8182H10.9091V11.6364H8.72727V8.72726H10.8247C10.445 8.2747 10.0092 7.91168 9.53412 7.66149C10.0795 7.40735 10.5514 7.02191 10.9091 6.5458V6.54545H10.9094Z" fill="white"/>
4
 </svg>
4
 </svg>

+ 4
- 0
addons/dialogic/Images/Toolbar/add-definition-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M18 13H21V15H18V18H16V15H13V13H16V10H18V13Z" fill="#A5EFAC"/>
3
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16.6631 7.18359L18.2012 3.61523C17.832 3.42383 17.4492 3.27344 17.0527 3.16406C16.6563 3.05469 16.2461 3 15.8223 3C15.3711 3 14.9541 3.0752 14.5713 3.22559C14.1885 3.3623 13.833 3.55371 13.5049 3.7998C13.1904 4.0459 12.9033 4.33301 12.6436 4.66113C12.3838 4.98926 12.1514 5.34473 11.9463 5.72754C11.8369 5.94629 11.7139 6.20606 11.5771 6.50684C11.4541 6.79395 11.3311 7.07422 11.208 7.34766C11.0576 7.67578 10.9141 8.00391 10.7773 8.33203C10.6406 8.04492 10.4971 7.77832 10.3467 7.53223C10.2236 7.31348 10.0938 7.09473 9.95703 6.87598C9.83398 6.64356 9.71777 6.45215 9.6084 6.30176C9.38965 5.97363 9.14355 5.61816 8.87012 5.23535C8.59668 4.85254 8.2959 4.49707 7.96777 4.16895C7.63965 3.84082 7.28418 3.56738 6.90137 3.34863C6.51855 3.11621 6.10156 3 5.65039 3C5.28125 3 4.91895 3.0752 4.56348 3.22559C4.20801 3.3623 3.87305 3.54688 3.55859 3.7793C3.24414 3.99805 2.9502 4.25098 2.67676 4.53809C2.41699 4.81152 2.19141 5.0918 2 5.37891L2.55371 6.09668C2.74512 5.94629 2.94336 5.83008 3.14844 5.74805C3.35352 5.65234 3.57227 5.60449 3.80469 5.60449C4.07812 5.60449 4.33789 5.67285 4.58398 5.80957C4.84375 5.93262 5.0625 6.09668 5.24023 6.30176L9.0957 12.4746C8.97266 12.8438 8.84961 13.1924 8.72656 13.5205L8.39844 14.3818C8.28906 14.6689 8.18652 14.9014 8.09082 15.0791C8.02246 15.2432 7.91992 15.3867 7.7832 15.5098C7.64648 15.6191 7.48926 15.7148 7.31152 15.7969C7.14746 15.8652 6.97656 15.9199 6.79883 15.9609C6.62109 15.9883 6.4502 16.002 6.28613 16.002C5.7666 16.002 5.24707 15.8994 4.72754 15.6943C4.20801 15.4756 3.72949 15.2295 3.29199 14.9561L2 18.3604C2.38281 18.6611 2.7998 18.9004 3.25098 19.0781C3.70215 19.2695 4.16699 19.3652 4.64551 19.3652C5.17871 19.3652 5.68457 19.249 6.16309 19.0166C6.6416 18.7705 7.0791 18.4629 7.47559 18.0938C7.88574 17.7109 8.24805 17.2871 8.5625 16.8223C8.87695 16.3574 9.13672 15.9063 9.3418 15.4688C9.39648 15.3594 9.45801 15.2021 9.52637 14.9971C9.59473 14.792 9.65625 14.5938 9.71094 14.4023C9.76562 14.1699 9.82715 13.9375 9.89551 13.7051C10.0596 13.9375 10.2305 14.2246 10.4082 14.5664C10.5859 14.8945 10.7637 15.2363 10.9414 15.5918C11.1191 15.9473 11.29 16.2959 11.4541 16.6377C11.6318 16.9658 11.7959 17.2461 11.9463 17.4785C12.1377 17.7246 12.3223 17.9639 12.5 18.1963C12.6777 18.4287 12.8691 18.6338 13.0742 18.8115C13.2793 18.9756 13.5049 19.1055 13.751 19.2012C14.0107 19.3105 14.3047 19.3652 14.6328 19.3652C15.002 19.3652 15.3643 19.2832 15.7197 19.1191C15.8102 19.0823 15.8989 19.0426 15.9861 19H15V16H12V12H12.7885C12.6631 11.753 12.5396 11.5079 12.418 11.2646C12.1445 10.7178 11.8643 10.1436 11.5771 9.54199L11.9873 8.37305C12.0967 8.12695 12.2334 7.88086 12.3975 7.63477C12.5615 7.375 12.7529 7.14258 12.9717 6.9375C13.1904 6.73242 13.4297 6.56836 13.6895 6.44531C13.9629 6.32227 14.25 6.26074 14.5508 6.26074C14.9336 6.26074 15.3027 6.35645 15.6582 6.54785C16.0273 6.72559 16.3623 6.9375 16.6631 7.18359Z" fill="white"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-definition-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-definition-1.25.svg-4ebed8c9b38e990b8d2551e3cef70881.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-definition-1.25.svg"
13
+dest_files=[ "res://.import/add-definition-1.25.svg-4ebed8c9b38e990b8d2551e3cef70881.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 4
- 0
addons/dialogic/Images/Toolbar/add-definition-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M26.1818 18.9091H30.5454V21.8182H26.1818V26.1818H23.2727V21.8182H18.9091V18.9091H23.2727V14.5455H26.1818V18.9091Z" fill="#A5EFAC"/>
3
+<path fill-rule="evenodd" clip-rule="evenodd" d="M24.2372 10.4489L26.4744 5.25853C25.9375 4.98012 25.3807 4.76137 24.804 4.60228C24.2273 4.44319 23.6307 4.36365 23.0142 4.36365C22.358 4.36365 21.7514 4.47302 21.1946 4.69177C20.6378 4.89064 20.1207 5.16905 19.6435 5.527C19.1861 5.88495 18.7685 6.30257 18.3906 6.77984C18.0128 7.25711 17.6747 7.77416 17.3764 8.33098C17.2173 8.64916 17.0384 9.027 16.8395 9.4645C16.6605 9.88211 16.4815 10.2898 16.3026 10.6875C16.0838 11.1648 15.875 11.6421 15.6761 12.1193C15.4773 11.7017 15.2685 11.3139 15.0497 10.956C14.8707 10.6378 14.6818 10.3196 14.483 10.0014C14.304 9.66336 14.1349 9.38495 13.9759 9.1662C13.6577 8.68893 13.2997 8.17189 12.902 7.61507C12.5043 7.05825 12.0668 6.5412 11.5895 6.06393C11.1122 5.58666 10.5952 5.18893 10.0384 4.87075C9.48153 4.53268 8.875 4.36365 8.21875 4.36365C7.68182 4.36365 7.15483 4.47302 6.63778 4.69177C6.12074 4.89064 5.63352 5.1591 5.17613 5.49717C4.71875 5.81535 4.29119 6.18325 3.89346 6.60086C3.51562 6.99859 3.1875 7.40626 2.90909 7.82387L3.71449 8.86791C3.9929 8.64916 4.28125 8.48012 4.57954 8.36081C4.87784 8.2216 5.19602 8.152 5.53409 8.152C5.93182 8.152 6.30966 8.25143 6.66761 8.4503C7.04545 8.62927 7.36363 8.86791 7.62216 9.1662L13.2301 18.1449C13.0511 18.6818 12.8722 19.1889 12.6932 19.6662L12.2159 20.919C12.0568 21.3367 11.9077 21.6747 11.7685 21.9333C11.669 22.1719 11.5199 22.3807 11.321 22.5597C11.1222 22.7188 10.8935 22.858 10.6349 22.9773C10.3963 23.0767 10.1477 23.1563 9.8892 23.2159C9.63068 23.2557 9.3821 23.2756 9.14346 23.2756C8.38778 23.2756 7.6321 23.1264 6.87642 22.8281C6.12074 22.51 5.42471 22.152 4.78835 21.7543L2.90909 26.706C3.46591 27.1435 4.07244 27.4915 4.72869 27.75C5.38494 28.0284 6.06108 28.1676 6.7571 28.1676C7.53267 28.1676 8.26846 27.9986 8.96449 27.6605C9.66051 27.3026 10.2969 26.8551 10.8736 26.3182C11.4702 25.7614 11.9972 25.1449 12.4545 24.4688C12.9119 23.7926 13.2898 23.1364 13.5881 22.5C13.6676 22.3409 13.7571 22.1122 13.8565 21.8139C13.956 21.5156 14.0455 21.2273 14.125 20.9489C14.2045 20.6108 14.294 20.2727 14.3935 19.9347C14.6321 20.2727 14.8807 20.6904 15.1392 21.1875C15.3977 21.6648 15.6562 22.1619 15.9148 22.679C16.1733 23.196 16.4219 23.7031 16.6605 24.2003C16.919 24.6776 17.1577 25.0852 17.3764 25.4233C17.6548 25.7813 17.9233 26.1293 18.1818 26.4673C18.4403 26.8054 18.7187 27.1037 19.017 27.3622C19.3153 27.6009 19.6435 27.7898 20.0014 27.929C20.3793 28.0881 20.8068 28.1676 21.2841 28.1676C21.821 28.1676 22.348 28.0483 22.8651 27.8097C22.9966 27.7561 23.1257 27.6983 23.2525 27.6364H21.8182V23.2727H17.4545V17.4546H18.6014C18.419 17.0953 18.2394 16.7388 18.0625 16.385C17.6648 15.5895 17.2571 14.7543 16.8395 13.8793L17.4361 12.179C17.5952 11.821 17.794 11.4631 18.0327 11.1051C18.2713 10.7273 18.5497 10.3892 18.8679 10.0909C19.1861 9.79262 19.5341 9.55399 19.9119 9.37501C20.3097 9.19603 20.7273 9.10655 21.1648 9.10655C21.7216 9.10655 22.2585 9.24575 22.7756 9.52416C23.3125 9.78268 23.7997 10.0909 24.2372 10.4489Z" fill="white"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-definition-2.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-definition-2.svg-454918059b27eb1572e6513a053c2567.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-definition-2.svg"
13
+dest_files=[ "res://.import/add-definition-2.svg-454918059b27eb1572e6513a053c2567.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 3
- 3
addons/dialogic/Images/Toolbar/add-definition.svg View File

1
-<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
-<path d="M18 13H21V15H18V18H16V15H13V13H16V10H18V13Z" fill="#A5EFAC"/>
3
-<path fill-rule="evenodd" clip-rule="evenodd" d="M16.6631 7.18359L18.2012 3.61523C17.832 3.42383 17.4492 3.27344 17.0527 3.16406C16.6562 3.05469 16.2461 3 15.8223 3C15.3711 3 14.9541 3.0752 14.5713 3.22559C14.1885 3.3623 13.833 3.55371 13.5049 3.7998C13.1904 4.0459 12.9033 4.33301 12.6436 4.66113C12.3838 4.98926 12.1514 5.34473 11.9463 5.72754C11.8369 5.94629 11.7139 6.20605 11.5771 6.50684C11.4541 6.79395 11.3311 7.07422 11.208 7.34766C11.0576 7.67578 10.9141 8.00391 10.7773 8.33203C10.6406 8.04492 10.4971 7.77832 10.3467 7.53223C10.2236 7.31348 10.0938 7.09473 9.95703 6.87598C9.83398 6.64355 9.71777 6.45215 9.6084 6.30176C9.38965 5.97363 9.14355 5.61816 8.87012 5.23535C8.59668 4.85254 8.2959 4.49707 7.96777 4.16895C7.63965 3.84082 7.28418 3.56738 6.90137 3.34863C6.51855 3.11621 6.10156 3 5.65039 3C5.28125 3 4.91895 3.0752 4.56348 3.22559C4.20801 3.3623 3.87305 3.54688 3.55859 3.7793C3.24414 3.99805 2.9502 4.25098 2.67676 4.53809C2.41699 4.81152 2.19141 5.0918 2 5.37891L2.55371 6.09668C2.74512 5.94629 2.94336 5.83008 3.14844 5.74805C3.35352 5.65234 3.57227 5.60449 3.80469 5.60449C4.07812 5.60449 4.33789 5.67285 4.58398 5.80957C4.84375 5.93262 5.0625 6.09668 5.24023 6.30176L9.0957 12.4746C8.97266 12.8438 8.84961 13.1924 8.72656 13.5205L8.39844 14.3818C8.28906 14.6689 8.18652 14.9014 8.09082 15.0791C8.02246 15.2432 7.91992 15.3867 7.7832 15.5098C7.64648 15.6191 7.48926 15.7148 7.31152 15.7969C7.14746 15.8652 6.97656 15.9199 6.79883 15.9609C6.62109 15.9883 6.4502 16.002 6.28613 16.002C5.7666 16.002 5.24707 15.8994 4.72754 15.6943C4.20801 15.4756 3.72949 15.2295 3.29199 14.9561L2 18.3604C2.38281 18.6611 2.7998 18.9004 3.25098 19.0781C3.70215 19.2695 4.16699 19.3652 4.64551 19.3652C5.17871 19.3652 5.68457 19.249 6.16309 19.0166C6.6416 18.7705 7.0791 18.4629 7.47559 18.0938C7.88574 17.7109 8.24805 17.2871 8.5625 16.8223C8.87695 16.3574 9.13672 15.9062 9.3418 15.4688C9.39648 15.3594 9.45801 15.2021 9.52637 14.9971C9.59473 14.792 9.65625 14.5938 9.71094 14.4023C9.76562 14.1699 9.82715 13.9375 9.89551 13.7051C10.0596 13.9375 10.2305 14.2246 10.4082 14.5664C10.5859 14.8945 10.7637 15.2363 10.9414 15.5918C11.1191 15.9473 11.29 16.2959 11.4541 16.6377C11.6318 16.9658 11.7959 17.2461 11.9463 17.4785C12.1377 17.7246 12.3223 17.9639 12.5 18.1963C12.6777 18.4287 12.8691 18.6338 13.0742 18.8115C13.2793 18.9756 13.5049 19.1055 13.751 19.2012C14.0107 19.3105 14.3047 19.3652 14.6328 19.3652C15.002 19.3652 15.3643 19.2832 15.7197 19.1191C15.8102 19.0823 15.8989 19.0426 15.9861 19H15V16H12V12H12.7885C12.6631 11.753 12.5396 11.5079 12.418 11.2646C12.1445 10.7178 11.8643 10.1436 11.5771 9.54199L11.9873 8.37305C12.0967 8.12695 12.2334 7.88086 12.3975 7.63477C12.5615 7.375 12.7529 7.14258 12.9717 6.9375C13.1904 6.73242 13.4297 6.56836 13.6895 6.44531C13.9629 6.32227 14.25 6.26074 14.5508 6.26074C14.9336 6.26074 15.3027 6.35645 15.6582 6.54785C16.0273 6.72559 16.3623 6.9375 16.6631 7.18359Z" fill="white"/>
1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M13.0909 9.45455H15.2727V10.9091H13.0909V13.0909H11.6364V10.9091H9.45454V9.45455H11.6364V7.27274H13.0909V9.45455Z" fill="#A5EFAC"/>
3
+<path fill-rule="evenodd" clip-rule="evenodd" d="M12.1186 5.22444L13.2372 2.62927C12.9687 2.49006 12.6903 2.38069 12.402 2.30114C12.1136 2.2216 11.8153 2.18182 11.5071 2.18182C11.179 2.18182 10.8757 2.23651 10.5973 2.34589C10.3189 2.44532 10.0604 2.58452 9.82173 2.7635C9.59304 2.94248 9.38423 3.15128 9.19531 3.38992C9.00639 3.62856 8.83736 3.88708 8.68821 4.16549C8.60866 4.32458 8.51917 4.5135 8.41974 4.73225C8.33025 4.94106 8.24077 5.14489 8.15128 5.34376C8.0419 5.58239 7.9375 5.82103 7.83807 6.05966C7.73863 5.85086 7.63423 5.65697 7.52486 5.47799C7.43537 5.3189 7.34091 5.15981 7.24148 5.00072C7.15199 4.83168 7.06747 4.69248 6.98792 4.5831C6.82883 4.34447 6.64986 4.08594 6.45099 3.80753C6.25213 3.52912 6.03338 3.2706 5.79474 3.03197C5.55611 2.79333 5.29758 2.59447 5.01917 2.43537C4.74077 2.26634 4.4375 2.18182 4.10937 2.18182C3.84091 2.18182 3.57741 2.23651 3.31889 2.34589C3.06037 2.44532 2.81676 2.57955 2.58807 2.74859C2.35937 2.90768 2.1456 3.09162 1.94673 3.30043C1.75781 3.4993 1.59375 3.70313 1.45454 3.91194L1.85724 4.43395C1.99645 4.32458 2.14062 4.24006 2.28977 4.1804C2.43892 4.1108 2.59801 4.076 2.76704 4.076C2.96591 4.076 3.15483 4.12572 3.33381 4.22515C3.52273 4.31464 3.68182 4.43395 3.81108 4.5831L6.61506 9.07245C6.52557 9.34091 6.43608 9.59447 6.34659 9.8331L6.10795 10.4595C6.02841 10.6683 5.95383 10.8374 5.88423 10.9666C5.83452 11.0859 5.75994 11.1903 5.66051 11.2798C5.56108 11.3594 5.44673 11.429 5.31747 11.4886C5.19815 11.5384 5.07386 11.5781 4.9446 11.608C4.81534 11.6278 4.69105 11.6378 4.57173 11.6378C4.19389 11.6378 3.81605 11.5632 3.43821 11.4141C3.06037 11.255 2.71236 11.076 2.39417 10.8771L1.45454 13.353C1.73295 13.5717 2.03622 13.7457 2.36435 13.875C2.69247 14.0142 3.03054 14.0838 3.37855 14.0838C3.76633 14.0838 4.13423 13.9993 4.48224 13.8303C4.83025 13.6513 5.14844 13.4276 5.43679 13.1591C5.73508 12.8807 5.99858 12.5724 6.22727 12.2344C6.45596 11.8963 6.64488 11.5682 6.79403 11.25C6.83381 11.1705 6.87855 11.0561 6.92827 10.907C6.97798 10.7578 7.02273 10.6136 7.0625 10.4744C7.10227 10.3054 7.14702 10.1364 7.19673 9.96734C7.31605 10.1364 7.44034 10.3452 7.5696 10.5938C7.69886 10.8324 7.82812 11.081 7.95738 11.3395C8.08665 11.598 8.21094 11.8516 8.33025 12.1001C8.45952 12.3388 8.57883 12.5426 8.68821 12.7117C8.82741 12.8906 8.96165 13.0646 9.09091 13.2337C9.22017 13.4027 9.35937 13.5519 9.50852 13.6811C9.65767 13.8004 9.82173 13.8949 10.0007 13.9645C10.1896 14.044 10.4034 14.0838 10.642 14.0838C10.9105 14.0838 11.174 14.0242 11.4325 13.9048C11.4983 13.878 11.5629 13.8492 11.6262 13.8182H10.9091V11.6364H8.72727V8.72728H9.30069C9.20952 8.54765 9.1197 8.36938 9.03125 8.19248C8.83238 7.79475 8.62855 7.37714 8.41974 6.93964L8.71804 6.08949C8.79758 5.91052 8.89702 5.73154 9.01633 5.55256C9.13565 5.36364 9.27486 5.19461 9.43395 5.04546C9.59304 4.89631 9.76704 4.77699 9.95596 4.68751C10.1548 4.59802 10.3636 4.55327 10.5824 4.55327C10.8608 4.55327 11.1293 4.62287 11.3878 4.76208C11.6562 4.89134 11.8999 5.04546 12.1186 5.22444Z" fill="white"/>
4
 </svg>
4
 </svg>

+ 4
- 0
addons/dialogic/Images/Toolbar/add-glossary-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path fill-rule="evenodd" clip-rule="evenodd" d="M17 4H5V18H14V16H7V14H11V12H7V10H14V9H17V4ZM15 6H7V8H15V6Z" fill="white"/>
3
+<path d="M17 13H20V15H17V18H15V15H12V13H15V10H17V13Z" fill="#A5EFAC"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-glossary-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-glossary-1.25.svg-2a0f52cc956c5e96cc6cd47ec2e7c9fc.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-glossary-1.25.svg"
13
+dest_files=[ "res://.import/add-glossary-1.25.svg-2a0f52cc956c5e96cc6cd47ec2e7c9fc.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 4
- 0
addons/dialogic/Images/Toolbar/add-glossary-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path fill-rule="evenodd" clip-rule="evenodd" d="M24.7273 5.81818H7.27273V26.1818H20.3636V23.2727H10.1818V20.3636H16V17.4545H10.1818V14.5455H20.3636V13.0909H24.7273V5.81818ZM21.8182 8.72727H10.1818V11.6364H21.8182V8.72727Z" fill="white"/>
3
+<path d="M24.7273 18.9091H29.0909V21.8182H24.7273V26.1818H21.8182V21.8182H17.4545V18.9091H21.8182V14.5455H24.7273V18.9091Z" fill="#A5EFAC"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-glossary-2.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-glossary-2.svg-df70e38f107b9fc6109af658c7e14964.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-glossary-2.svg"
13
+dest_files=[ "res://.import/add-glossary-2.svg-df70e38f107b9fc6109af658c7e14964.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 4
- 0
addons/dialogic/Images/Toolbar/add-glossary.svg View File

1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path fill-rule="evenodd" clip-rule="evenodd" d="M12.3636 2.90909H3.63637V13.0909H10.1818V11.6364H5.09091V10.1818H8V8.72727H5.09091V7.27272H10.1818V6.54545H12.3636V2.90909ZM10.9091 4.36363H5.09091V5.81818H10.9091V4.36363Z" fill="white"/>
3
+<path d="M12.3636 9.45455H14.5455V10.9091H12.3636V13.0909H10.9091V10.9091H8.72727V9.45455H10.9091V7.27274H12.3636V9.45455Z" fill="#A5EFAC"/>
4
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-glossary.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-glossary.svg-ca3a2211ead16a8ddd6c7fce1fbd838d.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-glossary.svg"
13
+dest_files=[ "res://.import/add-glossary.svg-ca3a2211ead16a8ddd6c7fce1fbd838d.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 5
- 0
addons/dialogic/Images/Toolbar/add-theme-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M18 13H21V15H18V18H16V15H13V13H16V10H18V13Z" fill="#A5EFAC"/>
3
+<path d="M2 3C2 2.44772 2.44772 2 3 2H19C19.5523 2 20 2.44772 20 3V12H19V9H15V12H12V16H15V17L9 20L11 15H3C2.44772 15 2 14.5523 2 14V3Z" fill="white"/>
4
+<path d="M8.32939 6.13202C8.68939 5.97202 9.12939 5.84002 9.64939 5.73602C10.1774 5.63202 10.7214 5.58002 11.2814 5.58002C11.7214 5.58002 12.0894 5.63202 12.3854 5.73602C12.6894 5.84002 12.9294 5.99202 13.1054 6.19202C13.2814 6.38402 13.4054 6.62002 13.4774 6.90002C13.5574 7.17202 13.5974 7.47602 13.5974 7.81202C13.5974 8.22002 13.5814 8.62402 13.5494 9.02402C13.5174 9.42402 13.5014 9.84802 13.5014 10.296C13.5014 10.6 13.5214 10.896 13.5614 11.184C13.6014 11.472 13.6654 11.748 13.7534 12.012H12.3854L12.1094 11.076H11.9654C11.7574 11.356 11.4934 11.596 11.1734 11.796C10.8534 11.996 10.4414 12.096 9.93739 12.096C9.63339 12.096 9.35339 12.052 9.09739 11.964C8.84939 11.876 8.63339 11.752 8.44939 11.592C8.27339 11.424 8.13339 11.228 8.02939 11.004C7.93339 10.78 7.88539 10.536 7.88539 10.272C7.88539 9.56002 8.12139 9.02402 8.59339 8.66402C9.07339 8.29602 9.79739 8.11202 10.7654 8.11202C10.9894 8.11202 11.2134 8.13202 11.4374 8.17202C11.6614 8.20402 11.8174 8.22802 11.9054 8.24402C11.9294 8.07602 11.9414 7.93202 11.9414 7.81202C11.9414 7.50802 11.8654 7.28402 11.7134 7.14002C11.5614 6.99602 11.2774 6.92402 10.8614 6.92402C10.4774 6.92402 10.1014 6.97202 9.73339 7.06802C9.37339 7.15602 9.05339 7.26802 8.77339 7.40402L8.32939 6.13202ZM10.5254 10.752C10.9014 10.752 11.2014 10.664 11.4254 10.488C11.6494 10.312 11.8134 10.128 11.9174 9.93602V9.21602C11.8774 9.20002 11.8134 9.18402 11.7254 9.16802C11.6454 9.15202 11.5534 9.13602 11.4494 9.12002C11.3534 9.10402 11.2534 9.09202 11.1494 9.08402C11.0534 9.07602 10.9654 9.07202 10.8854 9.07202C10.4534 9.07202 10.1334 9.15202 9.92539 9.31202C9.71739 9.46402 9.61339 9.65602 9.61339 9.88802C9.61339 10.176 9.69339 10.392 9.85339 10.536C10.0214 10.68 10.2454 10.752 10.5254 10.752Z" fill="#939393"/>
5
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-theme-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-theme-1.25.svg-4a12f9dc653eaf7ddeb686d60e81dccd.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-theme-1.25.svg"
13
+dest_files=[ "res://.import/add-theme-1.25.svg-4a12f9dc653eaf7ddeb686d60e81dccd.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 5
- 0
addons/dialogic/Images/Toolbar/add-theme-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M26.1818 18.9091H30.5455V21.8182H26.1818V26.1818H23.2727V21.8182H18.9091V18.9091H23.2727V14.5455H26.1818V18.9091Z" fill="#A5EFAC"/>
3
+<path d="M2.90909 4.36363C2.90909 3.56031 3.56031 2.90909 4.36363 2.90909H27.6364C28.4397 2.90909 29.0909 3.56031 29.0909 4.36363V17.4545H27.6364V13.0909H21.8182V17.4545H17.4545V23.2727H21.8182V24.7273L13.0909 29.0909L16 21.8182H4.36363C3.56031 21.8182 2.90909 21.167 2.90909 20.3636V4.36363Z" fill="white"/>
4
+<path d="M12.1155 8.9193C12.6391 8.68658 13.2791 8.49458 14.0355 8.3433C14.8035 8.19203 15.5947 8.11639 16.4093 8.11639C17.0493 8.11639 17.5846 8.19203 18.0151 8.3433C18.4573 8.49458 18.8064 8.71567 19.0624 9.00658C19.3184 9.28585 19.4987 9.62912 19.6035 10.0364C19.7198 10.432 19.778 10.8742 19.778 11.3629C19.778 11.9564 19.7548 12.544 19.7082 13.1258C19.6617 13.7077 19.6384 14.3244 19.6384 14.976C19.6384 15.4182 19.6675 15.8488 19.7257 16.2677C19.7838 16.6866 19.8769 17.088 20.0049 17.472H18.0151L17.6137 16.1106H17.4042C17.1017 16.5178 16.7177 16.8669 16.2522 17.1578C15.7867 17.4488 15.1875 17.5942 14.4544 17.5942C14.0122 17.5942 13.6049 17.5302 13.2326 17.4022C12.8718 17.2742 12.5577 17.0938 12.29 16.8611C12.034 16.6168 11.8304 16.3317 11.6791 16.0058C11.5395 15.68 11.4697 15.3251 11.4697 14.9411C11.4697 13.9055 11.8129 13.1258 12.4995 12.6022C13.1977 12.0669 14.2507 11.7993 15.6587 11.7993C15.9846 11.7993 16.3104 11.8284 16.6362 11.8866C16.962 11.9331 17.1889 11.968 17.3169 11.9913C17.3518 11.7469 17.3693 11.5375 17.3693 11.3629C17.3693 10.9208 17.2587 10.5949 17.0377 10.3855C16.8166 10.176 16.4035 10.0713 15.7984 10.0713C15.2398 10.0713 14.6929 10.1411 14.1577 10.2808C13.634 10.4088 13.1686 10.5717 12.7613 10.7695L12.1155 8.9193ZM15.3097 15.6393C15.8566 15.6393 16.2929 15.5113 16.6187 15.2553C16.9446 14.9993 17.1831 14.7317 17.3344 14.4524V13.4051C17.2762 13.3818 17.1831 13.3586 17.0551 13.3353C16.9387 13.312 16.8049 13.2888 16.6537 13.2655C16.514 13.2422 16.3686 13.2248 16.2173 13.2131C16.0777 13.2015 15.9497 13.1957 15.8333 13.1957C15.2049 13.1957 14.7395 13.312 14.4369 13.5448C14.1344 13.7658 13.9831 14.0451 13.9831 14.3826C13.9831 14.8015 14.0995 15.1157 14.3322 15.3251C14.5766 15.5346 14.9024 15.6393 15.3097 15.6393Z" fill="#939393"/>
5
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-theme-2.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-theme-2.svg-c08a48497308cf495f82550c69ecc0ef.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-theme-2.svg"
13
+dest_files=[ "res://.import/add-theme-2.svg-c08a48497308cf495f82550c69ecc0ef.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 4
- 4
addons/dialogic/Images/Toolbar/add-theme.svg View File

1
-<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
-<path d="M18 13H21V15H18V18H16V15H13V13H16V10H18V13Z" fill="#A5EFAC"/>
3
-<path d="M2 3C2 2.44772 2.44772 2 3 2H19C19.5523 2 20 2.44772 20 3V12H19V9H15V12H12V16H15V17L9 20L11 15H3C2.44772 15 2 14.5523 2 14V3Z" fill="white"/>
4
-<path d="M8.32939 6.132C8.68939 5.972 9.12939 5.84 9.64939 5.736C10.1774 5.632 10.7214 5.58 11.2814 5.58C11.7214 5.58 12.0894 5.632 12.3854 5.736C12.6894 5.84 12.9294 5.992 13.1054 6.192C13.2814 6.384 13.4054 6.62 13.4774 6.9C13.5574 7.172 13.5974 7.476 13.5974 7.812C13.5974 8.22 13.5814 8.624 13.5494 9.024C13.5174 9.424 13.5014 9.848 13.5014 10.296C13.5014 10.6 13.5214 10.896 13.5614 11.184C13.6014 11.472 13.6654 11.748 13.7534 12.012H12.3854L12.1094 11.076H11.9654C11.7574 11.356 11.4934 11.596 11.1734 11.796C10.8534 11.996 10.4414 12.096 9.93739 12.096C9.63339 12.096 9.35339 12.052 9.09739 11.964C8.84939 11.876 8.63339 11.752 8.44939 11.592C8.27339 11.424 8.13339 11.228 8.02939 11.004C7.93339 10.78 7.88539 10.536 7.88539 10.272C7.88539 9.56 8.12139 9.024 8.59339 8.664C9.07339 8.296 9.79739 8.112 10.7654 8.112C10.9894 8.112 11.2134 8.132 11.4374 8.172C11.6614 8.204 11.8174 8.228 11.9054 8.244C11.9294 8.076 11.9414 7.932 11.9414 7.812C11.9414 7.508 11.8654 7.284 11.7134 7.14C11.5614 6.996 11.2774 6.924 10.8614 6.924C10.4774 6.924 10.1014 6.972 9.73339 7.068C9.37339 7.156 9.05339 7.268 8.77339 7.404L8.32939 6.132ZM10.5254 10.752C10.9014 10.752 11.2014 10.664 11.4254 10.488C11.6494 10.312 11.8134 10.128 11.9174 9.936V9.216C11.8774 9.2 11.8134 9.184 11.7254 9.168C11.6454 9.152 11.5534 9.136 11.4494 9.12C11.3534 9.104 11.2534 9.092 11.1494 9.084C11.0534 9.076 10.9654 9.072 10.8854 9.072C10.4534 9.072 10.1334 9.152 9.92539 9.312C9.71739 9.464 9.61339 9.656 9.61339 9.888C9.61339 10.176 9.69339 10.392 9.85339 10.536C10.0214 10.68 10.2454 10.752 10.5254 10.752Z" fill="#939393"/>
1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M13.0909 9.45455H15.2727V10.9091H13.0909V13.0909H11.6364V10.9091H9.45454V9.45455H11.6364V7.27274H13.0909V9.45455Z" fill="#A5EFAC"/>
3
+<path d="M1.45454 2.18183C1.45454 1.78017 1.78016 1.45456 2.18182 1.45456H13.8182C14.2198 1.45456 14.5455 1.78017 14.5455 2.18183V8.72729H13.8182V6.54547H10.9091V8.72729H8.72727V11.6364H10.9091V12.3637L6.54545 14.5455L8 10.9091H2.18182C1.78016 10.9091 1.45454 10.5835 1.45454 10.1818V2.18183Z" fill="white"/>
4
+<path d="M6.05774 4.45965C6.31956 4.34329 6.63956 4.24729 7.01774 4.17165C7.40174 4.09602 7.79738 4.0582 8.20465 4.0582C8.52465 4.0582 8.79229 4.09602 9.00756 4.17165C9.22865 4.24729 9.4032 4.35783 9.5312 4.50329C9.6592 4.64292 9.74938 4.81456 9.80174 5.0182C9.85992 5.21602 9.88901 5.43711 9.88901 5.68147C9.88901 5.9782 9.87738 6.27202 9.85411 6.56292C9.83083 6.85383 9.8192 7.1622 9.8192 7.48801C9.8192 7.70911 9.83374 7.92438 9.86283 8.13383C9.89192 8.34329 9.93847 8.54401 10.0025 8.73601H9.00756L8.80683 8.05529H8.70211C8.55083 8.25892 8.35883 8.43347 8.12611 8.57892C7.89338 8.72438 7.59374 8.79711 7.2272 8.79711C7.00611 8.79711 6.80247 8.76511 6.61629 8.70111C6.43592 8.63711 6.27883 8.54692 6.14501 8.43056C6.01701 8.30838 5.9152 8.16583 5.83956 8.00292C5.76974 7.84001 5.73483 7.66256 5.73483 7.47056C5.73483 6.95274 5.90647 6.56292 6.24974 6.30111C6.59883 6.03347 7.12538 5.89965 7.82938 5.89965C7.99229 5.89965 8.1552 5.9142 8.31811 5.94329C8.48101 5.96656 8.59447 5.98401 8.65847 5.99565C8.67592 5.87347 8.68465 5.76874 8.68465 5.68147C8.68465 5.46038 8.62938 5.29747 8.51883 5.19274C8.40829 5.08802 8.20174 5.03565 7.8992 5.03565C7.61992 5.03565 7.34647 5.07056 7.07883 5.14038C6.81701 5.20438 6.58429 5.28583 6.38065 5.38474L6.05774 4.45965ZM7.65483 7.81965C7.92829 7.81965 8.14647 7.75565 8.30938 7.62765C8.47229 7.49965 8.59156 7.36583 8.6672 7.2262V6.70256C8.63811 6.69092 8.59156 6.67929 8.52756 6.66765C8.46938 6.65601 8.40247 6.64438 8.32683 6.63274C8.25701 6.62111 8.18429 6.61238 8.10865 6.60656C8.03883 6.60074 7.97483 6.59783 7.91665 6.59783C7.60247 6.59783 7.36974 6.65602 7.21847 6.77238C7.0672 6.88292 6.99156 7.02256 6.99156 7.19129C6.99156 7.40074 7.04974 7.55783 7.16611 7.66256C7.28829 7.76729 7.4512 7.81965 7.65483 7.81965Z" fill="#939393"/>
5
 </svg>
5
 </svg>

+ 7
- 0
addons/dialogic/Images/Toolbar/add-timeline-1.25.svg View File

1
+<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M2 3C2 2.44772 2.44772 2 3 2H19C19.5523 2 20 2.44772 20 3V4C20 4.55229 19.5523 5 19 5H3C2.44772 5 2 4.55229 2 4V3Z" fill="white"/>
3
+<path d="M2 8C2 7.44772 2.44772 7 3 7H19C19.5523 7 20 7.44772 20 8V9C20 9.55229 19.5523 10 19 10V9H15V10H3C2.44772 10 2 9.55229 2 9V8Z" fill="white"/>
4
+<path d="M2 13C2 12.4477 2.44772 12 3 12H12C12 12 12 12.4477 12 13V14C12 14.5523 12 15 12 15H3C2.44772 15 2 14.5523 2 14V13Z" fill="white"/>
5
+<path d="M2 18C2 17.4477 2.44772 17 3 17H15V19H19V17C19.5523 17 20 17.4477 20 18V19C20 19.5523 19.5523 20 19 20H3C2.44772 20 2 19.5523 2 19V18Z" fill="white"/>
6
+<path d="M18 13H21V15H18V18H16V15H13V13H16V10H18V13Z" fill="#A5EFAC"/>
7
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-timeline-1.25.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-timeline-1.25.svg-67e7c82a2cbaaed1f1477d82ecb8ce71.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-timeline-1.25.svg"
13
+dest_files=[ "res://.import/add-timeline-1.25.svg-67e7c82a2cbaaed1f1477d82ecb8ce71.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 7
- 0
addons/dialogic/Images/Toolbar/add-timeline-2.svg View File

1
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M2.90909 4.36363C2.90909 3.56031 3.56031 2.90909 4.36363 2.90909H27.6364C28.4397 2.90909 29.0909 3.56031 29.0909 4.36363V5.81818C29.0909 6.6215 28.4397 7.27272 27.6364 7.27272H4.36363C3.56031 7.27272 2.90909 6.6215 2.90909 5.81818V4.36363Z" fill="white"/>
3
+<path d="M2.90909 11.6364C2.90909 10.833 3.56031 10.1818 4.36363 10.1818H27.6364C28.4397 10.1818 29.0909 10.833 29.0909 11.6364V13.0909C29.0909 13.8942 28.4397 14.5455 27.6364 14.5455V13.0909H21.8182V14.5455H4.36363C3.56031 14.5455 2.90909 13.8942 2.90909 13.0909V11.6364Z" fill="white"/>
4
+<path d="M2.90909 18.9091C2.90909 18.1058 3.56031 17.4545 4.36363 17.4545H17.4545C17.4545 17.4545 17.4545 18.1058 17.4545 18.9091V20.3636C17.4545 21.167 17.4545 21.8182 17.4545 21.8182H4.36363C3.56031 21.8182 2.90909 21.167 2.90909 20.3636V18.9091Z" fill="white"/>
5
+<path d="M2.90909 26.1818C2.90909 25.3785 3.56031 24.7273 4.36363 24.7273H21.8182V27.6364H27.6364V24.7273C28.4397 24.7273 29.0909 25.3785 29.0909 26.1818V27.6364C29.0909 28.4397 28.4397 29.0909 27.6364 29.0909H4.36363C3.56031 29.0909 2.90909 28.4397 2.90909 27.6364V26.1818Z" fill="white"/>
6
+<path d="M26.1818 18.9091H30.5454V21.8182H26.1818V26.1818H23.2727V21.8182H18.9091V18.9091H23.2727V14.5455H26.1818V18.9091Z" fill="#A5EFAC"/>
7
+</svg>

+ 34
- 0
addons/dialogic/Images/Toolbar/add-timeline-2.svg.import View File

1
+[remap]
2
+
3
+importer="texture"
4
+type="StreamTexture"
5
+path="res://.import/add-timeline-2.svg-00b3bf905c7bd2ca1fece872d753dfef.stex"
6
+metadata={
7
+"vram_texture": false
8
+}
9
+
10
+[deps]
11
+
12
+source_file="res://addons/dialogic/Images/Toolbar/add-timeline-2.svg"
13
+dest_files=[ "res://.import/add-timeline-2.svg-00b3bf905c7bd2ca1fece872d753dfef.stex" ]
14
+
15
+[params]
16
+
17
+compress/mode=0
18
+compress/lossy_quality=0.7
19
+compress/hdr_mode=0
20
+compress/bptc_ldr=0
21
+compress/normal_map=0
22
+flags/repeat=0
23
+flags/filter=true
24
+flags/mipmaps=false
25
+flags/anisotropic=false
26
+flags/srgb=2
27
+process/fix_alpha_border=true
28
+process/premult_alpha=false
29
+process/HDR_as_SRGB=false
30
+process/invert_color=false
31
+stream=false
32
+size_limit=0
33
+detect_3d=true
34
+svg/scale=1.0

+ 6
- 6
addons/dialogic/Images/Toolbar/add-timeline.svg View File

1
-<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg">
2
-<path d="M2 3C2 2.44772 2.44772 2 3 2H19C19.5523 2 20 2.44772 20 3V4C20 4.55228 19.5523 5 19 5H3C2.44772 5 2 4.55228 2 4V3Z" fill="white"/>
3
-<path d="M2 8C2 7.44772 2.44772 7 3 7H19C19.5523 7 20 7.44772 20 8V9C20 9.55228 19.5523 10 19 10V9H15V10H3C2.44772 10 2 9.55228 2 9V8Z" fill="white"/>
4
-<path d="M2 13C2 12.4477 2.44772 12 3 12H12C12 12 12 12.4477 12 13V14C12 14.5523 12 15 12 15H3C2.44772 15 2 14.5523 2 14V13Z" fill="white"/>
5
-<path d="M2 18C2 17.4477 2.44772 17 3 17H15V19H19V17C19.5523 17 20 17.4477 20 18V19C20 19.5523 19.5523 20 19 20H3C2.44772 20 2 19.5523 2 19V18Z" fill="white"/>
6
-<path d="M18 13H21V15H18V18H16V15H13V13H16V10H18V13Z" fill="#A5EFAC"/>
1
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M1.45454 2.18183C1.45454 1.78017 1.78016 1.45456 2.18182 1.45456H13.8182C14.2198 1.45456 14.5455 1.78017 14.5455 2.18183V2.9091C14.5455 3.31077 14.2198 3.63638 13.8182 3.63638H2.18182C1.78016 3.63638 1.45454 3.31077 1.45454 2.9091V2.18183Z" fill="white"/>
3
+<path d="M1.45454 5.8182C1.45454 5.41653 1.78016 5.09092 2.18182 5.09092H13.8182C14.2198 5.09092 14.5455 5.41653 14.5455 5.8182V6.54547C14.5455 6.94713 14.2198 7.27274 13.8182 7.27274V6.54547H10.9091V7.27274H2.18182C1.78016 7.27274 1.45454 6.94713 1.45454 6.54547V5.8182Z" fill="white"/>
4
+<path d="M1.45454 9.45456C1.45454 9.0529 1.78016 8.72729 2.18182 8.72729H8.72727C8.72727 8.72729 8.72727 9.0529 8.72727 9.45456V10.1818C8.72727 10.5835 8.72727 10.9091 8.72727 10.9091H2.18182C1.78016 10.9091 1.45454 10.5835 1.45454 10.1818V9.45456Z" fill="white"/>
5
+<path d="M1.45454 13.0909C1.45454 12.6893 1.78016 12.3637 2.18182 12.3637H10.9091V13.8182H13.8182V12.3637C14.2198 12.3637 14.5455 12.6893 14.5455 13.0909V13.8182C14.5455 14.2199 14.2198 14.5455 13.8182 14.5455H2.18182C1.78016 14.5455 1.45454 14.2199 1.45454 13.8182V13.0909Z" fill="white"/>
6
+<path d="M13.0909 9.45455H15.2727V10.9091H13.0909V13.0909H11.6364V10.9091H9.45454V9.45455H11.6364V7.27274H13.0909V9.45455Z" fill="#A5EFAC"/>
7
 </svg>
7
 </svg>

+ 0
- 1
addons/dialogic/Images/Tools.svg View File

1
-<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m4 1-1 2 1 2v4h-2v3 .5c0 1.385 1.115 2.5 2.5 2.5s2.5-1.115 2.5-2.5v-1-2.5h-2v-4l1-2-1-2zm6 .17383a3 3 0 0 0 -2 2.8262 3 3 0 0 0 2 2.8262v6.1738 1c0 .554.446 1 1 1s1-.446 1-1v-4-3.1758a3 3 0 0 0 2-2.8242 3 3 0 0 0 -2-2.8242v2.8242a1 1 0 0 1 -1 1 1 1 0 0 1 -1-1v-2.8262z" fill="#e0e0e0"/></svg>

+ 0
- 5
addons/dialogic/Images/icon.svg View File

1
-<svg width="64" height="64" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
2
-<rect x="6" y="50" width="52" height="10" rx="2" fill="#A5EFAC"/>
3
-<rect x="4" y="7" width="56" height="28" rx="9" fill="#A5EFAC"/>
4
-<path d="M22 47.5L9 32.5L18 29L22 47.5Z" fill="#A5EFAC"/>
5
-</svg>

BIN
addons/dialogic/Images/logo.png View File


+ 129
- 50
addons/dialogic/Nodes/dialog_node.gd View File

36
 var dialog_script = {}
36
 var dialog_script = {}
37
 var questions #for keeping track of the questions answered
37
 var questions #for keeping track of the questions answered
38
 
38
 
39
+onready var tween_node = $TextBubble/Tween
40
+
39
 func _ready():
41
 func _ready():
40
 	# Loading the config files
42
 	# Loading the config files
41
 	load_config_files()
43
 	load_config_files()
58
 	$Background.visible = false
60
 	$Background.visible = false
59
 	$TextBubble/RichTextLabel.meta_underlined = false
61
 	$TextBubble/RichTextLabel.meta_underlined = false
60
 	$DefinitionInfo.visible = false
62
 	$DefinitionInfo.visible = false
63
+	
64
+	tween_node.connect("tween_completed", self, '_on_Tween_tween_completed')
61
 
65
 
62
 	# Getting the character information
66
 	# Getting the character information
63
 	characters = DialogicUtil.get_character_list()
67
 	characters = DialogicUtil.get_character_list()
89
 			set_deferred('rect_size', get_viewport().size)
93
 			set_deferred('rect_size', get_viewport().size)
90
 		dprint("Viewport", get_viewport().size)
94
 		dprint("Viewport", get_viewport().size)
91
 	$TextBubble.rect_position.x = (rect_size.x / 2) - ($TextBubble.rect_size.x / 2)
95
 	$TextBubble.rect_position.x = (rect_size.x / 2) - ($TextBubble.rect_size.x / 2)
92
-	$TextBubble.rect_position.y = (rect_size.y) - ($TextBubble.rect_size.y) - current_theme.get_value('box', 'bottom_gap', 40)
96
+	if current_theme != null:
97
+		$TextBubble.rect_position.y = (rect_size.y) - ($TextBubble.rect_size.y) - current_theme.get_value('box', 'bottom_gap', 40)
93
 
98
 
94
 
99
 
95
 func set_current_dialog(dialog_path: String):
100
 func set_current_dialog(dialog_path: String):
128
 func parse_text_lines(unparsed_dialog_script: Dictionary) -> Dictionary:
133
 func parse_text_lines(unparsed_dialog_script: Dictionary) -> Dictionary:
129
 	var parsed_dialog: Dictionary = unparsed_dialog_script
134
 	var parsed_dialog: Dictionary = unparsed_dialog_script
130
 	var new_events: Array = []
135
 	var new_events: Array = []
131
-	var alignment = 'Left'
132
 	var split_new_lines = true
136
 	var split_new_lines = true
133
 	var remove_empty_messages = true
137
 	var remove_empty_messages = true
134
 
138
 
142
 	if settings.has_section_key('dialog', 'new_lines'):
146
 	if settings.has_section_key('dialog', 'new_lines'):
143
 		split_new_lines = settings.get_value('dialog', 'new_lines')
147
 		split_new_lines = settings.get_value('dialog', 'new_lines')
144
 
148
 
145
-	if current_theme != null:
146
-		alignment = current_theme.get_value('text', 'alignment', 'Left')
147
-
148
-	dprint('preview ', preview)
149
 	# Parsing
149
 	# Parsing
150
 	for event in unparsed_dialog_script['events']:
150
 	for event in unparsed_dialog_script['events']:
151
 		if event.has('text') and event.has('character') and event.has('portrait'):
151
 		if event.has('text') and event.has('character') and event.has('portrait'):
155
 				var lines = event['text'].split('\n')
155
 				var lines = event['text'].split('\n')
156
 				var i = 0
156
 				var i = 0
157
 				for line in lines:
157
 				for line in lines:
158
-					var text = lines[i]
159
-					if alignment == 'Center':
160
-						text = '[center]' + lines[i] + '[/center]'
161
-					elif alignment == 'Right':
162
-						text = '[right]' + lines[i] + '[/right]'
163
 					var _e = {
158
 					var _e = {
164
-						'text': text,
159
+						'text': lines[i],
165
 						'character': event['character'],
160
 						'character': event['character'],
166
 						'portrait': event['portrait']
161
 						'portrait': event['portrait']
167
 					}
162
 					}
168
 					new_events.append(_e)
163
 					new_events.append(_e)
169
 					i += 1
164
 					i += 1
170
 			else:
165
 			else:
171
-				var text = event['text']
172
-				if alignment == 'Center':
173
-					event['text'] = '[center]' + text + '[/center]'
174
-				elif alignment == 'Right':
175
-					event['text'] = '[right]' + text + '[/right]'
176
 				new_events.append(event)
166
 				new_events.append(event)
177
 		else:
167
 		else:
178
 			new_events.append(event)
168
 			new_events.append(event)
182
 	return parsed_dialog
172
 	return parsed_dialog
183
 
173
 
184
 
174
 
175
+func parse_alignment(text):
176
+	var alignment = current_theme.get_value('text', 'alignment', 'Left')
177
+	var fname = current_theme.get_value('settings', 'name', 'none')
178
+	if alignment == 'Center':
179
+		text = '[center]' + text + '[/center]'
180
+	elif alignment == 'Right':
181
+		text = '[right]' + text + '[/right]'
182
+	return text
183
+
184
+
185
 func parse_branches(dialog_script: Dictionary) -> Dictionary:
185
 func parse_branches(dialog_script: Dictionary) -> Dictionary:
186
 	questions = [] # Resetting the questions
186
 	questions = [] # Resetting the questions
187
 
187
 
228
 	return dialog_script
228
 	return dialog_script
229
 
229
 
230
 
230
 
231
-func parse_definitions(text: String):
232
-	var words = []
231
+func parse_definitions(text: String, variables: bool = true, glossary: bool = true):
233
 	if Engine.is_editor_hint():
232
 	if Engine.is_editor_hint():
234
 		# Loading variables again to avoid issues in the preview dialog
233
 		# Loading variables again to avoid issues in the preview dialog
235
 		load_config_files()
234
 		load_config_files()
236
 
235
 
237
-	var final_text: String;
238
-	final_text = _insert_variable_definitions(text)
239
-	final_text = _insert_glossary_definitions(final_text)
236
+	var final_text: String = text
237
+	if variables:
238
+		final_text = _insert_variable_definitions(text)
239
+	if glossary:
240
+		final_text = _insert_glossary_definitions(final_text)
240
 	return final_text
241
 	return final_text
241
 
242
 
242
 
243
 
249
 	
250
 	
250
 	
251
 	
251
 func _insert_glossary_definitions(text: String):
252
 func _insert_glossary_definitions(text: String):
252
-	var color = self.current_theme.get_value('definitions', 'color', '#ffbebebe')
253
+	var color = current_theme.get_value('definitions', 'color', '#ffbebebe')
253
 	var final_text := text;
254
 	var final_text := text;
254
 	# I should use regex here, but this is way easier :)
255
 	# I should use regex here, but this is way easier :)
255
 	for d in definitions['glossary']:
256
 	for d in definitions['glossary']:
273
 
274
 
274
 func _input(event: InputEvent) -> void:
275
 func _input(event: InputEvent) -> void:
275
 	if not Engine.is_editor_hint() and event.is_action_pressed(input_next) and not waiting:
276
 	if not Engine.is_editor_hint() and event.is_action_pressed(input_next) and not waiting:
276
-		if $TextBubble/Tween.is_active():
277
+		if tween_node.is_active():
277
 			# Skip to end if key is pressed during the text animation
278
 			# Skip to end if key is pressed during the text animation
278
-			$TextBubble/Tween.seek(999)
279
+			tween_node.seek(999)
279
 			finished = true
280
 			finished = true
280
 		else:
281
 		else:
281
 			if waiting_for_answer == false and waiting_for_input == false:
282
 			if waiting_for_answer == false and waiting_for_input == false:
290
 	visible = true
291
 	visible = true
291
 
292
 
292
 
293
 
293
-func start_text_tween():
294
-	# This will start the animation that makes the text appear letter by letter
295
-	var tween_duration = text_speed * $TextBubble/RichTextLabel.get_total_character_count()
296
-	$TextBubble/Tween.interpolate_property(
297
-		$TextBubble/RichTextLabel, "percent_visible", 0, 1, tween_duration,
298
-		Tween.TRANS_LINEAR, Tween.EASE_IN_OUT
299
-	)
300
-	$TextBubble/Tween.start()
294
+func _on_Tween_tween_completed(object, key):
295
+	finished = true
301
 
296
 
302
 
297
 
303
 func update_name(character, color: Color = Color.white) -> void:
298
 func update_name(character, color: Color = Color.white) -> void:
308
 				parsed_name = character['display_name']
303
 				parsed_name = character['display_name']
309
 		if character.has('color'):
304
 		if character.has('color'):
310
 			color = character['color']
305
 			color = character['color']
311
-		parsed_name = parse_definitions(parsed_name)
306
+		parsed_name = parse_definitions(parsed_name, true, false)
312
 		$TextBubble/NameLabel.visible = true
307
 		$TextBubble/NameLabel.visible = true
313
 		# Hack to reset the size
308
 		# Hack to reset the size
314
 		$TextBubble/NameLabel.rect_min_size = Vector2(0, 0)
309
 		$TextBubble/NameLabel.rect_min_size = Vector2(0, 0)
315
 		$TextBubble/NameLabel.rect_size = Vector2(-1, 40)
310
 		$TextBubble/NameLabel.rect_size = Vector2(-1, 40)
316
 		# Setting the color and text
311
 		# Setting the color and text
317
 		$TextBubble/NameLabel.text = parsed_name
312
 		$TextBubble/NameLabel.text = parsed_name
318
-		$TextBubble/NameLabel.set('custom_colors/font_color', color)
313
+		if current_theme.get_value('name', 'auto_color', true):
314
+			$TextBubble/NameLabel.set('custom_colors/font_color', color)
319
 	else:
315
 	else:
320
 		$TextBubble/NameLabel.visible = false
316
 		$TextBubble/NameLabel.visible = false
321
 
317
 
322
 
318
 
323
 func update_text(text):
319
 func update_text(text):
324
 	# Updating the text and starting the animation from 0
320
 	# Updating the text and starting the animation from 0
321
+	text = parse_alignment(text)
325
 	$TextBubble/RichTextLabel.bbcode_text = parse_definitions(text)
322
 	$TextBubble/RichTextLabel.bbcode_text = parse_definitions(text)
326
 	$TextBubble/RichTextLabel.percent_visible = 0
323
 	$TextBubble/RichTextLabel.percent_visible = 0
327
 
324
 
331
 	return true
328
 	return true
332
 
329
 
333
 
330
 
331
+func start_text_tween():
332
+	# This will start the animation that makes the text appear letter by letter
333
+	var tween_duration = text_speed * $TextBubble/RichTextLabel.get_total_character_count()
334
+	tween_node.interpolate_property(
335
+		$TextBubble/RichTextLabel, "percent_visible", 0, 1, tween_duration,
336
+		Tween.TRANS_LINEAR, Tween.EASE_IN_OUT
337
+	)
338
+	tween_node.start()
339
+
340
+
334
 func on_timeline_start():
341
 func on_timeline_start():
335
 	if not Engine.is_editor_hint():
342
 	if not Engine.is_editor_hint():
336
 		DialogicSingleton.save_definitions()
343
 		DialogicSingleton.save_definitions()
360
 	# This will load the next entry in the dialog_script array.
367
 	# This will load the next entry in the dialog_script array.
361
 	if dialog_script.has('events'):
368
 	if dialog_script.has('events'):
362
 		if dialog_index < dialog_script['events'].size():
369
 		if dialog_index < dialog_script['events'].size():
363
-			event_handler(dialog_script['events'][dialog_index])
370
+			var func_state = event_handler(dialog_script['events'][dialog_index])
371
+			if (func_state is GDScriptFunctionState):
372
+				yield(func_state, "completed")
364
 		else:
373
 		else:
365
 			if Engine.is_editor_hint() == false:
374
 			if Engine.is_editor_hint() == false:
366
 				queue_free()
375
 				queue_free()
426
 			emit_signal("event_start", "action", event)
435
 			emit_signal("event_start", "action", event)
427
 			if event['action'] == 'leaveall':
436
 			if event['action'] == 'leaveall':
428
 				if event['character'] == '[All]':
437
 				if event['character'] == '[All]':
429
-					for p in $Portraits.get_children():
430
-						p.fade_out()
438
+					characters_leave_all()
431
 				else:
439
 				else:
432
 					for p in $Portraits.get_children():
440
 					for p in $Portraits.get_children():
433
 						if p.character_data['file'] == event['character']:
441
 						if p.character_data['file'] == event['character']:
455
 		{'background'}:
463
 		{'background'}:
456
 			emit_signal("event_start", "background", event)
464
 			emit_signal("event_start", "background", event)
457
 			$Background.visible = true
465
 			$Background.visible = true
458
-			$Background.texture = load(event['background'])
466
+			$Background.texture = null
467
+			if ($Background.get_child_count() > 0):
468
+				for c in $Background.get_children():
469
+					c.get_parent().remove_child(c)
470
+					c.queue_free()
471
+			if (event['background'].ends_with('.tscn')):
472
+				var bg_scene = load(event['background'])
473
+				if (bg_scene):
474
+					bg_scene = bg_scene.instance()
475
+					$Background.add_child(bg_scene)
476
+			elif (event['background'] != ''):
477
+				$Background.texture = load(event['background'])
459
 			go_to_next_event()
478
 			go_to_next_event()
460
 		{'audio'}, {'audio', 'file'}:
479
 		{'audio'}, {'audio', 'file'}:
461
 			emit_signal("event_start", "audio", event)
480
 			emit_signal("event_start", "audio", event)
483
 			go_to_next_event()
502
 			go_to_next_event()
484
 		{'close_dialog'}:
503
 		{'close_dialog'}:
485
 			emit_signal("event_start", "close_dialog", event)
504
 			emit_signal("event_start", "close_dialog", event)
486
-			on_timeline_end()
487
-			queue_free()
505
+			close_dialog_event()
488
 		{'set_theme'}:
506
 		{'set_theme'}:
489
 			emit_signal("event_start", "set_theme", event)
507
 			emit_signal("event_start", "set_theme", event)
490
 			if event['set_theme'] != '':
508
 			if event['set_theme'] != '':
524
 				operation = event["operation"]
542
 				operation = event["operation"]
525
 			DialogicSingleton.set_variable_from_id(event['definition'], event['set_value'], operation)
543
 			DialogicSingleton.set_variable_from_id(event['definition'], event['set_value'], operation)
526
 			go_to_next_event()
544
 			go_to_next_event()
545
+		{'call_node', ..}:
546
+			dprint('[!] Call Node signal: dialogic_signal(call_node) ', var2str(event['call_node']))
547
+			emit_signal("event_start", "call_node", event)
548
+			$TextBubble.visible = false
549
+			waiting = true
550
+			var target = get_node_or_null(event['call_node']['target_node_path'])
551
+			var method_name = event['call_node']['method_name']
552
+			var args = event['call_node']['arguments']
553
+			if (not args is Array):
554
+				args = []
555
+
556
+			if (target != null):
557
+				if (target.has_method(method_name)):
558
+					if (args.empty()):
559
+						var func_result = target.call(method_name)
560
+						if (func_result is GDScriptFunctionState):
561
+							yield(func_result, "completed")
562
+					else:
563
+						var func_result = target.call(method_name, args)
564
+						if (func_result is GDScriptFunctionState):
565
+							yield(func_result, "completed")
566
+
567
+			waiting = false
568
+			$TextBubble.visible = true
569
+			go_to_next_event()
527
 		_:
570
 		_:
528
 			visible = false
571
 			visible = false
529
 			dprint('Other event. ', event)
572
 			dprint('Other event. ', event)
621
 	dprint('[!] Option selected: ', option.text, ' value= ' , value)
664
 	dprint('[!] Option selected: ', option.text, ' value= ' , value)
622
 
665
 
623
 
666
 
624
-func _on_Tween_tween_completed(object, key):
625
-	#$TextBubble/RichTextLabel.meta_underlined = true
626
-	finished = true
627
-
628
-
629
 func _on_TextInputDialog_confirmed():
667
 func _on_TextInputDialog_confirmed():
630
 	pass # Replace with function body.
668
 	pass # Replace with function body.
631
 
669
 
638
 
676
 
639
 func grab_portrait_focus(character_data, event: Dictionary = {}) -> bool:
677
 func grab_portrait_focus(character_data, event: Dictionary = {}) -> bool:
640
 	var exists = false
678
 	var exists = false
679
+	var visually_focus = true
680
+	if settings.has_section_key('dialog', 'dim_characters'):
681
+		visually_focus = settings.get_value('dialog', 'dim_characters')
682
+
641
 	for portrait in $Portraits.get_children():
683
 	for portrait in $Portraits.get_children():
642
 		if portrait.character_data == character_data:
684
 		if portrait.character_data == character_data:
643
 			exists = true
685
 			exists = true
644
-			portrait.focus()
686
+			
687
+			if visually_focus:
688
+				portrait.focus()
645
 			if event.has('portrait'):
689
 			if event.has('portrait'):
646
 				if event['portrait'] != '':
690
 				if event['portrait'] != '':
647
 					portrait.set_portrait(event['portrait'])
691
 					portrait.set_portrait(event['portrait'])
648
 		else:
692
 		else:
649
-			portrait.focusout()
693
+			if visually_focus:
694
+				portrait.focusout()
650
 	return exists
695
 	return exists
651
 
696
 
652
 
697
 
712
 	$TextBubble/TextureRect.texture = load(theme.get_value('background','image', "res://addons/dialogic/Images/background/background-2.png"))
757
 	$TextBubble/TextureRect.texture = load(theme.get_value('background','image', "res://addons/dialogic/Images/background/background-2.png"))
713
 	$TextBubble/ColorRect.color = Color(theme.get_value('background','color', "#ff000000"))
758
 	$TextBubble/ColorRect.color = Color(theme.get_value('background','color', "#ff000000"))
714
 
759
 
760
+	if theme.get_value('background', 'modulation', false) == true:
761
+		$TextBubble/TextureRect.modulate = Color(theme.get_value('background', 'modulation_color', '#ffffffff'))
762
+	else:
763
+		$TextBubble/TextureRect.modulate = Color('#ffffffff')
764
+
715
 	$TextBubble/ColorRect.visible = theme.get_value('background', 'use_color', false)
765
 	$TextBubble/ColorRect.visible = theme.get_value('background', 'use_color', false)
716
 	$TextBubble/TextureRect.visible = theme.get_value('background', 'use_image', true)
766
 	$TextBubble/TextureRect.visible = theme.get_value('background', 'use_image', true)
717
 
767
 
731
 	$TextBubble/NameLabel/TextureRect.visible = theme.get_value('name', 'image_visible', false)
781
 	$TextBubble/NameLabel/TextureRect.visible = theme.get_value('name', 'image_visible', false)
732
 	$TextBubble/NameLabel/TextureRect.texture = load(theme.get_value('name','image', "res://addons/dialogic/Images/background/background-2.png"))
782
 	$TextBubble/NameLabel/TextureRect.texture = load(theme.get_value('name','image', "res://addons/dialogic/Images/background/background-2.png"))
733
 	var name_shadow_offset = theme.get_value('name', 'shadow_offset', Vector2(2,2))
783
 	var name_shadow_offset = theme.get_value('name', 'shadow_offset', Vector2(2,2))
734
-	if theme.get_value('name', 'shadow_visible', false):
784
+	if theme.get_value('name', 'shadow_visible', true):
735
 		$TextBubble/NameLabel.set('custom_colors/font_color_shadow', Color(theme.get_value('name', 'shadow', '#9e000000')))
785
 		$TextBubble/NameLabel.set('custom_colors/font_color_shadow', Color(theme.get_value('name', 'shadow', '#9e000000')))
736
 		$TextBubble/NameLabel.set('custom_constants/shadow_offset_x', name_shadow_offset.x)
786
 		$TextBubble/NameLabel.set('custom_constants/shadow_offset_x', name_shadow_offset.x)
737
 		$TextBubble/NameLabel.set('custom_constants/shadow_offset_y', name_shadow_offset.y)
787
 		$TextBubble/NameLabel.set('custom_constants/shadow_offset_y', name_shadow_offset.y)
758
 				'color': current_theme.get_value('definitions', 'color', '#ffbebebe'),
808
 				'color': current_theme.get_value('definitions', 'color', '#ffbebebe'),
759
 			})
809
 			})
760
 			correct_type = true
810
 			correct_type = true
761
-			print(d)
811
+			dprint(d)
762
 
812
 
763
 	if correct_type:
813
 	if correct_type:
764
 		definition_visible = true
814
 		definition_visible = true
802
 func _compare_definitions(def_value: String, event_value: String, condition: String):
852
 func _compare_definitions(def_value: String, event_value: String, condition: String):
803
 	var condition_met = false;
853
 	var condition_met = false;
804
 	if def_value != null and event_value != null:
854
 	if def_value != null and event_value != null:
855
+		# check if event_value equals a definition name and use that instead
856
+		for d in definitions['variables']:
857
+			if (d['name'] != '' and d['name'] == event_value):
858
+				event_value = d['value']
859
+				break;
805
 		var converted_def_value = def_value
860
 		var converted_def_value = def_value
806
 		var converted_event_value = event_value
861
 		var converted_event_value = event_value
807
 		if def_value.is_valid_float() and event_value.is_valid_float():
862
 		if def_value.is_valid_float() and event_value.is_valid_float():
821
 			"<=":
876
 			"<=":
822
 				condition_met = converted_def_value <= converted_event_value
877
 				condition_met = converted_def_value <= converted_event_value
823
 	return condition_met
878
 	return condition_met
879
+
880
+
881
+func characters_leave_all():
882
+	for p in $Portraits.get_children():
883
+		p.fade_out()
884
+
885
+
886
+func close_dialog_event():
887
+	var tween = Tween.new()
888
+	add_child(tween)
889
+	tween.interpolate_property($TextBubble, "modulate",
890
+		$TextBubble.modulate, Color('#00ffffff'), 1,
891
+		Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
892
+	tween.start()
893
+	var close_dialog_timer = Timer.new()
894
+	close_dialog_timer.connect("timeout", self, '_on_close_dialog_timeout')
895
+	add_child(close_dialog_timer)
896
+	close_dialog_timer.start(2)
897
+	characters_leave_all()
898
+
899
+
900
+func _on_close_dialog_timeout():
901
+	on_timeline_end()
902
+	queue_free()

+ 38
- 2
addons/dialogic/Other/DialogicResources.gd View File

164
 	file.open(path, File.WRITE)
164
 	file.open(path, File.WRITE)
165
 	file.store_string('')
165
 	file.store_string('')
166
 	file.close()
166
 	file.close()
167
-
167
+	
168
+	
169
+static func copy_file(path_from, path_to):
170
+	if (path_from == ''):
171
+		push_error("[Dialogic] Could not copy empty filename")
172
+		return ERR_FILE_BAD_PATH
173
+		
174
+	if (path_to == ''):
175
+		push_error("[Dialogic] Could not copy to empty filename")
176
+		return ERR_FILE_BAD_PATH
177
+	
178
+	var dir = Directory.new()
179
+	if (not dir.file_exists(path_from)):
180
+		push_error("[Dialogic] Could not copy file %s, File does not exists" % [ path_from ])
181
+		return ERR_FILE_NOT_FOUND
182
+		
183
+	if (dir.file_exists(path_to)):
184
+		push_error("[Dialogic] Could not copy file to %s, file already exists" % [ path_to ])
185
+		return ERR_ALREADY_EXISTS
186
+		
187
+	var error = dir.copy(path_from, path_to)
188
+	if (error):
189
+		push_error("[Dialogic] Error while copying %s to %s" % [ path_from, path_to ])
190
+		push_error(error)
191
+		return error
192
+		
193
+	return OK
194
+	pass
168
 
195
 
169
 # CONFIG UTIL
196
 # CONFIG UTIL
170
 
197
 
184
 
211
 
185
 static func remove_file(path: String):
212
 static func remove_file(path: String):
186
 	var dir = Directory.new()
213
 	var dir = Directory.new()
187
-	dir.remove(path)
214
+	var _err = dir.remove(path)
215
+	
216
+	if _err != OK:
217
+		print("[D] There was an error when deleting file at {filepath}. Error: {error}".format(
218
+			{"filepath":path,"error":_err}
219
+		))
188
 
220
 
189
 
221
 
190
 # JSON UTIL
222
 # JSON UTIL
264
 
296
 
265
 static func delete_theme(filename: String):
297
 static func delete_theme(filename: String):
266
 	remove_file(get_path('THEME_DIR', filename))
298
 	remove_file(get_path('THEME_DIR', filename))
299
+	
300
+	
301
+static func duplicate_theme(from_filename: String, to_filename: String):
302
+	copy_file(get_path('THEME_DIR', from_filename), get_path('THEME_DIR', to_filename))
267
 
303
 
268
 # SETTINGS
304
 # SETTINGS
269
 # Can only be edited in the editor
305
 # Can only be edited in the editor

+ 16
- 1
addons/dialogic/Other/inspector_timeline_picker.gd View File

1
 extends EditorInspectorPlugin
1
 extends EditorInspectorPlugin
2
 
2
 
3
 var TimelinePicker = preload("res://addons/dialogic/Other/timeline_picker.gd")
3
 var TimelinePicker = preload("res://addons/dialogic/Other/timeline_picker.gd")
4
+var dialogic_editor_plugin = null
5
+var dialogic_editor_view = null
4
 
6
 
5
 
7
 
6
 func can_handle(object):
8
 func can_handle(object):
15
 		if type == TYPE_STRING:
17
 		if type == TYPE_STRING:
16
 			# Create an instance of the custom property editor and register
18
 			# Create an instance of the custom property editor and register
17
 			# it to a specific property path.
19
 			# it to a specific property path.
18
-			add_property_editor(path, TimelinePicker.new())
20
+			var picker = TimelinePicker.new()
21
+			picker.editor_inspector_plugin = self
22
+			add_property_editor(path, picker)
19
 			# Inform the editor to remove the default property editor for
23
 			# Inform the editor to remove the default property editor for
20
 			# this property type.
24
 			# this property type.
21
 			return true
25
 			return true
22
 		return false
26
 		return false
27
+
28
+
29
+func switch_to_dialogic_timeline(timeline: String):
30
+	prints("switchting", timeline, dialogic_editor_plugin, dialogic_editor_view)
31
+	if (dialogic_editor_plugin != null):
32
+		dialogic_editor_plugin.get_editor_interface().set_main_screen_editor("Dialogic")
33
+		
34
+	if (dialogic_editor_view != null and dialogic_editor_view.master_tree != null):
35
+		dialogic_editor_view.master_tree.show_timeline_editor()
36
+		dialogic_editor_view.master_tree.select_timeline_item(timeline)
37
+	pass

+ 57
- 5
addons/dialogic/Other/timeline_picker.gd View File

1
 tool
1
 tool
2
 extends EditorProperty
2
 extends EditorProperty
3
 
3
 
4
-
5
-# The main control for editing the property.
4
+# The main controls for editing the property.
6
 var timelines_dropdown = MenuButton.new()
5
 var timelines_dropdown = MenuButton.new()
6
+var container = HBoxContainer.new()
7
+var edit_button = Button.new()
8
+
9
+# reference to the inspector plugin
10
+var editor_inspector_plugin = null
11
+
7
 # An internal value of the property.
12
 # An internal value of the property.
8
 var current_value = ''
13
 var current_value = ''
9
 # A guard against internal changes when the property is updated.
14
 # A guard against internal changes when the property is updated.
10
 var updating = false
15
 var updating = false
11
 
16
 
17
+# @Override
18
+func get_tooltip_text():
19
+	return "Click to select a Dialogic timeline.\nPress the tool button to directly switch to the editor"
20
+
21
+
22
+func _ready():
23
+	edit_button.icon = get_icon("Tools", "EditorIcons")
24
+
12
 
25
 
13
 func _init():
26
 func _init():
14
-	# Add the control as a direct child of EditorProperty node.
15
-	add_child(timelines_dropdown)
27
+	# setup controls
28
+	timelines_dropdown.rect_min_size.x = 80
29
+	timelines_dropdown.set_h_size_flags(SIZE_EXPAND_FILL)
30
+	timelines_dropdown.clip_text = true
31
+	container.add_child(timelines_dropdown)
32
+	container.add_child(edit_button)
33
+	edit_button.flat = true
34
+	edit_button.hint_tooltip = "Edit Timeline"
35
+	edit_button.disabled = true
36
+	
37
+	# Add the container as a direct child
38
+	add_child(container)
39
+	
16
 	# Make sure the control is able to retain the focus.
40
 	# Make sure the control is able to retain the focus.
17
 	add_focusable(timelines_dropdown)
41
 	add_focusable(timelines_dropdown)
42
+	
18
 	# Setup the initial state and connect to the signal to track changes.
43
 	# Setup the initial state and connect to the signal to track changes.
19
 	timelines_dropdown.connect("about_to_show", self, "_about_to_show_menu")
44
 	timelines_dropdown.connect("about_to_show", self, "_about_to_show_menu")
20
 	timelines_dropdown.get_popup().connect("index_pressed", self, '_on_timeline_selected')
45
 	timelines_dropdown.get_popup().connect("index_pressed", self, '_on_timeline_selected')
46
+	edit_button.connect("pressed", self, "_on_editTimelineButton_pressed")
21
 
47
 
22
 
48
 
23
 func _about_to_show_menu():
49
 func _about_to_show_menu():
33
 		timelines_dropdown.get_popup().set_item_metadata(index, {'file': c['file'], 'color': c['color']})
59
 		timelines_dropdown.get_popup().set_item_metadata(index, {'file': c['file'], 'color': c['color']})
34
 		index += 1
60
 		index += 1
35
 
61
 
62
+
36
 func _on_timeline_selected(index):
63
 func _on_timeline_selected(index):
37
 	var text = timelines_dropdown.get_popup().get_item_text(index)
64
 	var text = timelines_dropdown.get_popup().get_item_text(index)
38
 	var metadata = timelines_dropdown.get_popup().get_item_metadata(index)
65
 	var metadata = timelines_dropdown.get_popup().get_item_metadata(index)
39
 	current_value = metadata['file']
66
 	current_value = metadata['file']
40
 	timelines_dropdown.text = text
67
 	timelines_dropdown.text = text
68
+	timelines_dropdown.hint_tooltip = text
69
+	_update_edit_button(current_value)
41
 	emit_changed(get_edited_property(), current_value)
70
 	emit_changed(get_edited_property(), current_value)
71
+	
72
+	
73
+func _on_editTimelineButton_pressed():
74
+	if (current_value != '' and editor_inspector_plugin != null):
75
+		editor_inspector_plugin.switch_to_dialogic_timeline(current_value)
42
 
76
 
43
 
77
 
44
 func update_property():
78
 func update_property():
45
 	# Read the current value from the property.
79
 	# Read the current value from the property.
46
 	var new_value = get_edited_object()[get_edited_property()]
80
 	var new_value = get_edited_object()[get_edited_property()]
81
+	_update_edit_button(new_value)
82
+	
47
 	if (new_value == current_value):
83
 	if (new_value == current_value):
48
 		return
84
 		return
49
-
85
+		
50
 	# Update the control with the new value.
86
 	# Update the control with the new value.
51
 	updating = true
87
 	updating = true
52
 	current_value = new_value
88
 	current_value = new_value
53
 	# Checking for the display name
89
 	# Checking for the display name
90
+	timelines_dropdown.text = ''
91
+	
92
+	if (current_value == ''):
93
+		timelines_dropdown.hint_tooltip = 'Click to select a timeline'
94
+		
54
 	for c in DialogicUtil.get_timeline_list():
95
 	for c in DialogicUtil.get_timeline_list():
55
 		if c['file'] == current_value:
96
 		if c['file'] == current_value:
56
 			timelines_dropdown.text = c['name']
97
 			timelines_dropdown.text = c['name']
98
+			timelines_dropdown.hint_tooltip = c['name']
99
+			
57
 	updating = false
100
 	updating = false
101
+	
102
+	_update_edit_button(current_value)
103
+	
104
+	
105
+func _update_edit_button(value):
106
+	if (value == ''):
107
+		edit_button.disabled = true
108
+	else:
109
+		edit_button.disabled = false

+ 2
- 0
addons/dialogic/dialogic.gd View File

17
 	_add_custom_editor_view()
17
 	_add_custom_editor_view()
18
 	get_editor_interface().get_editor_viewport().add_child(_editor_view)
18
 	get_editor_interface().get_editor_viewport().add_child(_editor_view)
19
 	make_visible(false)
19
 	make_visible(false)
20
+	_parts_inspector.dialogic_editor_plugin = self
21
+	_parts_inspector.dialogic_editor_view = _editor_view
20
 
22
 
21
 
23
 
22
 func _ready():
24
 func _ready():

+ 1
- 1
addons/dialogic/plugin.cfg View File

4
 description="Create dialogs, characters and scenes to display conversations in your Godot games.
4
 description="Create dialogs, characters and scenes to display conversations in your Godot games.
5
 https://github.com/coppolaemilio/dialogic"
5
 https://github.com/coppolaemilio/dialogic"
6
 author="Emilio Coppola"
6
 author="Emilio Coppola"
7
-version="1.0"
7
+version="1.1"
8
 script="dialogic.gd"
8
 script="dialogic.gd"

+ 1
- 1
dialogic/characters/character-1616658471.json View File

1
-{"color":"#ff1b2f99","default_speaker":false,"description":"bip bip nouveau mail","display_name":"","display_name_bool":false,"id":"character-1616658471.json","name":"Mail","offset_x":0,"offset_y":-100,"portraits":[{"name":"Default","path":"res://characters/mail.png"}],"scale":100}
1
+{"color":"#ff1b5899","default_speaker":false,"description":"bip bip nouveau mail","display_name":"","display_name_bool":false,"id":"character-1616658471.json","name":"Mail","offset_x":0,"offset_y":-100,"portraits":[{"name":"Default","path":"res://characters/mail.png"}],"scale":100}

+ 1
- 1
dialogic/timelines/timeline-1616656510.json View File

1
-{"events":[{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"set_theme":"theme-1616657657.cfg"},{"options":[],"question":"Il est 10 heures, ce ne serait pas l'heure de la pause ?"},{"choice":"oui, j'ai soif !"},{"choice":"un petit café ne me ferait pas de mal"},{"choice":"Je vais voir mes merveilleux collègues !"},{"endbranch":""},{"change_timeline":"timeline-1616657347.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616656510.json","name":"question-cafe"}}
1
+{"events":[{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"set_theme":"theme-1616657657.cfg"},{"options":[],"question":"Il est 10 heures, ce ne serait pas l'heure de la pause ?"},{"choice":"oui, j'ai soif !"},{"choice":"un petit café ne me ferait pas de mal"},{"choice":"Je vais voir mes merveilleux collègues !"},{"endbranch":""},{"change_timeline":"timeline-1616657347.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616656510.json","name":"question-cafe"}}

+ 1
- 1
dialogic/timelines/timeline-1616657347.json View File

1
-{"events":[{"background":"res://backgrounds/coffeeRoom.jpg"},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"","portrait":"","text":"Vous arrivez à la machine à café, Evelyne est déjà là"},{"definition":"1616657225-648","set_value":"5"},{"emit_signal":"value increment 10"},{"character":"character-1616658373.json","portrait":"","text":"Coucou !\nMoi c’est Evelyne, je suis dans ton service!\nJ’ai hâte de travailler avec toi, nous allons faire de belles choses ensemble !\nJ’ai entendu que le boss t’avais mis sur le projet du nouveau téléphone.\nC’est un gros projet pour commencer."},{"character":"character-1616658355.json","portrait":"","text":"Ouais c’est super mais ça me met la pression.\nEn plus je dois essayer de me démarquer des téléphones des autres entreprises en ajoutant de nouvelles fonctionnalités."},{"character":"character-1616658373.json","portrait":"","text":"Justement je voulais te parler d’un truc que j’ai en tête depuis un moment, je n’ai jamais eu l’occasion de le mettre en application, mais ton projet est parfait pour ça.\nAs-tu déjà entendu parlé du recyclage de pièces de téléphone ?"},{"options":[],"question":"Le recyclage, ça vous dit quelquechose ?"},{"choice":"Très brièvement…"},{"choice":"On m'en a parlé un peu"},{"character":"character-1616658355.json","portrait":"","text":"Quelqu’un m’en a parlé il y a longtemps mais je ne m’en souviens pas vraiment … "},{"endbranch":""},{"character":"character-1616658373.json","portrait":"","text":"En gros, contrairement aux derniers modèles de téléphones, le principe est que ton téléphone est démontable.\nDu coup, si tu as un problème sur une certaine pièce, comme la batterie, tu peux simplement la changer.\nÇa évite de devoir faire réparer ton téléphone entier ou d’en racheter un nouveau.\nTu peux imaginer l’économie que tu fais non seulement pour ton porte-monnaie, mais aussi pour la planète.\nSi tu l’appliques pour ton projet ça permettrait de donner une image éco-responsable de l’entreprise mais aussi de te démarquer de toutes ces marques qui poussent à la surconsommation."},{"options":[],"question":"Qu'en pensez vous ?"},{"choice":"C’est vrai que c’est intéressant je vais y réfléchir!"},{"character":"character-1616658373.json","portrait":"","text":"Super !"},{"choice":"Mouais…"},{"character":"character-1616658373.json","portrait":"","text":"Réfléchis-y, c'est important !"},{"endbranch":""},{"character":"character-1616658373.json","portrait":"","text":"Bon courage et à une prochaine pause café !"},{"action":"leaveall","character":"[All]"},{"wait_seconds":0},{"change_timeline":"timeline-1616659153.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616657347.json","name":"info-evelyne"}}
1
+{"events":[{"background":"res://backgrounds/coffeeRoom.jpg"},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"","portrait":"","text":"Vous arrivez à la machine à café, Evelyne est déjà là"},{"definition":"1616657225-648","set_value":"5"},{"emit_signal":"value increment 10"},{"character":"character-1616658373.json","portrait":"","text":"Coucou !\nMoi c’est Evelyne, je suis dans ton service!\nJ’ai hâte de travailler avec toi, nous allons faire de belles choses ensemble !\nJ’ai entendu que le boss t’avais mis sur le projet du nouveau téléphone.\nC’est un gros projet pour commencer."},{"character":"character-1616658355.json","portrait":"","text":"Ouais c’est super mais ça me met la pression.\nEn plus je dois essayer de me démarquer des téléphones des autres entreprises en ajoutant de nouvelles fonctionnalités."},{"character":"character-1616658373.json","portrait":"","text":"Justement je voulais te parler d’un truc que j’ai en tête depuis un moment, je n’ai jamais eu l’occasion de le mettre en application, mais ton projet est parfait pour ça.\nAs-tu déjà entendu parlé du recyclage de pièces de téléphone ?"},{"options":[],"question":"Le recyclage, ça vous dit quelquechose ?"},{"choice":"Très brièvement…"},{"choice":"On m'en a parlé un peu"},{"character":"character-1616658355.json","portrait":"","text":"Quelqu’un m’en a parlé il y a longtemps mais je ne m’en souviens pas vraiment … "},{"endbranch":""},{"character":"character-1616658373.json","portrait":"","text":"En gros, contrairement aux derniers modèles de téléphones, le principe est que ton téléphone est démontable.\nDu coup, si tu as un problème sur une certaine pièce, comme la batterie, tu peux simplement la changer.\nÇa évite de devoir faire réparer ton téléphone entier ou d’en racheter un nouveau.\nTu peux imaginer l’économie que tu fais non seulement pour ton porte-monnaie, mais aussi pour la planète.\nSi tu l’appliques pour ton projet ça permettrait de donner une image éco-responsable de l’entreprise mais aussi de te démarquer de toutes ces marques qui poussent à la surconsommation."},{"options":[],"question":"Qu'en pensez vous ?"},{"choice":"C’est vrai que c’est intéressant je vais y réfléchir!"},{"character":"character-1616658373.json","portrait":"","text":"Super !"},{"choice":"Mouais…"},{"character":"character-1616658373.json","portrait":"","text":"Réfléchis-y, c'est important !"},{"endbranch":""},{"character":"character-1616658373.json","portrait":"","text":"Bon courage et à une prochaine pause café !"},{"action":"leaveall","character":"[All]"},{"wait_seconds":0},{"change_timeline":"timeline-1616659153.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616657347.json","name":"info-evelyne"}}

+ 1
- 1
dialogic/timelines/timeline-1616659153.json View File

1
-{"events":[{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"character":"","portrait":"","text":"Vous vous dirigez vers votre bureau"},{"action":"join","character":"character-1616658435.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658435.json","portrait":"","text":"Salut toi ! Bienvenue parmi nous. Tu viens d’où mon ami ?"},{"character":"character-1616658355.json","portrait":"","text":"Oh rien d’original je viens de région parisienne et toi ?"},{"character":"character-1616658435.json","portrait":"","text":"Alors … C’est compliqué … Je crois que je suis suisse."},{"character":"character-1616658355.json","portrait":"","text":"Tu crois ?"},{"character":"character-1616658435.json","portrait":"","text":"Je ne suis pas sûr … Bisous ! Bienvenue parmi nous"},{"action":"leaveall","character":"[All]"},{"change_timeline":"timeline-1616659608.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616659153.json","name":"merde-patrick-1"}}
1
+{"events":[{"background":"res://backgrounds/bureauGroupe-2.jpg"},{"character":"","portrait":"","text":"Vous vous dirigez vers votre bureau"},{"action":"join","character":"character-1616658435.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658435.json","portrait":"","text":"Salut toi ! Bienvenue parmi nous. Tu viens d’où mon ami ?"},{"character":"character-1616658355.json","portrait":"","text":"Oh rien d’original je viens de région parisienne et toi ?"},{"character":"character-1616658435.json","portrait":"","text":"Alors … C’est compliqué … Je crois que je suis suisse."},{"character":"character-1616658355.json","portrait":"","text":"Tu crois ?"},{"character":"character-1616658435.json","portrait":"","text":"Je ne suis pas sûr … Bisous ! Bienvenue parmi nous"},{"action":"leaveall","character":"[All]"},{"change_timeline":"timeline-1616659608.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616659153.json","name":"merde-patrick-1"}}

+ 1
- 1
dialogic/timelines/timeline-1616659306.json View File

1
-{"events":[{"change_timeline":"timeline-1616656510.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616659306.json","name":"_start"}}
1
+{"events":[{"change_timeline":"timeline-1616656510.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616659306.json","name":"_start"}}

+ 1
- 1
dialogic/timelines/timeline-1616659917.json View File

1
-{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616658435.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658435.json","portrait":"","text":"Tu savais que l’escargot le plus gros du monde peut peser jusqu’à 1,5 kg ?"},{"character":"character-1616658355.json","portrait":"","text":"Oh c’est toi ! Tu m’as fait peur... Mais non je ne savais pas c’est impressionnant !"},{"character":"character-1616658435.json","portrait":"","text":"Tu te coucheras moins bête ce soir !\nBisous !\nÀ plus dans le bus !"},{"action":"leaveall","character":"[All]"},{"wait_seconds":1},{"character":"character-1616658355.json","portrait":"","text":"Étrange collègue ce Patrick."},{"change_timeline":"timeline-1616660188.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616659917.json","name":"merde-patrick-2"}}
1
+{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616658435.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658435.json","portrait":"","text":"Tu savais que l’escargot le plus gros du monde peut peser jusqu’à 1,5 kg ?"},{"character":"character-1616658355.json","portrait":"","text":"Oh c’est toi ! Tu m’as fait peur... Mais non je ne savais pas c’est impressionnant !"},{"character":"character-1616658435.json","portrait":"","text":"Tu te coucheras moins bête ce soir !\nBisous !\nÀ plus dans le bus !"},{"action":"leaveall","character":"[All]"},{"wait_seconds":1},{"character":"character-1616658355.json","portrait":"","text":"Étrange collègue ce Patrick."},{"change_timeline":"timeline-1616660188.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616659917.json","name":"merde-patrick-2"}}

+ 1
- 1
dialogic/timelines/timeline-1616660188.json View File

1
-{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616660196.json","portrait":"","position":{"0":false,"1":false,"2":true,"3":false,"4":false}},{"character":"","portrait":"","text":"Vous avez reçu une notification d’un article parlant du recyclage des pièces en cas de panne des téléphones."},{"character":"character-1616660196.json","portrait":"","text":"Le dépannage représente également une alternative idéale au gaspillage généré par la consommation excessive d’appareils électroniques.\nDe plus en plus d’enseignes se consacrent à la réparation de smartphones et/ou commercialisent des pièces de rechange.\n Si auparavant, la plupart des utilisateurs de smartphones laissaient leur appareil à l’abandon suite à une panne quelconque, le constat n’est plus le même aujourd’hui.\nEn effet, les pièces de rechange, majoritairement issus du processus de recyclage, sont vendues à des prix très abordables.\nFace à la concurrence grandissante dans le domaine du dépannage de mobile, le coût des services est à la baisse.\nAu plus grand profit des utilisateurs de smartphones.\nFaire réparer son smartphone constitue une alternative plus économique que d’investir dans l’acquisition d’un nouvel appareil. "},{"action":"leaveall","character":"[All]"},{"change_timeline":"timeline-1616660446.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616660188.json","name":"notification-1"}}
1
+{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616660196.json","portrait":"","position":{"0":false,"1":false,"2":true,"3":false,"4":false}},{"character":"","portrait":"","text":"Vous avez reçu une notification d’un article parlant du recyclage des pièces en cas de panne des téléphones."},{"character":"character-1616660196.json","portrait":"","text":"Le dépannage représente également une alternative idéale au gaspillage généré par la consommation excessive d’appareils électroniques.\nDe plus en plus d’enseignes se consacrent à la réparation de smartphones et/ou commercialisent des pièces de rechange.\n Si auparavant, la plupart des utilisateurs de smartphones laissaient leur appareil à l’abandon suite à une panne quelconque, le constat n’est plus le même aujourd’hui.\nEn effet, les pièces de rechange, majoritairement issus du processus de recyclage, sont vendues à des prix très abordables.\nFace à la concurrence grandissante dans le domaine du dépannage de mobile, le coût des services est à la baisse.\nAu plus grand profit des utilisateurs de smartphones.\nFaire réparer son smartphone constitue une alternative plus économique que d’investir dans l’acquisition d’un nouvel appareil. "},{"action":"leaveall","character":"[All]"},{"change_timeline":"timeline-1616660446.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616660188.json","name":"notification-1"}}

+ 1
- 1
dialogic/timelines/timeline-1616660446.json View File

1
-{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616658403.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"","portrait":"","text":"Une personne rentre dans votre bureau..."},{"character":"character-1616658403.json","portrait":"","text":"Salut ça va ?\n Bienvenue !\nJe m’appelle Jean-Michel.\nDis moi, t'as déjà une idée de design pour le téléphone ?"},{"options":[],"question":"Avez vous une idée ?"},{"choice":"Pas vraiment"},{"choice":"Quelques unes"},{"endbranch":""},{"character":"character-1616658403.json","portrait":"","text":"De mon côté j’ai plein d’idées de designs vraiment cools qui pourraient plaire à tout le monde.\nEn plus, ça prendrait en compte toutes les fonctionnalités que le téléphone aura, comme un lecteur d’empreintes digitales."},{"character":"character-1616658355.json","portrait":"","text":"Super !\nPar contre, Evelyne m’a parlé d’une idée qui me plait et je sais pas si ça serait compatible avec tes designs."},{"character":"character-1616658403.json","portrait":"","text":"Houla !\nC’est quoi cette idée encore ?"},{"character":"character-1616658355.json","portrait":"","text":"Elle m’a parlé du fait de pouvoir ouvrir le téléphone et donc que la coque soit amovible..."},{"character":"character-1616658403.json","portrait":"","text":"Mais tu ne peux pas faire ça !\nLes designs différents c’est ce qui fera que le téléphone se distinguera des autres.\nPareil pour les fonctionnalités !\nToutes les marques concurrentes ont un lecteur d’empreintes.\nAvec cette modification, impossible de faire ça, et les utilisateurs diront que nous sommes à la traîne au niveau des technologies utilisées."},{"options":[],"question":"Qu'en pensez vous ?"},{"choice":"Tu n’as pas tord"},{"choice":"Je n’y ai pas encore réfléchi"},{"endbranch":""},{"character":"character-1616658403.json","portrait":"","text":"Fais attention des décisions comme celles-ci pourraient avoir de grandes conséquences pour l’entreprise…\nBonnes ou mauvaises !"},{"action":"leaveall","character":"[All]"},{"wait_seconds":0},{"change_timeline":"timeline-1616660984.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616660446.json","name":"info-jm"}}
1
+{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616658403.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"","portrait":"","text":"Une personne rentre dans votre bureau..."},{"character":"character-1616658403.json","portrait":"","text":"Salut ça va ?\n Bienvenue !\nJe m’appelle Jean-Michel.\nDis moi, t'as déjà une idée de design pour le téléphone ?"},{"options":[],"question":"Avez vous une idée ?"},{"choice":"Pas vraiment"},{"choice":"Quelques unes"},{"endbranch":""},{"character":"character-1616658403.json","portrait":"","text":"De mon côté j’ai plein d’idées de designs vraiment cools qui pourraient plaire à tout le monde.\nEn plus, ça prendrait en compte toutes les fonctionnalités que le téléphone aura, comme un lecteur d’empreintes digitales."},{"character":"character-1616658355.json","portrait":"","text":"Super !\nPar contre, Evelyne m’a parlé d’une idée qui me plait et je sais pas si ça serait compatible avec tes designs."},{"character":"character-1616658403.json","portrait":"","text":"Houla !\nC’est quoi cette idée encore ?"},{"character":"character-1616658355.json","portrait":"","text":"Elle m’a parlé du fait de pouvoir ouvrir le téléphone et donc que la coque soit amovible..."},{"character":"character-1616658403.json","portrait":"","text":"Mais tu ne peux pas faire ça !\nLes designs différents c’est ce qui fera que le téléphone se distinguera des autres.\nPareil pour les fonctionnalités !\nToutes les marques concurrentes ont un lecteur d’empreintes.\nAvec cette modification, impossible de faire ça, et les utilisateurs diront que nous sommes à la traîne au niveau des technologies utilisées."},{"options":[],"question":"Qu'en pensez vous ?"},{"choice":"Tu n’as pas tord"},{"choice":"Je n’y ai pas encore réfléchi"},{"endbranch":""},{"character":"character-1616658403.json","portrait":"","text":"Fais attention des décisions comme celles-ci pourraient avoir de grandes conséquences pour l’entreprise…\nBonnes ou mauvaises !"},{"action":"leaveall","character":"[All]"},{"wait_seconds":0},{"change_timeline":"timeline-1616660984.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616660446.json","name":"info-jm"}}

+ 1
- 1
dialogic/timelines/timeline-1616660984.json View File

1
-{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616658471.json","portrait":"","position":{"0":false,"1":false,"2":true,"3":false,"4":false}},{"character":"","portrait":"","text":"Vous avez reçu un mail !"},{"character":"character-1616658471.json","portrait":"","text":"Bravo !\nVous êtes le gagnant de la tombola de l’école maternelle des coquelicots en fleurs !\nVous avez gagné un jambon entier félicitations ! \nPour récupérer votre prix, veuillez vous présenter au bureau de la directrice.\nL’association des parents d’élèves des coquelicots."},{"options":[],"question":"..."},{"choice":"C'est dommage je suis végétarien..."},{"character":"character-1616658355.json","portrait":"","text":"J'en parlerai à la directrice."},{"choice":"Miam !"},{"character":"character-1616658355.json","portrait":"","text":"Tous ces apéros en perspective !\nJe vais me régaler."},{"endbranch":""},{"action":"leaveall","character":"[All]"},{"wait_seconds":1},{"change_timeline":"timeline-1616661304.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616660984.json","name":"merde-mail-1"}}
1
+{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"action":"join","character":"character-1616658471.json","portrait":"","position":{"0":false,"1":false,"2":true,"3":false,"4":false}},{"character":"","portrait":"","text":"Vous avez reçu un mail !"},{"character":"character-1616658471.json","portrait":"","text":"Bravo !\nVous êtes le gagnant de la tombola de l’école maternelle des coquelicots en fleurs !\nVous avez gagné un jambon entier félicitations ! \nPour récupérer votre prix, veuillez vous présenter au bureau de la directrice.\nL’association des parents d’élèves des coquelicots."},{"options":[],"question":"..."},{"choice":"C'est dommage je suis végétarien..."},{"character":"character-1616658355.json","portrait":"","text":"J'en parlerai à la directrice."},{"choice":"Miam !"},{"character":"character-1616658355.json","portrait":"","text":"Tous ces apéros en perspective !\nJe vais me régaler."},{"endbranch":""},{"action":"leaveall","character":"[All]"},{"wait_seconds":1},{"change_timeline":"timeline-1616661304.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616660984.json","name":"merde-mail-1"}}

+ 1
- 1
dialogic/timelines/timeline-1616661304.json View File

1
-{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"character":"","portrait":"","text":"C'est l'heure de passer au travail !\nIl est temps de décider du design du téléphone.\nVoulez vous permettre l'ouverture du téléphone ?\nOu plutot le verrouiller ? "},{"options":[],"question":"Téléphone verrouillé ou ouvert ?"},{"choice":"Ouvert"},{"character":"character-1616658355.json","portrait":"","text":"Un téléphone ouvert me semble être la meilleure solution.\nJe vais voir ce que mes collègues en pensent, je suis sûr qu'Evelyne me soutiendra !"},{"definition":"1616657225-648","set_value":"1"},{"choice":"Verrouillé"},{"character":"character-1616658355.json","portrait":"","text":"Un téléphone verrouillé me semble être la meilleure solution.\nJe vais voir ce que mes collègues en pensent, je suis sûr que Jean-Michel sera ravi !"},{"definition":"1616657225-648","set_value":"0"},{"endbranch":""},{"character":"","portrait":"","text":"Vous annoncez votre décision par mail à vos collègues.\nVous les rejoignez ensuite dans la salle de réunion."},{"wait_seconds":1},{"condition":"==","definition":"1616657225-648","value":"1"},{"change_timeline":"timeline-1616661658.json"},{"endbranch":""},{"condition":"==","definition":"1616657225-648","value":"0"},{"change_timeline":"timeline-1616661685.json"},{"endbranch":""}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616661304.json","name":"question-tel-ouvert"}}
1
+{"events":[{"background":"res://backgrounds/bureauPerso.jpg"},{"character":"","portrait":"","text":"C'est l'heure de passer au travail !\nIl est temps de décider du design du téléphone.\nVoulez vous permettre l'ouverture du téléphone ?\nOu plutot le verrouiller ? "},{"options":[],"question":"Téléphone verrouillé ou ouvert ?"},{"choice":"Ouvert"},{"character":"character-1616658355.json","portrait":"","text":"Un téléphone ouvert me semble être la meilleure solution.\nJe vais voir ce que mes collègues en pensent, je suis sûr qu'Evelyne me soutiendra !"},{"definition":"1616657225-648","set_value":"1"},{"choice":"Verrouillé"},{"character":"character-1616658355.json","portrait":"","text":"Un téléphone verrouillé me semble être la meilleure solution.\nJe vais voir ce que mes collègues en pensent, je suis sûr que Jean-Michel sera ravi !"},{"definition":"1616657225-648","set_value":"0"},{"endbranch":""},{"character":"","portrait":"","text":"Vous annoncez votre décision par mail à vos collègues.\nVous les rejoignez ensuite dans la salle de réunion."},{"wait_seconds":1},{"condition":"==","definition":"1616657225-648","value":"1"},{"change_timeline":"timeline-1616661658.json"},{"endbranch":""},{"condition":"==","definition":"1616657225-648","value":"0"},{"change_timeline":"timeline-1616661685.json"},{"endbranch":""}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616661304.json","name":"question-tel-ouvert"}}

+ 1
- 1
dialogic/timelines/timeline-1616661658.json View File

1
-{"events":[{"background":"res://backgrounds/meetingRoom.jpg"},{"action":"join","character":"character-1616658403.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658403.json","portrait":"","text":"On peut discuter une minute ?"},{"character":"character-1616658355.json","portrait":"","text":"Euh oui pas de soucis qu’est ce qu’il se passe ?"},{"character":"character-1616658403.json","portrait":"","text":"Je viens d’apprendre que ton projet vient d’être validé mais que c’est le projet de développer un téléphone que l’utilisateur peut ouvrir !\nTu as une idée des répercussions sur l’entreprise que cela va avoir ?\nL’entreprise va perdre beaucoup d’argent à laisser la possibilité aux gens de réparer leurs téléphones en leur laissant l’accès aux composants !\nEt toutes les idées dont je t’avais parlé de technologies innovantes et de designs incroyables sont réduits à néant !\nFranchement je ne sais pas ce qui t’es passé par la tête mais ça me laisse sans voix …\nSur ce je n’ai plus rien à dire au revoir."},{"action":"leaveall","character":"[All]"},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"Re-bonjour ! Quelle belle journée aujourd’hui !\nJ’ai appris que tu avais repris mon idée de pouvoir ouvrir le téléphone dans ton projet de développement.\nC’est une sage décision qui va engendrer tellement de choses positives pour l’entreprise.\nC’est le début d’une nouvelle ère technologique responsable, crois moi !\nOui au recyclage et oui à la seconde vie des appareils !"},{"character":"character-1616658355.json","portrait":"","text":"Je suis content que ce projet provoque un tel enthousiasme en toi !"},{"action":"join","character":"character-1616658435.json","portrait":"","position":{"0":true,"1":false,"2":false,"3":false,"4":false}},{"character":"character-1616658435.json","portrait":"","text":"Il se passe quoi ici ?"},{"character":"character-1616658355.json","portrait":"","text":"Tu n'as pas vu mon mail ?"},{"character":"character-1616658435.json","portrait":"","text":"Ah non.."},{"wait_seconds":1},{"character":"character-1616658435.json","portrait":"","text":"J'ai perdu mon mot de passe\n...\n..."},{"wait_seconds":1},{"action":"leaveall","character":"character-1616658435.json"},{"character":"character-1616658373.json","portrait":"","text":"...\nBon\nEn tout cas je suis ravie de ton choix !\nJe te laisse j’ai une réunion dans 10 min à bientôt !"},{"action":"leaveall","character":"[All]"},{"change_timeline":"timeline-1616662258.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616661658.json","name":"conseq-tel-ouvert-1"}}
1
+{"events":[{"background":"res://backgrounds/meetingRoom.jpg"},{"action":"join","character":"character-1616658403.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658403.json","portrait":"","text":"On peut discuter une minute ?"},{"character":"character-1616658355.json","portrait":"","text":"Euh oui pas de soucis qu’est ce qu’il se passe ?"},{"character":"character-1616658403.json","portrait":"","text":"Je viens d’apprendre que ton projet vient d’être validé mais que c’est le projet de développer un téléphone que l’utilisateur peut ouvrir !\nTu as une idée des répercussions sur l’entreprise que cela va avoir ?\nL’entreprise va perdre beaucoup d’argent à laisser la possibilité aux gens de réparer leurs téléphones en leur laissant l’accès aux composants !\nEt toutes les idées dont je t’avais parlé de technologies innovantes et de designs incroyables sont réduits à néant !\nFranchement je ne sais pas ce qui t’es passé par la tête mais ça me laisse sans voix …\nSur ce je n’ai plus rien à dire au revoir."},{"action":"leaveall","character":"[All]"},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"Re-bonjour ! Quelle belle journée aujourd’hui !\nJ’ai appris que tu avais repris mon idée de pouvoir ouvrir le téléphone dans ton projet de développement.\nC’est une sage décision qui va engendrer tellement de choses positives pour l’entreprise.\nC’est le début d’une nouvelle ère technologique responsable, crois moi !\nOui au recyclage et oui à la seconde vie des appareils !"},{"character":"character-1616658355.json","portrait":"","text":"Je suis content que ce projet provoque un tel enthousiasme en toi !"},{"action":"join","character":"character-1616658435.json","portrait":"","position":{"0":true,"1":false,"2":false,"3":false,"4":false}},{"character":"character-1616658435.json","portrait":"","text":"Il se passe quoi ici ?"},{"character":"character-1616658355.json","portrait":"","text":"Tu n'as pas vu mon mail ?"},{"character":"character-1616658435.json","portrait":"","text":"Ah non.."},{"wait_seconds":1},{"character":"character-1616658435.json","portrait":"","text":"J'ai perdu mon mot de passe\n...\n..."},{"wait_seconds":1},{"action":"leaveall","character":"character-1616658435.json"},{"character":"character-1616658373.json","portrait":"","text":"...\nBon\nEn tout cas je suis ravie de ton choix !\nJe te laisse j’ai une réunion dans 10 min à bientôt !"},{"action":"leaveall","character":"[All]"},{"change_timeline":"timeline-1616662258.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616661658.json","name":"conseq-tel-ouvert-1"}}

+ 1
- 1
dialogic/timelines/timeline-1616661685.json View File

1
-{"events":[{"background":"res://backgrounds/meetingRoom.jpg"},{"action":"join","character":"character-1616658471.json","portrait":"","position":{"0":false,"1":false,"2":true,"3":false,"4":false}},{"character":"","portrait":"","text":"Vous avez reçu un mail du Boss !"},{"character":"character-1616658471.json","portrait":"","text":"Bonjour,\nJe souhaitais vous féliciter concernant votre projet de téléphone.\nJ’ai récemment appris que vous aviez hésité concernant la possibilité d’ouvrir le téléphone ou non.\nSachez que je suis plus que satisfait de votre choix.\nEn effet, le fait d’avoir fermé le téléphone nous permettra d’augmenter notre chiffre d’affaires de manière significative.\nD’une part grâce à de nouveaux designs innovants et attractifs, mais également grâce à une fidélisation de la clientèle, je ne peux qu’approuver votre choix.\nContinuez sur cette lancée !\nEn vous souhaitant une bonne journée.\nCordialement, The boss"},{"action":"leaveall","character":"character-1616658471.json"},{"wait_seconds":0},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"Re\nJe croyais que tu avais compris ce que je t’avais dit concernant le recyclage des composants des téléphones.\nEn fermant le téléphone, tu condamnes les utilisateurs à devoir changer leur téléphone au moindre problème.\nEn faisant ceci, tu deviens partisan de la surconsommation et donc de la pollution de notre planète.\nTu crois que le chiffre d’affaires de l’entreprise importera quand nous n’aurons même plus un endroit où vivre ?"},{"action":"join","character":"character-1616658403.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658403.json","portrait":"","text":"Hey !\nUn petit golf samedi ?"},{"character":"character-1616658373.json","portrait":"","text":"Tu permets ?\nNous sommes en pleine discussion."},{"character":"character-1616658403.json","portrait":"","text":"Okay, faut pas être tendue comme ça..."},{"action":"leaveall","character":"character-1616658403.json"},{"character":"character-1616658373.json","portrait":"","text":"Bref\nJe te laisse réfléchir à ça je dois y aller il me reste 1h de pause je vais aller courir un peu…"},{"action":"leaveall","character":"[All]"},{"change_timeline":"timeline-1616662258.json"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616661685.json","name":"conseq-tel-ouvert-2"}}
1
+{"events":[{"background":"res://backgrounds/meetingRoom.jpg"},{"action":"join","character":"character-1616658471.json","portrait":"","position":{"0":false,"1":false,"2":true,"3":false,"4":false}},{"character":"","portrait":"","text":"Vous avez reçu un mail du Boss !"},{"character":"character-1616658471.json","portrait":"","text":"Bonjour,\nJe souhaitais vous féliciter concernant votre projet de téléphone.\nJ’ai récemment appris que vous aviez hésité concernant la possibilité d’ouvrir le téléphone ou non.\nSachez que je suis plus que satisfait de votre choix.\nEn effet, le fait d’avoir fermé le téléphone nous permettra d’augmenter notre chiffre d’affaires de manière significative.\nD’une part grâce à de nouveaux designs innovants et attractifs, mais également grâce à une fidélisation de la clientèle, je ne peux qu’approuver votre choix.\nContinuez sur cette lancée !\nEn vous souhaitant une bonne journée.\nCordialement, The boss"},{"action":"leaveall","character":"character-1616658471.json"},{"wait_seconds":0},{"action":"join","character":"character-1616658373.json","portrait":"","position":{"0":false,"1":true,"2":false,"3":false,"4":false}},{"character":"character-1616658373.json","portrait":"","text":"Re\nJe croyais que tu avais compris ce que je t’avais dit concernant le recyclage des composants des téléphones.\nEn fermant le téléphone, tu condamnes les utilisateurs à devoir changer leur téléphone au moindre problème.\nEn faisant ceci, tu deviens partisan de la surconsommation et donc de la pollution de notre planète.\nTu crois que le chiffre d’affaires de l’entreprise importera quand nous n’aurons même plus un endroit où vivre ?"},{"action":"join","character":"character-1616658403.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":true,"4":false}},{"character":"character-1616658403.json","portrait":"","text":"Hey !\nUn petit golf samedi ?"},{"character":"character-1616658373.json","portrait":"","text":"Tu permets ?\nNous sommes en pleine discussion."},{"character":"character-1616658403.json","portrait":"","text":"Okay, faut pas être tendue comme ça..."},{"action":"leaveall","character":"character-1616658403.json"},{"character":"character-1616658373.json","portrait":"","text":"Bref\nJe te laisse réfléchir à ça je dois y aller il me reste 1h de pause je vais aller courir un peu…"},{"action":"leaveall","character":"[All]"},{"change_timeline":"timeline-1616662258.json"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616661685.json","name":"conseq-tel-ouvert-2"}}

+ 1
- 1
dialogic/timelines/timeline-1616662258.json View File

1
-{"events":[{"wait_seconds":1},{"character":"","portrait":"","text":"Fin de la démo, merci d'avoir joué !"},{"action":"join","character":"character-1616658435.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":false,"4":true}},{"character":"character-1616658435.json","portrait":"","text":"À bientôt dans l'métro !"},{"action":"leaveall","character":"[All]"}],"metadata":{"dialogic-version":"1.0","file":"timeline-1616662258.json","name":"_end"}}
1
+{"events":[{"wait_seconds":1},{"character":"","portrait":"","text":"Fin de la démo, merci d'avoir joué !"},{"action":"join","character":"character-1616658435.json","portrait":"","position":{"0":false,"1":false,"2":false,"3":false,"4":true}},{"character":"character-1616658435.json","portrait":"","text":"À bientôt dans l'métro !"},{"action":"leaveall","character":"[All]"}],"metadata":{"dialogic-version":"1.1","file":"timeline-1616662258.json","name":"_end"}}

Loading…
Cancel
Save