Made a toolset folder, and added the Dialogic plugin.

This commit is contained in:
PersonGuyGit
2022-07-31 11:30:54 -06:00
parent ecf2d792cb
commit 09f1961112
886 changed files with 34865 additions and 0 deletions

View File

@ -0,0 +1,374 @@
tool
extends Control
####################################################################################################
## VARIABLES
####################################################################################################
# references
var editor_reference
onready var master_tree = get_node('../MasterTreeContainer/MasterTree')
var portrait_entry = load("res://addons/dialogic/Editor/CharacterEditor/PortraitEntry.tscn")
onready var nodes = {
'editor': $Split/EditorScroll/Editor,
'name': $Split/EditorScroll/Editor/NameAndColor/NameLineEdit,
'color': $Split/EditorScroll/Editor/NameAndColor/ColorPickerButton,
'display_name_checkbox': $Split/EditorScroll/Editor/DisplayName/CheckBox,
'display_name': $Split/EditorScroll/Editor/DisplayName/LineEdit,
'nickname_checkbox': $Split/EditorScroll/Editor/DisplayNickname/CheckBox,
'nickname': $Split/EditorScroll/Editor/DisplayNickname/LineEdit,
'description': $Split/EditorScroll/Editor/Description/TextEdit,
'theme':$Split/EditorScroll/Editor/Theme/ThemeButton,
'file': $Split/EditorScroll/Editor/FileName/LineEdit,
'mirror_portraits_checkbox' : $Split/EditorScroll/Editor/HBoxContainer/MirrorOption/MirrorPortraitsCheckBox,
'scale': $Split/EditorScroll/Editor/HBoxContainer/Scale,
'offset_x': $Split/EditorScroll/Editor/HBoxContainer/OffsetX,
'offset_y': $Split/EditorScroll/Editor/HBoxContainer/OffsetY,
'portrait_search':$Split/EditorScroll/Editor/Portraits/Search,
'portrait_list': $Split/EditorScroll/Editor/PortraitPanel/VBoxContainer/ScrollContainer/VBoxContainer/PortraitList,
'new_portrait_button': $Split/EditorScroll/Editor/PortraitPanel/VBoxContainer/Labels/HBoxContainer/NewPortrait,
'import_from_folder_button': $Split/EditorScroll/Editor/PortraitPanel/VBoxContainer/Labels/HBoxContainer/ImportFromFolder,
'portrait_preview_full': $Split/Preview/Background/FullTextureRect,
'portrait_preview_real': $Split/Preview/Background/Positioner/RealSizedRect,
'image_label': $Split/Preview/Background/TLabel10,
}
# data
var opened_character_data
var selected_theme_file = ''
####################################################################################################
## SCRIPT
####################################################################################################
# connect functions; translate buttons; update styles, etc...
func _ready():
editor_reference = find_parent('EditorView')
nodes['new_portrait_button'].text = " "+DTS.translate("New portrait")
nodes['import_from_folder_button'].text = " "+DTS.translate("Import folder")
# connecting signals
nodes['name'].connect('text_changed', self, '_on_name_changed')
nodes['name'].connect('focus_exited', self, '_update_name_on_tree')
nodes['color'].connect('color_changed', self, '_on_color_changed')
nodes['display_name_checkbox'].connect('toggled', self, '_on_display_name_toggled')
nodes['nickname_checkbox'].connect('toggled', self, '_on_nickname_toggled')
nodes['theme'].connect("about_to_show", self, "build_ThemePickerMenu")
nodes['portrait_search'].connect('text_changed', self, '_on_PortraitSearch_text_changed')
nodes['portrait_search'].right_icon = get_icon("Search", "EditorIcons")
nodes['import_from_folder_button'].connect('pressed', self, '_on_Import_Portrait_Folder_Button_pressed')
nodes['new_portrait_button'].connect('pressed', self, '_on_New_Portrait_Button_pressed')
# updating styles
var style = $Split/EditorScroll.get('custom_styles/bg')
style.set('bg_color', get_color("base_color", "Editor"))
nodes['new_portrait_button'].icon = get_icon("Add", "EditorIcons")
nodes['import_from_folder_button'].icon = get_icon("Folder", "EditorIcons")
$Split/EditorScroll/Editor/Portraits/Title.set('custom_fonts/font', get_font("doc_title", "EditorFonts"))
$Split/EditorScroll/Editor/PortraitPanel.set('custom_styles/panel', get_stylebox("Background", "EditorStyles"))
# loading default setup
_on_PreviewMode_item_selected(DialogicResources.get_settings_value('editor', 'character_preview_mode', 1))
$Split/Preview/Background/PreviewMode.select(DialogicResources.get_settings_value('editor', 'character_preview_mode', 1))
$Split/Preview/Background/PreviewMode.set_item_text(0, DTS.translate("Full View"))
$Split/Preview/Background/PreviewMode.set_item_text(1, DTS.translate("Actual Size"))
# removes all input for a new character
func clear_character_editor():
nodes['file'].text = ''
nodes['name'].text = ''
nodes['color'].color = Color('#ffffff')
nodes['display_name_checkbox'].pressed = false
nodes['display_name'].text = ''
nodes['nickname_checkbox'].pressed = false
nodes['nickname'].text = ''
nodes['description'].text = ''
nodes['theme'].text = 'No custom theme'
selected_theme_file = ''
nodes['portrait_search'].text = ''
nodes['portraits'] = []
nodes['scale'].value = 100
nodes['mirror_portraits_checkbox'].pressed = false
nodes['offset_x'].value = 0
nodes['offset_y'].value = 0
# Clearing portraits
for p in nodes['portrait_list'].get_children():
p.queue_free()
nodes['portrait_preview_full'].texture = null
nodes['portrait_preview_real'].texture = null
nodes['portrait_preview_real'].rect_scale = Vector2(1, 1)
# creates new character data
func create_character():
var character_file = 'character-' + str(OS.get_unix_time()) + '.json'
var character = {
'color': '#ffffff',
'id': character_file,
'portraits': [],
'mirror_portraits' :false
}
DialogicResources.set_character(character)
character['metadata'] = {'file': character_file}
return character
####################################################################################################
## SAVING AND LOADING
####################################################################################################
# returns all of the current data in the format it's saved as
func generate_character_data_to_save():
var portraits = []
for p in nodes['portrait_list'].get_children():
var entry = {}
entry['name'] = p.get_node("NameEdit").text
entry['path'] = p.get_node("PathEdit").text
portraits.append(entry)
var info_to_save = {
'id': nodes['file'].text,
'color': '#' + nodes['color'].color.to_html(),
'display_name_bool': nodes['display_name_checkbox'].pressed,
'display_name': nodes['display_name'].text,
'nickname_bool': nodes['nickname_checkbox'].pressed,
'nickname': nodes['nickname'].text,
'description': nodes['description'].text,
'theme': selected_theme_file,
'portraits': portraits,
'scale': nodes['scale'].value,
'mirror_portraits': nodes["mirror_portraits_checkbox"].pressed,
'offset_x': nodes['offset_x'].value,
'offset_y': nodes['offset_y'].value,
}
# Adding name later for cases when no name is provided
if nodes['name'].text != '':
info_to_save['name'] = nodes['name'].text
return info_to_save
# save the currently opened data
func save_character():
var info_to_save = generate_character_data_to_save()
if info_to_save['id']:
DialogicResources.set_character(info_to_save)
opened_character_data = info_to_save
# load data in
func load_character(filename: String):
clear_character_editor()
var data = DialogicResources.get_character_json(filename)
opened_character_data = data
nodes['file'].text = data['id']
nodes['name'].text = data.get('name', '')
nodes['color'].color = Color(data.get('color','#ffffffff'))
nodes['display_name_checkbox'].pressed = data.get('display_name_bool', false)
nodes['display_name'].text = data.get('display_name', '')
nodes['nickname_checkbox'].pressed = data.get('nickname_bool', false)
nodes['nickname'].text = data.get('nickname', '')
nodes['description'].text = data.get('description', '')
refresh_themes_and_select(data.get('theme', ''))
nodes['scale'].value = float(data.get('scale', 100))
#nodes['nickname'].visible
nodes['offset_x'].value = data.get('offset_x', 0)
nodes['offset_y'].value = data.get('offset_y', 0)
nodes['mirror_portraits_checkbox'].pressed = data.get('mirror_portraits', false)
nodes['portrait_preview_full'].flip_h = data.get('mirror_portraits', false)
nodes['portrait_preview_real'].flip_h = data.get('mirror_portraits', false)
nodes['portrait_preview_real'].rect_scale = Vector2(
float(data.get('scale', 100))/100, float(data.get('scale', 100))/100)
# Portraits
var default_portrait = create_portrait_entry()
default_portrait.get_node('NameEdit').text = 'Default'
default_portrait.get_node('NameEdit').editable = false
if opened_character_data.has('portraits'):
for p in opened_character_data['portraits']:
var current_item
if p['name'] == 'Default':
default_portrait.get_node('PathEdit').text = p['path']
default_portrait.update_preview(p['path'])
current_item = default_portrait
else:
current_item = create_portrait_entry(p['name'], p['path'])
####################################################################################################
## UI FUNCTIONS
####################################################################################################
func _on_PortraitSearch_text_changed(text):
for portrait_item in nodes['portrait_list'].get_children():
if text.empty() or text.to_lower() in portrait_item.get_node("NameEdit").text.to_lower() or text.to_lower() in portrait_item.get_node("PathEdit").text.to_lower():
portrait_item.show()
else:
portrait_item.hide()
func refresh_themes_and_select(file):
selected_theme_file = file
if file == '' or file == 'No custom theme':
nodes['theme'].text = "No custom theme"
nodes['theme'].custom_icon = get_icon("GuiRadioUnchecked", "EditorIcons")
else:
nodes['theme'].text = DialogicUtil.get_theme_dict()[file]['name']
nodes['theme'].custom_icon = editor_reference.get_node("MainPanel/MasterTreeContainer/MasterTree").theme_icon
func build_ThemePickerMenu():
nodes['theme'].get_popup().clear()
var folder_structure = DialogicUtil.get_theme_folder_structure()
## building the root level
build_PickerMenuFolder(nodes['theme'].get_popup(), folder_structure, "MenuButton")
# is called recursively to build all levels of the folder structure
func build_PickerMenuFolder(menu:PopupMenu, folder_structure:Dictionary, current_folder_name:String):
var index = 0
if menu == nodes["theme"].get_popup():
menu.add_item('No custom theme')
menu.set_item_icon(index, get_icon("GuiRadioUnchecked", "EditorIcons"))
menu.set_item_metadata(index, {"file":""})
index += 1
for folder_name in folder_structure['folders'].keys():
var submenu = PopupMenu.new()
var submenu_name = build_PickerMenuFolder(submenu, folder_structure['folders'][folder_name], folder_name)
submenu.name = submenu_name
menu.add_submenu_item(folder_name, submenu_name)
menu.set_item_icon(index, get_icon("Folder", "EditorIcons"))
menu.add_child(submenu)
index += 1
# give it the right style
nodes['theme'].update_submenu_style(submenu)
var files_info = DialogicUtil.get_theme_dict()
for file in folder_structure['files']:
menu.add_item(files_info[file]['name'])
menu.set_item_icon(index, editor_reference.get_node("MainPanel/MasterTreeContainer/MasterTree").theme_icon)
menu.set_item_metadata(index, {'file':file})
index += 1
if not menu.is_connected("index_pressed", self, "_on_theme_selected"):
menu.connect("index_pressed", self, '_on_theme_selected', [menu])
return current_folder_name
func _on_theme_selected(index, menu):
refresh_themes_and_select(menu.get_item_metadata(index).get('file', ''))
func _on_display_name_toggled(button_pressed):
nodes['display_name'].visible = button_pressed
if button_pressed: nodes['display_name'].grab_focus()
func _on_nickname_toggled(button_pressed):
nodes['nickname'].visible = button_pressed
if button_pressed: nodes['nickname'].grab_focus()
func is_selected(file: String):
return nodes['file'].text == file
func _on_name_changed(value):
save_character()
func _update_name_on_tree():
var item = master_tree.get_selected()
item.set_text(0, nodes['name'].text)
master_tree.build_characters(nodes['file'].text)
func _input(event):
if event is InputEventKey and event.pressed:
if nodes['name'].has_focus():
if event.scancode == KEY_ENTER:
nodes['name'].release_focus()
func _on_color_changed(color):
var item = master_tree.get_selected()
item.set_icon_modulate(0, color)
# Portraits
func _on_New_Portrait_Button_pressed():
create_portrait_entry('', '', true)
func create_portrait_entry(p_name = '', path = '', grab_focus = false):
if grab_focus and nodes['portrait_list'].get_child_count() == 1 and nodes['portrait_list'].get_child(0).get_node("PathEdit").text == '':
nodes['portrait_list'].get_child(0)._on_ButtonSelect_pressed()
return
var p = portrait_entry.instance()
p.editor_reference = editor_reference
p.image_node = nodes['portrait_preview_full']
p.image_node2 = nodes['portrait_preview_real']
p.image_label = nodes['image_label']
var p_list = nodes['portrait_list']
p_list.add_child(p)
if p_name != '':
p.get_node("NameEdit").text = p_name
if path != '':
p.get_node("PathEdit").text = path
if grab_focus:
p.get_node("NameEdit").grab_focus()
p._on_ButtonSelect_pressed()
return p
func _on_Import_Portrait_Folder_Button_pressed():
editor_reference.godot_dialog("*", EditorFileDialog.MODE_OPEN_DIR)
editor_reference.godot_dialog_connect(self, "_on_dir_selected", "dir_selected")
func _on_dir_selected(path, target):
var dir = Directory.new()
if dir.open(path) == OK:
dir.list_dir_begin()
var file_name = dir.get_next()
while file_name != "":
if not dir.current_is_dir():
var file_lower = file_name.to_lower()
if '.svg' in file_lower or '.png' in file_lower:
if not '.import' in file_lower:
var final_name = path+ "/" + file_name
create_portrait_entry(DialogicResources.get_filename_from_path(file_name), final_name)
file_name = dir.get_next()
else:
print("An error occurred when trying to access the path.")
func _on_MirrorPortraitsCheckBox_toggled(button_pressed):
nodes['portrait_preview_full'].flip_h = button_pressed
nodes['portrait_preview_real'].flip_h = button_pressed
func _on_Scale_value_changed(value):
#nodes['portrait_preview_real'].rect_position = ($Split/Preview/Background/Positioner.rect_position-nodes['portrait_preview_real'].rect_size*Vector2(0.5,1))
nodes['portrait_preview_real'].rect_size = Vector2()
nodes['portrait_preview_real'].rect_scale = Vector2(
float(value)/100, float(value)/100)
func _on_PreviewMode_item_selected(index):
if index == 0:
nodes['portrait_preview_real'].hide()
nodes['portrait_preview_full'].show()
if index == 1:
nodes['portrait_preview_real'].show()
nodes['portrait_preview_full'].hide()
DialogicResources.set_settings_value('editor', 'character_preview_mode', index)

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,55 @@
tool
extends HBoxContainer
var editor_reference
var image_node
var image_node2
var image_label
func _ready():
$ButtonDelete.icon = get_icon("Remove", "EditorIcons")
func _on_ButtonDelete_pressed():
if $NameEdit.text == 'Default':
$PathEdit.text = ''
update_preview('')
else:
queue_free()
func _on_ButtonSelect_pressed():
editor_reference.godot_dialog("*.png, *.svg, *.tscn")
editor_reference.godot_dialog_connect(self, "_on_file_selected")
func _on_file_selected(path, target):
update_preview(path)
$PathEdit.text = path
if $NameEdit.text == '':
$NameEdit.text = DialogicResources.get_filename_from_path(path)
func _on_focus_entered():
if $PathEdit.text == '':
image_label.text = DTS.translate('NoImagePreview')
image_node.texture = null
image_node2.texture = null
else:
update_preview($PathEdit.text)
func update_preview(path):
image_label.text = DTS.translate('Preview of')+' "'+$NameEdit.text+'"'
var l_path = path.to_lower()
if '.png' in l_path or '.svg' in l_path:
image_node.texture = load(path)
image_node2.texture = load(path)
image_label.text += ' (' + str(image_node.texture.get_width()) + 'x' + str(image_node.texture.get_height())+')'
elif '.tscn' in l_path:
image_node.texture = null
image_node2.texture = null
image_label.text = DTS.translate('CustomScenePreview')
else:
image_node.texture = null
image_node2.texture = null

View File

@ -0,0 +1,61 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/CharacterEditor/PortraitEntry.gd" type="Script" id=2]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[node name="PortraitEntry" type="HBoxContainer"]
margin_right = 451.0
margin_bottom = 24.0
script = ExtResource( 2 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="NameEdit" type="LineEdit" parent="."]
margin_right = 160.0
margin_bottom = 24.0
rect_min_size = Vector2( 160, 0 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="PathEdit" type="LineEdit" parent="."]
margin_left = 164.0
margin_right = 391.0
margin_bottom = 24.0
rect_min_size = Vector2( 150, 0 )
size_flags_horizontal = 3
editable = false
selecting_enabled = false
[node name="ButtonSelect" type="Button" parent="."]
margin_left = 395.0
margin_right = 419.0
margin_bottom = 24.0
text = "..."
[node name="ButtonDelete" type="Button" parent="."]
margin_left = 423.0
margin_right = 451.0
margin_bottom = 24.0
icon = SubResource( 3 )
flat = true
[connection signal="focus_entered" from="NameEdit" to="." method="_on_focus_entered"]
[connection signal="focus_entered" from="PathEdit" to="." method="_on_focus_entered"]
[connection signal="pressed" from="ButtonSelect" to="." method="_on_ButtonSelect_pressed"]
[connection signal="pressed" from="ButtonDelete" to="." method="_on_ButtonDelete_pressed"]

View File

@ -0,0 +1,10 @@
tool
extends Label
export var text_key : String = ""
func set_text_from_key(value):
text = DTS.translate(value)
func _ready():
if text_key != '':
set_text_from_key(text_key)

View File

@ -0,0 +1,20 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/dialogic/Editor/Common/SectionTitle.gd" type="Script" id=1]
[sub_resource type="StyleBoxFlat" id=1]
content_margin_left = 4.0
content_margin_right = 4.0
content_margin_top = 4.0
content_margin_bottom = 4.0
bg_color = Color( 0.252, 0.2718, 0.3246, 1 )
[node name="SectionTitle" type="Label"]
margin_right = 270.0
margin_bottom = 22.0
custom_styles/normal = SubResource( 1 )
text = "Visuals"
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -0,0 +1,9 @@
tool
extends Label
export var text_key : String = ""
func set_text_from_key(value):
text = DTS.translate(value)
func _ready():
set_text_from_key(text_key)

View File

@ -0,0 +1,11 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://addons/dialogic/Editor/Common/TLabel.gd" type="Script" id=1]
[node name="TLabel" type="Label"]
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -0,0 +1,65 @@
tool
extends Control
onready var master_tree = get_node('../MasterTreeContainer/MasterTree')
var current_page : String = ""
var previous_pages = []
var next_pages = []
signal open_link(link)
onready var nodes = {
'DocsViewer': $DocsViewer,
'Next': null,
'Previous':null,
}
func _ready():
set("custom_styles/panel", get_stylebox("Background", "EditorStyles"))
var _scale = get_constant("inspector_margin", "Editor")
_scale = _scale * 0.125
nodes['DocsViewer'].MarkdownParser.editor_scale = _scale
nodes['Next'] = find_parent("EditorView").get_node("ToolBar/DocumentationNavigation/Next")
nodes['Next'].connect('pressed',self, 'open_next_page')
nodes['Previous'] = find_parent("EditorView").get_node("ToolBar/DocumentationNavigation/Previous")
nodes['Previous'].connect('pressed',self, 'open_previous_page')
func load_page(page):
if current_page:
previous_pages.push_back(current_page)
nodes['Previous'].disabled = false
next_pages = []
current_page = page
nodes['DocsViewer'].load_page(current_page)
nodes['Next'].disabled = true
func open_previous_page():
if len(previous_pages):
next_pages.push_front(current_page)
current_page = previous_pages.pop_back()
nodes['DocsViewer'].load_page(current_page)
nodes['Previous'].disabled = len(previous_pages) == 0
nodes['Next'].disabled = false
func open_next_page():
if len(next_pages):
previous_pages.push_back(current_page)
current_page = next_pages.pop_front()
nodes['DocsViewer'].load_page(current_page)
nodes['Next'].disabled = len(next_pages) == 0
nodes['Previous'].disabled = false
func toggle_editing():
nodes['DocsViewer'].toggle_editing()
func _on_DocsViewer_open_non_html_link(link, section):
#print(link, " ", section)
master_tree.select_documentation_item(link)

View File

