You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.3 KiB
86 lines
2.3 KiB
3 years ago
|
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'] != '!=':
|
||
|
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")
|