Uploaded game files
This commit is contained in:
parent
459da513f6
commit
f71e7e39a0
1543 changed files with 50503 additions and 0 deletions
|
@ -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
|
|
@ -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"
|
|
@ -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']
|
|
@ -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
|
|
@ -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)
|
|
@ -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")
|
|
@ -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
|
|
@ -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()
|
|
@ -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()
|
|
@ -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
|
|
@ -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()
|
|
@ -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]"
|
|
@ -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", editor_reference.dialogicTranslator.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)
|
|
@ -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
|
|
@ -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!"
|
|
@ -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 )]
|
|
@ -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"]
|
Loading…
Add table
Add a link
Reference in a new issue