@ -0,0 +1,42 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://addons/dialogic/Editor/DocumentationViewer/DocumentationViewer.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Documentation/Nodes/DocsPageViewer.tscn" type="PackedScene" id=2]
[sub_resource type="Image" id=6]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=4]
flags = 4
flags = 4
image = SubResource( 6 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxTexture" id=5]
texture = SubResource( 4 )
region_rect = Rect2( 0, 0, 16, 16 )
margin_left = 2.0
margin_right = 2.0
margin_top = 2.0
margin_bottom = 2.0
[node name="DocumentationViewer" type="Panel"]
anchor_right = 1.0
anchor_bottom = 1.0
custom_styles/panel = SubResource( 5 )
script = ExtResource( 1 )
[node name="DocsViewer" parent="." instance=ExtResource( 2 )]
anchor_right = 1.0
anchor_bottom = 1.0
margin_right = 0.0
margin_bottom = 0.0
rect_min_size = Vector2( 50, 0 )
[connection signal="open_non_html_link" from="DocsViewer" to="." method="_on_DocsViewer_open_non_html_link"]

View File

@ -0,0 +1,194 @@
tool
extends Control
var editor_file_dialog # EditorFileDialog
var file_picker_data: Dictionary = {'method': '', 'node': self}
var version_string: String
# this is set when the plugins main-view is instanced in dialogic.gd
var editor_interface = null
func _ready():
# Adding file dialog to get used by Events
editor_file_dialog = EditorFileDialog.new()
add_child(editor_file_dialog)
$ToolBar/Docs.text = DTS.translate('Help')
$ToolBar/Web.text = DTS.translate('Website')
$MainPanel/MasterTreeContainer/MasterTree.connect("editor_selected", self, 'on_master_tree_editor_selected')
# Updating the folder structure
DialogicUtil.update_resource_folder_structure()
# Sizes
# This part of the code is a bit terrible. But there is no better way
# of doing this in Godot at the moment. I'm sorry.
var separation = get_constant("separation", "BoxContainer")
$MainPanel.margin_left = separation
$MainPanel.margin_right = separation * -1
$MainPanel.margin_bottom = separation * -1
$MainPanel.margin_top = 38
var modifier = ''
var _scale = get_constant("inspector_margin", "Editor")
_scale = _scale * 0.125
if _scale == 1:
$MainPanel.margin_top = 30
if _scale == 1.25:
modifier = '-1.25'
$MainPanel.margin_top = 37
if _scale == 1.5:
modifier = '-1.25'
$MainPanel.margin_top = 46
if _scale == 1.75:
modifier = '-1.25'
$MainPanel.margin_top = 53
if _scale == 2:
$MainPanel.margin_top = 59
modifier = '-2'
$ToolBar/NewTimelineButton.icon = load("res://addons/dialogic/Images/Toolbar/add-timeline" + modifier + ".svg")
$ToolBar/NewTimelineButton.hint_tooltip = DTS.translate('Add Timeline')
$ToolBar/NewCharactersButton.icon = load("res://addons/dialogic/Images/Toolbar/add-character" + modifier + ".svg")
$ToolBar/NewCharactersButton.hint_tooltip = DTS.translate('Add Character')
$ToolBar/NewValueButton.icon = load("res://addons/dialogic/Images/Toolbar/add-definition" + modifier + ".svg")
$ToolBar/NewValueButton.hint_tooltip = DTS.translate('Add Value')
$ToolBar/NewGlossaryEntryButton.icon = load("res://addons/dialogic/Images/Toolbar/add-glossary" + modifier + ".svg")
$ToolBar/NewGlossaryEntryButton.hint_tooltip = DTS.translate('Add Glossary Entry')
$ToolBar/NewThemeButton.icon = load("res://addons/dialogic/Images/Toolbar/add-theme" + modifier + ".svg")
$ToolBar/NewThemeButton.hint_tooltip = DTS.translate('Add Theme')
var modulate_color = Color.white
if not get_constant("dark_theme", "Editor"):
modulate_color = get_color("property_color", "Editor")
$ToolBar/NewTimelineButton.modulate = modulate_color
$ToolBar/NewCharactersButton.modulate = modulate_color
$ToolBar/NewValueButton.modulate = modulate_color
$ToolBar/NewGlossaryEntryButton.modulate = modulate_color
$ToolBar/NewThemeButton.modulate = modulate_color
$ToolBar/FoldTools/ButtonFold.icon = get_icon("GuiTreeArrowRight", "EditorIcons")
$ToolBar/FoldTools/ButtonUnfold.icon = get_icon("GuiTreeArrowDown", "EditorIcons")
$ToolBar/FoldTools/PlayTimeline.icon = get_icon("PlayScene", "EditorIcons")
# Toolbar
$ToolBar/NewTimelineButton.connect('pressed', $MainPanel/MasterTreeContainer/MasterTree, 'new_timeline')
$ToolBar/NewCharactersButton.connect('pressed', $MainPanel/MasterTreeContainer/MasterTree, 'new_character')
$ToolBar/NewThemeButton.connect('pressed', $MainPanel/MasterTreeContainer/MasterTree, 'new_theme')
$ToolBar/NewValueButton.connect('pressed', $MainPanel/MasterTreeContainer/MasterTree, 'new_value_definition')
$ToolBar/NewGlossaryEntryButton.connect('pressed', $MainPanel/MasterTreeContainer/MasterTree, 'new_glossary_entry')
$ToolBar/Web.icon = get_icon("Instance", "EditorIcons")
$ToolBar/Web.connect('pressed', OS, "shell_open", ["https://dialogic.coppolaemilio.com"])
$ToolBar/Docs.icon = get_icon("HelpSearch", "EditorIcons")
$ToolBar/DocumentationNavigation/Previous.icon = get_icon("Back", "EditorIcons")
$ToolBar/DocumentationNavigation/Next.icon = get_icon("Forward", "EditorIcons")
$ToolBar/Docs.connect('pressed',
$MainPanel/MasterTreeContainer/MasterTree,
"select_documentation_item",
['/'])
$ToolBar/FoldTools/ButtonFold.connect('pressed', $MainPanel/TimelineEditor, 'fold_all_nodes')
$ToolBar/FoldTools/ButtonUnfold.connect('pressed', $MainPanel/TimelineEditor, 'unfold_all_nodes')
$ToolBar/FoldTools/PlayTimeline.connect('pressed', $MainPanel/TimelineEditor, 'play_timeline')
#Connecting confirmation
$RemoveFolderConfirmation.connect('confirmed', self, '_on_RemoveFolderConfirmation_confirmed')
$RemoveConfirmation.window_title = DTS.translate("RemoveResourcePopupTitle")
$RemoveFolderConfirmation.window_title = DTS.translate("RemoveFolderPopupTitle")
$RemoveFolderConfirmation.dialog_text = DTS.translate("RemoveFolderPopupText")
# Loading the version number
var config = ConfigFile.new()
var err = config.load("res://addons/dialogic/plugin.cfg")
if err == OK:
version_string = config.get_value("plugin", "version", "?")
$ToolBar/Version.text = 'Dialogic v' + version_string
$MainPanel/MasterTreeContainer/FilterMasterTreeEdit.right_icon = get_icon("Search", "EditorIcons")
func on_master_tree_editor_selected(editor: String):
$ToolBar/FoldTools.visible = editor == 'timeline'
$ToolBar/DocumentationNavigation.visible = editor == 'documentation'
func popup_remove_confirmation(what):
# disconnect previous signals
if $RemoveConfirmation.is_connected(
'confirmed', self, '_on_RemoveConfirmation_confirmed'):
$RemoveConfirmation.disconnect(
'confirmed', self, '_on_RemoveConfirmation_confirmed')
# the last theme should not be deleteded!!!
if what == "Theme" and len(DialogicUtil.get_theme_list()) == 1:
print("[D] You cannot delete the last theme!")
$RemoveConfirmation.dialog_text = DTS.translate("CantDeleteLastTheme")
# otherwise we're ok
else:
var remove_text = DTS.translate('DeleteResourceText')
$RemoveConfirmation.dialog_text = remove_text.replace('[resource]', what)
$RemoveConfirmation.connect('confirmed', self, '_on_RemoveConfirmation_confirmed', [what])
# popup time!
$RemoveConfirmation.popup_centered()
func _on_RemoveFolderConfirmation_confirmed():
var item_path = $MainPanel/MasterTreeContainer/MasterTree.get_item_path($MainPanel/MasterTreeContainer/MasterTree.get_selected())
DialogicUtil.remove_folder(item_path)
$MainPanel/MasterTreeContainer/MasterTree.build_full_tree()
func _on_RemoveConfirmation_confirmed(what: String = ''):
if what == 'Timeline':
var target = $MainPanel/TimelineEditor.timeline_file
DialogicResources.delete_timeline(target)
elif what == 'GlossaryEntry':
var target = $MainPanel/GlossaryEntryEditor.current_definition['id']
DialogicResources.delete_default_definition(target)
elif what == 'Value':
var target = $MainPanel/ValueEditor.current_definition['id']
DialogicResources.delete_default_definition(target)
elif what == 'Theme':
var filename = $MainPanel/MasterTreeContainer/MasterTree.get_selected().get_metadata(0)['file']
DialogicResources.delete_theme(filename)
elif what == 'Character':
var filename = $MainPanel/CharacterEditor.opened_character_data['id']
DialogicResources.delete_character(filename)
DialogicUtil.update_resource_folder_structure()
$MainPanel/MasterTreeContainer/MasterTree.remove_selected()
$MainPanel/MasterTreeContainer/MasterTree.hide_all_editors()
# Godot dialog
func godot_dialog(filter, mode = EditorFileDialog.MODE_OPEN_FILE):
editor_file_dialog.mode = mode
editor_file_dialog.clear_filters()
editor_file_dialog.popup_centered_ratio(0.75)
editor_file_dialog.add_filter(filter)
return editor_file_dialog
func godot_dialog_connect(who, method_name, signal_name = "file_selected"):
# You can pass multiple signal_name using an array
# Checking if previous connections exist, if they do, disconnect them.
for test_signal in editor_file_dialog.get_signal_list():
if not file_picker_data['node'] or not is_instance_valid(file_picker_data['node']):
continue
if editor_file_dialog.is_connected(
test_signal.name,
file_picker_data['node'],
file_picker_data['method']
):
editor_file_dialog.disconnect(
test_signal.name,
file_picker_data['node'],
file_picker_data['method']
)
# Connect new signals
for new_signal_name in signal_name if typeof(signal_name) == TYPE_ARRAY else [signal_name]:
editor_file_dialog.connect(new_signal_name, who, method_name, [who])
file_picker_data['method'] = method_name
file_picker_data['node'] = who

View File

@ -0,0 +1,330 @@
[gd_scene load_steps=22 format=2]
[ext_resource path="res://addons/dialogic/Editor/EditorView.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/TimelineEditor/TimelineEditor.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Images/Toolbar/add-character.svg" type="Texture" id=3]
[ext_resource path="res://addons/dialogic/Images/Toolbar/add-timeline.svg" type="Texture" id=4]
[ext_resource path="res://addons/dialogic/Images/Toolbar/add-definition.svg" type="Texture" id=5]
[ext_resource path="res://addons/dialogic/Editor/SettingsEditor/SettingsEditor.tscn" type="PackedScene" id=6]
[ext_resource path="res://addons/dialogic/Editor/CharacterEditor/CharacterEditor.tscn" type="PackedScene" id=7]
[ext_resource path="res://addons/dialogic/Editor/ThemeEditor/ThemeEditor.tscn" type="PackedScene" id=8]
[ext_resource path="res://addons/dialogic/Editor/GlossaryEntryEditor/GlossaryEntryEditor.tscn" type="PackedScene" id=9]
[ext_resource path="res://addons/dialogic/Images/Toolbar/add-glossary.svg" type="Texture" id=10]
[ext_resource path="res://addons/dialogic/Editor/DocumentationViewer/DocumentationViewer.tscn" type="PackedScene" id=11]
[ext_resource path="res://addons/dialogic/Editor/ValueEditor/ValueEditor.tscn" type="PackedScene" id=12]
[ext_resource path="res://addons/dialogic/Images/Toolbar/add-theme.svg" type="Texture" id=13]
[ext_resource path="res://addons/dialogic/Editor/MasterTree/MasterTree.tscn" type="PackedScene" id=35]
[sub_resource type="Image" id=9]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 9 )
size = Vector2( 16, 16 )
[sub_resource type="InputEventKey" id=7]
scancode = 16777252
[sub_resource type="ShortCut" id=8]
shortcut = SubResource( 7 )
[sub_resource type="Image" id=10]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=4]
flags = 4
flags = 4
image = SubResource( 10 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxTexture" id=5]
texture = SubResource( 4 )
region_rect = Rect2( 0, 0, 16, 16 )
margin_left = 2.0
margin_right = 2.0
margin_top = 2.0
margin_bottom = 2.0
[node name="EditorView" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
rect_min_size = Vector2( 0, 200 )
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ToolBar" type="HBoxContainer" parent="."]
anchor_right = 1.0
margin_bottom = 24.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="NewTimelineButton" type="Button" parent="ToolBar"]
modulate = Color( 0, 0, 0, 1 )
margin_right = 28.0
margin_bottom = 24.0
hint_tooltip = "Add Timeline"
icon = ExtResource( 4 )
flat = true
[node name="NewCharactersButton" type="ToolButton" parent="ToolBar"]
modulate = Color( 0, 0, 0, 1 )
self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
margin_left = 32.0
margin_right = 60.0
margin_bottom = 24.0
hint_tooltip = "Add Character"
icon = ExtResource( 3 )
[node name="NewValueButton" type="Button" parent="ToolBar"]
modulate = Color( 0, 0, 0, 1 )
margin_left = 64.0
margin_right = 92.0
margin_bottom = 24.0
hint_tooltip = "Add Value"
icon = ExtResource( 5 )
flat = true
[node name="NewGlossaryEntryButton" type="Button" parent="ToolBar"]
modulate = Color( 0, 0, 0, 1 )
margin_left = 96.0
margin_right = 124.0
margin_bottom = 24.0
hint_tooltip = "Add Glossary Entry"
icon = ExtResource( 10 )
flat = true
__meta__ = {
"_editor_description_": ""
}
[node name="NewThemeButton" type="Button" parent="ToolBar"]
modulate = Color( 0, 0, 0, 1 )
margin_left = 128.0
margin_right = 156.0
margin_bottom = 24.0
hint_tooltip = "Add Theme"
icon = ExtResource( 13 )
flat = true
[node name="FoldTools" type="HBoxContainer" parent="ToolBar"]
visible = false
margin_left = 160.0
margin_right = 348.0
margin_bottom = 24.0
[node name="Label" type="Label" parent="ToolBar/FoldTools"]
visible = false
margin_top = 5.0
margin_right = 59.0
margin_bottom = 19.0
text = " Fold "
[node name="ButtonFold" type="ToolButton" parent="ToolBar/FoldTools"]
margin_left = 63.0
margin_right = 91.0
margin_bottom = 24.0
icon = SubResource( 2 )
align = 0
[node name="ButtonUnfold" type="ToolButton" parent="ToolBar/FoldTools"]
margin_left = 95.0
margin_right = 123.0
margin_bottom = 24.0
icon = SubResource( 2 )
align = 0
[node name="PlayTimeline" type="ToolButton" parent="ToolBar/FoldTools"]
self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
margin_left = 127.0
margin_right = 188.0
margin_bottom = 24.0
mouse_default_cursor_shape = 2
shortcut = SubResource( 8 )
text = "Play Timeline"
icon = SubResource( 2 )
[node name="Spacer" type="Control" parent="ToolBar"]
margin_left = 160.0
margin_right = 747.0
margin_bottom = 24.0
size_flags_horizontal = 3
[node name="Web" type="ToolButton" parent="ToolBar"]
self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
margin_left = 751.0
margin_right = 835.0
margin_bottom = 24.0
mouse_default_cursor_shape = 2
text = "Website"
icon = SubResource( 2 )
[node name="Docs" type="ToolButton" parent="ToolBar"]
self_modulate = Color( 0.870588, 0.870588, 0.870588, 1 )
margin_left = 839.0
margin_right = 900.0
margin_bottom = 24.0
mouse_default_cursor_shape = 2
text = "Help"
icon = SubResource( 2 )
[node name="Version" type="Label" parent="ToolBar"]
self_modulate = Color( 1, 1, 1, 0.631373 )
margin_left = 904.0
margin_top = 5.0
margin_right = 1024.0
margin_bottom = 19.0
text = "Dialogic v1.4 - DEV"
[node name="DocumentationNavigation" type="HBoxContainer" parent="ToolBar"]
visible = false
margin_left = 980.0
margin_right = 1024.0
margin_bottom = 32.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="VSeparator" type="VSeparator" parent="ToolBar/DocumentationNavigation"]
margin_right = 4.0
margin_bottom = 40.0
[node name="Previous" type="Button" parent="ToolBar/DocumentationNavigation"]
margin_right = 22.0
margin_bottom = 32.0
rect_min_size = Vector2( 22, 22 )
focus_mode = 0
disabled = true
icon = SubResource( 2 )
flat = true
expand_icon = true
[node name="Next" type="Button" parent="ToolBar/DocumentationNavigation"]
margin_left = 22.0
margin_right = 44.0
margin_bottom = 32.0
rect_min_size = Vector2( 22, 22 )
focus_mode = 0
disabled = true
icon = SubResource( 2 )
flat = true
expand_icon = true
[node name="MainPanel" type="HSplitContainer" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
margin_top = 38.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="MasterTreeContainer" type="VBoxContainer" parent="MainPanel"]
margin_right = 150.0
margin_bottom = 562.0
[node name="FilterMasterTreeEdit" type="LineEdit" parent="MainPanel/MasterTreeContainer"]
margin_right = 150.0
margin_bottom = 26.0
clear_button_enabled = true
right_icon = SubResource( 2 )
placeholder_text = "Filter"
[node name="MasterTree" parent="MainPanel/MasterTreeContainer" instance=ExtResource( 35 )]
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 30.0
margin_right = 150.0
margin_bottom = 562.0
size_flags_vertical = 3
[node name="TimelineEditor" parent="MainPanel" instance=ExtResource( 2 )]
visible = false
[node name="CharacterEditor" parent="MainPanel" instance=ExtResource( 7 )]
visible = false
[node name="GlossaryEntryEditor" parent="MainPanel" instance=ExtResource( 9 )]
visible = false
anchor_right = 0.0
anchor_bottom = 0.0
margin_left = 162.0
margin_right = 1024.0
margin_bottom = 562.0
[node name="ValueEditor" parent="MainPanel" instance=ExtResource( 12 )]
visible = false
[node name="ThemeEditor" parent="MainPanel" instance=ExtResource( 8 )]
visible = false
[node name="SettingsEditor" parent="MainPanel" instance=ExtResource( 6 )]
visible = false
anchor_right = 0.0
anchor_bottom = 0.0
margin_left = 192.0
margin_right = 1253.0
margin_bottom = 661.0
[node name="DocumentationViewer" parent="MainPanel" instance=ExtResource( 11 )]
visible = false
anchor_right = 0.0
anchor_bottom = 0.0
margin_left = 162.0
margin_right = 1024.0
margin_bottom = 562.0
custom_styles/panel = SubResource( 5 )
[node name="Empty" type="CenterContainer" parent="MainPanel"]
margin_left = 162.0
margin_right = 1024.0
margin_bottom = 562.0
[node name="VBoxContainer" type="VBoxContainer" parent="MainPanel/Empty"]
margin_left = 291.0
margin_top = 274.0
margin_right = 571.0
margin_bottom = 288.0
[node name="Label" type="Label" parent="MainPanel/Empty/VBoxContainer"]
margin_right = 280.0
margin_bottom = 14.0
text = "Select or create an element to start working"
[node name="RemoveConfirmation" type="ConfirmationDialog" parent="."]
margin_right = 325.0
margin_bottom = 88.0
rect_min_size = Vector2( 250, 87.5 )
window_title = "Be sure you want to delete!"
dialog_text = "Are you sure you want to remove this [resource]?
(Can't be restored)"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="RemoveFolderConfirmation" type="ConfirmationDialog" parent="."]
margin_right = 325.0
margin_bottom = 88.0
rect_min_size = Vector2( 250, 87.5 )
window_title = "Be sure you want to delete this folder!"
dialog_text = "Are you sure you want to remove this folder and all the items contained in it?
(Can't be restored)"
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -0,0 +1,129 @@
[gd_scene load_steps=10 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/AudioFilePicker.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/AudioPicker.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/audio-event.svg" type="Texture" id=5]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="Image" id=5]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 5 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=6]
[node name="AudioEvent" instance=ExtResource( 1 )]
margin_right = -705.0
margin_bottom = 44.0
event_name = "Audio Event"
event_data = {
"audio": "play",
"audio_bus": "Master",
"event_id": "dialogic_030",
"event_name": "AudioEvent",
"file": "",
"volume": 0.0
}
event_color = Color( 0.988235, 0.396078, 0.0784314, 1 )
event_icon = ExtResource( 5 )
header_scene = ExtResource( 2 )
body_scene = ExtResource( 3 )
expand_on_default = false
help_page_path = "res://addons/dialogic/Documentation/Content/Events/030.md"
event_category = 3
sorting_index = 0
[node name="PanelContainer" parent="." index="1"]
margin_right = 404.0
margin_bottom = 44.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 404.0
margin_bottom = 44.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 398.0
margin_bottom = 38.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 388.0
margin_bottom = 32.0
[node name="CenterContainer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="0"]
margin_bottom = 32.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.988235, 0.396078, 0.0784314, 1 )
margin_top = 16.0
margin_bottom = 16.0
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 5 )
[node name="Warning" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="1"]
texture = SubResource( 3 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_top = 9.0
margin_right = 76.0
margin_bottom = 23.0
text = "Audio Event"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 76.0
margin_right = 344.0
margin_bottom = 32.0
[node name="ExpandControl" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="3"]
visible = true
margin_left = 344.0
margin_top = 1.0
margin_right = 388.0
margin_bottom = 31.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 388.0
margin_right = 388.0
margin_bottom = 32.0
[node name="HelpButton" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="5"]
margin_left = 401.0
margin_right = 431.0
icon = SubResource( 2 )
[node name="Body" parent="PanelContainer/MarginContainer/VBoxContainer" index="1"]
margin_bottom = 62.0
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Body" index="0"]
margin_bottom = 28.0
custom_constants/margin_left = 0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 6 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,113 @@
[gd_scene load_steps=10 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/AudioPickerComplex.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/background-music.svg" type="Texture" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/AudioFilePicker.tscn" type="PackedScene" id=4]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="Image" id=5]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 5 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=6]
[node name="BackgroundMusic" instance=ExtResource( 2 )]
event_name = "Background Music"
event_data = {
"audio_bus": "Master",
"background-music": "play",
"event_id": "dialogic_031",
"event_name": "BackgroundMusic",
"fade_length": 1.0,
"file": "",
"volume": 0
}
event_color = Color( 0.988235, 0.396078, 0.0784314, 1 )
event_icon = ExtResource( 3 )
header_scene = ExtResource( 4 )
body_scene = ExtResource( 1 )
expand_on_default = false
help_page_path = "res://addons/dialogic/Documentation/Content/Events/030.md"
event_category = 3
sorting_index = 1
[node name="PanelContainer" parent="." index="1"]
margin_right = 444.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 444.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 438.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 428.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.988235, 0.396078, 0.0784314, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 3 )
[node name="Warning" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="1"]
texture = SubResource( 3 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 116.0
text = "Background Music"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 116.0
margin_right = 384.0
[node name="ExpandControl" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="3"]
visible = true
margin_left = 384.0
margin_top = 17.0
margin_right = 428.0
margin_bottom = 47.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 428.0
margin_right = 428.0
[node name="HelpButton" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="5"]
icon = SubResource( 2 )
[node name="Body" parent="PanelContainer/MarginContainer/VBoxContainer" index="1"]
margin_bottom = 66.0
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Body" index="0"]
margin_bottom = 32.0
custom_constants/margin_left = 0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 6 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,92 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/call-node.svg" type="Texture" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/CallNode/CallNodePicker.tscn" type="PackedScene" id=4]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=5]
[node name="CallNode" instance=ExtResource( 2 )]
event_name = "Call Node"
event_data = {
"call_node": {
"arguments": [ ],
"method_name": "",
"target_node_path": ""
},
"event_id": "dialogic_042"
}
event_color = Color( 0.0470588, 0.647059, 0.921569, 1 )
event_icon = ExtResource( 1 )
body_scene = ExtResource( 4 )
expand_on_default = false
help_page_path = "res://addons/dialogic/Documentation/Content/Events/042.md"
event_category = 4
sorting_index = 2
[node name="PanelContainer" parent="." index="1"]
margin_right = 131.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 131.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 125.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 115.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.0470588, 0.647059, 0.921569, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 1 )
[node name="Warning" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="1"]
texture = SubResource( 3 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 61.0
text = "Call Node"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 61.0
margin_right = 71.0
[node name="ExpandControl" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="3"]
visible = true
margin_left = 71.0
margin_top = 17.0
margin_right = 115.0
margin_bottom = 47.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 115.0
margin_right = 115.0
[node name="Body" parent="PanelContainer/MarginContainer/VBoxContainer" index="1"]
margin_bottom = 88.0
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Body" index="0"]
margin_bottom = 54.0
custom_constants/margin_left = 0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 5 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,86 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Images/BackgroundPreview.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=4]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/change-background.svg" type="Texture" id=6]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Images/BackgroundPicker.tscn" type="PackedScene" id=7]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=5]
[node name="ChangeBackground" instance=ExtResource( 4 )]
event_name = "Change Background"
event_data = {
"background": "",
"event_id": "dialogic_021"
}
event_color = Color( 0.964706, 0.239216, 0.403922, 1 )
event_icon = ExtResource( 6 )
header_scene = ExtResource( 7 )
body_scene = ExtResource( 1 )
expand_on_default = false
event_category = 3
sorting_index = 3
[node name="PanelContainer" parent="." index="1"]
margin_right = 395.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 395.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 389.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 379.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.964706, 0.239216, 0.403922, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 6 )
[node name="Warning" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="1"]
texture = SubResource( 3 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 124.0
text = "Change Background"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 124.0
margin_right = 379.0
[node name="ExpandControl" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="3"]
margin_left = 535.0
margin_right = 587.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 379.0
margin_right = 379.0
[node name="HelpButton" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="5"]
margin_left = 924.0
margin_right = 954.0
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Body" index="0"]
custom_constants/margin_left = 0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 5 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,73 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/change-scene.svg" type="Texture" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Scenes/ScenePicker.tscn" type="PackedScene" id=4]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=5]
[node name="ChangeScene" instance=ExtResource( 1 )]
event_name = "Change Scene"
event_data = {
"change_scene": "",
"event_id": "dialogic_041"
}
event_color = Color( 0.0470588, 0.647059, 0.921569, 1 )
event_icon = ExtResource( 3 )
header_scene = ExtResource( 4 )
help_page_path = "res://addons/dialogic/Documentation/Content/Events/041.md"
event_category = 4
sorting_index = 1
[node name="PanelContainer" parent="." index="1"]
margin_right = 355.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 355.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 349.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 339.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.0470588, 0.647059, 0.921569, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 3 )
[node name="Warning" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="1"]
texture = SubResource( 3 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 88.0
text = "Change Scene"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 88.0
margin_right = 339.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 339.0
margin_right = 339.0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 5 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,69 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/change-timeline.svg" type="Texture" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Timelines/TimelinePicker.tscn" type="PackedScene" id=4]
[sub_resource type="StyleBoxEmpty" id=4]
[sub_resource type="Image" id=5]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 5 )
size = Vector2( 16, 16 )
[node name="ChangeTimeline" instance=ExtResource( 1 )]
event_name = "Change Timeline"
event_data = {
"change_timeline": "",
"event_id": "dialogic_020"
}
event_color = Color( 0.0705882, 0.717647, 0.415686, 1 )
event_icon = ExtResource( 3 )
header_scene = ExtResource( 4 )
event_category = 2
sorting_index = 0
[node name="PanelContainer" parent="." index="1"]
margin_right = 361.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 361.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 355.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 345.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.0705882, 0.717647, 0.415686, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 3 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 106.0
text = "Change Timeline"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 106.0
margin_right = 345.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 345.0
margin_right = 345.0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 4 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,123 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Character/CharacterAction.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Character/CharacterActionSettings.tscn" type="PackedScene" id=4]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/character.svg" type="Texture" id=5]
[sub_resource type="Image" id=1]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 1 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=3]
[node name="Character" instance=ExtResource( 2 )]
event_name = "Character"
event_data = {
"animation": "[Default]",
"animation_length": 0.0,
"change_mirror_portrait": false,
"change_z_index": false,
"character": "",
"event_id": "dialogic_002",
"mirror_portrait": false,
"portrait": "",
"portrait_definition": "",
"position": {
"0": false,
"1": false,
"2": false,
"3": false,
"4": false
},
"type": 0,
"z_index": 0
}
event_color = Color( 0.0705882, 0.717647, 0.415686, 1 )
event_icon = ExtResource( 5 )
header_scene = ExtResource( 3 )
body_scene = ExtResource( 4 )
help_page_path = "res://addons/dialogic/Documentation/Content/Events/002.md"
sorting_index = 1
[node name="PanelContainer" parent="." index="1"]
margin_right = 370.0
margin_bottom = 104.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 370.0
margin_bottom = 104.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 364.0
margin_bottom = 98.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 354.0
margin_bottom = 32.0
[node name="CenterContainer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="0"]
margin_bottom = 32.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.0470588, 0.647059, 0.921569, 1 )
margin_top = 16.0
margin_bottom = 16.0
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 5 )
[node name="Warning" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="1"]
texture = SubResource( 2 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_top = 9.0
margin_right = 60.0
margin_bottom = 23.0
text = "Character"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 60.0
margin_right = 310.0
margin_bottom = 32.0
[node name="ExpandControl" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="3"]
visible = true
margin_left = 310.0
margin_top = 1.0
margin_right = 354.0
margin_bottom = 31.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 354.0
margin_right = 354.0
margin_bottom = 32.0
[node name="Body" parent="PanelContainer/MarginContainer/VBoxContainer" index="1"]
visible = true
margin_left = 0.0
margin_top = 36.0
margin_right = 354.0
margin_bottom = 92.0
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Body" index="0"]
margin_top = 0.0
margin_right = 354.0
margin_bottom = 56.0
custom_constants/margin_left = 0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 3 )
items = [ "Documentation", SubResource( 2 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 2 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 2 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 2 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,97 @@
[gd_scene load_steps=9 format=2]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/choice.svg" type="Texture" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/ChoicePicker.tscn" type="PackedScene" id=4]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=5]
[sub_resource type="Image" id=6]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 6 )
size = Vector2( 16, 16 )
[node name="Choice" instance=ExtResource( 2 )]
event_name = "Choice"
event_data = {
"choice": "",
"condition": "",
"definition": "",
"event_id": "dialogic_011",
"value": ""
}
event_color = Color( 0.619608, 0.466667, 0.92549, 1 )
event_icon = ExtResource( 1 )
header_scene = ExtResource( 4 )
expand_on_default = false
needs_indentation = true
help_page_path = "res://addons/dialogic/Documentation/Content/Events/011.md"
event_category = 1
sorting_index = 1
[node name="PanelContainer" parent="." index="1"]
margin_right = 320.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 320.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 314.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 304.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.619608, 0.466667, 0.92549, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 1 )
[node name="Warning" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="1"]
visible = true
hint_tooltip = "This event needs a question event around it!"
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 43.0
text = "Choice"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 43.0
margin_right = 304.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 304.0
margin_right = 304.0
[node name="HelpButton" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="5"]
icon = SubResource( 2 )
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 5 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,69 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/close-dialog.svg" type="Texture" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Numbers/TransitonLengthPicker.tscn" type="PackedScene" id=4]
[sub_resource type="StyleBoxEmpty" id=4]
[sub_resource type="Image" id=5]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 5 )
size = Vector2( 16, 16 )
[node name="CloseDialog" instance=ExtResource( 1 )]
event_name = "Close Dialog"
event_data = {
"event_id": "dialogic_022",
"transition_duration": 1.0
}
event_color = Color( 0.941176, 0.266667, 0.219608, 1 )
event_icon = ExtResource( 2 )
header_scene = ExtResource( 4 )
event_category = 2
sorting_index = 4
[node name="PanelContainer" parent="." index="1"]
margin_right = 300.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 300.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 294.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 284.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.941176, 0.266667, 0.219608, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 2 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 79.0
text = "Close Dialog"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 79.0
margin_right = 284.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 284.0
margin_right = 284.0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 4 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,90 @@
[gd_scene load_steps=9 format=2]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/condition.svg" type="Texture" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/ConditionPicker.tscn" type="PackedScene" id=4]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=5]
[sub_resource type="Image" id=6]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 6 )
size = Vector2( 16, 16 )
[node name="Condition" instance=ExtResource( 2 )]
event_name = "Condition"
event_data = {
"condition": "",
"definition": "",
"event_id": "dialogic_012",
"value": ""
}
event_color = Color( 0.619608, 0.466667, 0.92549, 1 )
event_icon = ExtResource( 1 )
header_scene = ExtResource( 4 )
help_page_path = "res://addons/dialogic/Documentation/Content/Events/012.md"
show_name_in_timeline = false
event_category = 1
sorting_index = 2
[node name="PanelContainer" parent="." index="1"]
margin_right = 370.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 370.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 364.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 354.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.619608, 0.466667, 0.92549, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 1 )
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 354.0
[node name="ExpandControl" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 146.0
margin_right = 210.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="3"]
margin_left = 354.0
margin_right = 354.0
[node name="HelpButton" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
icon = SubResource( 2 )
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 5 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,75 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/DummyEventDataShower.tscn" type="PackedScene" id=2]
[sub_resource type="StyleBoxEmpty" id=7]
[sub_resource type="Image" id=8]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=6]
flags = 4
flags = 4
image = SubResource( 8 )
size = Vector2( 16, 16 )
[node name="DummyEvent" instance=ExtResource( 1 )]
event_name = "Event couldn't be found. The data will be preserved in this dummy."
event_data = {
"event_id": ""
}
event_color = Color( 1, 0.278431, 0.447059, 1 )
body_scene = ExtResource( 2 )
expand_on_default = false
[node name="PanelContainer" parent="." index="1"]
margin_right = 497.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 497.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 491.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 481.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 1, 0.278431, 0.447059, 1 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 427.0
text = "Event couldn't be found. The data will be preserved in this dummy."
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 427.0
margin_right = 437.0
[node name="ExpandControl" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="3"]
visible = true
margin_left = 437.0
margin_top = 17.0
margin_right = 481.0
margin_bottom = 47.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 481.0
margin_right = 481.0
[node name="HelpButton" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="5"]
margin_left = 924.0
margin_right = 954.0
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Body" index="0"]
custom_constants/margin_left = 0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 7 )
items = [ "Documentation", SubResource( 6 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 6 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 6 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 6 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,73 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/emit-signal.svg" type="Texture" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/SignalArgumentPicker.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=3]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=5]
[node name="EmitSignal" instance=ExtResource( 3 )]
event_name = "Emit Signal"
event_data = {
"emit_signal": "",
"event_id": "dialogic_040"
}
event_color = Color( 0.0470588, 0.647059, 0.921569, 1 )
event_icon = ExtResource( 1 )
header_scene = ExtResource( 2 )
help_page_path = "res://addons/dialogic/Documentation/Content/Events/040.md"
event_category = 4
sorting_index = 0
[node name="PanelContainer" parent="." index="1"]
margin_right = 457.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 457.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 451.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 441.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.0470588, 0.647059, 0.921569, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 1 )
[node name="Warning" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="1"]
texture = SubResource( 3 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 70.0
text = "Emit Signal"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 70.0
margin_right = 441.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 441.0
margin_right = 441.0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 5 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,74 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/end-branch.svg" type="Texture" id=5]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[sub_resource type="StyleBoxEmpty" id=5]
[sub_resource type="Image" id=6]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 6 )
size = Vector2( 16, 16 )
[node name="EndBranch" instance=ExtResource( 1 )]
event_name = "End Branch"
event_data = {
"event_id": "dialogic_013"
}
event_color = Color( 0.619608, 0.466667, 0.92549, 1 )
event_icon = ExtResource( 5 )
help_page_path = "res://addons/dialogic/Documentation/Content/Events/013.md"
event_category = 1
sorting_index = 3
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.619608, 0.466667, 0.92549, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 5 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 71.0
text = "End Branch"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 71.0
margin_right = 81.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 81.0
[node name="HelpButton" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="5"]
margin_left = 924.0
margin_right = 954.0
icon = SubResource( 2 )
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 5 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,70 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/GoTo Selector.tscn" type="PackedScene" id=4]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/go-to.svg" type="Texture" id=5]
[sub_resource type="StyleBoxEmpty" id=4]
[sub_resource type="Image" id=5]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 5 )
size = Vector2( 16, 16 )
[node name="GoTo Event" instance=ExtResource( 1 )]
event_name = "Go to"
event_data = {
"anchor_id": "",
"event_id": "dialogic_016"
}
event_color = Color( 0.0705882, 0.717647, 0.415686, 1 )
event_icon = ExtResource( 5 )
header_scene = ExtResource( 4 )
expand_on_default = false
event_category = 2
sorting_index = 2
[node name="PanelContainer" parent="." index="1"]
margin_right = 209.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 209.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 203.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 193.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.0705882, 0.717647, 0.415686, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 5 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 35.0
text = "Go to"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 35.0
margin_right = 193.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 193.0
margin_right = 193.0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 4 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,72 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Templates/EventTemplate.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/LabelSetter.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Images/Event Icons/Main Icons/label.svg" type="Texture" id=5]
[sub_resource type="StyleBoxEmpty" id=4]
[sub_resource type="Image" id=5]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 5 )
size = Vector2( 16, 16 )
[node name="LabelEvent" instance=ExtResource( 2 )]
event_name = "Label"
event_data = {
"event_id": "dialogic_015",
"id": "anchor-1634488067",
"index": 0,
"name": ""
}
event_color = Color( 0.0705882, 0.717647, 0.415686, 1 )
event_icon = ExtResource( 5 )
header_scene = ExtResource( 3 )
expand_on_default = false
event_category = 2
sorting_index = 1
[node name="PanelContainer" parent="." index="1"]
margin_right = 274.0
[node name="MarginContainer" parent="PanelContainer" index="1"]
margin_right = 274.0
[node name="VBoxContainer" parent="PanelContainer/MarginContainer" index="0"]
margin_right = 268.0
[node name="Header" parent="PanelContainer/MarginContainer/VBoxContainer" index="0"]
margin_right = 258.0
[node name="IconPanel" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer" index="0"]
self_modulate = Color( 0.0705882, 0.717647, 0.415686, 1 )
[node name="IconTexture" parent="PanelContainer/MarginContainer/VBoxContainer/Header/CenterContainer/IconPanel" index="0"]
self_modulate = Color( 0, 0, 0, 1 )
texture = ExtResource( 5 )
[node name="TitleLabel" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="1"]
margin_right = 34.0
text = "Label"
[node name="Content" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="2"]
margin_left = 34.0
margin_right = 258.0
[node name="Spacer" parent="PanelContainer/MarginContainer/VBoxContainer/Header" index="4"]
margin_left = 258.0
margin_right = 258.0
[node name="PopupMenu" parent="." index="2"]
custom_styles/hover = SubResource( 4 )
items = [ "Documentation", SubResource( 3 ), 0, false, false, 0, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Move up", SubResource( 3 ), 0, false, false, 2, 0, null, "", false, "Move down", SubResource( 3 ), 0, false, false, 3, 0, null, "", false, "", null, 0, false, false, -1, 0, null, "", true, "Delete", SubResource( 3 ), 0, false, false, 5, 0, null, "", false ]

View File

@ -0,0 +1,50 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Files/FilePicker.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/EventPart_AudioFilePicker.gd" type="Script" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/SimpleButtonHover.tres" type="StyleBox" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/SimpleButtonNormal.tres" type="StyleBox" id=4]
[sub_resource type="StyleBoxEmpty" id=3]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[node name="AudioFilePicker" type="HBoxContainer"]
margin_right = 181.0
margin_bottom = 22.0
script = ExtResource( 2 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="FilePicker" parent="." instance=ExtResource( 1 )]
margin_top = 0.0
margin_right = 162.0
margin_bottom = 22.0
Mode = "Audio"
[node name="ButtonPreviewPlay" type="Button" parent="."]
margin_left = 166.0
margin_right = 188.0
margin_bottom = 22.0
size_flags_vertical = 4
custom_styles/hover = ExtResource( 3 )
custom_styles/pressed = ExtResource( 3 )
custom_styles/focus = SubResource( 3 )
custom_styles/normal = ExtResource( 4 )
icon = SubResource( 2 )
[node name="AudioPreview" type="AudioStreamPlayer" parent="."]

View File

@ -0,0 +1,151 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/EventPart_AudioPicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/SectionPanel.tres" type="StyleBox" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/AudioFilePicker.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres" type="Theme" id=4]
[node name="AudioPicker" type="PanelContainer"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_right = -718.0
margin_bottom = -580.0
theme = ExtResource( 4 )
custom_styles/panel = ExtResource( 2 )
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
event_name = "AudioEvent"
[node name="VBox" type="VBoxContainer" parent="."]
margin_left = 6.0
margin_top = 5.0
margin_right = 300.0
margin_bottom = 66.0
[node name="AudioFilePicker" parent="VBox" instance=ExtResource( 3 )]
visible = false
margin_right = 294.0
[node name="adv_settings" type="HBoxContainer" parent="VBox"]
margin_right = 294.0
margin_bottom = 61.0
custom_constants/separation = 8
[node name="AudioVolume" type="PanelContainer" parent="VBox/adv_settings"]
margin_right = 88.0
margin_bottom = 61.0
custom_styles/panel = ExtResource( 2 )
[node name="VBox" type="VBoxContainer" parent="VBox/adv_settings/AudioVolume"]
margin_left = 6.0
margin_top = 5.0
margin_right = 82.0
margin_bottom = 57.0
[node name="Label" type="Label" parent="VBox/adv_settings/AudioVolume/VBox"]
margin_right = 76.0
margin_bottom = 14.0
text = "Volume:"
[node name="Volume" type="SpinBox" parent="VBox/adv_settings/AudioVolume/VBox"]
margin_top = 18.0
margin_right = 76.0
margin_bottom = 52.0
min_value = -80.0
max_value = 24.0
step = 0.01
suffix = "dB"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="AudioBus" type="PanelContainer" parent="VBox/adv_settings"]
margin_left = 96.0
margin_right = 181.0
margin_bottom = 61.0
custom_styles/panel = ExtResource( 2 )
[node name="VBox" type="VBoxContainer" parent="VBox/adv_settings/AudioBus"]
margin_left = 6.0
margin_top = 5.0
margin_right = 79.0
margin_bottom = 57.0
[node name="Label" type="Label" parent="VBox/adv_settings/AudioBus/VBox"]
margin_right = 73.0
margin_bottom = 14.0
text = "AudioBus:"
[node name="BusSelector" type="OptionButton" parent="VBox/adv_settings/AudioBus/VBox"]
margin_top = 18.0
margin_right = 73.0
margin_bottom = 38.0
size_flags_vertical = 5
text = "Master"
items = [ "Master", null, false, 0, null ]
selected = 0
[node name="AudioRegion" type="PanelContainer" parent="VBox/adv_settings"]
visible = false
margin_left = 187.0
margin_right = 419.0
margin_bottom = 51.0
custom_styles/panel = ExtResource( 2 )
[node name="VBox" type="VBoxContainer" parent="VBox/adv_settings/AudioRegion"]
margin_left = 6.0
margin_top = 5.0
margin_right = 226.0
margin_bottom = 47.0
[node name="Label" type="Label" parent="VBox/adv_settings/AudioRegion/VBox"]
margin_right = 220.0
margin_bottom = 14.0
text = "Audio-region:"
[node name="HBox" type="HBoxContainer" parent="VBox/adv_settings/AudioRegion/VBox"]
margin_top = 18.0
margin_right = 220.0
margin_bottom = 42.0
__meta__ = {
"_edit_use_anchors_": false
}
[node name="StartAtLabel" type="Label" parent="VBox/adv_settings/AudioRegion/VBox/HBox"]
margin_top = 5.0
margin_right = 33.0
margin_bottom = 19.0
text = "Start:"
[node name="StartAt" type="SpinBox" parent="VBox/adv_settings/AudioRegion/VBox/HBox"]
margin_left = 37.0
margin_right = 111.0
margin_bottom = 24.0
hint_tooltip = "Leave both at 0 to use the whole file."
max_value = 9999.0
step = 0.1
suffix = "sec"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="StopAtLabel" type="Label" parent="VBox/adv_settings/AudioRegion/VBox/HBox"]
margin_left = 115.0
margin_top = 5.0
margin_right = 142.0
margin_bottom = 19.0
text = "End:"
[node name="StopAt" type="SpinBox" parent="VBox/adv_settings/AudioRegion/VBox/HBox"]
margin_left = 146.0
margin_right = 220.0
margin_bottom = 24.0
hint_tooltip = "Leave both at 0 to use the whole file."
max_value = 9999.0
step = 0.1
suffix = "sec"
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -0,0 +1,43 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/EventPart_AudioPickerComplex.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/AudioPicker.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres" type="Theme" id=3]
[node name="AudioPickerComplex" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
theme = ExtResource( 3 )
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="VBox" type="VBoxContainer" parent="."]
margin_right = 193.0
margin_bottom = 108.0
[node name="Fade" type="HBoxContainer" parent="VBox"]
margin_right = 193.0
margin_bottom = 34.0
[node name="FadeLengthLabel" type="Label" parent="VBox/Fade"]
margin_top = 10.0
margin_right = 87.0
margin_bottom = 24.0
text = " Fade-length:"
[node name="FadeLength" type="SpinBox" parent="VBox/Fade"]
margin_left = 91.0
margin_right = 167.0
margin_bottom = 34.0
step = 0.01
suffix = "s"
[node name="AudioPicker" parent="VBox" instance=ExtResource( 2 )]
anchor_right = 0.0
anchor_bottom = 0.0
margin_top = 38.0
margin_right = 193.0
margin_bottom = 108.0
event_name = "Background Music"

