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.

100 lines
2.7 KiB

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)