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

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

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

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

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

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

@@ -6,7 +6,7 @@ var editor_file_dialog # EditorFileDialog
6 6
 var file_picker_data: Dictionary = {'method': '', 'node': self}
7 7
 var current_editor_view: String = 'Master'
8 8
 var version_string: String 
9
-onready var master_tree = $MainPanel/MasterTree
9
+onready var master_tree = $MainPanel/MasterTreeContainer/MasterTree
10 10
 onready var timeline_editor = $MainPanel/TimelineEditor
11 11
 onready var character_editor = $MainPanel/CharacterEditor
12 12
 onready var definition_editor = $MainPanel/DefinitionEditor
@@ -27,6 +27,40 @@ func _ready():
27 27
 
28 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 64
 	# Toolbar
31 65
 	$ToolBar/NewTimelineButton.connect('pressed', $MainPanel/TimelineEditor, 'new_timeline')
32 66
 	$ToolBar/NewCharactersButton.connect('pressed', $MainPanel/CharacterEditor, 'new_character')
@@ -55,7 +89,9 @@ func _ready():
55 89
 	var err = config.load("res://addons/dialogic/plugin.cfg")
56 90
 	if err == OK:
57 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 97
 func on_master_tree_editor_selected(editor: String):
@@ -75,10 +111,10 @@ func _on_TimelinePopupMenu_id_pressed(id):
75 111
 func _on_RemoveTimelineConfirmation_confirmed():
76 112
 	var dir = Directory.new()
77 113
 	var target = $MainPanel/TimelineEditor.timeline_file
78
-	print('target: ', target)
114
+	#'target: ', target)
79 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 120
 # Character context menu
@@ -95,6 +131,10 @@ func _on_ThemePopupMenu_id_pressed(id):
95 131
 		OS.shell_open(ProjectSettings.globalize_path(DialogicResources.get_path('THEME_DIR')))
96 132
 	if id == 1:
97 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 140
 # Definition context menu
@@ -108,22 +148,22 @@ func _on_DefinitionPopupMenu_id_pressed(id):
108 148
 func _on_RemoveDefinitionConfirmation_confirmed():
109 149
 	var target = $MainPanel/DefinitionEditor.current_definition['id']
110 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 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 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 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 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 169
 # Godot dialog
@@ -157,12 +197,6 @@ func _on_file_selected(path):
157 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 200
 func dprint(what) -> void:
167 201
 	if debug_mode:
168 202
 		print(what)

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

@@ -1,24 +1,21 @@
1
-[gd_scene load_steps=20 format=2]
1
+[gd_scene load_steps=17 format=2]
2 2
 
3 3
 [ext_resource path="res://addons/dialogic/Editor/EditorView.gd" type="Script" id=1]
4 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 8
 [ext_resource path="res://addons/dialogic/Editor/SettingsEditor/SettingsEditor.tscn" type="PackedScene" id=6]
9 9
 [ext_resource path="res://addons/dialogic/Editor/CharacterEditor/CharacterEditor.tscn" type="PackedScene" id=7]
10 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 11
 [ext_resource path="res://addons/dialogic/Images/ActionCopy.svg" type="Texture" id=11]
14 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 14
 [ext_resource path="res://addons/dialogic/Images/Remove.svg" type="Texture" id=22]
18 15
 [ext_resource path="res://addons/dialogic/Images/Filesystem.svg" type="Texture" id=26]