View File

@ -0,0 +1,59 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var file_picker = $FilePicker
onready var preview_button = $ButtonPreviewPlay
onready var audio_preview = $AudioPreview
# used to connect the signals
func _ready():
file_picker.connect("data_changed", self, "_on_FilePicker_data_changed")
preview_button.connect("pressed", self, "_on_PreviewButton_pressed")
audio_preview.connect("finished", self, '_on_AudioPreview_finished')
preview_button.icon = get_icon("Play", "EditorIcons")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
file_picker.load_data(event_data)
preview_button.visible = !event_data['file'].empty()
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_FilePicker_data_changed(data):
event_data = data
preview_button.visible = !event_data['file'].empty()
# informs the parent about the changes!
data_changed()
func _on_PreviewButton_pressed():
if audio_preview.is_playing():
audio_preview.stop()
else:
audio_preview.stream = load(event_data['file'])
audio_preview.bus = event_data['audio_bus']
audio_preview.volume_db = event_data.get('volume', 0)
if event_data.has('start_time'):
audio_preview.play(event_data['start_time'])
else:
audio_preview.play()
preview_button.icon = get_icon("Stop", "EditorIcons")
func _on_AudioPreview_finished():
preview_button.icon = get_icon("Play", "EditorIcons")
func _process(_delta):
#Will automatically stop playing when reaching stop_time
if(audio_preview.playing && event_data.has('stop_time') && audio_preview.get_playback_position() >= event_data['stop_time']):
audio_preview.stop()

