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.
99 lines
2.7 KiB
99 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)
|
|
|