19 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 19
 data = {
23 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 21
 "format": "LumAlpha8",
@@ -30,16 +27,12 @@ data = {
30 27
 [sub_resource type="ImageTexture" id=2]
31 28
 flags = 4
32 29
 flags = 4
33
-image = SubResource( 3 )
30
+image = SubResource( 1 )
34 31
 size = Vector2( 16, 16 )
35 32
 
36 33
 [node name="EditorView" type="Control"]
37 34
 anchor_right = 1.0
38 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 36
 rect_min_size = Vector2( 0, 200 )
44 37
 size_flags_horizontal = 3
45 38
 size_flags_vertical = 3
@@ -50,7 +43,7 @@ __meta__ = {
50 43
 
51 44
 [node name="ToolBar" type="HBoxContainer" parent="."]
52 45
 anchor_right = 1.0
53
-margin_bottom = 30.0
46
+margin_bottom = 32.0
54 47
 custom_constants/separation = 0
55 48
 __meta__ = {
56 49
 "_edit_use_anchors_": false
@@ -58,119 +51,118 @@ __meta__ = {
58 51
 
59 52
 [node name="NewTimelineButton" type="Button" parent="ToolBar"]
60 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 56
 hint_tooltip = "New Timeline"
64 57
 focus_mode = 0
65
-icon = ExtResource( 3 )
58
+icon = ExtResource( 4 )
66 59
 flat = true
67 60
 
68 61
 [node name="NewCharactersButton" type="ToolButton" parent="ToolBar"]
69 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 66
 hint_tooltip = "New Character"
74 67
 focus_mode = 0
75
-icon = ExtResource( 4 )
68
+icon = ExtResource( 3 )
76 69
 
77 70
 [node name="NewDefinitionButton" type="Button" parent="ToolBar"]
78 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 75
 hint_tooltip = "New Definition"
83 76
 focus_mode = 0
84
-icon = ExtResource( 13 )
77
+icon = ExtResource( 5 )
85 78
 flat = true
86 79
 
87 80
 [node name="NewThemeButton" type="Button" parent="ToolBar"]
88 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 85
 hint_tooltip = "New Theme"
93 86
 focus_mode = 0
94
-icon = ExtResource( 5 )
87
+icon = ExtResource( 13 )
95 88
 flat = true
96 89
 
97 90
 [node name="FoldTools" type="HBoxContainer" parent="ToolBar"]
98 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 96
 [node name="Label" type="Label" parent="ToolBar/FoldTools"]
104
-margin_top = 8.0
97
+margin_top = 9.0
105 98
 margin_right = 59.0
106
-margin_bottom = 22.0
99
+margin_bottom = 23.0
107 100
 text = "      Fold  "
108 101
 
109
-[node name="ButtonFold" type="Button" parent="ToolBar/FoldTools"]
102
+[node name="ButtonFold" type="ToolButton" parent="ToolBar/FoldTools"]
110 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 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 114
 align = 0
122 115
 
123 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 120
 size_flags_horizontal = 3
128 121
 
129 122
 [node name="Docs" type="ToolButton" parent="ToolBar"]
130 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 127
 hint_tooltip = "Theme Editor"
135 128
 mouse_default_cursor_shape = 2
136 129
 text = "Online Docs"
137 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 132
 [node name="Version" type="Label" parent="ToolBar"]
150 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 140
 [node name="MainPanel" type="HSplitContainer" parent="."]
158 141
 anchor_right = 1.0
159 142
 anchor_bottom = 1.0
160
-margin_left = 6.0
161 143
 margin_top = 38.0
162
-margin_right = -5.0
163
-margin_bottom = -5.0
164 144
 __meta__ = {
165 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 160
 anchor_right = 0.0
170 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 166
 size_flags_vertical = 3
175 167
 
176 168
 [node name="TimelineEditor" parent="MainPanel" instance=ExtResource( 2 )]
@@ -194,15 +186,15 @@ margin_right = 1253.0
194 186
 margin_bottom = 661.0
195 187
 
196 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 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 199
 [node name="Label" type="Label" parent="MainPanel/Empty/VBoxContainer"]
208 200
 margin_right = 280.0
@@ -234,7 +226,7 @@ margin_left = 171.799
234 226
 margin_top = 209.0
235 227
 margin_right = 267.799
236 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 230
 __meta__ = {
239 231
 "_edit_use_anchors_": false
240 232
 }
@@ -298,4 +290,3 @@ dialog_text = "Are you sure you want to remove this timeline?
298 290
 __meta__ = {
299 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,26 +1,31 @@
1 1
 tool
2 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 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 21
 var timelines_tree
19 22
 var characters_tree
20 23
 var definitions_tree
21 24
 var themes_tree
22 25
 var settings_tree
23 26
 
27
+var filter_tree_term = ''
28
+
24 29
 signal editor_selected(selected)
25 30
 
26 31
 func _ready():
@@ -28,26 +33,49 @@ func _ready():
28 33
 	var root = tree.create_item()
29 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 59
 	# Creating the parents
32 60
 	timelines_tree = tree.create_item(root)
33 61
 	timelines_tree.set_selectable(0, false)
34 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 65
 	characters_tree = tree.create_item(root)
38 66
 	characters_tree.set_selectable(0, false)
39 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 70
 	definitions_tree = tree.create_item(root)
43 71
 	definitions_tree.set_selectable(0, false)
44 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 75
 	themes_tree = tree.create_item(root)
48 76
 	themes_tree.set_selectable(0, false)
49 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 80
 	settings_tree = tree.create_item(root)
53 81
 	settings_tree.set_selectable(0, true)
@@ -62,6 +90,8 @@ func _ready():
62 90
 	connect('item_edited', self, '_on_item_edited')
63 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 95
 	#var subchild1 = tree.create_item(timelines_tree)
66 96
 	#subchild1.set_text(0, "Subchild1")
67 97
 	
@@ -93,7 +123,13 @@ func _clear_tree_children(parent: TreeItem):
93 123
 func build_timelines(selected_item: String=''):
94 124
 	_clear_tree_children(timelines_tree)
95 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 135
 func _add_timeline(timeline, select = false):
@@ -115,7 +151,13 @@ func _add_timeline(timeline, select = false):
115 151
 func build_themes(selected_item: String=''):
116 152
 	_clear_tree_children(themes_tree)
117 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 163
 func _add_theme(theme_item, select = false):
@@ -133,7 +175,13 @@ func _add_theme(theme_item, select = false):
133 175
 func build_characters(selected_item: String=''):
134 176
 	_clear_tree_children(characters_tree)
135 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 187
 func _add_character(character, select = false):
@@ -156,7 +204,13 @@ func _add_character(character, select = false):
156 204
 func build_definitions(selected_item: String=''):
157 205
 	_clear_tree_children(definitions_tree)
158 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 216
 func _add_definition(definition, select = false):
@@ -209,6 +263,7 @@ func show_character_editor():
209 263
 	settings_editor.visible = false
210 264
 	empty_editor.visible = false
211 265
 
266
+
212 267
 func show_timeline_editor():
213 268
 	emit_signal("editor_selected", 'timeline')
214 269
 	character_editor.visible = false
@@ -218,6 +273,7 @@ func show_timeline_editor():
218 273
 	settings_editor.visible = false
219 274
 	empty_editor.visible = false
220 275
 
276
+
221 277
 func show_definition_editor():
222 278
 	emit_signal("editor_selected", 'definition')
223 279
 	character_editor.visible = false
@@ -227,6 +283,7 @@ func show_definition_editor():
227 283
 	settings_editor.visible = false
228 284
 	empty_editor.visible = false
229 285
 
286
+
230 287
 func show_theme_editor():
231 288
 	emit_signal("editor_selected", 'theme')
232 289
 	character_editor.visible = false
@@ -236,6 +293,7 @@ func show_theme_editor():
236 293
 	settings_editor.visible = false
237 294
 	empty_editor.visible = false
238 295
 
296
+
239 297
 func show_settings_editor():
240 298
 	emit_signal("editor_selected", 'theme')
241 299
 	character_editor.visible = false
@@ -245,6 +303,7 @@ func show_settings_editor():
245 303
 	settings_editor.visible = true
246 304
 	empty_editor.visible = false
247 305
 
306
+
248 307
 func hide_all_editors():
249 308
 	emit_signal("editor_selected", 'none')
250 309
 	character_editor.visible = false
@@ -279,7 +338,8 @@ func remove_selected():
279 338
 
280 339
 
281 340
 func refresh_timeline_list():
282
-	print('update timeline list')
341
+	#print('update timeline list')
342
+	pass
283 343
 
284 344
 
285 345
 func _on_renamer_reset_timeout():
@@ -296,7 +356,6 @@ func _on_gui_input(event):
296 356
 
297 357
 
298 358
 func _on_item_edited():
299
-	print('edited')
300 359
 	var item = get_selected()
301 360
 	var metadata = item.get_metadata(0)
302 361
 	if metadata['editor'] == 'Timeline':
@@ -320,6 +379,14 @@ func _on_item_edited():
320 379
 
321 380
 func _on_autosave_timeout():
322 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 392
 func save_current_resource():
@@ -336,3 +403,56 @@ func save_current_resource():
336 403
 			if metadata['editor'] == 'Definition':
337 404
 				definition_editor.save_definition()
338 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

@@ -0,0 +1,93 @@
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

@@ -0,0 +1,143 @@
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,8 +21,7 @@ func _on_OptionSelected(index):
21 21
 		timeline_editor.move_block(current_piece, 'down')
22 22
 	elif index == 3:
23 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 27
 	timeline_editor.indent_events()

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

@@ -11,7 +11,7 @@ text = "Item 0"
11 11
 icon = ExtResource( 1 )
12 12
 clip_text = true
13 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 15
 script = ExtResource( 2 )
16 16
 __meta__ = {
17 17
 "_edit_use_anchors_": false

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

@@ -0,0 +1,8 @@
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,8 +75,9 @@ margin_bottom = 28.0
75 75
 
76 76
 [node name="CustomLineEdit" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 6 )]
77 77
 margin_left = 256.0
78
-margin_right = 304.0
78
+margin_right = 352.0
79 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 82
 [node name="Preview" type="Label" parent="PanelContainer/VBoxContainer/Header"]
82 83
 margin_left = 308.0

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

@@ -18,7 +18,7 @@ func _ready():
18 18
 
19 19
 
20 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 22
 	editor_reference.godot_dialog_connect(self, "_on_file_selected")
23 23
 
24 24
 
@@ -33,8 +33,8 @@ func load_data(data):
33 33
 
34 34
 func load_image(img_src):
35 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 38
 		$PanelContainer/VBoxContainer/TextureRect.texture = load(event_data['background'])
39 39
 		$PanelContainer/VBoxContainer/TextureRect.rect_min_size = Vector2(200,200)
40 40
 		preview = event_data['background']

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

@@ -1,7 +1,7 @@
1 1
 tool
2 2
 extends Control
3 3
 
4
-var text_height = 26
4
+var text_height = 21
5 5
 var editor_reference
6 6
 var preview = ''
7 7
 onready var toggler = get_node("PanelContainer/VBoxContainer/Header/VisibleToggle")
@@ -16,7 +16,11 @@ var event_data = {
16 16
 onready var portrait_picker = $PanelContainer/VBoxContainer/Header/PortraitPicker
17 17
 
18 18
 func _ready():
19
+	var _scale = get_constant("inspector_margin", "Editor")
20
+	_scale = _scale * 0.125
21
+	text_height = text_height * _scale
19 22
 	connect("gui_input", self, '_on_gui_input')
23
+	$PanelContainer/VBoxContainer/TextEdit.connect("focus_entered", self, "_on_TextEdit_focus_entered")
20 24
 	$PanelContainer/VBoxContainer/TextEdit.set("rect_min_size", Vector2(0, 80))
21 25
 	$PanelContainer/VBoxContainer/Header/CharacterPicker.connect('character_selected', self , '_on_character_selected')
22 26
 	portrait_picker.get_popup().connect("index_pressed", self, '_on_portrait_selected')
@@ -96,5 +100,26 @@ func _on_gui_input(event):
96 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 118
 func _on_saver_timer_timeout():
100 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,9 +76,9 @@ stretch_mode = 6
76 76
 
77 77
 [node name="Label" type="Label" parent="PanelContainer/VBoxContainer/Header"]
78 78
 visible = false
79
-margin_left = 60.0
79
+margin_left = 35.0
80 80
 margin_top = 8.0
81
-margin_right = 103.0
81
+margin_right = 78.0
82 82
 margin_bottom = 22.0
83 83
 text = "  Text  "
84 84
 
@@ -93,6 +93,8 @@ margin_right = 149.0
93 93
 
94 94
 [node name="PortraitPicker" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 7 )]
95 95
 visible = false
96
+margin_left = 153.0
97
+margin_right = 187.0
96 98
 
97 99
 [node name="VisibleToggle" parent="PanelContainer/VBoxContainer/Header" instance=ExtResource( 2 )]
98 100
 margin_left = 153.0
@@ -127,4 +129,5 @@ size_flags_vertical = 3
127 129
 show_line_numbers = true
128 130
 smooth_scrolling = true
129 131
 wrap_enabled = true
132
+
130 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,9 +1,10 @@
1
-[gd_scene load_steps=6 format=2]
1
+[gd_scene load_steps=8 format=2]
2 2
 
3 3
 [ext_resource path="res://addons/dialogic/Images/Events/Wait.svg" type="Texture" id=1]
4 4
 [ext_resource path="res://addons/dialogic/Editor/Pieces/WaitSeconds.gd" type="Script" id=2]
5 5
 [ext_resource path="res://addons/dialogic/Editor/Pieces/Common/Spacer.tscn" type="PackedScene" id=3]
6 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 9
 [sub_resource type="StyleBoxFlat" id=1]
9 10
 content_margin_left = 16.0
@@ -78,6 +79,7 @@ min_value = 0.1
78 79
 value = 0.1
79 80
 allow_greater = true
80 81
 align = 1
82
+script = ExtResource( 6 )
81 83
 
82 84
 [node name="Title2" type="Label" parent="PanelContainer/VBoxContainer/Header"]
83 85
 margin_left = 157.0

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

@@ -7,7 +7,10 @@ onready var nodes = {
7 7
 	'remove_empty_messages': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer/RemoveEmptyMessages,
8 8
 	'auto_color_names': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer3/AutoColorNames,
9 9
 	'propagate_input': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer4/PropagateInput,
10
+	'dim_characters': $VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer5/DimCharacters,
10 11
 }
12
+
13
+
11 14
 func _ready():
12 15
 	update_data()
13 16
 	
@@ -16,6 +19,7 @@ func _ready():
16 19
 	nodes['remove_empty_messages'].connect('toggled', self, '_on_remove_empty_message_toggled')
17 20
 	nodes['auto_color_names'].connect('toggled', self, '_on_auto_color_names_toggled')
18 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 25
 func update_data():
@@ -33,6 +37,8 @@ func dialog_options(settings):
33 37
 		nodes['auto_color_names'].pressed = settings.get_value('dialog', 'auto_color_names')
34 38
 	if settings.has_section_key('dialog', 'propagate_input'):
35 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 44
 func refresh_themes(settings):
@@ -74,10 +80,14 @@ func _on_new_line_toggled(value):
74 80
 func _on_auto_color_names_toggled(value):
75 81
 	set_value('dialog', 'auto_color_names', value)
76 82
 
83
+
77 84
 func _on_propagate_input_toggled(value):
78 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 91
 # Reading and saving data to the settings file
82 92
 func set_value(section, key, value):
83 93
 	DialogicResources.set_settings_value(section, key, value)

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

@@ -18,19 +18,19 @@ size_flags_vertical = 3
18 18
 
19 19
 [node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer"]
20 20
 margin_right = 1024.0
21
-margin_bottom = 212.0
21
+margin_bottom = 240.0
22 22
 
23 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 26
 custom_constants/separation = 16
27 27
 
28 28
 [node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer"]
29
-margin_right = 288.0
29
+margin_right = 304.0
30 30
 margin_bottom = 54.0
31 31
 
32 32
 [node name="Panel" type="Panel" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer"]
33
-margin_right = 288.0
33
+margin_right = 304.0
34 34
 margin_bottom = 30.0
35 35
 rect_min_size = Vector2( 0, 30 )
36 36
 size_flags_horizontal = 3
@@ -45,7 +45,7 @@ __meta__ = {
45 45
 
46 46
 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer"]
47 47
 margin_top = 34.0
48
-margin_right = 288.0
48
+margin_right = 304.0
49 49
 margin_bottom = 54.0
50 50
 
51 51
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer/HBoxContainer"]
@@ -59,19 +59,23 @@ margin_left = 50.0
59 59
 margin_right = 190.0
60 60
 margin_bottom = 20.0
61 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 72
 [node name="VBoxContainer2" type="VBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer"]
69 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 77
 [node name="Panel2" type="Panel" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
74
-margin_right = 288.0
78
+margin_right = 304.0
75 79
 margin_bottom = 30.0
76 80
 rect_min_size = Vector2( 0, 30 )
77 81
 size_flags_horizontal = 3
@@ -86,7 +90,7 @@ __meta__ = {
86 90
 
87 91
 [node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
88 92
 margin_top = 34.0
89
-margin_right = 288.0
93
+margin_right = 304.0
90 94
 margin_bottom = 58.0
91 95
 
92 96
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer2"]
@@ -105,7 +109,7 @@ pressed = true
105 109
 
106 110
 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
107 111
 margin_top = 62.0
108
-margin_right = 288.0
112
+margin_right = 304.0
109 113
 margin_bottom = 86.0
110 114
 
111 115
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer"]
@@ -116,14 +120,14 @@ text = "Remove empty messages"
116 120
 
117 121
 [node name="RemoveEmptyMessages" type="CheckBox" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer"]
118 122
 margin_left = 169.0
119
-margin_right = 288.0
123
+margin_right = 304.0
120 124
 margin_bottom = 24.0
121 125
 size_flags_horizontal = 3
122 126
 pressed = true
123 127
 
124 128
 [node name="HBoxContainer3" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
125 129
 margin_top = 90.0
126
-margin_right = 288.0
130
+margin_right = 304.0
127 131
 margin_bottom = 114.0
128 132
 
129 133
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer3"]
@@ -140,7 +144,7 @@ pressed = true
140 144
 
141 145
 [node name="HBoxContainer4" type="HBoxContainer" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2"]
142 146
 margin_top = 118.0
143
-margin_right = 288.0
147
+margin_right = 304.0
144 148
 margin_bottom = 142.0
145 149
 
146 150
 [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer3/VBoxContainer/VBoxContainer2/HBoxContainer4"]
@@ -154,3 +158,20 @@ margin_left = 223.0
154 158
 margin_right = 247.0
155 159
 margin_bottom = 24.0
156 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,68 +2,78 @@ tool
2 2
 extends Control
3 3
 
4 4
 var editor_reference
5
-onready var master_tree = get_node('../MasterTree')
5
+onready var master_tree = get_node('../MasterTreeContainer/MasterTree')
6 6
 onready var settings_editor = get_node('../SettingsEditor')
7 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 16
 # The amazing and revolutionary path system that magically works and you can't
10 17
 # complain because "that is not how you are supposed to work". If there was only
11 18
 # a way to set an id and then access that node via id...
12 19
 # Here you have paths in all its glory. Praise the paths (っ´ω`c)♡
13 20
 onready var n = {
14 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 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 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 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 63
 	# Text preview
53
-	'preview_panel': $VBoxContainer/Panel,
54 64
 	'text_preview': $VBoxContainer/HBoxContainer3/TextEdit,
55 65
 	
56 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 79
 func _ready():
@@ -73,11 +83,15 @@ func _ready():
73 83
 		$VBoxContainer/HBoxContainer3/PreviewButton.icon = load("res://addons/dialogic/Images/Plugin/plugin-editor-icon-dark-theme.svg")
74 84
 	else:
75 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 89
 	# Force preview update
77 90
 	_on_visibility_changed()
78 91
 
79 92
 
80 93
 func load_theme(filename):
94
+	loading = true
81 95
 	current_theme = filename
82 96
 	var theme = DialogicResources.get_theme_config(filename) 
83 97
 	# Settings
@@ -89,6 +103,10 @@ func load_theme(filename):
89 103
 	n['theme_background_color'].color = Color(theme.get_value('background', 'color', '#ff000000'))
90 104
 	n['theme_background_color_visible'].pressed = theme.get_value('background', 'use_color', false)
91 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 111
 	var size_value = theme.get_value('box', 'size', Vector2(910, 167))
94 112
 	n['size_w'].value = size_value.x
@@ -160,6 +178,8 @@ func load_theme(filename):
160 178
 	# Preview text
161 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 183
 	# Updating the preview
164 184
 	_on_PreviewButton_pressed()
165 185
 
@@ -171,18 +191,29 @@ func new_theme():
171 191
 	load_theme(theme_file)
172 192
 	# Check if it is the only theme to set as default
173 193
 	if DialogicUtil.get_theme_list().size() == 1:
174
-		print('only theme, setting as default')
194
+		#print('only theme, setting as default')
175 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 206
 func _on_BackgroundTextureButton_pressed():
179 207
 	editor_reference.godot_dialog("*.png")
180 208
 	editor_reference.godot_dialog_connect(self, "_on_background_selected")
181 209
 
182 210
 
183 211
 func _on_background_selected(path, target):
212
+	if loading == true:
213
+		return
184 214
 	DialogicResources.set_theme_value(current_theme, 'background','image', path)
185 215
 	n['theme_background_image'].text = DialogicResources.get_filename_from_path(path)
216
+	_on_PreviewButton_pressed() # Refreshing the preview
186 217
 
187 218
 
188 219
 func _on_NextIndicatorButton_pressed():
@@ -191,36 +222,54 @@ func _on_NextIndicatorButton_pressed():
191 222
 
192 223
 
193 224
 func _on_indicator_selected(path, target):
225
+	if loading == true:
226
+		return
194 227
 	DialogicResources.set_theme_value(current_theme, 'next_indicator','image', path)
195 228
 	n['theme_next_image'].text = DialogicResources.get_filename_from_path(path)
229
+	_on_PreviewButton_pressed() # Refreshing the preview
196 230
 
197 231
 
198 232
 func _on_NextAnimation_item_selected(index):
199 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 237
 func _on_ColorPickerButton_color_changed(color):
238
+	if loading == true:
239
+		return
203 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 244
 func _on_ColorPickerButtonShadow_color_changed(color):
245
+	if loading == true:
246
+		return
207 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 251
 func _on_CheckBoxShadow_toggled(button_pressed):
252
+	if loading == true:
253
+		return
211 254
 	DialogicResources.set_theme_value(current_theme, 'text','shadow', button_pressed)
255
+	_on_PreviewButton_pressed() # Refreshing the preview
212 256
 
213 257
 
214 258
 func _on_ShadowOffset_value_changed(_value):
259
+	if loading == true:
260
+		return
215 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 265
 func _on_PreviewButton_pressed():
219
-	for i in n['preview_panel'].get_children():
266
+	for i in $VBoxContainer/Panel.get_children():
220 267
 		i.free()
221 268
 	var dialogic_node = load("res://addons/dialogic/Dialog.tscn")
222 269
 	var preview_dialog = dialogic_node.instance()
270
+	preview_dialog.timeline = ''
223 271
 	preview_dialog.preview = true
272
+	preview_dialog.debug_mode = false
224 273
 	preview_dialog.get_node('DefinitionInfo').in_theme_editor = true
225 274
 	
226 275
 	# Random character preview if there are any
@@ -230,21 +279,27 @@ func _on_PreviewButton_pressed():
230 279
 		characters.shuffle()
231 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 285
 	# Creating the one event timeline for the dialog
286
+	var text = preview_dialog.parse_definitions(n['text_preview'].text)
234 287
 	preview_dialog.dialog_script['events'] = [{
235 288
 		"character": character_file,
236 289
 		"portrait":'',
237
-		"text": preview_dialog.parse_definitions(n['text_preview'].text)
290
+		"text": text
238 291
 	}]
239 292
 	preview_dialog.parse_characters(preview_dialog.dialog_script)
240 293
 	preview_dialog.settings = DialogicResources.get_settings_config()
241 294
 	
242 295
 	# Alignment
243
-	n['preview_panel'].add_child(preview_dialog)
296
+	$VBoxContainer/Panel.add_child(preview_dialog)
244 297
 	
245 298
 	preview_dialog.load_dialog()
299
+	# Reloading the theme
246 300
 	preview_dialog.current_theme = preview_dialog.load_theme(current_theme)
247 301
 	
302
+	
248 303
 	# When not performing this step, the dialog name doesn't update the color for some reason
249 304
 	# I should probably refactor the preview dialog to stop making everything manually.
250 305
 	if n['name_auto_color'].pressed:
@@ -252,11 +307,13 @@ func _on_PreviewButton_pressed():
252 307
 			preview_dialog.get_node('TextBubble/NameLabel').set('custom_colors/font_color', characters[0]['color'])
253 308
 	
254 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 314
 func _on_ActionOptionButton_item_selected(index):
315
+	if loading == true:
316
+		return
260 317
 	DialogicResources.set_theme_value(current_theme, 'settings','action_key', n['theme_action_key'].text)
261 318
 
262 319
 
@@ -274,43 +331,68 @@ func _on_FontButton_pressed():
274 331
 
275 332
 
276 333
 func _on_Font_selected(path, target):
334
+	if loading == true:
335
+		return
277 336
 	DialogicResources.set_theme_value(current_theme, 'text','font', path)
278 337
 	n['theme_font'].text = DialogicResources.get_filename_from_path(path)
338
+	_on_PreviewButton_pressed() # Refreshing the preview
279 339
 
280 340
 
281 341
 func _on_textSpeed_value_changed(value):
342
+	if loading == true:
343
+		return
282 344
 	DialogicResources.set_theme_value(current_theme, 'text','speed', value)
345
+	_on_PreviewButton_pressed() # Refreshing the preview
283 346
 
284 347
 
285 348
 func _on_TextMargin_value_changed(value):
349
+	if loading == true:
350
+		return
286 351
 	var final_vector = Vector2(
287 352
 		n['theme_text_margin'].value,
288 353
 		n['theme_text_margin_h'].value
289 354
 	)
290 355
 	DialogicResources.set_theme_value(current_theme, 'text', 'margin', final_vector)
356
+	_on_PreviewButton_pressed() # Refreshing the preview
291 357
 
292 358
 
293 359
 func _on_BackgroundColor_CheckBox_toggled(button_pressed):
360
+	if loading == true:
361
+		return
294 362
 	DialogicResources.set_theme_value(current_theme, 'background', 'use_color', button_pressed)
363
+	_on_PreviewButton_pressed() # Refreshing the preview
295 364
 
296 365
 
297 366
 func _on_BackgroundColor_ColorPickerButton_color_changed(color):
367
+	if loading == true:
368
+		return
298 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 373
 func _on_BackgroundTexture_CheckBox_toggled(button_pressed):
374
+	if loading == true:
375
+		return
302 376
 	DialogicResources.set_theme_value(current_theme, 'background', 'use_image', button_pressed)
303
-
377
+	_on_PreviewButton_pressed() # Refreshing the preview
378
+	
304 379
 
305 380
 func _on_button_background_visible_toggled(button_pressed):
381
+	if loading == true:
382
+		return
306 383
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'use_background_color', button_pressed)
307 384
 
308 385
 
309 386
 func _on_button_background_color_color_changed(color):
387
+	if loading == true:
388
+		return
310 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 393
 func _on_ButtonOffset_value_changed(value):
394
+	if loading == true:
395
+		return
314 396
 	var final_vector = Vector2(
315 397
 		n['button_offset_x'].value,
316 398
 		n['button_offset_y'].value
@@ -319,10 +401,14 @@ func _on_ButtonOffset_value_changed(value):
319 401
 
320 402
 
321 403
 func _on_VerticalSeparation_value_changed(value):
404
+	if loading == true:
405
+		return
322 406
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'gap', n['button_separation'].value)
323 407
 
324 408
 
325 409
 func _on_button_texture_toggled(button_pressed):
410
+	if loading == true:
411
+		return
326 412
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'use_image', button_pressed)
327 413
 
328 414
 
@@ -332,29 +418,43 @@ func _on_ButtonTextureButton_pressed():
332 418
 
333 419
 
334 420
 func _on_button_texture_selected(path, target):
421
+	if loading == true:
422
+		return
335 423
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'image', path)
336 424
 	n['button_image'].text = DialogicResources.get_filename_from_path(path)
337 425
 
338 426
 
339 427
 func _on_ButtonTextColor_color_changed(color):
428
+	if loading == true:
429
+		return
340 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 434
 func _on_Custom_Button_Color_toggled(button_pressed):
435
+	if loading == true:
436
+		return
344 437
 	DialogicResources.set_theme_value(current_theme, 'buttons', 'text_color_enabled', button_pressed)
345 438
 
346 439
 
347 440
 func _on_GlossaryColorPicker_color_changed(color):
441
+	if loading == true:
442
+		return
348 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 447
 func _on_GlossaryFontButton_pressed():
352 448
 	editor_reference.godot_dialog("*.tres")
353 449
 	editor_reference.godot_dialog_connect(self, "_on_Glossary_Font_selected")
354 450
 
451
+
355 452
 func _on_Glossary_Font_selected(path, target):
453
+	if loading == true:
454
+		return
356 455
 	DialogicResources.set_theme_value(current_theme, 'definitions', 'font', path)
357 456
 	n['glossary_font'].text = DialogicResources.get_filename_from_path(path)
457
+	_on_PreviewButton_pressed() # Refreshing the preview
358 458
 
359 459
 
360 460
 func _on_visibility_changed():
@@ -364,47 +464,69 @@ func _on_visibility_changed():
364 464
 	else:
365 465
 		# Erasing all previews since them keeps working
366 466
 		# on background
367
-		for i in n['preview_panel'].get_children():
467
+		for i in $VBoxContainer/Panel.get_children():
368 468
 			i.queue_free()
369 469
 
370 470
 
371 471
 func _on_BoxSize_value_changed(value):
472
+	if loading == true:
473
+		return
372 474
 	var size_value = Vector2(n['size_w'].value, n['size_h'].value)
373 475
 	DialogicResources.set_theme_value(current_theme, 'box', 'size', size_value)
476
+	_on_PreviewButton_pressed() # Refreshing the preview
374 477
 
375 478
 
376 479
 func _on_BottomGap_value_changed(value):
480
+	if loading == true:
481
+		return
377 482
 	DialogicResources.set_theme_value(current_theme, 'box', 'bottom_gap', value)
483
+	_on_PreviewButton_pressed() # Refreshing the preview
378 484
 
379 485
 
380 486
 func _on_Alignment_item_selected(index):
487
+	if loading == true:
488
+		return
381 489
 	if index == 0:
382 490
 		DialogicResources.set_theme_value(current_theme, 'text', 'alignment', 'Left')
383 491
 	elif index == 1:
384 492
 		DialogicResources.set_theme_value(current_theme, 'text', 'alignment', 'Center')
385 493
 	elif index == 2:
386 494
 		DialogicResources.set_theme_value(current_theme, 'text', 'alignment', 'Right')
387
-
495
+	_on_PreviewButton_pressed() # Refreshing the preview
388 496
 
389 497
 
390 498
 func _on_Preview_text_changed():
499
+	if loading == true:
500
+		return
391 501
 	DialogicResources.set_theme_value(current_theme, 'text', 'preview', n['text_preview'].text)
392 502
 
393 503
 
394 504
 func _on_name_auto_color_toggled(button_pressed):
505
+	if loading == true:
506
+		return
395 507
 	DialogicResources.set_theme_value(current_theme, 'name', 'auto_color', button_pressed)
508
+	_on_PreviewButton_pressed() # Refreshing the preview
396 509
 
397 510
 
398 511
 func _on_name_background_visible_toggled(button_pressed):
512
+	if loading == true:
513
+		return
399 514
 	DialogicResources.set_theme_value(current_theme, 'name', 'background_visible', button_pressed)
515
+	_on_PreviewButton_pressed() # Refreshing the preview
400 516
 
401 517
 
402 518
 func _on_name_background_color_changed(color):
519
+	if loading == true:
520
+		return
403 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 525
 func _on_name_image_visible_toggled(button_pressed):
526
+	if loading == true:
527
+		return
407 528
 	DialogicResources.set_theme_value(current_theme, 'name', 'image_visible', button_pressed)
529
+	_on_PreviewButton_pressed() # Refreshing the preview
408 530
 
409 531
 
410 532
 func _on_name_image_pressed():
@@ -413,22 +535,55 @@ func _on_name_image_pressed():
413 535
 
414 536
 
415 537
 func _on_name_texture_selected(path, target):
538
+	if loading == true:
539
+		return
416 540
 	DialogicResources.set_theme_value(current_theme, 'name', 'image', path)
417 541
 	n['name_image'].text = DialogicResources.get_filename_from_path(path)
542
+	_on_PreviewButton_pressed() # Refreshing the preview
418 543
 
419 544
 
420 545
 func _on_shadow_visible_toggled(button_pressed):
546
+	if loading == true:
547
+		return
421 548
 	DialogicResources.set_theme_value(current_theme, 'name', 'shadow_visible', button_pressed)
549
+	_on_PreviewButton_pressed() # Refreshing the preview
422 550
 
423 551
 
424 552
 func _on_name_shadow_color_changed(color):
553
+	if loading == true:
554
+		return
425 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 559
 func _on_name_ShadowOffset_value_changed(_value):
560
+	if loading == true:
561
+		return
429 562
 	DialogicResources.set_theme_value(current_theme, 'name','shadow_offset', 
430 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 567
 func _on_name_BottomGap_value_changed(value):
568
+	if loading == true:
569
+		return
434 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

@@ -0,0 +1,16 @@
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

@@ -0,0 +1,139 @@
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,7 +6,7 @@ var timeline_name: String = ''
6 6
 var timeline_file: String = ''
7 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 10
 onready var timeline = $TimelineArea/TimeLine
11 11
 onready var events_warning = $ScrollContainer/EventContainer/EventsWarning
12 12
 
@@ -18,8 +18,26 @@ var selected_item : Node
18 18
 
19 19
 
20 20
 var moving_piece = null
21
+var piece_was_dragged = false
21 22
 
22 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 41
 	# We connect all the event buttons to the event creation functions
24 42
 	for b in $ScrollContainer/EventContainer.get_children():
25 43
 		if b is Button:
@@ -34,6 +52,136 @@ func _ready():
34 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 185
 func _process(delta):
38 186
 	if moving_piece != null:
39 187
 		var current_position = get_global_mouse_position()
@@ -45,10 +193,12 @@ func _process(delta):
45 193
 			up_offset = (up_offset / 2) + 5
46 194
 			if current_position.y < node_position - up_offset:
47 195
 				move_block(moving_piece, 'up')
196
+				piece_was_dragged = true
48 197
 		if down_offset != null:
49 198
 			down_offset = height + (down_offset / 2) + 5
50 199
 			if current_position.y > node_position + down_offset:
51 200
 				move_block(moving_piece, 'down')
201
+				piece_was_dragged = true
52 202
 
53 203
 
54 204
 func _clear_selection():
@@ -56,6 +206,7 @@ func _clear_selection():
56 206
 		var selected_panel: PanelContainer = selected_item.get_node("PanelContainer")
57 207
 		if selected_panel != null:
58 208
 			selected_panel.set('custom_styles/panel', saved_style)
209
+			
59 210
 	selected_item = null
60 211
 	saved_style = null
61 212
 
@@ -75,18 +226,28 @@ func _select_item(item: Node):
75 226
 				panel.set('custom_styles/panel', selected_style_text)
76 227
 			else:
77 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 232
 	else:
79 233
 		_clear_selection()
80 234
 
81 235
 
82 236
 func _on_gui_input(event, item: Node):
83 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 246
 			if not _is_item_selected(item):
86 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 253
 # Event Creation signal for buttons
@@ -154,8 +315,14 @@ func indent_events() -> void:
154 315
 	for event in event_list:
155 316
 		var indent_node = event.get_node("Indent")
156 317
 		indent_node.visible = false
318
+		
157 319
 	# Adding new indents
158 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 326
 		if event.event_data.has('question') or event.event_data.has('condition'):
160 327
 			indent += 1
161 328
 			starter = true
@@ -186,8 +353,8 @@ func indent_events() -> void:
186 353
 
187 354
 
188 355
 func load_timeline(filename: String):
189
-	print('---------------------------')
190
-	print('Loading: ', filename)
356
+	#print('---------------------------')
357
+	#print('Loading: ', filename)
191 358
 	clear_timeline()
192 359
 	var start_time = OS.get_system_time_msecs()
193 360
 	timeline_file = filename
@@ -234,6 +401,8 @@ func load_timeline(filename: String):
234 401
 				create_event("SetValue", i)
235 402
 			{'set_theme'}:
236 403
 				create_event("SetTheme", i)
404
+			{'call_node'}:
405
+				create_event("CallNode", i)
237 406
 
238 407
 	if data.size() < 1:
239 408
 		events_warning.visible = true
@@ -243,7 +412,7 @@ func load_timeline(filename: String):
243 412
 		#fold_all_nodes()
244 413
 	
245 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 418
 func clear_timeline():
@@ -317,6 +486,9 @@ func generate_save_data():
317 486
 		'events': []
318 487
 	}
319 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 492
 		if event.is_queued_for_deletion() == false: # Checking that the event is not waiting to be removed
321 493
 			info_to_save['events'].append(event.event_data)
322 494
 	return info_to_save

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

@@ -1,4 +1,4 @@
1
-[gd_scene load_steps=22 format=2]
1
+[gd_scene load_steps=25 format=2]
2 2
 
3 3
 [ext_resource path="res://addons/dialogic/Images/character-join.svg" type="Texture" id=1]
4 4
 [ext_resource path="res://addons/dialogic/Images/dialog.svg" type="Texture" id=2]
@@ -19,6 +19,9 @@
19 19
 [ext_resource path="res://addons/dialogic/Editor/TimelineEditor/TimelineEditor.gd" type="Script" id=17]
20 20
 [ext_resource path="res://addons/dialogic/Images/theme.svg" type="Texture" id=18]
21 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 26
 [sub_resource type="StyleBoxFlat" id=1]
24 27
 content_margin_left = 5.0
@@ -48,7 +51,6 @@ anchor_bottom = 1.0
48 51
 margin_bottom = 138.0
49 52
 size_flags_horizontal = 3
50 53
 size_flags_vertical = 3
51
-custom_constants/separation = 0
52 54
 split_offset = 7
53 55
 script = ExtResource( 17 )
54 56
 __meta__ = {
@@ -56,11 +58,12 @@ __meta__ = {
56 58
 }
57 59
 
58 60
 [node name="TimelineArea" type="ScrollContainer" parent="."]
59
-margin_right = 816.0
61
+margin_right = 836.0
60 62
 margin_bottom = 738.0
61 63
 size_flags_horizontal = 3
62 64
 size_flags_vertical = 3
63 65
 custom_styles/bg = SubResource( 1 )
66
+script = ExtResource( 22 )
64 67
 __meta__ = {
65 68
 "_edit_use_anchors_": false
66 69
 }
@@ -68,7 +71,7 @@ __meta__ = {
68 71
 [node name="TimeLine" type="VBoxContainer" parent="TimelineArea"]
69 72
 margin_left = 5.0
70 73
 margin_top = 5.0
71
-margin_right = 811.0
74
+margin_right = 831.0
72 75
 margin_bottom = 733.0
73 76
 grow_horizontal = 2
74 77
 grow_vertical = 2
@@ -76,13 +79,13 @@ size_flags_horizontal = 3
76 79
 size_flags_vertical = 3
77 80
 
78 81
 [node name="ScrollContainer" type="ScrollContainer" parent="."]
79
-margin_left = 824.0
82
+margin_left = 844.0
80 83
 margin_right = 1024.0
81 84
 margin_bottom = 738.0
82
-rect_min_size = Vector2( 200, 0 )
85
+rect_min_size = Vector2( 180, 0 )
83 86
 
84 87
 [node name="EventContainer" type="VBoxContainer" parent="ScrollContainer"]
85
-margin_right = 200.0
88
+margin_right = 180.0
86 89
 margin_bottom = 738.0
87 90
 size_flags_horizontal = 3
88 91
 size_flags_vertical = 3
@@ -91,14 +94,14 @@ __meta__ = {
91 94
 }
92 95
 
93 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 99
 custom_styles/panel = SubResource( 2 )
97 100
 
98 101
 [node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/EventContainer/EventsWarning"]
99 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 105
 size_flags_horizontal = 3
103 106
 size_flags_vertical = 3
104 107
 __meta__ = {
@@ -107,15 +110,15 @@ __meta__ = {
107 110
 
108 111
 [node name="TextureRect" type="TextureRect" parent="ScrollContainer/EventContainer/EventsWarning/HBoxContainer"]
109 112
 margin_right = 40.0
110
-margin_bottom = 40.0
113
+margin_bottom = 48.0
111 114
 rect_min_size = Vector2( 40, 40 )
112 115
 texture = ExtResource( 13 )
113 116
 stretch_mode = 4
114 117
 
115 118
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/EventsWarning/HBoxContainer"]
116 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 122
 rect_min_size = Vector2( 100, 0 )
120 123
 size_flags_horizontal = 3
121 124
 size_flags_vertical = 1
@@ -124,9 +127,9 @@ text = "Add an event to start building your timeline"
124 127
 autowrap = true
125 128
 
126 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 134
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer6"]
132 135
 margin_right = 77.0
@@ -135,38 +138,44 @@ text = "Main Events"
135 138
 
136 139
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer6"]
137 140
 margin_left = 81.0
138
-margin_right = 200.0
141
+margin_right = 180.0
139 142
 margin_bottom = 14.0
140 143
 size_flags_horizontal = 3
141 144
 
142 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 149
 text = "  Text Event"
147 150
 icon = ExtResource( 2 )
148 151
 align = 0
152
+script = ExtResource( 21 )
153
+EventName = "TextBlock"
149 154
 
150 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 159
 text = "  Character Join"
155 160
 icon = ExtResource( 1 )
156 161
 align = 0
162
+script = ExtResource( 21 )
163
+EventName = "CharacterJoinBlock"
157 164
 
158 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 169
 text = "  Character Leave"
163 170
 icon = ExtResource( 7 )
164 171
 align = 0
172
+script = ExtResource( 21 )
173
+EventName = "CharacterLeaveBlock"
165 174
 
166 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 180
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer5"]
172 181
 margin_right = 33.0
@@ -175,54 +184,64 @@ text = "Logic"
175 184
 
176 185
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer5"]
177 186
 margin_left = 37.0
178
-margin_right = 200.0
187
+margin_right = 180.0
179 188
 margin_bottom = 14.0
180 189
 size_flags_horizontal = 3
181 190
 
182 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 195
 text = "  Question"
187 196
 icon = ExtResource( 8 )
188 197
 align = 0
198
+script = ExtResource( 21 )
199
+EventName = "Question"
189 200
 
190 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 205
 text = "  Choice"
195 206
 icon = ExtResource( 12 )
196 207
 align = 0
208
+script = ExtResource( 21 )
209
+EventName = "Choice"
197 210
 
198 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 215
 text = " Condition"
203 216
 icon = ExtResource( 5 )
204 217
 align = 0
218
+script = ExtResource( 21 )
219
+EventName = "IfCondition"
205 220
 
206 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 225
 text = "  End Branch"
211 226
 icon = ExtResource( 9 )
212 227
 align = 0
228
+script = ExtResource( 21 )
229
+EventName = "EndBranch"
213 230
 
214 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 235
 text = "  Set Value"
219 236
 icon = ExtResource( 11 )
220 237
 align = 0
238
+script = ExtResource( 21 )
239
+EventName = "SetValue"
221 240
 
222 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 246
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer3"]
228 247
 margin_right = 56.0
@@ -231,55 +250,65 @@ text = "Timeline"
231 250
 
232 251
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer3"]
233 252
 margin_left = 60.0
234
-margin_right = 200.0
253
+margin_right = 180.0
235 254
 margin_bottom = 14.0
236 255
 size_flags_horizontal = 3
237 256
 
238 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 261
 hint_tooltip = "This will instantly teleport you to the start of the desired timeline."
243 262
 text = "  Change Timeline"
244 263
 icon = ExtResource( 10 )
245 264
 align = 0
265
+script = ExtResource( 21 )
266
+EventName = "ChangeTimeline"
246 267
 
247 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 272
 text = "  Scene Event"
252 273
 icon = ExtResource( 4 )
253 274
 align = 0
275
+script = ExtResource( 21 )
276
+EventName = "SceneEvent"
254 277
 
255 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 282
 text = "  Close Dialog"
260 283
 icon = ExtResource( 6 )
261 284
 align = 0
285
+script = ExtResource( 21 )
286
+EventName = "CloseDialog"
262 287
 
263 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 292
 text = "  Wait Seconds"
268 293
 icon = ExtResource( 14 )
269 294
 align = 0
295
+script = ExtResource( 21 )
296
+EventName = "WaitSeconds"
270 297
 
271 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 302
 text = "  Set Theme"
276 303
 icon = ExtResource( 18 )
277 304
 align = 0
305
+script = ExtResource( 21 )
306
+EventName = "SetTheme"
278 307
 
279 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 313
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer4"]
285 314
 margin_right = 37.0
@@ -288,30 +317,34 @@ text = "Audio"
288 317
 
289 318
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer4"]
290 319
 margin_left = 41.0
291
-margin_right = 200.0
320
+margin_right = 180.0
292 321
 margin_bottom = 14.0
293 322
 size_flags_horizontal = 3
294 323
 
295 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 328
 text = "  Audio Event"
300 329
 icon = ExtResource( 3 )
301 330
 align = 0
331
+script = ExtResource( 21 )
332
+EventName = "AudioBlock"
302 333
 
303 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 338
 text = "  Background Music"
308 339
 icon = ExtResource( 19 )
309 340
 align = 0
341
+script = ExtResource( 21 )
342
+EventName = "BackgroundMusic"
310 343
 
311 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 349
 [node name="Label" type="Label" parent="ScrollContainer/EventContainer/HBoxContainer"]
317 350
 margin_right = 39.0
@@ -320,24 +353,38 @@ text = "Godot"
320 353
 
321 354
 [node name="HSeparator2" type="HSeparator" parent="ScrollContainer/EventContainer/HBoxContainer"]
322 355
 margin_left = 43.0
323
-margin_right = 200.0
356
+margin_right = 180.0
324 357
 margin_bottom = 14.0
325 358
 size_flags_horizontal = 3
326 359
 
327 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 364
 text = "  Emit Signal"
332 365
 icon = ExtResource( 16 )
333 366
 align = 0
367
+script = ExtResource( 21 )
368
+EventName = "EmitSignal"
334 369
 
335 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 374
 hint_tooltip = "This will instantly change
340 375
 the current scene."
341 376
 text = "  Change Scene"
342 377
 icon = ExtResource( 15 )
343 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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,4 @@
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,15 +2,15 @@
2 2
 
3 3
 importer="texture"
4 4
 type="StreamTexture"
5
-path="res://.import/icon.svg-ea02ac3b105238214f20335b7e707d35.stex"
5
+path="res://.import/character.svg-dce8982b5c5669e98479bbff64aab08f.stex"
6 6
 metadata={
7 7
 "vram_texture": false
8 8
 }
9 9
 
10 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 15
 [params]
16 16
 

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

@@ -0,0 +1,3 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,3 @@
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

@@ -0,0 +1,34 @@
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,3 +1,3 @@
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 3
 </svg>

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

@@ -0,0 +1,3 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,3 @@
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

@@ -0,0 +1,34 @@
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,3 +1,3 @@
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 3
 </svg>

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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,4 @@
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,15 +2,15 @@
2 2
 
3 3
 importer="texture"
4 4
 type="StreamTexture"
5
-path="res://.import/Tools.svg-55329d2aaa20f24bd86cd6875ebc09c7.stex"
5
+path="res://.import/theme-2.svg-17486fa9879ca7d5056e82b248808b3d.stex"
6 6
 metadata={
7 7
 "vram_texture": false
8 8
 }
9 9
 
10 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 15
 [params]
16 16
 

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

@@ -1,4 +1,4 @@
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 4
 </svg>

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

@@ -0,0 +1,6 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,6 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,7 @@
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,15 +2,15 @@
2 2
 
3 3
 importer="texture"
4 4
 type="StreamTexture"
5
-path="res://.import/logo.png-f156ce86697c9eb967d19393aa69e86f.stex"
5
+path="res://.import/timeline.svg-4646668e3960b7f37ecffae1640eccc7.stex"
6 6
 metadata={
7 7
 "vram_texture": false
8 8
 }
9 9
 
10 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 15
 [params]
16 16
 

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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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,4 +1,4 @@
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 4
 </svg>

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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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,4 +1,4 @@
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 4
 </svg>

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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,4 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,5 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,5 @@
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

@@ -0,0 +1,34 @@
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,5 +1,5 @@
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 5
 </svg>

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

@@ -0,0 +1,7 @@
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

@@ -0,0 +1,34 @@
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

@@ -0,0 +1,7 @@
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

@@ -0,0 +1,34 @@
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,7 +1,7 @@
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 7
 </svg>

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

@@ -1 +0,0 @@
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,5 +0,0 @@
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,6 +36,8 @@ onready var Portrait = load("res://addons/dialogic/Nodes/Portrait.tscn")
36 36
 var dialog_script = {}
37 37
 var questions #for keeping track of the questions answered
38 38
 
39
+onready var tween_node = $TextBubble/Tween
40
+
39 41
 func _ready():
40 42
 	# Loading the config files
41 43
 	load_config_files()
@@ -58,6 +60,8 @@ func _ready():
58 60
 	$Background.visible = false
59 61
 	$TextBubble/RichTextLabel.meta_underlined = false
60 62
 	$DefinitionInfo.visible = false
63
+	
64
+	tween_node.connect("tween_completed", self, '_on_Tween_tween_completed')
61 65
 
62 66
 	# Getting the character information
63 67
 	characters = DialogicUtil.get_character_list()
@@ -89,7 +93,8 @@ func resize_main():
89 93
 			set_deferred('rect_size', get_viewport().size)
90 94
 		dprint("Viewport", get_viewport().size)
91 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 100
 func set_current_dialog(dialog_path: String):
@@ -128,7 +133,6 @@ func parse_characters(dialog_script):
128 133
 func parse_text_lines(unparsed_dialog_script: Dictionary) -> Dictionary:
129 134
 	var parsed_dialog: Dictionary = unparsed_dialog_script
130 135
 	var new_events: Array = []
131
-	var alignment = 'Left'
132 136
 	var split_new_lines = true
133 137
 	var remove_empty_messages = true
134 138
 
@@ -142,10 +146,6 @@ func parse_text_lines(unparsed_dialog_script: Dictionary) -> Dictionary:
142 146
 	if settings.has_section_key('dialog', 'new_lines'):
143 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 149
 	# Parsing
150 150
 	for event in unparsed_dialog_script['events']:
151 151
 		if event.has('text') and event.has('character') and event.has('portrait'):
@@ -155,24 +155,14 @@ func parse_text_lines(unparsed_dialog_script: Dictionary) -> Dictionary:
155 155
 				var lines = event['text'].split('\n')
156 156
 				var i = 0
157 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 158
 					var _e = {
164
-						'text': text,
159
+						'text': lines[i],
165 160
 						'character': event['character'],
166 161
 						'portrait': event['portrait']
167 162
 					}
168 163
 					new_events.append(_e)
169 164
 					i += 1
170 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 166
 				new_events.append(event)
177 167
 		else:
178 168
 			new_events.append(event)
@@ -182,6 +172,16 @@ func parse_text_lines(unparsed_dialog_script: Dictionary) -> Dictionary:
182 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 185
 func parse_branches(dialog_script: Dictionary) -> Dictionary:
186 186
 	questions = [] # Resetting the questions
187 187
 
@@ -228,15 +228,16 @@ func parse_branches(dialog_script: Dictionary) -> Dictionary:
228 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 232
 	if Engine.is_editor_hint():
234 233
 		# Loading variables again to avoid issues in the preview dialog
235 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 241
 	return final_text
241 242
 
242 243
 
@@ -249,7 +250,7 @@ func _insert_variable_definitions(text: String):
249 250
 	
250 251
 	
251 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 254
 	var final_text := text;
254 255
 	# I should use regex here, but this is way easier :)
255 256
 	for d in definitions['glossary']:
@@ -273,9 +274,9 @@ func _process(delta):
273 274
 
274 275
 func _input(event: InputEvent) -> void:
275 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 278
 			# Skip to end if key is pressed during the text animation
278
-			$TextBubble/Tween.seek(999)
279
+			tween_node.seek(999)
279 280
 			finished = true
280 281
 		else:
281 282
 			if waiting_for_answer == false and waiting_for_input == false:
@@ -290,14 +291,8 @@ func show_dialog():
290 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 298
 func update_name(character, color: Color = Color.white) -> void:
@@ -308,20 +303,22 @@ func update_name(character, color: Color = Color.white) -> void:
308 303
 				parsed_name = character['display_name']
309 304
 		if character.has('color'):
310 305
 			color = character['color']
311
-		parsed_name = parse_definitions(parsed_name)
306
+		parsed_name = parse_definitions(parsed_name, true, false)
312 307
 		$TextBubble/NameLabel.visible = true
313 308
 		# Hack to reset the size
314 309
 		$TextBubble/NameLabel.rect_min_size = Vector2(0, 0)
315 310
 		$TextBubble/NameLabel.rect_size = Vector2(-1, 40)
316 311
 		# Setting the color and text
317 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 315
 	else:
320 316
 		$TextBubble/NameLabel.visible = false
321 317
 
322 318
 
323 319
 func update_text(text):
324 320
 	# Updating the text and starting the animation from 0
321
+	text = parse_alignment(text)
325 322
 	$TextBubble/RichTextLabel.bbcode_text = parse_definitions(text)
326 323
 	$TextBubble/RichTextLabel.percent_visible = 0
327 324
 
@@ -331,6 +328,16 @@ func update_text(text):
331 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 341
 func on_timeline_start():
335 342
 	if not Engine.is_editor_hint():
336 343
 		DialogicSingleton.save_definitions()
@@ -360,7 +367,9 @@ func load_dialog(skip_add = false):
360 367
 	# This will load the next entry in the dialog_script array.
361 368
 	if dialog_script.has('events'):
362 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 373
 		else:
365 374
 			if Engine.is_editor_hint() == false:
366 375
 				queue_free()
@@ -426,8 +435,7 @@ func event_handler(event: Dictionary):
426 435
 			emit_signal("event_start", "action", event)
427 436
 			if event['action'] == 'leaveall':
428 437
 				if event['character'] == '[All]':
429
-					for p in $Portraits.get_children():
430
-						p.fade_out()
438
+					characters_leave_all()
431 439
 				else:
432 440
 					for p in $Portraits.get_children():
433 441
 						if p.character_data['file'] == event['character']:
@@ -455,7 +463,18 @@ func event_handler(event: Dictionary):
455 463
 		{'background'}:
456 464
 			emit_signal("event_start", "background", event)
457 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 478
 			go_to_next_event()
460 479
 		{'audio'}, {'audio', 'file'}:
461 480
 			emit_signal("event_start", "audio", event)
@@ -483,8 +502,7 @@ func event_handler(event: Dictionary):
483 502
 			go_to_next_event()
484 503
 		{'close_dialog'}:
485 504
 			emit_signal("event_start", "close_dialog", event)
486
-			on_timeline_end()
487
-			queue_free()
505
+			close_dialog_event()
488 506
 		{'set_theme'}:
489 507
 			emit_signal("event_start", "set_theme", event)
490 508
 			if event['set_theme'] != '':
@@ -524,6 +542,31 @@ func event_handler(event: Dictionary):
524 542
 				operation = event["operation"]
525 543
 			DialogicSingleton.set_variable_from_id(event['definition'], event['set_value'], operation)
526 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 571
 			visible = false
529 572
 			dprint('Other event. ', event)
@@ -621,11 +664,6 @@ func _on_option_selected(option, variable, value):
621 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 667
 func _on_TextInputDialog_confirmed():
630 668
 	pass # Replace with function body.
631 669
 
@@ -638,15 +676,22 @@ func go_to_next_event():
638 676
 
639 677
 func grab_portrait_focus(character_data, event: Dictionary = {}) -> bool:
640 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 683
 	for portrait in $Portraits.get_children():
642 684
 		if portrait.character_data == character_data:
643 685
 			exists = true
644
-			portrait.focus()
686
+			
687
+			if visually_focus:
688
+				portrait.focus()
645 689
 			if event.has('portrait'):
646 690
 				if event['portrait'] != '':
647 691
 					portrait.set_portrait(event['portrait'])
648 692
 		else:
649
-			portrait.focusout()
693
+			if visually_focus:
694
+				portrait.focusout()
650 695
 	return exists
651 696
 
652 697
 
@@ -712,6 +757,11 @@ func load_theme(filename):
712 757
 	$TextBubble/TextureRect.texture = load(theme.get_value('background','image', "res://addons/dialogic/Images/background/background-2.png"))
713 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 765
 	$TextBubble/ColorRect.visible = theme.get_value('background', 'use_color', false)
716 766
 	$TextBubble/TextureRect.visible = theme.get_value('background', 'use_image', true)
717 767
 
@@ -731,7 +781,7 @@ func load_theme(filename):
731 781
 	$TextBubble/NameLabel/TextureRect.visible = theme.get_value('name', 'image_visible', false)
732 782
 	$TextBubble/NameLabel/TextureRect.texture = load(theme.get_value('name','image', "res://addons/dialogic/Images/background/background-2.png"))
733 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 785
 		$TextBubble/NameLabel.set('custom_colors/font_color_shadow', Color(theme.get_value('name', 'shadow', '#9e000000')))
736 786
 		$TextBubble/NameLabel.set('custom_constants/shadow_offset_x', name_shadow_offset.x)
737 787
 		$TextBubble/NameLabel.set('custom_constants/shadow_offset_y', name_shadow_offset.y)
@@ -758,7 +808,7 @@ func _on_RichTextLabel_meta_hover_started(meta):
758 808
 				'color': current_theme.get_value('definitions', 'color', '#ffbebebe'),
759 809
 			})
760 810
 			correct_type = true
761
-			print(d)
811
+			dprint(d)
762 812
 
763 813
 	if correct_type:
764 814
 		definition_visible = true
@@ -802,6 +852,11 @@ func dprint(string, arg1='', arg2='', arg3='', arg4='' ):
802 852
 func _compare_definitions(def_value: String, event_value: String, condition: String):
803 853
 	var condition_met = false;
804 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 860
 		var converted_def_value = def_value
806 861
 		var converted_event_value = event_value
807 862
 		if def_value.is_valid_float() and event_value.is_valid_float():
@@ -821,3 +876,27 @@ func _compare_definitions(def_value: String, event_value: String, condition: Str
821 876
 			"<=":
822 877
 				condition_met = converted_def_value <= converted_event_value
823 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,7 +164,34 @@ static func create_empty_file(path):
164 164
 	file.open(path, File.WRITE)
165 165
 	file.store_string('')
166 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 196
 # CONFIG UTIL
170 197
 
@@ -184,7 +211,12 @@ static func get_config(id: String) -> ConfigFile:
184 211
 
185 212
 static func remove_file(path: String):
186 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 222
 # JSON UTIL
@@ -264,6 +296,10 @@ static func add_theme(filename: String):
264 296
 
265 297
 static func delete_theme(filename: String):
266 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 304
 # SETTINGS
269 305
 # Can only be edited in the editor

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

@@ -1,6 +1,8 @@
1 1
 extends EditorInspectorPlugin
2 2
 
3 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 8
 func can_handle(object):
@@ -15,8 +17,21 @@ func parse_property(object, type, path, hint, hint_text, usage):
15 17
 		if type == TYPE_STRING:
16 18
 			# Create an instance of the custom property editor and register
17 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 23
 			# Inform the editor to remove the default property editor for
20 24
 			# this property type.
21 25
 			return true
22 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,23 +1,49 @@
1 1
 tool
2 2
 extends EditorProperty
3 3
 
4
-
5
-# The main control for editing the property.
4
+# The main controls for editing the property.
6 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 12
 # An internal value of the property.
8 13
 var current_value = ''
9 14
 # A guard against internal changes when the property is updated.
10 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 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 40
 	# Make sure the control is able to retain the focus.
17 41
 	add_focusable(timelines_dropdown)
42
+	
18 43
 	# Setup the initial state and connect to the signal to track changes.
19 44
 	timelines_dropdown.connect("about_to_show", self, "_about_to_show_menu")
20 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 49
 func _about_to_show_menu():
@@ -33,25 +59,51 @@ func _about_to_show_menu():
33 59
 		timelines_dropdown.get_popup().set_item_metadata(index, {'file': c['file'], 'color': c['color']})
34 60
 		index += 1
35 61
 
62
+
36 63
 func _on_timeline_selected(index):
37 64
 	var text = timelines_dropdown.get_popup().get_item_text(index)
38 65
 	var metadata = timelines_dropdown.get_popup().get_item_metadata(index)
39 66
 	current_value = metadata['file']
40 67
 	timelines_dropdown.text = text
68
+	timelines_dropdown.hint_tooltip = text
69
+	_update_edit_button(current_value)
41 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 78
 func update_property():
45 79
 	# Read the current value from the property.
46 80
 	var new_value = get_edited_object()[get_edited_property()]
81
+	_update_edit_button(new_value)
82
+	
47 83
 	if (new_value == current_value):
48 84
 		return
49
-
85
+		
50 86
 	# Update the control with the new value.
51 87
 	updating = true
52 88
 	current_value = new_value
53 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 95
 	for c in DialogicUtil.get_timeline_list():
55 96
 		if c['file'] == current_value:
56 97
 			timelines_dropdown.text = c['name']
98
+			timelines_dropdown.hint_tooltip = c['name']
99
+			
57 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,6 +17,8 @@ func _enter_tree() -> void:
17 17
 	_add_custom_editor_view()
18 18
 	get_editor_interface().get_editor_viewport().add_child(_editor_view)
19 19
 	make_visible(false)
20
+	_parts_inspector.dialogic_editor_plugin = self
21
+	_parts_inspector.dialogic_editor_view = _editor_view
20 22
 
21 23
 
22 24
 func _ready():

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

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

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

@@ -1 +1 @@
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 +1 @@
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 +1 @@
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 +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.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 +1 @@
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 +1 @@
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 +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.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 +1 @@
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 +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.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 +1 @@
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 +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.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 +1 @@
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 +1 @@
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