View File

@ -0,0 +1,96 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
signal audio_loaded
export (String) var event_name = "Audio Event"
## node references
onready var file_picker := $VBox/AudioFilePicker
onready var volume_input := $VBox/adv_settings/AudioVolume/VBox/Volume
onready var region_group := $VBox/adv_settings/AudioRegion
onready var start_at_input := $VBox/adv_settings/AudioRegion/VBox/HBox/StartAt
onready var stop_at_input := $VBox/adv_settings/AudioRegion/VBox/HBox/StopAt
onready var bus_selector := $VBox/adv_settings/AudioBus/VBox/BusSelector
# used to connect the signals
func _ready():
# signals
file_picker.connect("data_changed", self, '_on_FilePicker_data_changed')
bus_selector.connect("item_selected", self, "_on_BusSelector_item_selected")
volume_input.connect("value_changed", self, "_on_Volume_value_changed")
start_at_input.connect("value_changed", self, "_on_StartAt_value_changed")
stop_at_input.connect("value_changed", self, "_on_StopAt_value_changed")
# AudioBusPicker update
AudioServer.connect("bus_layout_changed", self, "update_bus_selector")
update_bus_selector()
# file picker is here only used for text voice
file_picker.hide()
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
file_picker.load_data(data)
# Now update the ui nodes to display the data.
if data.has('audio_bus'):
for idx in range(bus_selector.get_item_count()):
if bus_selector.get_item_text(idx) == data['audio_bus']:
bus_selector.select(idx)
if data.has('volume'):
volume_input.value = data['volume']
if data.has('start_time'):
start_at_input.value = data["start_time"]
if data.has('stop_time'):
stop_at_input.value = data["stop_time"]
if not data.has("event_id"):
file_picker.show()
region_group.show()
# TODO 2.0 delete this mess
if event_data.has('audio'): event_data['audio'] = 'play'
if event_data.has('background-music'): event_data['background-music'] = 'play'
func get_preview():
return ''
func update_bus_selector():
if bus_selector != null:
var previous_selected_bus_name = bus_selector.get_item_text(max(0, bus_selector.selected))
bus_selector.clear()
for i in range(AudioServer.bus_count):
var bus_name = AudioServer.get_bus_name(i)
bus_selector.add_item(bus_name)
if previous_selected_bus_name == bus_name:
bus_selector.select(i)
func _on_FilePicker_data_changed(data):
event_data['file'] = data['file']
data_changed()
func _on_BusSelector_item_selected(index):
event_data['audio_bus'] = bus_selector.get_item_text(index)
data_changed()
func _on_Volume_value_changed(value):
event_data['volume'] = value
data_changed()
func _on_StopAt_value_changed(value):
event_data['stop_time'] = value
data_changed()
func _on_StartAt_value_changed(value):
event_data['start_time'] = value
data_changed()

View File

@ -0,0 +1,42 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var audio_picker = $VBox/AudioPicker
onready var fade_length_input = $VBox/Fade/FadeLength
# used to connect the signals
func _ready():
audio_picker.connect("data_changed", self, "_on_AudioPicker_data_changed")
fade_length_input.connect("value_changed", self, "_on_FadeLength_value_changed")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
audio_picker.editor_reference = editor_reference
audio_picker.load_data(event_data)
fade_length_input.value = event_data['fade_length']
# has to return the wanted preview, only useful for body parts
func get_preview():
return audio_picker.get_preview()
func _on_AudioPicker_data_changed(data):
event_data = data
# informs the parent about the changes!
data_changed()
func _on_FadeLength_value_changed(value):
event_data['fade_length'] = value
audio_picker.load_data(event_data)
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,95 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
export(PackedScene) var audio_picker
#onready var voices_container = $List/VoicesList
#onready var label_container = $List/Label
var audio_lines = 1 # how many lines does the text event has
func load_data(data):
.load_data(data)
update_data()
func repopulate() -> void:
for child in $List.get_children():
child.queue_free()
var settings = DialogicResources.get_settings_config()
#recraete audio pickers
for i in range(audio_lines):
var label = Label.new()
label.text = "Line "+str(i+1)+":"
label.size_flags_vertical = 0
$List.add_child(label)
var a_picker = audio_picker.instance()
a_picker.editor_reference = editor_reference
a_picker.event_name = "voice line"
a_picker.connect("data_changed", self, "_on_audio_picker_audio_loaded", [i])
$List.add_child(a_picker)
#loaded data
if event_data.has('voice_data'):
var voice_data = event_data['voice_data']
if voice_data.has(str(i)):
var _d = voice_data[str(i)]
if _d.has('file'):
a_picker.load_data(_d)
continue
a_picker.load_data({'file':'', 'audio_bus':settings.get_value("dialog", "text_event_audio_default_bus", "Master")})
func _on_text_changed(text:String) -> void:
# This is called when the text has changed
# Are we adding new text events per new line ?
var settings_file = DialogicResources.get_settings_config()
if not (settings_file.get_value("dialog", "new_lines", true)):
$Label.text = "Audio Picker:"
return
var prev_lines = audio_lines
$Label.text = "Audio Pickers:"
audio_lines = max(1, len(text.split('\n')))
if prev_lines != audio_lines:
repopulate()
#Since the nodes are now in a grid sharing indicies with lables, index must
#be multiplied by 2, then added an offset of 1 to get the requested node
func _get_audio_picker(index:int):
var data = $List.get_child(index * 2 + 1)
return data
func _on_audio_picker_audio_loaded(data,index:int) -> void:
# update the data
if not event_data.has('voice_data'):
event_data['voice_data'] = {}
event_data['voice_data'][str(index)] = data
#load the data
load_data(event_data)
# informs the parent about the data change
data_changed()
func update_data():
if not event_data.has('voice_data'):
return
var keys = event_data['voice_data'].keys()
# This subroutine was already a hack before I got to it, so don't blame me.
# divide by two, again becouse the two merged nodes.
# reused _get_audio_picker wherein we multiply by two again :D
# - KvaGram
for i in range($List.get_child_count() / 2):
if keys.has(str(i)):
var data = event_data['voice_data'][str(i)]
#voices_container.get_child(i).load_data(data)
_get_audio_picker(i).load_data(data)

View File

@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/EventPart_VoiceEditor.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Audio/AudioPicker.tscn" type="PackedScene" id=2]
[node name="VoiceEditor" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
audio_picker = ExtResource( 2 )
[node name="Label" type="Label" parent="."]
margin_right = 86.0
margin_bottom = 14.0
text = "Voice Picker :"
[node name="List" type="GridContainer" parent="."]
margin_top = 18.0
margin_right = 86.0
margin_bottom = 18.0
columns = 2

View File

@ -0,0 +1,72 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/CallNode/EventPart_CallNodePicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/CustomLineEdit.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres" type="Theme" id=4]
[node name="CallNodePicker" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
theme = ExtResource( 4 )
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" parent="." instance=ExtResource( 2 )]
margin_top = 0.0
margin_right = 782.0
margin_bottom = 14.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "This event calls the function [Function Name] on the [Target Node] (use full path!). It also passes a number of arguments."
[node name="Properties" type="HBoxContainer" parent="."]
margin_top = 18.0
margin_right = 782.0
margin_bottom = 45.0
custom_constants/separation = 8
[node name="TargetNodeLabel" type="Label" parent="Properties"]
margin_top = 6.0
margin_right = 81.0
margin_bottom = 20.0
text = "Target Node:"
[node name="TargetNodeEdit" parent="Properties" instance=ExtResource( 3 )]
margin_left = 89.0
margin_right = 329.0
margin_bottom = 27.0
rect_min_size = Vector2( 240, 27 )
[node name="CallMethodLabel" type="Label" parent="Properties"]
margin_left = 337.0
margin_top = 6.0
margin_right = 432.0
margin_bottom = 20.0
text = "Method Name:"
[node name="CallMethodEdit" parent="Properties" instance=ExtResource( 3 )]
margin_left = 440.0
margin_right = 620.0
margin_bottom = 27.0
rect_min_size = Vector2( 180, 27 )
[node name="ArgumentsLabel" type="Label" parent="Properties"]
margin_left = 628.0
margin_top = 6.0
margin_right = 698.0
margin_bottom = 20.0
text = "Arguments"
[node name="ArgumentsSpinBox" type="SpinBox" parent="Properties"]
margin_left = 706.0
margin_right = 782.0
margin_bottom = 27.0
max_value = 99.0
[node name="Arguments" type="VBoxContainer" parent="."]
margin_top = 49.0
margin_right = 782.0
margin_bottom = 49.0
custom_constants/separation = 5

View File

@ -0,0 +1,107 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var target_path_input = $Properties/TargetNodeEdit
onready var method_name_input = $Properties/CallMethodEdit
onready var argument_length = $Properties/ArgumentsSpinBox
onready var arguments_container = $Arguments
# used to connect the signals
func _ready():
target_path_input.connect("text_changed", self, "_on_TargetPathInput_text_changed")
method_name_input.connect("text_changed", self, "_on_MethodName_text_changed")
argument_length.connect("value_changed", self, "_on_AgrumentLength_value_changed")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
target_path_input.text = event_data['call_node']['target_node_path']
method_name_input.text = event_data['call_node']['method_name']
for i in range(event_data['call_node']['arguments'].size()):
if (event_data['call_node']['arguments'][i] == null):
event_data['call_node']['arguments'][i] = ''
argument_length.value = len(event_data['call_node']['arguments'])
_create_argument_controls()
# has to return the wanted preview, only useful for body parts
func get_preview():
if event_data['call_node']["target_node_path"] and event_data['call_node']['method_name']:
return 'Calls `'+event_data['call_node']['method_name']+ "` on node `"+event_data['call_node']["target_node_path"]+"` with an array with "+str(len( event_data['call_node']['arguments'])) +" items."
else:
return ''
func _on_TargetPathInput_text_changed(text):
event_data['call_node']['target_node_path'] = text
# informs the parent about the changes!
data_changed()
func _on_MethodName_text_changed(text):
event_data['call_node']['method_name'] = text
# informs the parent about the changes!
data_changed()
func _on_AgrumentLength_value_changed(value):
event_data['call_node']['arguments'].resize(max(0, value))
for i in range(event_data['call_node']['arguments'].size()):
if (event_data['call_node']['arguments'][i] == null):
event_data['call_node']['arguments'][i] = ''
_create_argument_controls()
# informs the parent about the changes!
data_changed()
func _on_argument_value_changed(value, arg_index):
if (arg_index < 0 or arg_index >= event_data['call_node']['arguments'].size()):
return
event_data['call_node']['arguments'][arg_index] = str(value)
# informs the parent about the changes!
data_changed()
# helpers
func _create_argument_controls():
if (not event_data['call_node']['arguments'] is Array):
return
# clear old
for c in arguments_container.get_children():
arguments_container.remove_child(c)
c.queue_free()
# create controls
var index = 0
for a in event_data['call_node']['arguments']:
var container = HBoxContainer.new()
container.name = "Argument%s" % index
var label = Label.new()
label.name = "IndexLabel"
label.text = "Argument %s:" % index
label.rect_min_size.x = 100
container.add_child(label)
var edit = LineEdit.new()
edit.name = "IndexValue"
edit.text = str(a)
edit.connect("text_changed", self, "_on_argument_value_changed", [ index ])
edit.rect_min_size.x = 250
container.add_child(edit)
arguments_container.add_child(container)
index += 1

View File

@ -0,0 +1,29 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Character/EventPart_CharacterAction.gd" type="Script" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Characters/CharacterAndPortraitPicker.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Character/PositionPicker.tscn" type="PackedScene" id=4]
[node name="CharacterAction" type="HBoxContainer"]
margin_right = 454.0
margin_bottom = 30.0
script = ExtResource( 2 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ActionTypePicker" parent="." instance=ExtResource( 1 )]
margin_top = 4.0
margin_bottom = 26.0
[node name="CharacterAndPortraitPicker" parent="." instance=ExtResource( 3 )]
margin_left = 98.0
margin_right = 193.0
margin_bottom = 30.0
size_flags_vertical = 4
[node name="PositionPicker" parent="." instance=ExtResource( 4 )]
margin_left = 197.0
margin_right = 471.0
size_flags_vertical = 4

View File

@ -0,0 +1,143 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Character/EventPart_CharacterActionSettings.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres" type="Theme" id=4]
[sub_resource type="Image" id=3]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 3 )
size = Vector2( 16, 16 )
[node name="CharacterActionSettings" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
theme = ExtResource( 4 )
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Animation" type="HBoxContainer" parent="."]
margin_right = 589.0
margin_bottom = 24.0
[node name="Label" parent="Animation" instance=ExtResource( 2 )]
margin_top = 5.0
margin_right = 70.0
margin_bottom = 19.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "Animation:"
[node name="AnimationPicker" parent="Animation" instance=ExtResource( 3 )]
margin_left = 74.0
margin_right = 172.0
margin_bottom = 24.0
[node name="Label2" parent="Animation" instance=ExtResource( 2 )]
margin_left = 176.0
margin_top = 5.0
margin_right = 223.0
margin_bottom = 19.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "Length:"
[node name="AnimationLength" type="SpinBox" parent="Animation"]
margin_left = 227.0
margin_right = 303.0
margin_bottom = 24.0
step = 0.001
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label3" parent="Animation" instance=ExtResource( 2 )]
margin_left = 307.0
margin_top = 5.0
margin_right = 355.0
margin_bottom = 19.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "Repeat:"
[node name="Repeat" type="SpinBox" parent="Animation"]
margin_left = 359.0
margin_right = 435.0
margin_bottom = 24.0
min_value = 1.0
value = 1.0
rounded = true
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label4" parent="Animation" instance=ExtResource( 2 )]
margin_left = 439.0
margin_top = 5.0
margin_right = 561.0
margin_bottom = 19.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "Wait for animation:"
[node name="WaitForAnimation" type="CheckBox" parent="Animation"]
margin_left = 565.0
margin_right = 589.0
margin_bottom = 24.0
[node name="Positioning" type="HBoxContainer" parent="."]
margin_top = 28.0
margin_right = 589.0
margin_bottom = 52.0
[node name="Label" parent="Positioning" instance=ExtResource( 2 )]
margin_top = 5.0
margin_right = 52.0
margin_bottom = 19.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "Z-index:"
[node name="EnableZIndex" type="ToolButton" parent="Positioning"]
margin_left = 56.0
margin_right = 84.0
margin_bottom = 24.0
toggle_mode = true
icon = SubResource( 2 )
[node name="Z_Index" type="SpinBox" parent="Positioning"]
margin_left = 88.0
margin_right = 164.0
margin_bottom = 24.0
min_value = -100.0
rounded = true
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label2" parent="Positioning" instance=ExtResource( 2 )]
margin_left = 168.0
margin_top = 5.0
margin_right = 227.0
margin_bottom = 19.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "Mirrored:"
[node name="EnableMirrored" type="ToolButton" parent="Positioning"]
margin_left = 231.0
margin_right = 243.0
margin_bottom = 24.0
toggle_mode = true
[node name="Mirrored" type="CheckBox" parent="Positioning"]
margin_left = 247.0
margin_right = 271.0
margin_bottom = 24.0

View File

@ -0,0 +1,75 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Character/EventPart_CharacterJoining.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Character/PositionPicker.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Characters/CharacterAndPortraitPicker.tscn" type="PackedScene" id=3]
[sub_resource type="Image" id=3]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 3 )
size = Vector2( 16, 16 )
[node name="CharacterJoining" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
size_flags_vertical = 4
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 389.0
margin_bottom = 30.0
[node name="CharacterAndPortraitPicker" parent="HBox" instance=ExtResource( 3 )]
margin_right = 95.0
margin_bottom = 30.0
[node name="PositionPicker" parent="HBox" instance=ExtResource( 2 )]
margin_left = 99.0
margin_right = 357.0
size_flags_vertical = 4
[node name="MirrorButton" type="ToolButton" parent="HBox"]
margin_left = 361.0
margin_right = 389.0
margin_bottom = 30.0
hint_tooltip = "Mirrors the character"
toggle_mode = true
icon = SubResource( 2 )
[node name="NoCharacterContainer" type="HBoxContainer" parent="."]
visible = false
margin_top = 4.0
margin_right = 399.0
margin_bottom = 24.0
[node name="NoCharacterLabel1" type="Label" parent="NoCharacterContainer"]
margin_top = 3.0
margin_right = 261.0
margin_bottom = 17.0
text = "You haven't created a character yet. Click"
[node name="NoCharacterButton" type="Button" parent="NoCharacterContainer"]
margin_left = 265.0
margin_right = 306.0
margin_bottom = 20.0
text = "here"
[node name="NoCharacterLabel2" type="Label" parent="NoCharacterContainer"]
margin_left = 310.0
margin_top = 3.0
margin_right = 399.0
margin_bottom = 17.0
text = "to create one."

View File

@ -0,0 +1,84 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
## has an event_data variable that stores the current data!!!
var join_icon = load("res://addons/dialogic/Images/Event Icons/character-join.svg")
var leave_icon = load("res://addons/dialogic/Images/Event Icons/character-leave.svg")
var update_icon = load("res://addons/dialogic/Images/Event Icons/character.svg")
## node references
onready var action_picker = $ActionTypePicker
onready var character_portrait_picker = $CharacterAndPortraitPicker
onready var position_picker = $PositionPicker
# used to connect the signals
func _ready():
action_picker.connect("about_to_show", self, "_on_ActionTypePicker_about_to_show")
action_picker.get_popup().connect('index_pressed', self, "_on_ActionTypePicker_index_pressed")
character_portrait_picker.connect('data_changed', self, "_on_CharacterAndPortraitPicker_data_changed")
position_picker.connect('data_changed', self, "_on_PositionPicker_data_changed")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
match int(data.get('type', 0)):
0:
action_picker.text = 'Join'
action_picker.custom_icon = join_icon
1:
action_picker.text = 'Leave'
action_picker.custom_icon = leave_icon
2:
action_picker.text = 'Update'
action_picker.custom_icon = update_icon
position_picker.visible = data.get('type',0) != 1 and data.get('character', '') != ''
position_picker.load_data(data)
character_portrait_picker.load_data(data)
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_ActionTypePicker_about_to_show():
action_picker.get_popup().clear()
action_picker.get_popup().add_icon_item(join_icon, "Join")
action_picker.get_popup().add_icon_item(leave_icon, "Leave")
action_picker.get_popup().add_icon_item(update_icon, "Update")
func _on_ActionTypePicker_index_pressed(index):
if index != event_data['type']:
if index == 0:
event_data['portrait'] = 'Default'
event_data['animation'] = '[Default]'
elif index == 1:
event_data['animation'] = '[Default]'
elif index == 2:
event_data['portrait'] = "(Don't change)"
event_data['type'] = index
load_data(event_data)
# informs the parent about the changes!
data_changed()
func _on_CharacterAndPortraitPicker_data_changed(data):
event_data = data
load_data(event_data)
data_changed()
func _on_PositionPicker_data_changed(data):
event_data = data
data_changed()

View File

@ -0,0 +1,163 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
var enable_icon = null
var disable_icon = null
## node references
onready var animation_picker = $Animation/AnimationPicker
onready var animation_length = $Animation/AnimationLength
onready var z_index_enable = $Positioning/EnableZIndex
onready var z_index = $Positioning/Z_Index
onready var mirrored_checkbox = $Positioning/Mirrored
onready var mirrored_checkbox_enable = $Positioning/EnableMirrored
onready var animation_repeat = $Animation/Repeat
onready var animation_wait_checkbox = $Animation/WaitForAnimation
# used to connect the signals
func _ready():
animation_picker.connect("about_to_show", self, "_on_AnimationPicker_about_to_show")
animation_picker.get_popup().connect("index_pressed", self, "_on_AnimationPicker_index_pressed")
animation_length.connect("value_changed", self, "_on_AnimationLength_value_changed")
z_index.connect("value_changed", self, "_on_ZIndex_value_changed")
z_index_enable.connect("toggled", self, "_on_ZIndexEnable_toggled")
mirrored_checkbox.connect('toggled', self, "_on_Mirrored_toggled")
mirrored_checkbox_enable.connect('toggled', self, "_on_MirroredEnabled_toggled")
animation_repeat.connect("value_changed", self, '_on_Repeat_value_changed')
animation_wait_checkbox.connect('toggled', self, 'on_WaitForAnimation_toggled')
enable_icon = get_icon("Edit", "EditorIcons")
disable_icon = get_icon("Reload", "EditorIcons")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
$Positioning.visible = event_data.get('type',0) != 1
if data['type'] == 0:
animation_picker.text = DialogicUtil.beautify_filename(event_data.get('animation', '[Default]'))
elif data['type'] == 1:
animation_picker.text = DialogicUtil.beautify_filename(event_data.get('animation', '[Default]'))
else:
animation_picker.text = DialogicUtil.beautify_filename(event_data.get('animation', '[No Animation]'))
animation_picker.custom_icon = get_icon("Animation", "EditorIcons") if event_data['animation'] != "[No Animation]" else get_icon("GuiRadioUnchecked", "EditorIcons")
if event_data['animation'] == "[Default]": animation_picker.custom_icon = get_icon("Favorites", "EditorIcons")
animation_length.value = event_data.get('animation_length', 1)
animation_length.visible = event_data.get('animation', '') != "[Default]"
$Animation/Label2.visible = event_data.get('animation', '') != "[Default]"
animation_repeat.value = event_data.get('animation_repeat', 1)
animation_repeat.visible = int(data.get('type', 0)) == 2
$Animation/Label3.visible = int(data.get('type', 0)) == 2
animation_wait_checkbox.pressed = event_data.get('animation_wait', false)
z_index.value = int(event_data.get('z_index', 0))
mirrored_checkbox.pressed = event_data.get('mirror_portrait', false)
# if the event is in UPDATE mode show the enablers
z_index_enable.visible = int(data.get('type', 0)) == 2
mirrored_checkbox_enable.visible = int(data.get('type', 0)) == 2
z_index_enable.pressed = data.get('change_z_index', false) or int(data.get('type', 0)) != 2
mirrored_checkbox_enable.pressed = data.get('change_mirror_portrait', false) or int(data.get('type', 0)) != 2
z_index.visible = z_index_enable.pressed
mirrored_checkbox.visible = mirrored_checkbox_enable.pressed
z_index_enable.icon = enable_icon if not z_index_enable.pressed else disable_icon
mirrored_checkbox_enable.icon = enable_icon if not mirrored_checkbox_enable.pressed else disable_icon
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_AnimationPicker_about_to_show():
animation_picker.get_popup().clear()
var animations = DialogicAnimaResources.get_available_animations()
var idx = 0
if event_data['type'] == 2:
animation_picker.get_popup().add_icon_item(get_icon("GuiRadioUnchecked", "EditorIcons"), "[No Animation]")
animation_picker.get_popup().set_item_metadata(idx, {'file': "[No Animation]"})
idx += 1
else:
animation_picker.get_popup().add_icon_item(get_icon("Favorites", "EditorIcons"), "[Default]")
animation_picker.get_popup().set_item_metadata(idx, {'file': "[Default]"})
idx += 1
for animation_name in animations:
if (event_data['type'] == 0 and '_in' in animation_name) \
or (event_data['type'] == 1 and '_out' in animation_name) \
or (event_data['type'] == 2 and not '_in' in animation_name and not '_out' in animation_name):
animation_picker.get_popup().add_icon_item(get_icon("Animation", "EditorIcons"), DialogicUtil.beautify_filename(animation_name))
animation_picker.get_popup().set_item_metadata(idx, {'file': animation_name.get_file()})
idx +=1
func _on_AnimationPicker_index_pressed(index):
event_data['animation'] = animation_picker.get_popup().get_item_metadata(index)['file']
animation_picker.custom_icon = get_icon("Animation", "EditorIcons") if event_data['animation'] != "[No Animation]" else get_icon("GuiRadioUnchecked", "EditorIcons")
if event_data['animation'] == "[Default]": animation_picker.custom_icon = get_icon("Favorites", "EditorIcons")
animation_picker.text = animation_picker.get_popup().get_item_text(index)
animation_length.visible = event_data.get('animation', '') != "[Default]"
$Animation/Label2.visible = event_data.get('animation', '') != "[Default]"
# informs the parent about the changes!
data_changed()
func _on_AnimationLength_value_changed(value):
event_data['animation_length'] = value
# informs the parent about the changes!
data_changed()
func _on_Repeat_value_changed(value):
event_data['animation_repeat'] = value
# informs the parent about the changes!
data_changed()
func on_WaitForAnimation_toggled(toggled):
event_data['animation_wait'] = toggled
# informs the parent about the changes!
data_changed()
func _on_ZIndexEnable_toggled(toggled):
if event_data['type'] != 2: return
event_data['change_z_index'] = toggled
z_index.visible = z_index_enable.pressed
z_index_enable.icon = enable_icon if not z_index_enable.pressed else disable_icon
# informs the parent about the changes!
data_changed()
func _on_ZIndex_value_changed(value):
event_data['z_index'] = value
# informs the parent about the changes!
data_changed()
func _on_MirroredEnabled_toggled(toggled):
if event_data['type'] != 2: return
event_data['change_mirror_portrait'] = toggled
mirrored_checkbox.visible = mirrored_checkbox_enable.pressed
mirrored_checkbox_enable.icon = enable_icon if not mirrored_checkbox_enable.pressed else disable_icon
# informs the parent about the changes!
data_changed()
func _on_Mirrored_toggled(toggled):
event_data['mirror_portrait'] = toggled
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,71 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var character_portrait_picker = $HBox/CharacterAndPortraitPicker
onready var position_picker = $HBox/PositionPicker
onready var mirror_button = $HBox/MirrorButton
onready var no_character_button = $NoCharacterContainer/NoCharacterButton
onready var no_character_container = $NoCharacterContainer
# used to connect the signals
func _ready():
if DialogicUtil.get_character_list().size() > 0:
character_portrait_picker.show()
position_picker.show()
mirror_button.show()
no_character_container.hide()
else:
character_portrait_picker.hide()
position_picker.hide()
mirror_button.hide()
no_character_container.show()
var editor_reference = find_parent('EditorView')
no_character_button.connect('pressed', editor_reference.get_node('MainPanel/MasterTreeContainer/MasterTree'), 'new_character')
mirror_button.connect("toggled", self, "_on_MirrorButton_toggled")
character_portrait_picker.connect('data_changed', self, '_on_CharacterPortraitPicker_data_changed')
position_picker.connect('data_changed', self, '_on_PositionPicker_data_changed')
# icons
mirror_button.icon = get_icon("MirrorX", "EditorIcons")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
character_portrait_picker.load_data(data)
position_picker.load_data(data)
mirror_button.pressed = data['mirror']
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_MirrorButton_toggled(toggle):
event_data['mirror'] = toggle
character_portrait_picker.load_data(event_data)
position_picker.load_data(event_data)
# informs the parent about the changes!
data_changed()
func _on_PositionPicker_data_changed(data):
event_data = data
character_portrait_picker.load_data(event_data)
# informs the parent about the changes!
data_changed()
func _on_CharacterPortraitPicker_data_changed(data):
event_data = data
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,94 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
var default_icon_color = Color("#65989898")
var enable_icon
var disable_icon
## node references
onready var positions_container = $HBox/PositionsContainer
onready var enable_position = $HBox/EnablePosition
# used to connect the signals
func _ready():
for p in positions_container.get_children():
p.connect('pressed', self, "position_button_pressed", [p.name])
enable_position.connect('toggled', self, 'on_EnablePosition_toggled')
enable_icon = get_icon("Edit", "EditorIcons")
disable_icon = get_icon("Reload", "EditorIcons")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
if data.get('type', 0) == 0:
$HBox/Label.text = 'at position'
elif data.get('type', 0) == 2:
if not data.get('change_position', false):
$HBox/Label.text = '(same position)'
else:
$HBox/Label.text = 'to position'
enable_position.pressed = data.get('change_position', false) or data.get('type', 0) != 2
enable_position.visible = data.get('type', 0) == 2
enable_position.icon = enable_icon if not enable_position.pressed else disable_icon
positions_container.visible = enable_position.pressed
# Now update the ui nodes to display the data.
check_active_position()
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func get_character_color():
for ch in DialogicUtil.get_character_list():
if ch['file'] == event_data['character']:
return ch['color']
return default_icon_color
func position_button_pressed(name):
clear_all_positions()
var selected_index = name.split('-')[1]
var button = positions_container.get_node('position-' + selected_index)
button.set('self_modulate', get_character_color())
button.pressed = true
event_data['position'][selected_index] = true
data_changed()
func clear_all_positions():
if not event_data.get('position', false):
event_data['position'] = {}
for i in range(5):
event_data['position'][str(i)] = false
for p in positions_container.get_children():
p.set('self_modulate', default_icon_color)
p.pressed = false
func check_active_position(active_color = Color("#ffffff")):
if not event_data.get('position', false): return
var index = 0
for p in positions_container.get_children():
if event_data['position'][str(index)]:
p.pressed = true
p.set('self_modulate', get_character_color())
index += 1
func on_EnablePosition_toggled(toggled):
if event_data['type'] != 2: return
event_data['change_position'] = toggled
positions_container.visible = enable_position.pressed
enable_position.icon = enable_icon if not enable_position.pressed else disable_icon
if !toggled:
$HBox/Label.text = '(same position)'
else:
$HBox/Label.text = 'to position'
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,72 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Character/EventPart_PositionPicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Images/Event Icons/character.svg" type="Texture" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=3]
[node name="PositionPicker" type="VBoxContainer"]
margin_right = 186.0
margin_bottom = 30.0
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 274.0
margin_bottom = 30.0
[node name="Label" parent="HBox" instance=ExtResource( 3 )]
margin_top = 8.0
margin_right = 68.0
margin_bottom = 22.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "at position"
[node name="PositionsContainer" type="HBoxContainer" parent="HBox"]
margin_left = 72.0
margin_right = 258.0
margin_bottom = 30.0
[node name="position-0" type="ToolButton" parent="HBox/PositionsContainer"]
self_modulate = Color( 0.596078, 0.596078, 0.596078, 0.396078 )
margin_right = 34.0
margin_bottom = 30.0
icon = ExtResource( 2 )
[node name="position-1" type="ToolButton" parent="HBox/PositionsContainer"]
self_modulate = Color( 0.596078, 0.596078, 0.596078, 0.396078 )
margin_left = 38.0
margin_right = 72.0
margin_bottom = 30.0
icon = ExtResource( 2 )
[node name="position-2" type="ToolButton" parent="HBox/PositionsContainer"]
self_modulate = Color( 0.596078, 0.596078, 0.596078, 0.396078 )
margin_left = 76.0
margin_right = 110.0
margin_bottom = 30.0
icon = ExtResource( 2 )
[node name="position-3" type="ToolButton" parent="HBox/PositionsContainer"]
self_modulate = Color( 0.596078, 0.596078, 0.596078, 0.396078 )
margin_left = 114.0
margin_right = 148.0
margin_bottom = 30.0
icon = ExtResource( 2 )
[node name="position-4" type="ToolButton" parent="HBox/PositionsContainer"]
self_modulate = Color( 0.596078, 0.596078, 0.596078, 0.396078 )
margin_left = 152.0
margin_right = 186.0
margin_bottom = 30.0
icon = ExtResource( 2 )
[node name="EnablePosition" type="ToolButton" parent="HBox"]
margin_left = 262.0
margin_right = 274.0
margin_bottom = 30.0
toggle_mode = true
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -0,0 +1,23 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/EventPart_DummyEventDataShower.gd" type="Script" id=1]
[node name="DummyEventDataShower" type="HBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Text" type="Label" parent="."]
margin_top = 13.0
margin_right = 62.0
margin_bottom = 27.0
text = "Event ID: "
[node name="EventId" type="Label" parent="."]
margin_left = 66.0
margin_top = 13.0
margin_right = 66.0
margin_bottom = 27.0

View File

@ -0,0 +1,51 @@
tool
extends HBoxContainer
onready var visible_toggle = $VisibleToggle
onready var preview = $MarginContainer/Preview
var enabled : bool
var expanded: bool
var max_preview_characters = 50
signal state_changed(expanded)
func _ready():
$MarginContainer/Preview.set("custom_colors/font_color", get_color("disabled_font_color", "Editor"))
set_enabled(false)
visible_toggle.connect("toggled", self, "_on_VisibleToggle_toggled")
func set_preview(text: String):
if len(text) > 50:
text = text.substr(0, 50)
text += "..."
preview.text = text
func set_enabled(enabled: bool):
self.enabled = enabled
set_expanded(enabled)
if enabled:
show()
else:
hide()
func set_expanded(expanded: bool):
if not enabled:
return
self.expanded = expanded
visible_toggle.pressed = expanded
if expanded:
preview.hide()
else:
preview.show()
visible_toggle.release_focus()
emit_signal("state_changed", expanded)
func _on_VisibleToggle_toggled(button_pressed: bool):
if enabled:
set_expanded(button_pressed)

View File

@ -0,0 +1,35 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/EventBlock/ExpandControl.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/EventBlock/VisibleToggle.tscn" type="PackedScene" id=4]
[node name="ExpandControl" type="HBoxContainer"]
visible = false
margin_right = 62.0
margin_bottom = 30.0
size_flags_vertical = 4
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="VisibleToggle" parent="." instance=ExtResource( 4 )]
margin_left = 8.0
margin_right = 38.0
pressed = false
script = null
[node name="MarginContainer" type="MarginContainer" parent="."]
margin_left = 42.0
margin_right = 64.0
margin_bottom = 30.0
mouse_filter = 1
custom_constants/margin_left = 10
[node name="Preview" type="Label" parent="MarginContainer"]
margin_left = 10.0
margin_top = 8.0
margin_right = 22.0
margin_bottom = 22.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "..."

View File

@ -0,0 +1,17 @@
tool
extends PopupMenu
func _ready():
clear()
add_icon_item(get_icon("Help", "EditorIcons"), "Documentation")
add_separator()
add_icon_item(get_icon("ArrowUp", "EditorIcons"), "Move up")
add_icon_item(get_icon("ArrowDown", "EditorIcons"), "Move down")
add_separator()
add_icon_item(get_icon("Remove", "EditorIcons"), "Delete")
var menu_background = load("res://addons/dialogic/Editor/Events/styles/ResourceMenuPanelBackground.tres")
menu_background.bg_color = get_color("base_color", "Editor")
add_stylebox_override('panel', menu_background)
add_stylebox_override('hover', StyleBoxEmpty.new())
add_color_override('font_color_hover', get_color("accent_color", "Editor"))

View File

@ -0,0 +1,49 @@
tool
extends CheckBox
var current_piece
var is_disabled = false
func _ready():
# Gotta love the nodes system some times
# Praise the paths (っ´ω`c)♡
current_piece = get_parent().get_parent().get_parent().get_parent()
connect("toggled", self, "_on_VisibleToggle_toggled")
func disabled():
self_modulate = Color(0,0,0,0)
is_disabled = true
func set_visible(visible: bool):
pressed = visible
var current_rect_size = current_piece.get("rect_size")
if visible:
current_piece.get_node("PanelContainer/VBoxContainer/Header/Preview").hide()
var index = 0
for node in current_piece.get_node("PanelContainer/VBoxContainer").get_children():
if index > 0:
node.show()
index += 1
else:
if current_piece.has_node("PanelContainer/VBoxContainer/Header/Preview"):
current_piece.get_node("PanelContainer/VBoxContainer/Header/Preview").show()
var index = 0
for node in current_piece.get_node("PanelContainer/VBoxContainer").get_children():
if index > 0:
node.hide()
index += 1
if "preview" in current_piece:
current_piece.get_node("PanelContainer/VBoxContainer/Header/Preview").text = current_piece.preview
current_piece.set("rect_size", Vector2(current_rect_size.x,0))
release_focus()
func _on_VisibleToggle_toggled(button_pressed):
if is_disabled:
return
set_visible(button_pressed)

View File

@ -0,0 +1,17 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Images/Pieces/open-icon.svg" type="Texture" id=1]
[ext_resource path="res://addons/dialogic/Images/Pieces/closed-icon.svg" type="Texture" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/EventBlock/VisibleToggle.gd" type="Script" id=3]
[node name="VisibleToggle" type="CheckBox"]
margin_right = 30.0
margin_bottom = 30.0
custom_icons/checked = ExtResource( 1 )
custom_icons/unchecked = ExtResource( 2 )
pressed = true
flat = true
script = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -0,0 +1,46 @@
tool
extends Control
# has to be set by the parent before adding it to the tree
var editor_reference
var event_data = {}
signal data_changed
# emit this to set the enabling of the body
signal request_set_body_enabled(enabled)
# emit these if you want the body to be closed/opened
signal request_open_body
signal request_close_body
# emit these if you want the event to be selected
signal request_selection
# emit this if you want a warning to be displayed/hidden
signal set_warning(text)
signal remove_warning()
# when the node is ready
func _ready():
pass
# to be overwritten by the subclasses
func load_data(data:Dictionary):
event_data = data
# to be overwritten by body-parts that provide a preview
func get_preview_text():
return ''
# to be overwritten by the body-parts if some kind of focus (on event creation) is wanted
func focus():
pass
# has to be called everytime the data got changed
func data_changed():
emit_signal("data_changed", event_data)

View File

@ -0,0 +1,23 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var text_field = $EventId
# used to connect the signals
func _ready():
pass
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
text_field.text = event_data['event_id']
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''

View File

@ -0,0 +1,36 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
## BEFORE EDITING THIS MAKE SURE YOU HAVE CREATED A UNIQUE SCRIPT!!!
# has an event_data variable that stores the current data!!!
## node references
# e.g.
onready var input_field = $Box/InputField
# used to connect the signals
func _ready():
# e.g.
input_field.connect("text_changed", self, "_on_InputField_text_changed")
pass
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
# e.g.
input_field.text = event_data['my_text_key']
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
## EXAMPLE CHANGE IN ONE OF THE NODES
func _on_InputField_text_changed(text):
event_data['my_text_key'] = text
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,47 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Files/FilePicker.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Images/EventPart_BackgroundPicker.gd" type="Script" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/SpinBoxPreventDnD.gd" type="Script" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/InputFieldsStyle.tres" type="Theme" id=4]
[node name="BackgroundPicker" type="VBoxContainer"]
margin_top = 1.0
margin_right = 331.0
margin_bottom = 23.0
size_flags_vertical = 4
theme = ExtResource( 4 )
script = ExtResource( 2 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 353.0
margin_bottom = 24.0
size_flags_horizontal = 3
size_flags_vertical = 3
__meta__ = {
"_edit_use_anchors_": false
}
[node name="FilePicker" parent="HBox" instance=ExtResource( 1 )]
margin_right = 149.0
[node name="FadeLabel" type="Label" parent="HBox"]
margin_left = 153.0
margin_top = 5.0
margin_right = 273.0
margin_bottom = 19.0
text = " Fade-in duration:"
[node name="NumberBox" type="SpinBox" parent="HBox"]
margin_left = 277.0
margin_right = 353.0
margin_bottom = 24.0
size_flags_vertical = 6
step = 0.1
value = 1.0
allow_greater = true
align = 1
script = ExtResource( 3 )

View File

@ -0,0 +1,30 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Images/EventPart_BackgroundPreview.gd" type="Script" id=1]
[node name="BackgroundPreview" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
size_flags_horizontal = 0
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Box" type="CenterContainer" parent="."]
margin_right = 200.0
margin_bottom = 200.0
mouse_filter = 1
size_flags_horizontal = 3
size_flags_vertical = 3
__meta__ = {
"_edit_use_anchors_": false
}
[node name="TextureRect" type="TextureRect" parent="Box"]
margin_right = 200.0
margin_bottom = 200.0
rect_min_size = Vector2( 200, 200 )
size_flags_vertical = 5
expand = true
stretch_mode = 6

View File

@ -0,0 +1,73 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var file_picker = $HBox/FilePicker
onready var fade_duration_label = $HBox/FadeLabel
onready var fade_duration = $HBox/NumberBox
# used to connect the signals
func _ready():
file_picker.connect("data_changed", self, "_on_FilePicker_data_changed")
fade_duration.connect('value_changed', self, '_on_fade_duration_changed')
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
file_picker.load_data(data)
if event_data['background']:
fade_duration_label.visible = true
fade_duration.visible = true
emit_signal("request_close_body")
else:
fade_duration_label.visible = false
fade_duration.visible = false
emit_signal("request_close_body")
fade_duration.value = event_data.get('fade_duration', 1)
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_FilePicker_data_changed(data):
event_data = data
fade_duration.visible = !data['background'].empty()
fade_duration_label.visible = !data['background'].empty()
if !data['background'].empty():
emit_signal("request_open_body")
else:
emit_signal("request_close_body")
# informs the parent about the changes!
data_changed()
#func _on_ClearButton_pressed():
# event_data['background'] = ''
#
# clear_button.disabled = true
# name_label.text = 'No image (will clear previous background)'
# image_button.hint_tooltip = 'No background selected'
# fade_duration.visible = false
# fade_duration_label.visible = false
# fade_duration.value = 1
#
# emit_signal("request_close_body")
#
# # informs the parent about the changes!
# data_changed()
func _on_fade_duration_changed(value: float):
event_data['fade_duration'] = value
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,39 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var texture_rect = $Box/TextureRect
# used to connect the signals
func _ready():
pass
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
if event_data['background']:
if not event_data['background'].ends_with('.tscn'):
emit_signal("request_set_body_enabled", true)
texture_rect.texture = load(event_data['background'])
else:
emit_signal("request_set_body_enabled", false)
if editor_reference and editor_reference.editor_interface:
editor_reference.editor_interface.get_resource_previewer().queue_resource_preview(event_data['background'], self, "show_scene_preview", null)
else:
emit_signal("request_set_body_enabled", false)
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func show_scene_preview(path:String, preview:Texture, user_data):
if preview:
texture_rect.texture = preview
emit_signal("request_set_body_enabled", true)

View File

@ -0,0 +1,42 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/ConditionPicker.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/CustomLineEdit.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/EventPart_ChoicePicker.gd" type="Script" id=3]
[node name="ChoicePicker" type="HBoxContainer"]
margin_right = 437.0
margin_bottom = 24.0
script = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 158.0
margin_bottom = 27.0
size_flags_vertical = 3
[node name="Spacer2" type="Control" parent="HBox"]
margin_right = 10.0
margin_bottom = 27.0
rect_min_size = Vector2( 10, 0 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ChoiceText" parent="HBox" instance=ExtResource( 2 )]
margin_left = 14.0
margin_right = 144.0
margin_bottom = 27.0
[node name="Spacer" type="Control" parent="HBox"]
margin_left = 148.0
margin_right = 158.0
margin_bottom = 27.0
rect_min_size = Vector2( 10, 0 )
[node name="ConditionPicker" parent="." instance=ExtResource( 1 )]
margin_left = 162.0
margin_right = 635.0
margin_bottom = 27.0

View File

@ -0,0 +1,95 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Definitions/DefinitionPicker.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/ConditionTypePicker.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/CustomLineEdit.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/EventPart_ConditionPicker.gd" type="Script" id=4]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=5]
[sub_resource type="StyleBoxFlat" id=1]
content_margin_left = 10.0
content_margin_right = 10.0
content_margin_top = 5.0
content_margin_bottom = 5.0
bg_color = Color( 0.12549, 0.141176, 0.192157, 1 )
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color( 0.0980392, 0.113725, 0.152941, 1 )
corner_radius_top_left = 3
corner_radius_top_right = 3
corner_radius_bottom_right = 3
corner_radius_bottom_left = 3
[node name="ConditionPicker" type="VBoxContainer"]
margin_left = -1.0
margin_right = 430.0
margin_bottom = 24.0
size_flags_vertical = 4
script = ExtResource( 4 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 473.0
margin_bottom = 27.0
size_flags_vertical = 3
[node name="HasCondition" type="HBoxContainer" parent="HBox"]
margin_right = 89.0
margin_bottom = 27.0
size_flags_vertical = 3
[node name="UseCondition" type="CheckBox" parent="HBox/HasCondition"]
margin_right = 89.0
margin_bottom = 27.0
size_flags_vertical = 7
text = "Condition"
[node name="Values" type="HBoxContainer" parent="HBox"]
margin_left = 93.0
margin_right = 473.0
margin_bottom = 27.0
[node name="Label2" parent="HBox/Values" instance=ExtResource( 5 )]
margin_top = 6.0
margin_right = 9.0
margin_bottom = 20.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "If"
[node name="DefinitionPicker" parent="HBox/Values" instance=ExtResource( 1 )]
margin_left = 13.0
margin_top = 1.0
margin_right = 115.0
margin_bottom = 25.0
[node name="Label" parent="HBox/Values" instance=ExtResource( 5 )]
margin_left = 119.0
margin_top = 6.0
margin_right = 130.0
margin_bottom = 20.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "is"
[node name="ConditionTypePicker" parent="HBox/Values" instance=ExtResource( 2 )]
margin_left = 134.0
margin_right = 232.0
margin_bottom = 27.0
[node name="Control" type="Control" parent="HBox/Values"]
margin_left = 236.0
margin_right = 246.0
margin_bottom = 27.0
rect_min_size = Vector2( 10, 0 )
[node name="Value" parent="HBox/Values" instance=ExtResource( 3 )]
margin_left = 250.0
margin_right = 380.0
margin_bottom = 27.0
custom_styles/read_only = SubResource( 1 )
custom_styles/focus = SubResource( 1 )
custom_styles/normal = SubResource( 1 )
text = "text"

View File

@ -0,0 +1,58 @@
tool
extends MenuButton
var options = [
{
"text": "[ Equal to ]",
"condition": "=="
},
{
"text": "[ Different from ]",
"condition": "!="
},
{
"text": "[ Greater than ]",
"condition": ">"
},
{
"text": "[ Greater or equal to ]",
"condition": ">="
},
{
"text": "[ Less than ]",
"condition": "<"
},
{
"text": "[ Less or equal to ]",
"condition": "<="
}
]
func _ready():
get_popup().connect("index_pressed", self, '_on_entry_selected')
get_popup().clear()
connect("about_to_show", self, "_on_MenuButton_about_to_show")
func _on_MenuButton_about_to_show():
get_popup().clear()
var index = 0
for o in options:
get_popup().add_item(o['text'])
get_popup().set_item_metadata(index, o)
index += 1
func _on_entry_selected(index):
var _text = get_popup().get_item_text(index)
var metadata = get_popup().get_item_metadata(index)
text = _text
func load_condition(condition):
if condition != '':
for o in options:
if (o['condition'] == condition):
text = o['text']
else:
text = options[0]['text']

View File

@ -0,0 +1,16 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/EventPart_ConditionTypePicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=2]
[node name="ConditionTypePicker" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="MenuButton" parent="." instance=ExtResource( 2 )]
margin_right = 98.0
margin_bottom = 24.0

View File

@ -0,0 +1,47 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var input_field = $HBox/ChoiceText
onready var condition_picker = $ConditionPicker
# used to connect the signals
func _ready():
# e.g.
input_field.connect("text_changed", self, "_on_ChoiceText_text_changed")
condition_picker.connect("data_changed", self, "_on_ConditionPicker_data_changed")
condition_picker.connect("remove_warning", self, "emit_signal", ["remove_warning"])
condition_picker.connect("set_warning", self, "set_warning")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
input_field.text = event_data['choice']
# Loading the data on the selectors
condition_picker.load_data(event_data)
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_ChoiceText_text_changed(text):
event_data['choice'] = text
# informs the parent about the changes!
data_changed()
func _on_ConditionPicker_data_changed(data):
event_data = data
data_changed()
func set_warning(text):
emit_signal("set_warning", text)

View File

@ -0,0 +1,85 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
onready var enabled_view = $HBox/Values
onready var definition_picker = $HBox/Values/DefinitionPicker
onready var condition_type_picker = $HBox/Values/ConditionTypePicker
onready var value_input = $HBox/Values/Value
onready var optional_view = $HBox/HasCondition
onready var use_condition_check = $HBox/HasCondition/UseCondition
# used to connect the signals
func _ready():
definition_picker.connect("data_changed", self, '_on_DefinitionPicker_data_changed')
condition_type_picker.connect("data_changed", self, '_on_ConditionTypePicker_data_changed')
value_input.connect("text_changed", self, "_on_Value_text_changed")
use_condition_check.connect("toggled", self, "_on_UseCondition_toggled")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Loading the data on the selectors
definition_picker.load_data(data)
condition_type_picker.load_data(data)
value_input.text = data['value']
if data['event_id'] == 'dialogic_011':
optional_view.show()
if data['definition'] == '': # Checking if definition is selected
use_condition_check.pressed = false
enabled_view.hide()
else:
use_condition_check.pressed = true
enabled_view.show()
else:
optional_view.hide()
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_UseCondition_toggled(checkbox_value):
enabled_view.visible = checkbox_value
if checkbox_value == false:
event_data['definition'] = ''
event_data['condition'] = ''
event_data['value'] = ''
data_changed()
func _on_DefinitionPicker_data_changed(data):
event_data = data
data_changed()
func _on_ConditionTypePicker_data_changed(data):
event_data = data
check_data()
data_changed()
# Focusing the value input
value_input.call_deferred('grab_focus')
func _on_Value_text_changed(text):
event_data['value'] = text
check_data()
data_changed()
func check_data():
# if event_data['condition'] != '==' and event_data['condition'] != '!=' and event_data['condition'] != '':
# if not event_data['value'].is_valid_float():
# emit_signal("set_warning", DTS.translate("The selected operator requires a number!"))
# return
emit_signal("remove_warning")

View File

@ -0,0 +1,76 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
var options = [
{
"text": "Equal to",
"condition": "=="
},
{
"text": "Different from",
"condition": "!="
},
{
"text": "Greater than",
"condition": ">"
},
{
"text": "Greater or equal to",
"condition": ">="
},
{
"text": "Less than",
"condition": "<"
},
{
"text": "Less or equal to",
"condition": "<="
}
]
## node references
onready var picker_menu = $MenuButton
# used to connect the signals
func _ready():
# e.g.
picker_menu.get_popup().connect("index_pressed", self, '_on_PickerMenu_selected')
picker_menu.connect("about_to_show", self, "_on_PickerMenu_about_to_show")
picker_menu.custom_icon = get_icon("GDScript", "EditorIcons")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
select_condition_type(data['condition'])
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func select_condition_type(condition):
if condition != '':
for o in options:
if (o['condition'] == condition):
picker_menu.text = o['text']
else:
picker_menu.text = options[0]['text']
func _on_PickerMenu_selected(index):
event_data['condition'] = picker_menu.get_popup().get_item_metadata(index).get('condition', '')
select_condition_type(event_data['condition'])
# informs the parent about the changes!
data_changed()
func _on_PickerMenu_about_to_show():
picker_menu.get_popup().clear()
var index = 0
for o in options:
picker_menu.get_popup().add_item(o['text'])
picker_menu.get_popup().set_item_metadata(index, o)
index += 1

View File

@ -0,0 +1,57 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var picker_menu = $MenuButton
# used to connect the signals
func _ready():
picker_menu.connect("about_to_show", self, "_on_PickerMenu_about_to_show")
picker_menu.get_popup().connect("index_pressed", self, '_on_PickerMenu_selected')
find_parent("TimelineEditor").connect("timeline_loaded", self, "update")
picker_menu.custom_icon = load("res://addons/dialogic/Images/Event Icons/label.svg")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
update()
func update():
if event_data['anchor_id'] == "":
picker_menu.text = "Select label"
else:
var anchors = find_parent('TimelineEditor').get_current_events_anchors()
if event_data['anchor_id'] in anchors.keys():
picker_menu.text = anchors[event_data['anchor_id']]
else:
picker_menu.text = "Label not found"
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_PickerMenu_about_to_show():
picker_menu.get_popup().clear()
var anchors = find_parent('TimelineEditor').get_current_events_anchors()
var index = 0
for id in anchors.keys():
picker_menu.get_popup().add_item(anchors[id])
picker_menu.get_popup().set_item_metadata(index, {'id':id})
index += 1
func _on_PickerMenu_selected(index):
var text = picker_menu.get_popup().get_item_text(index)
var metadata = picker_menu.get_popup().get_item_metadata(index)
picker_menu.text = text
event_data['anchor_id'] = metadata['id']
data_changed()

View File

@ -0,0 +1,38 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var input_field = $NameInput
onready var new_id = $NewIdButton
# used to connect the signals
func _ready():
input_field.connect("text_changed", self, "_on_InputField_text_changed")
new_id.icon = get_icon("RotateRight", "EditorIcons")
new_id.connect("pressed", self, "new_id")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
if data['id'] == null:
new_id()
input_field.text = event_data['name']
new_id.hint_tooltip = "Change to a new unique ID. \nOnly do this if you have a duplicate id in this timeline! \nWill break existing links. \n\nCurrent ID: "+data['id']
func new_id():
event_data['id'] = 'anchor-' + str(OS.get_unix_time())
new_id.hint_tooltip = "Change to a new unique ID. \nOnly do this if you have a duplicate id in this timeline! \nWill break existing links. \n\nCurrent ID: "+event_data['id']
data_changed()
func _on_InputField_text_changed(text):
event_data['name'] = text
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,71 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
var options = [
{
"text": "to be",
"operation": "="
},
{
"text": "to itself plus",
"operation": "+"
},
{
"text": "to itself minus",
"operation": "-"
},
{
"text": "to itself multiplied by",
"operation": "*"
},
{
"text": "to itself divided by",
"operation": "/"
},
]
## node references
onready var picker_menu = $MenuButton
# used to connect the signals
func _ready():
picker_menu.get_popup().connect("index_pressed", self, '_on_PickerMenu_selected')
picker_menu.connect("about_to_show", self, "_on_PickerMenu_about_to_show")
picker_menu.custom_icon = get_icon("GDScript", "EditorIcons")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
select_operation()
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func select_operation():
for o in options:
if (o['operation'] == event_data['operation']):
picker_menu.text = o['text']
func _on_PickerMenu_selected(index):
event_data['operation'] = picker_menu.get_popup().get_item_metadata(index).get('operation')
select_operation()
# informs the parent about the changes!
data_changed()
func _on_PickerMenu_about_to_show():
picker_menu.get_popup().clear()
var index = 0
for o in options:
picker_menu.get_popup().add_item(o['text'])
picker_menu.get_popup().set_item_metadata(index, o)
index += 1

View File

@ -0,0 +1,53 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var slot_picker = $MenuButton
onready var custom_slot = $CustomSlot
# used to connect the signals
func _ready():
custom_slot.connect("text_changed", self, '_on_CustomSlot_text_changed')
slot_picker.get_popup().connect("index_pressed", self, "on_SlotPicker_index_pressed")
slot_picker.get_popup().clear()
slot_picker.get_popup().add_icon_item(get_icon("Save", "EditorIcons"), "Default slot")
slot_picker.get_popup().add_icon_item(get_icon("Tools", "EditorIcons"), "Custom slot")
slot_picker.custom_icon = get_icon("Save", "EditorIcons")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
if event_data.get('use_default_slot', true):
slot_picker.text = "Default slot"
else:
slot_picker.text = "Custom slot"
custom_slot.text = event_data.get('custom_slot', '')
custom_slot.visible = not event_data.get('use_default_slot', true)
func on_SlotPicker_index_pressed(index):
event_data['use_default_slot'] = index == 0
# Now update the ui nodes to display the data.
if event_data.get('use_default_slot', true):
slot_picker.text = "Default slot"
else:
slot_picker.text = "Custom slot"
custom_slot.text = event_data.get('custom_slot', '')
custom_slot.visible = not event_data.get('use_default_slot', true)
# informs the parent about the changes!
data_changed()
func _on_CustomSlot_text_changed(text):
event_data['custom_slot'] = text
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,35 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/CustomLineEdit.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/EventPart_Save.gd" type="Script" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=4]
[node name="EventPart_Save" type="HBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
custom_constants/separation = 9
script = ExtResource( 2 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label2" parent="." instance=ExtResource( 4 )]
margin_top = 13.0
margin_right = 13.0
margin_bottom = 27.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "to"
[node name="MenuButton" parent="." instance=ExtResource( 3 )]
margin_left = 22.0
margin_top = 9.0
margin_right = 116.0
margin_bottom = 31.0
[node name="CustomSlot" parent="." instance=ExtResource( 1 )]
margin_left = 125.0
margin_top = 6.0
margin_right = 255.0
margin_bottom = 33.0
hint_tooltip = "Also allows for value definitions like this: [my_value_name]"

View File

@ -0,0 +1,99 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var input_feature = $HBox/InputValue
onready var input_field = $HBox/InputValue/InputField
onready var definition_picker = $HBox/DefinitionPicker
onready var operation_picker = $HBox/OperationPicker
onready var random_enabled_button = $HBox/RandomEnabled
onready var random_features = $HBox/RandomValue
onready var random_lower_limit = $HBox/RandomValue/LowerLimit
onready var random_upper_limit = $HBox/RandomValue/UpperLimit
# used to connect the signals
func _ready():
input_field.connect("text_changed", self, "_on_InputField_text_changed")
definition_picker.connect("data_changed", self, "_on_DefintionPicker_data_changed")
operation_picker.connect("data_changed", self, "_on_OperationPicker_data_changed")
random_enabled_button.icon = get_icon("MaterialPreviewCube", "EditorIcons")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
input_field.text = event_data['set_value']
definition_picker.load_data(data)
operation_picker.load_data(data)
switch_random_features(data.get('set_random', false))
random_lower_limit.value = data.get("random_lower_limit", 0)
random_upper_limit.value = data.get("random_upper_limit", 100)
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func check_data():
if event_data['operation'] != '=':
if not event_data['set_value'].is_valid_float():
emit_signal("set_warning", DTS.translate("The selected operator requires a number!"))
return
emit_signal("remove_warning")
func _on_InputField_text_changed(text):
event_data['set_value'] = text
operation_picker.load_data(event_data)
definition_picker.load_data(event_data)
check_data()
# informs the parent about the changes!
data_changed()
func _on_DefintionPicker_data_changed(data):
event_data = data
operation_picker.load_data(data)
# informs the parent about the changes!
data_changed()
func _on_OperationPicker_data_changed(data):
event_data = data
definition_picker.load_data(data)
check_data()
# informs the parent about the changes!
data_changed()
func switch_random_features(enabled):
random_features.visible = enabled
input_feature.visible = !enabled
random_enabled_button.pressed = enabled
event_data['set_random'] = enabled
func _on_LowerLimit_value_changed(value):
event_data['random_lower_limit'] = value
data_changed()
func _on_UpperLimit_value_changed(value):
event_data['random_upper_limit'] = value
data_changed()
func _on_RandomEnabled_toggled(button_pressed):
switch_random_features(button_pressed)

View File

@ -0,0 +1,23 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/EventPart_GoToSelector.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=3]
[node name="GoTo Selector" type="HBoxContainer"]
margin_right = 129.0
margin_bottom = 22.0
size_flags_vertical = 4
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" parent="." instance=ExtResource( 3 )]
margin_right = 31.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "label"
[node name="MenuButton" parent="." instance=ExtResource( 2 )]
margin_left = 35.0
margin_right = 129.0

View File

@ -0,0 +1,33 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/CustomLineEdit.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/EventPart_LabelSetter.gd" type="Script" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=3]
[node name="AnchorSetter" type="HBoxContainer"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_right = -723.0
margin_bottom = -573.0
script = ExtResource( 2 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="NameInput" parent="." instance=ExtResource( 1 )]
margin_right = 130.0
margin_bottom = 27.0
[node name="Label" parent="." instance=ExtResource( 3 )]
margin_left = 134.0
margin_top = 6.0
margin_right = 182.0
margin_bottom = 20.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = " is here"
[node name="NewIdButton" type="ToolButton" parent="."]
margin_left = 186.0
margin_right = 198.0
margin_bottom = 27.0
hint_tooltip = "Change to a new unique ID. Only do this if you have a duplicate id in this timeline!"

View File

@ -0,0 +1,15 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/EventPart_OperationPicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=2]
[node name="OperationPicker" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
size_flags_vertical = 4
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="MenuButton" parent="." instance=ExtResource( 2 )]

View File

@ -0,0 +1,123 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/OperationPicker.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/CustomLineEdit.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Definitions/DefinitionPicker.tscn" type="PackedScene" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Logic/EventPart_SetValuePicker.gd" type="Script" id=4]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=5]
[sub_resource type="Image" id=4]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=3]
flags = 4
flags = 4
image = SubResource( 4 )
size = Vector2( 16, 16 )
[node name="SetValuePicker" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
size_flags_vertical = 4
script = ExtResource( 4 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 726.0
margin_bottom = 27.0
[node name="DefinitionPicker" parent="HBox" instance=ExtResource( 3 )]
margin_top = 2.0
margin_right = 98.0
margin_bottom = 24.0
[node name="OperationPicker" parent="HBox" instance=ExtResource( 1 )]
margin_left = 102.0
margin_top = 2.0
margin_right = 196.0
margin_bottom = 24.0
[node name="InputValue" type="HBoxContainer" parent="HBox"]
margin_left = 200.0
margin_right = 344.0
margin_bottom = 27.0
[node name="Spacer" type="Control" parent="HBox/InputValue"]
margin_right = 10.0
margin_bottom = 27.0
rect_min_size = Vector2( 10, 0 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="InputField" parent="HBox/InputValue" instance=ExtResource( 2 )]
margin_left = 14.0
margin_right = 144.0
margin_bottom = 27.0
[node name="RandomValue" type="HBoxContainer" parent="HBox"]
margin_left = 348.0
margin_right = 680.0
margin_bottom = 27.0
custom_constants/separation = 5
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" parent="HBox/RandomValue" instance=ExtResource( 5 )]
margin_top = 6.0
margin_right = 156.0
margin_bottom = 20.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = " a random number from"
[node name="LowerLimit" type="SpinBox" parent="HBox/RandomValue"]
margin_left = 161.0
margin_right = 235.0
margin_bottom = 27.0
allow_greater = true
allow_lesser = true
[node name="Label2" parent="HBox/RandomValue" instance=ExtResource( 5 )]
margin_left = 240.0
margin_top = 6.0
margin_right = 253.0
margin_bottom = 20.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "to"
[node name="UpperLimit" type="SpinBox" parent="HBox/RandomValue"]
margin_left = 258.0
margin_right = 332.0
margin_bottom = 27.0
allow_greater = true
allow_lesser = true
[node name="Spacer" type="Control" parent="HBox"]
margin_left = 684.0
margin_right = 694.0
margin_bottom = 27.0
rect_min_size = Vector2( 10, 0 )
[node name="RandomEnabled" type="Button" parent="HBox"]
self_modulate = Color( 1, 1, 1, 0.501961 )
margin_left = 698.0
margin_right = 726.0
margin_bottom = 27.0
hint_tooltip = "Set to a random integer"
focus_mode = 0
toggle_mode = true
icon = SubResource( 3 )
flat = true
[connection signal="value_changed" from="HBox/RandomValue/LowerLimit" to="." method="_on_LowerLimit_value_changed"]
[connection signal="value_changed" from="HBox/RandomValue/UpperLimit" to="." method="_on_UpperLimit_value_changed"]
[connection signal="toggled" from="HBox/RandomEnabled" to="." method="_on_RandomEnabled_toggled"]

View File

@ -0,0 +1,29 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var number_box = $HBox/NumberBox
# used to connect the signals
func _ready():
number_box.connect("value_changed", self, "_on_NumberBox_value_changed")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
number_box.value = event_data['transition_duration']
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_NumberBox_value_changed(value):
event_data['transition_duration'] = value
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,35 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/SpinBoxPreventDnD.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Numbers/EventPart_TransitonLengthPicker.gd" type="Script" id=2]
[node name="TransitonLengthPicker" type="VBoxContainer"]
margin_right = 195.0
margin_bottom = 24.0
size_flags_vertical = 3
script = ExtResource( 2 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 195.0
margin_bottom = 24.0
size_flags_vertical = 3
[node name="NameLabel" type="Label" parent="HBox"]
margin_top = 5.0
margin_right = 117.0
margin_bottom = 19.0
text = "Fade-out duration:"
[node name="NumberBox" type="SpinBox" parent="HBox"]
margin_left = 121.0
margin_right = 195.0
margin_bottom = 24.0
size_flags_vertical = 6
step = 0.1
value = 1.0
allow_greater = true
align = 1
script = ExtResource( 1 )

View File

@ -0,0 +1,39 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Characters/PortraitPicker.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Characters/CharacterPicker.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Characters/EventPart_CharacterAndPortraitPicker.gd" type="Script" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Definitions/DefinitionPicker.tscn" type="PackedScene" id=4]
[node name="CharacterAndPortraitPicker" type="VBoxContainer"]
margin_right = 305.0
margin_bottom = 48.0
script = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 305.0
margin_bottom = 48.0
size_flags_vertical = 3
custom_constants/separation = 5
[node name="CharacterPicker" parent="HBox" instance=ExtResource( 2 )]
margin_top = 9.0
margin_right = 95.0
margin_bottom = 39.0
[node name="PortraitPicker" parent="HBox" instance=ExtResource( 1 )]
visible = false
margin_left = 100.0
margin_top = 13.0
margin_right = 264.0
margin_bottom = 35.0
[node name="DefinitionPicker" parent="HBox" instance=ExtResource( 4 )]
visible = false
margin_left = 100.0
margin_top = 13.0
margin_right = 198.0
margin_bottom = 35.0

View File

@ -0,0 +1,53 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Characters/EventPart_CharacterPicker.gd" type="Script" id=2]
[ext_resource path="res://addons/dialogic/Editor/Theme/PickerTheme.tres" type="Theme" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=4]
[node name="CharacterPicker" type="VBoxContainer"]
margin_right = 161.0
margin_bottom = 30.0
rect_min_size = Vector2( 0, 30 )
size_flags_vertical = 4
theme = ExtResource( 3 )
script = ExtResource( 2 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 161.0
margin_bottom = 30.0
size_flags_vertical = 3
custom_constants/separation = 5
[node name="MenuButton" parent="HBox" instance=ExtResource( 4 )]
margin_top = 4.0
margin_right = 95.0
margin_bottom = 26.0
text = "Character"
[node name="NoCharacterContainer" type="HBoxContainer" parent="."]
visible = false
margin_top = 26.0
margin_right = 399.0
margin_bottom = 46.0
[node name="NoCharacterLabel1" type="Label" parent="NoCharacterContainer"]
margin_top = 3.0
margin_right = 261.0
margin_bottom = 17.0
text = "You haven't created a character yet. Click"
[node name="NoCharacterButton" type="Button" parent="NoCharacterContainer"]
margin_left = 265.0
margin_right = 306.0
margin_bottom = 20.0
text = "here"
[node name="NoCharacterLabel2" type="Label" parent="NoCharacterContainer"]
margin_left = 310.0
margin_top = 3.0
margin_right = 399.0
margin_bottom = 17.0
text = "to create one."

View File

@ -0,0 +1,78 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
## node references
onready var character_picker = $HBox/CharacterPicker
onready var portrait_picker = $HBox/PortraitPicker
onready var definition_picker = $HBox/DefinitionPicker
# used to connect the signals
func _ready():
if DialogicUtil.get_character_list().size() == 0:
hide()
character_picker.connect("data_changed", self, "_on_CharacterPicker_data_changed")
portrait_picker.connect("data_changed", self, "_on_PortraitPicker_data_changed")
definition_picker.connect("data_changed", self, "_on_DefinitionPicker_data_changed")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
portrait_picker.load_data(data)
character_picker.load_data(data)
portrait_picker.visible = get_character_data() and len(get_character_data()['portraits']) > 1
if data['event_id'] == 'dialogic_002':
if data.get('type', 0) != 1: # FOR JOIN AND UPDATE:
var has_port_defn = data['portrait'] == '[Definition]'
if portrait_picker.visible and has_port_defn and data.has('port_defn'):
definition_picker.load_data({ 'definition': data['port_defn'] })
definition_picker.visible = has_port_defn
else:
portrait_picker.hide()
definition_picker.hide()
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func get_character_data():
for ch in DialogicUtil.get_character_list():
if ch['file'] == event_data['character']:
return ch
func _on_CharacterPicker_data_changed(data):
event_data = data
# update the portrait picker data
portrait_picker.load_data(data)
portrait_picker.visible = get_character_data() and len(get_character_data()['portraits']) > 1
if !portrait_picker.visible:
definition_picker.hide()
# informs the parent about the changes!
data_changed()
func _on_PortraitPicker_data_changed(data):
event_data = data
# update the portrait picker data
character_picker.load_data(data)
definition_picker.visible = event_data['portrait'] == '[Definition]'
# informs the parent about the changes!
data_changed()
func _on_DefinitionPicker_data_changed(data):
event_data['port_defn'] = data['definition']
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,156 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
export (bool) var allow_no_character := false
## node references
onready var picker_menu = $HBox/MenuButton
onready var no_character_button = $NoCharacterContainer/NoCharacterButton
onready var no_character_container = $NoCharacterContainer
# theme
var no_character_icon
var all_characters_icon
var single_character_icon
func _ready():
if DialogicUtil.get_character_list().size() > 0:
picker_menu.show()
no_character_container.hide()
else:
picker_menu.hide()
no_character_container.show()
var editor_reference = find_parent('EditorView')
no_character_button.connect('pressed', editor_reference.get_node('MainPanel/MasterTreeContainer/MasterTree'), 'new_character')
# So... not having real events makes me do this kind of hacks
# I hope to improve how events work, but in the mean time
# this is what I have to do to get by :')
var event_node = get_node('../../../../../../../..')
if event_node.get_node_or_null('AllowNoCharacter'):
allow_no_character = true
no_character_container.hide()#We dont want the button on text events
# Connections
picker_menu.connect("about_to_show", self, "_on_PickerMenu_about_to_show")
# Themeing
no_character_icon = get_icon("GuiRadioUnchecked", "EditorIcons")
all_characters_icon = get_icon("GuiEllipsis", "EditorIcons")
single_character_icon = load("res://addons/dialogic/Images/Resources/character.svg")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
allow_no_character = data['event_id'] != 'dialogic_002'
# Now update the ui nodes to display the data.
update_to_character()
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
# helper to not have the same code everywhere
func update_to_character():
if event_data['character'] != '':
if event_data['character'] == '[All]':
picker_menu.text = "All characters"
picker_menu.reset_modulation()
picker_menu.custom_icon = all_characters_icon
else:
for ch in DialogicUtil.get_character_list():
if ch['file'] == event_data['character']:
picker_menu.text = ch['name']
picker_menu.custom_icon_modulation = ch['color']
picker_menu.custom_icon = single_character_icon
else:
if allow_no_character:
picker_menu.text = 'No Character'
picker_menu.custom_icon = no_character_icon
else:
picker_menu.text = 'Select Character'
picker_menu.custom_icon = single_character_icon
picker_menu.reset_modulation()
# when an index is selected on one of the menus.
func _on_PickerMenu_selected(index, menu):
var metadata = menu.get_item_metadata(index)
if event_data['character'] != metadata.get('file',''):
if event_data.get('event_id') == 'dialogic_002':
if event_data.get('type') == 0:
event_data['portrait'] = 'Default'
elif event_data.get('type') == 2:
event_data['portrait'] = "(Don't change)"
event_data['character'] = metadata.get('file','')
update_to_character()
# informs the parent about the changes!
data_changed()
func _on_PickerMenu_about_to_show():
build_PickerMenu()
func build_PickerMenu():
picker_menu.get_popup().clear()
var folder_structure = DialogicUtil.get_characters_folder_structure()
## building the root level
build_PickerMenuFolder(picker_menu.get_popup(), folder_structure, "MenuButton")
# is called recursively to build all levels of the folder structure
func build_PickerMenuFolder(menu:PopupMenu, folder_structure:Dictionary, current_folder_name:String):
var index = 0
## THIS IS JUST FOR THE ROOT FOLDER
if menu == picker_menu.get_popup():
if event_data.get('event_id', 'dialogic_001') != 'dialogic_002':
menu.add_item('No character')
menu.set_item_metadata(index, {'file':''})
menu.set_item_icon(index, no_character_icon)
index += 1
# in case this is a leave event
if event_data.get('type', 0) == 1:
menu.add_item('All characters')
menu.set_item_metadata(index, {'file': '[All]'})
menu.set_item_icon(index, all_characters_icon)
index += 1
for folder_name in folder_structure['folders'].keys():
var submenu = PopupMenu.new()
var submenu_name = build_PickerMenuFolder(submenu, folder_structure['folders'][folder_name], folder_name)
submenu.name = submenu_name
menu.add_submenu_item(folder_name, submenu_name)
menu.set_item_icon(index, get_icon("Folder", "EditorIcons"))
menu.add_child(submenu)
index += 1
# give it the right style
picker_menu.update_submenu_style(submenu)
var files_info = DialogicUtil.get_characters_dict()
for file in folder_structure['files']:
menu.add_item(files_info[file]['name'])
# this doesn't work right now, because it doesn't have the editor_reference. Would be nice though
#menu.set_item_icon(index, editor_reference.get_node("MainPanel/MasterTreeContainer/MasterTree").character_icon)
menu.set_item_icon(index, single_character_icon)
menu.set_item_metadata(index, {'file':file})
index += 1
if not menu.is_connected("index_pressed", self, "_on_PickerMenu_selected"):
menu.connect("index_pressed", self, '_on_PickerMenu_selected', [menu])
return current_folder_name

View File

@ -0,0 +1,170 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
export (bool) var allow_dont_change := true
export (bool) var allow_definition := true
## node references
onready var picker_menu = $HBox/MenuButton
onready var preview = $Preview/PreviewContainer
onready var preview_title = preview.get_node("VBox/Title")
onready var preview_texture = preview.get_node("VBox/TextureRect")
var current_hovered = null
var character_data = null
# theme
var no_change_icon
var definition_icon
var portrait_icon
# used to connect the signals
func _ready():
picker_menu.get_popup().connect("index_pressed", self, '_on_PickerMenu_selected')
picker_menu.get_popup().connect("gui_input", self, "popup_gui_input")
picker_menu.get_popup().connect("mouse_exited", self, "mouse_exited_popup")
picker_menu.get_popup().connect("popup_hide", self, "mouse_exited_popup")
picker_menu.connect("about_to_show", self, "_on_PickerMenu_about_to_show")
preview_title.set('custom_fonts/font', get_font("title", "EditorFonts"))
preview.set('custom_styles/panel', get_stylebox("panel", "PopupMenu"))
# Themeing
no_change_icon = get_icon("GuiRadioUnchecked", "EditorIcons")
definition_icon = load("res://addons/dialogic/Images/Resources/definition.svg")
portrait_icon = load("res://addons/dialogic/Images/Event Icons/Portrait.svg")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
allow_dont_change = event_data['event_id'] != 'dialogic_002' or (event_data['event_id'] == 'dialogic_002' and int(event_data.get('type', 0)) == 2)
if event_data['event_id'] == 'dialogic_002' and event_data['type'] == 2:
$HBox/Label.text = "to portrait"
else:
$HBox/Label.text = "with portrait"
# Now update the ui nodes to display the data.
if event_data.get('portrait', '').empty():
# if this is a text/question event or character event in update mode
if allow_dont_change:
picker_menu.text = "(Don't change)"
picker_menu.custom_icon = no_change_icon
else:
picker_menu.text = "Default"
picker_menu.custom_icon = portrait_icon
else:
if event_data['portrait'] == "[Definition]":
picker_menu.text = "[Value]"
picker_menu.custom_icon = definition_icon
else:
picker_menu.text = event_data['portrait']
picker_menu.custom_icon = portrait_icon
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_PickerMenu_selected(index):
if index == 0 and allow_dont_change:
event_data['portrait'] = "(Don't change)"
picker_menu.custom_icon = no_change_icon
elif allow_definition and ((allow_dont_change and index == 1) or index == 0):
event_data['portrait'] = "[Definition]"
picker_menu.custom_icon = definition_icon
else:
event_data['portrait'] = picker_menu.get_popup().get_item_text(index)
picker_menu.custom_icon = portrait_icon
# TODO in 2.0
if event_data['portrait'] == "[Definition]":
picker_menu.text = "[Value]"
else:
picker_menu.text = event_data['portrait']
# informs the parent about the changes!
data_changed()
func get_character_data():
for ch in DialogicUtil.get_character_list():
if ch['file'] == event_data['character']:
return ch
func _on_PickerMenu_about_to_show():
character_data = get_character_data()
picker_menu.get_popup().clear()
var index = 0
if allow_dont_change:
picker_menu.get_popup().add_item("(Don't change)")
picker_menu.get_popup().set_item_icon(index, no_change_icon)
index += 1
if allow_definition:
picker_menu.get_popup().add_item("[Value]")
picker_menu.get_popup().set_item_icon(index, definition_icon)
index += 1
if event_data['character']:
if character_data.has('portraits'):
for p in character_data['portraits']:
picker_menu.get_popup().add_item(p['name'])
picker_menu.get_popup().set_item_icon(index, portrait_icon)
index += 1
func popup_gui_input(event):
if event is InputEventMouseMotion:
if current_hovered != picker_menu.get_popup().get_current_index():
current_hovered = picker_menu.get_popup().get_current_index()
# hide if this is not a previewable portrait
# this isn't even an item
if current_hovered == -1:
preview.hide()
return
var idx_add = 0
if allow_dont_change:
idx_add -= 1
if current_hovered == 0:
preview.hide()
return
if allow_definition and current_hovered == 1:
preview.hide()
return
if allow_definition:
idx_add -= 1
if not allow_dont_change and current_hovered == 0:
preview.hide()
return
## show the preview
preview.rect_position.x = picker_menu.get_popup().rect_size.x + 130
var current = character_data['portraits'][current_hovered + idx_add]
preview_title.text = ' ' + current['name']
preview_title.icon = null
if current['path']:
if current['path'].ends_with('.tscn'):
preview_texture.expand = false
var editor_reference = find_parent('EditorView')
if editor_reference and editor_reference.editor_interface:
editor_reference.editor_interface.get_resource_previewer().queue_resource_preview(current['path'], self, "show_scene_preview", null)
preview_title.icon = get_icon("PackedScene", "EditorIcons")
return
else:
preview_title.icon = get_icon("Sprite", "EditorIcons")
preview_texture.expand = true
preview_texture.texture = load(current['path'])
else:
preview_texture.texture = null
preview.show()
func mouse_exited_popup():
preview.hide()
current_hovered = null
func show_scene_preview(path:String, preview:Texture, user_data):
if preview:
preview_texture.texture = preview

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,22 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Definitions/EventPart_DefinitionPicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=2]
[node name="DefinitionPicker" type="VBoxContainer"]
margin_right = 83.0
margin_bottom = 22.0
size_flags_vertical = 4
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
default_text = "Value"
[node name="HBox" type="HBoxContainer" parent="."]
margin_right = 98.0
margin_bottom = 22.0
[node name="MenuButton" parent="HBox" instance=ExtResource( 2 )]
margin_right = 98.0
text = "Definition"

View File

@ -0,0 +1,79 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
export (String) var default_text = "Select Definition"
## node references
onready var picker_menu = $HBox/MenuButton
# used to connect the signals
func _ready():
picker_menu.connect("about_to_show", self, "_on_PickerMenu_about_to_show")
# themeing
picker_menu.custom_icon_modulation = get_color("font_color", "Editor")
picker_menu.custom_icon = load("res://addons/dialogic/Images/Resources/definition.svg")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
select_definition_by_id(data['definition'])
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func select_definition_by_id(id):
if id != '':
for d in DialogicResources.get_default_definitions()['variables']:
if d['id'] == id:
picker_menu.text = d['name']
else:
picker_menu.text = default_text
# when an index is selected on one of the menus.
func _on_PickerMenu_selected(index, menu):
var text = menu.get_item_text(index)
var metadata = menu.get_item_metadata(index)
picker_menu.text = text
event_data['definition'] = metadata['file']
# informs the parent about the changes!
data_changed()
func _on_PickerMenu_about_to_show():
# Building the picker menu()
picker_menu.get_popup().clear()
## building the root level
build_PickerMenuFolder(picker_menu.get_popup(), DialogicUtil.get_definitions_folder_structure(), "MenuButton")
# is called recursively to build all levels of the folder structure
func build_PickerMenuFolder(menu:PopupMenu, folder_structure:Dictionary, current_folder_name:String):
var index = 0
for folder_name in folder_structure['folders'].keys():
var submenu = PopupMenu.new()
var submenu_name = build_PickerMenuFolder(submenu, folder_structure['folders'][folder_name], folder_name)
submenu.name = submenu_name
menu.add_submenu_item(folder_name, submenu_name)
menu.set_item_icon(index, get_icon("Folder", "EditorIcons"))
menu.add_child(submenu)
picker_menu.update_submenu_style(submenu)
index += 1
var files_info = DialogicUtil.get_default_definitions_dict()
for file in folder_structure['files']:
if files_info[file]["type"] == 0:
menu.add_item(files_info[file]['name'])
menu.set_item_icon(index, load("res://addons/dialogic/Images/Resources/definition.svg"))
menu.set_item_metadata(index, {'file':file})
index += 1
if not menu.is_connected("index_pressed", self, "_on_PickerMenu_selected"):
menu.connect("index_pressed", self, '_on_PickerMenu_selected', [menu])
return current_folder_name

View File

@ -0,0 +1,79 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
export (String) var default_text = "Select Glossary Item"
## node references
onready var picker_menu = $MenuButton
# used to connect the signals
func _ready():
picker_menu.connect("about_to_show", self, "_on_PickerMenu_about_to_show")
picker_menu.custom_icon = get_icon("ListSelect", "EditorIcons")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
select_glossary_by_id(data['glossary_id'])
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func select_glossary_by_id(id):
if id != '':
for d in DialogicResources.get_default_definitions()['glossary']:
if d['id'] == id:
picker_menu.text = d['name']
else:
picker_menu.text = default_text
# when an index is selected on one of the menus.
func _on_PickerMenu_selected(index, menu):
event_data['glossary_id'] = menu.get_item_metadata(index).get('file', '')
select_glossary_by_id(event_data['glossary_id'])
# informs the parent about the changes!
data_changed()
func _on_PickerMenu_about_to_show():
build_PickerMenu()
func build_PickerMenu():
picker_menu.get_popup().clear()
var folder_structure = DialogicUtil.get_definitions_folder_structure()
## building the root level
build_PickerMenuFolder(picker_menu.get_popup(), folder_structure, "MenuButton")
# is called recursively to build all levels of the folder structure
func build_PickerMenuFolder(menu:PopupMenu, folder_structure:Dictionary, current_folder_name:String):
var index = 0
#menu.name = current_folder_name
for folder_name in folder_structure['folders'].keys():
var submenu = PopupMenu.new()
var submenu_name = build_PickerMenuFolder(submenu, folder_structure['folders'][folder_name], folder_name)
submenu.name = submenu_name
menu.add_submenu_item(folder_name, submenu_name)
menu.set_item_icon(index, get_icon("Folder", "EditorIcons"))
menu.add_child(submenu)
picker_menu.update_submenu_style(submenu)
index += 1
var files_info = DialogicUtil.get_default_definitions_dict()
for file in folder_structure['files']:
if files_info[file]["type"] == 1:
menu.add_item(files_info[file]['name'])
menu.set_item_icon(index, editor_reference.get_node("MainPanel/MasterTreeContainer/MasterTree").glossary_icon)
menu.set_item_metadata(index, {'file':file})
index += 1
if not menu.is_connected("index_pressed", self, "_on_PickerMenu_selected"):
menu.connect("index_pressed", self, '_on_PickerMenu_selected', [menu])
return current_folder_name

View File

@ -0,0 +1,133 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var title_input = $Title/Input
onready var title_check = $Title/Check
onready var text_input = $Text/Input
onready var text_check = $Text/Check
onready var extra_input = $Extra/Input
onready var extra_check = $Extra/Check
# used to connect the signals
func _ready():
title_input.connect("text_changed", self, "_on_TitleField_text_changed")
text_input.connect("text_changed", self, "_on_TextField_text_changed")
extra_input.connect("text_changed", self, "_on_ExtraField_text_changed")
title_check.connect("toggled", self, "_on_TitleCheck_toggled")
text_check.connect("toggled", self, "_on_TextCheck_toggled")
extra_check.connect("toggled", self, "_on_ExtraCheck_toggled")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
emit_signal("request_set_body_enabled", event_data['glossary_id'] != '')
$Title.visible = event_data['glossary_id'] != ''
$Text.visible = event_data['glossary_id'] != ''
$Extra.visible = event_data['glossary_id'] != ''
if event_data['glossary_id']:
var glossary_default
for d in DialogicResources.get_default_definitions()['glossary']:
if d['id'] == event_data['glossary_id']:
glossary_default = d
if glossary_default == null:
print('[D] The glossary item with id ', event_data['glossary_id'], ' cannot be found anymore. The event will be reset.')
event_data['glossary_id'] = ''
load_data(event_data)
return
title_input.placeholder_text = glossary_default['title']
text_input.placeholder_text = glossary_default['text']
extra_input.placeholder_text = glossary_default['extra']
# Now update the ui nodes to display the data.
if event_data['title'] == "[No Change]":
title_check.pressed = true
title_input.text = ""
else:
title_check.pressed = false
title_input.text = event_data['title']
if event_data['text'] == "[No Change]":
text_check.pressed = true
text_input.text = ""
else:
text_check.pressed = false
text_input.text = event_data['text']
if event_data['extra'] == "[No Change]":
extra_check.pressed = true
extra_input.text = ""
else:
extra_check.pressed = false
extra_input.text = event_data['extra']
# has to return the wanted preview, only useful for body parts
func get_preview():
if event_data['glossary_id']:
var text := ""
if event_data['title'] != "[No Change]":
text += "Changes title to '"+event_data['title']+"'. "
if event_data['extra'] != "[No Change]":
text += "Changes extra to '"+event_data['extra']+"'. "
if event_data['text'] != "[No Change]":
text += "Changes text to '"+event_data['text']+"'. "
return text
return ''
func _on_TitleField_text_changed(text):
event_data['title'] = text
# informs the parent about the changes!
data_changed()
func _on_TextField_text_changed(text):
event_data['text'] = text
# informs the parent about the changes!
data_changed()
func _on_ExtraField_text_changed(text):
event_data['extra'] = text
# informs the parent about the changes!
data_changed()
func _on_TitleCheck_toggled(toggle):
if toggle:
event_data['title'] = "[No Change]"
title_input.editable = false
else:
event_data['title'] = title_input.text
title_input.editable = true
# informs the parent about the changes!
data_changed()
func _on_TextCheck_toggled(toggle):
if toggle:
event_data['text'] = "[No Change]"
text_input.editable = false
else:
event_data['text'] = text_input.text
text_input.editable = true
# informs the parent about the changes!
data_changed()
func _on_ExtraCheck_toggled(toggle):
if toggle:
event_data['extra'] = "[No Change]"
extra_input.editable = false
else:
event_data['extra'] = extra_input.text
extra_input.editable = true
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,27 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Definitions/EventPart_GlossaryPicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=3]
[node name="GlossaryPicker" type="HBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
size_flags_vertical = 4
script = ExtResource( 1 )
default_text = "Glossary item"
[node name="Label" parent="." instance=ExtResource( 3 )]
margin_top = 13.0
margin_right = 93.0
margin_bottom = 27.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "Set content of "
[node name="MenuButton" parent="." instance=ExtResource( 2 )]
margin_left = 97.0
margin_top = 8.0
margin_right = 285.0
margin_bottom = 32.0
custom_colors/font_color = Color( 0.8, 0.807843, 0.827451, 1 )
text = "Select Glossary Item"

View File

@ -0,0 +1,87 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/CustomLineEdit.tscn" type="PackedScene" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Definitions/EventPart_SetGlossary.gd" type="Script" id=3]
[node name="SetGlossary" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
size_flags_horizontal = 0
script = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Title" type="HBoxContainer" parent="."]
margin_right = 331.0
margin_bottom = 27.0
custom_constants/separation = 20
[node name="Label" type="Label" parent="Title"]
margin_top = 6.0
margin_right = 50.0
margin_bottom = 20.0
rect_min_size = Vector2( 50, 0 )
text = "Title:"
[node name="Input" parent="Title" instance=ExtResource( 1 )]
margin_left = 70.0
margin_right = 200.0
margin_bottom = 27.0
size_flags_horizontal = 3
[node name="Check" type="CheckBox" parent="Title"]
margin_left = 220.0
margin_right = 331.0
margin_bottom = 27.0
text = "Don't change"
[node name="Text" type="HBoxContainer" parent="."]
margin_top = 31.0
margin_right = 331.0
margin_bottom = 58.0
custom_constants/separation = 20
[node name="Label" type="Label" parent="Text"]
margin_top = 6.0
margin_right = 50.0
margin_bottom = 20.0
rect_min_size = Vector2( 50, 0 )
text = "Text:"
[node name="Input" parent="Text" instance=ExtResource( 1 )]
margin_left = 70.0
margin_right = 200.0
margin_bottom = 27.0
size_flags_horizontal = 3
[node name="Check" type="CheckBox" parent="Text"]
margin_left = 220.0
margin_right = 331.0
margin_bottom = 27.0
text = "Don't change"
[node name="Extra" type="HBoxContainer" parent="."]
margin_top = 62.0
margin_right = 331.0
margin_bottom = 89.0
custom_constants/separation = 20
[node name="Label" type="Label" parent="Extra"]
margin_top = 6.0
margin_right = 50.0
margin_bottom = 20.0
rect_min_size = Vector2( 50, 0 )
text = "Extra:"
[node name="Input" parent="Extra" instance=ExtResource( 1 )]
margin_left = 70.0
margin_right = 200.0
margin_bottom = 27.0
size_flags_horizontal = 3
[node name="Check" type="CheckBox" parent="Extra"]
margin_left = 220.0
margin_right = 331.0
margin_bottom = 27.0
text = "Don't change"

View File

@ -0,0 +1,117 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
export(String, "Audio", "Background", "Scene", "Resource") var Mode = "Background"
## node references
onready var file_button = $FileButton
onready var clear_button = $ClearButton
# until we change the background color of the pickers, the color should ignore the theme
var default_color = Color('ccced3')
# used to connect the signals
func _ready():
editor_reference = find_parent("EditorView")
file_button.connect("pressed", self, "_on_FileButton_pressed")
clear_button.connect('pressed', self, "_on_ClearButton_pressed")
file_button.add_color_override("font_color", default_color) #get_color("mono_color", "Editor"))
clear_button.icon = get_icon("Reload", "EditorIcons")
$FileButton/icon2.texture = get_icon("GuiSliderGrabber", "EditorIcons")
match Mode:
"Audio":
$Label.text = "Play"
$FileButton/icon.texture = get_icon("AudioStreamPlayer", "EditorIcons")
"Background":
$Label.text = "to"
$FileButton/icon.texture = get_icon("Image", "EditorIcons")
"Scene":
$Label.text = "to"
$FileButton/icon.texture = get_icon("PackedScene", "EditorIcons")
"Resource":
$Label.text = "to"
$FileButton/icon.texture = get_icon("PackedScene", "EditorIcons")
# called by the parent event part
func load_data(event_data:Dictionary):
# first update the event_data
.load_data(event_data)
# then the ui
var path
file_button.text = ""
match Mode:
"Audio":
path = event_data['file']
if path.empty():
file_button.text = 'nothing (will stop previous)'
"Background":
path = event_data['background']
if path.empty():
file_button.text = 'nothing (will hide previous)'
"Scene":
path = event_data['change_scene']
if path.empty():
file_button.text = 'a yet to be selected scene'
"Resource":
path = event_data['resource_file']
if path.empty():
file_button.text = 'a yet to be selected resource'
if file_button.text.empty():
file_button.text = path.get_file()
file_button.hint_tooltip = path
clear_button.visible = !path.empty()
func _on_FileButton_pressed():
match Mode:
"Audio":
editor_reference.godot_dialog("*.wav, *.ogg, *.mp3")
"Background":
editor_reference.godot_dialog("*.png, *.jpg, *.jpeg, *.tga, *.svg, *.svgz, *.bmp, *.webp, *.tscn")
"Scene":
editor_reference.godot_dialog("*.tscn")
"Resource":
editor_reference.godot_dialog("*.tres, *.res")
editor_reference.godot_dialog_connect(self, "_on_file_selected")
func _on_file_selected(path, target):
match Mode:
"Audio":
event_data['file'] = path
"Background":
event_data['background'] = path
"Scene":
event_data['change_scene'] = path
"Resource":
event_data['resource_file'] = path
clear_button.visible = true
file_button.text = path.get_file()
file_button.hint_tooltip = path
# informs the parent about the changes!
data_changed()
func _on_ClearButton_pressed():
match Mode:
"Audio":
event_data['file'] = ""
file_button.text = 'nothing (will stop previous)'
"Background":
event_data['background'] = ""
file_button.text = 'nothing (will hide previous)'
"Scene":
event_data['change_scene'] = ""
file_button.text = 'a yet to be selected scene'
"Resource":
event_data['resource_file'] = ""
file_button.text = 'a yet to be selected resource'
clear_button.visible = false
# informs the parent about the changes!
data_changed()

View File

@ -0,0 +1,87 @@
[gd_scene load_steps=8 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/SimpleButtonHover.tres" type="StyleBox" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/SettingsFieldBackground.tres" type="StyleBox" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Files/EventPart_FilePicker.gd" type="Script" id=3]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=4]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/SimpleButtonNormal.tres" type="StyleBox" id=7]
[sub_resource type="Image" id=3]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 3 )
size = Vector2( 16, 16 )
[node name="FilePicker" type="HBoxContainer"]
margin_top = 1.0
margin_right = 331.0
margin_bottom = 23.0
size_flags_vertical = 4
script = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Label" parent="." instance=ExtResource( 4 )]
margin_top = 5.0
margin_right = 13.0
margin_bottom = 19.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "to"
[node name="FileButton" type="Button" parent="."]
margin_left = 17.0
margin_right = 143.0
margin_bottom = 24.0
custom_styles/hover = ExtResource( 2 )
custom_styles/pressed = ExtResource( 2 )
custom_styles/focus = ExtResource( 2 )
custom_styles/normal = ExtResource( 2 )
text = "none so far"
[node name="icon" type="TextureRect" parent="FileButton"]
margin_left = 4.0
margin_top = 5.0
margin_right = 23.0
margin_bottom = 24.0
texture = SubResource( 2 )
expand = true
stretch_mode = 6
__meta__ = {
"_edit_use_anchors_": false
}
[node name="icon2" type="TextureRect" parent="FileButton"]
anchor_left = 1.0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
margin_left = -20.9581
margin_top = -6.63555
margin_right = -5.95807
margin_bottom = 8.36445
texture = SubResource( 2 )
expand = true
stretch_mode = 6
__meta__ = {
"_edit_use_anchors_": false
}
[node name="ClearButton" type="Button" parent="."]
margin_left = 147.0
margin_right = 169.0
margin_bottom = 24.0
rect_min_size = Vector2( 22, 22 )
custom_styles/hover = ExtResource( 1 )
custom_styles/pressed = ExtResource( 1 )
custom_styles/normal = ExtResource( 7 )
icon = SubResource( 2 )

View File

@ -0,0 +1,32 @@
tool
extends MenuButton
export (Texture) var custom_icon setget set_custom_icon
var custom_icon_modulation setget set_custom_icon_modulation
var menu_background
# until we change the background color of the pickers, the color should ignore the theme
var default_color = Color('ccced3')
func _ready():
menu_background = load("res://addons/dialogic/Editor/Events/styles/ResourceMenuPanelBackground.tres")
menu_background.bg_color = get_color("base_color", "Editor")
add_color_override("font_color", default_color) #get_color("mono_color", "Editor"))
update_submenu_style(get_popup())
reset_modulation()
$Icon2.texture = get_icon("Collapse", "EditorIcons")
func update_submenu_style(submenu):
submenu.add_stylebox_override('panel', menu_background)
submenu.add_stylebox_override('hover', StyleBoxEmpty.new())
submenu.add_color_override('font_color_hover', get_color("accent_color", "Editor"))
func set_custom_icon(texture:Texture):
$Icon.texture = texture
func set_custom_icon_modulation(color:Color):
$Icon.modulate = color
func reset_modulation():
$Icon.modulate = default_color#get_color("font_color", "Editor")
$Icon2.modulate = default_color#get_color("font_color", "Editor")

View File

@ -0,0 +1,66 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/styles/SettingsFieldBackground.tres" type="StyleBox" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.gd" type="Script" id=3]
[sub_resource type="Image" id=3]
data = {
"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 ),
"format": "LumAlpha8",
"height": 16,
"mipmaps": false,
"width": 16
}
[sub_resource type="ImageTexture" id=2]
flags = 4
flags = 4
image = SubResource( 3 )
size = Vector2( 16, 16 )
[node name="MenuButton" type="MenuButton"]
margin_right = 98.0
margin_bottom = 24.0
focus_mode = 2
size_flags_vertical = 4
custom_colors/font_color = Color( 0, 0, 0, 1 )
custom_styles/hover = ExtResource( 1 )
custom_styles/pressed = ExtResource( 1 )
custom_styles/normal = ExtResource( 1 )
text = "Resource"
flat = false
align = 0
script = ExtResource( 3 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Icon" type="TextureRect" parent="."]
modulate = Color( 0, 0, 0, 1 )
anchor_bottom = 1.0
margin_left = 8.0
margin_top = 4.0
margin_right = 23.0
margin_bottom = -4.0
expand = true
stretch_mode = 6
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Icon2" type="TextureRect" parent="."]
modulate = Color( 0, 0, 0, 1 )
anchor_left = 1.0
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
margin_left = -20.7581
margin_top = -8.78745
margin_right = -5.75813
margin_bottom = 7.21255
texture = SubResource( 2 )
expand = true
stretch_mode = 6
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -0,0 +1,28 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var file_picker = $FilePicker
# used to connect the signals
func _ready():
file_picker.connect("data_changed", self, "_on_ScenePicker_data_changed")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
file_picker.load_data(data)
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func _on_ScenePicker_data_changed(data):
event_data = data
data_changed()

View File

@ -0,0 +1,19 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Scenes/EventPart_ScenePicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Files/FilePicker.tscn" type="PackedScene" id=2]
[node name="ScenePicker" type="VBoxContainer"]
margin_right = 40.0
margin_bottom = 40.0
size_flags_vertical = 4
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
[node name="FilePicker" parent="." instance=ExtResource( 2 )]
margin_top = 0.0
margin_right = 199.0
margin_bottom = 22.0
Mode = "Scene"

View File

@ -0,0 +1,78 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
export (String) var default_text = "Select Theme"
## node references
onready var picker_menu = $MenuButton
# used to connect the signals
func _ready():
picker_menu.connect("about_to_show", self, "_on_PickerMenu_about_to_show")
picker_menu.custom_icon = load("res://addons/dialogic/Images/Resources/theme.svg")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
select_theme()
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
func select_theme():
if event_data['set_theme'] != '':
for theme in DialogicUtil.get_theme_list():
if theme['file'] == event_data['set_theme']:
picker_menu.text = theme['name']
else:
picker_menu.text = default_text
# when an index is selected on one of the menus.
func _on_PickerMenu_selected(index, menu):
event_data['set_theme'] = menu.get_item_metadata(index).get('file', '')
select_theme()
# informs the parent about the changes!
data_changed()
func _on_PickerMenu_about_to_show():
build_PickerMenu()
func build_PickerMenu():
picker_menu.get_popup().clear()
var folder_structure = DialogicUtil.get_theme_folder_structure()
## building the root level
build_PickerMenuFolder(picker_menu.get_popup(), folder_structure, "MenuButton")
# is called recursively to build all levels of the folder structure
func build_PickerMenuFolder(menu:PopupMenu, folder_structure:Dictionary, current_folder_name:String):
var index = 0
for folder_name in folder_structure['folders'].keys():
var submenu = PopupMenu.new()
var submenu_name = build_PickerMenuFolder(submenu, folder_structure['folders'][folder_name], folder_name)
submenu.name = submenu_name
menu.add_submenu_item(folder_name, submenu_name)
menu.set_item_icon(index, get_icon("Folder", "EditorIcons"))
menu.add_child(submenu)
picker_menu.update_submenu_style(submenu)
index += 1
var files_info = DialogicUtil.get_theme_dict()
for file in folder_structure['files']:
menu.add_item(files_info[file]['name'])
menu.set_item_icon(index, editor_reference.get_node("MainPanel/MasterTreeContainer/MasterTree").theme_icon)
menu.set_item_metadata(index, {'file':file})
index += 1
if not menu.is_connected("index_pressed", self, "_on_PickerMenu_selected"):
menu.connect("index_pressed", self, '_on_PickerMenu_selected', [menu])
return current_folder_name

View File

@ -0,0 +1,29 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Themes/EventPart_ThemePicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=3]
[node name="ThemePicker" type="HBoxContainer"]
margin_right = 157.0
margin_bottom = 27.0
size_flags_vertical = 4
script = ExtResource( 1 )
__meta__ = {
"_edit_use_anchors_": false
}
show_text = true
[node name="Label" parent="." instance=ExtResource( 3 )]
margin_top = 6.0
margin_right = 59.0
margin_bottom = 20.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "to theme"
[node name="MenuButton" parent="." instance=ExtResource( 2 )]
margin_left = 63.0
margin_top = 1.0
margin_right = 177.0
margin_bottom = 25.0
custom_colors/font_color = Color( 0.8, 0.807843, 0.827451, 1 )

View File

@ -0,0 +1,79 @@
tool
extends "res://addons/dialogic/Editor/Events/Parts/EventPart.gd"
# has an event_data variable that stores the current data!!!
## node references
onready var picker_menu = $MenuButton
# used to connect the signals
func _ready():
picker_menu.connect("about_to_show", self, "_on_PickerMenu_about_to_show")
picker_menu.custom_icon = load("res://addons/dialogic/Images/Resources/timeline.svg")
# called by the event block
func load_data(data:Dictionary):
# First set the event_data
.load_data(data)
# Now update the ui nodes to display the data.
if event_data['change_timeline'] != '':
for c in DialogicUtil.get_timeline_list():
if c['file'] == event_data['change_timeline']:
picker_menu.text = c['name']
else:
picker_menu.text = 'Select Timeline'
# has to return the wanted preview, only useful for body parts
func get_preview():
return ''
# when an index is selected on one of the menus.
func _on_PickerMenu_selected(index, menu):
var text = menu.get_item_text(index)
var metadata = menu.get_item_metadata(index)
picker_menu.text = text
event_data['change_timeline'] = metadata['file']
# informs the parent about the changes!
data_changed()
func _on_PickerMenu_about_to_show():
build_PickerMenu()
func build_PickerMenu():
picker_menu.get_popup().clear()
var folder_structure = DialogicUtil.get_timelines_folder_structure()
## building the root level
build_PickerMenuFolder(picker_menu.get_popup(), folder_structure, "MenuButton")
# is called recursively to build all levels of the folder structure
func build_PickerMenuFolder(menu:PopupMenu, folder_structure:Dictionary, current_folder_name:String):
var index = 0
for folder_name in folder_structure['folders'].keys():
var submenu = PopupMenu.new()
var submenu_name = build_PickerMenuFolder(submenu, folder_structure['folders'][folder_name], folder_name)
submenu.name = submenu_name
menu.add_submenu_item(folder_name, submenu_name)
menu.set_item_icon(index, get_icon("Folder", "EditorIcons"))
menu.add_child(submenu)
picker_menu.update_submenu_style(submenu)
index += 1
var files_info = DialogicUtil.get_timeline_dict()
for file in folder_structure['files']:
menu.add_item(files_info[file]['name'])
menu.set_item_icon(index, editor_reference.get_node("MainPanel/MasterTreeContainer/MasterTree").timeline_icon)
menu.set_item_metadata(index, {'file':file})
index += 1
if not menu.is_connected("index_pressed", self, "_on_PickerMenu_selected"):
menu.connect("index_pressed", self, '_on_PickerMenu_selected', [menu])
return current_folder_name

View File

@ -0,0 +1,20 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/Timelines/EventPart_TimelinePicker.gd" type="Script" id=1]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/ResourcePickers/ResourcePickerMenu.tscn" type="PackedScene" id=2]
[ext_resource path="res://addons/dialogic/Editor/Events/Parts/Text/GreyLabel.tscn" type="PackedScene" id=3]
[node name="TimelinePicker" type="HBoxContainer"]
margin_right = 119.0
margin_bottom = 20.0
size_flags_vertical = 6
script = ExtResource( 1 )
[node name="Label" parent="." instance=ExtResource( 3 )]
margin_right = 87.0
custom_colors/font_color = Color( 0, 0, 0, 1 )
text = "Start timeline"
[node name="MenuButton" parent="." instance=ExtResource( 2 )]
margin_left = 91.0
margin_right = 185.0

View File

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

Some files were not shown because too many files have changed in this diff Show More