1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- tool
- extends VBoxContainer
-
- class_name Infobox
-
- signal infobox_changed(new_json_structure)
- signal infobox_removed()
-
- onready var _TextEdit: TextEdit = self.get_node("HBoxContainer/VBoxContainer/TextEdit")
- onready var _CreateButton: Button = self.get_node("CreateButton")
- onready var _HBoxContainer: HBoxContainer = self.get_node("HBoxContainer")
- onready var _ConditionsList: ConditionsList = self.get_node("HBoxContainer/VBoxContainer/ConditionsList")
-
- var _json_structure = {
- "text": "",
- "conditions": []
- }
-
- #Virtual Methods
-
- func _ready():
- _CreateButton.show()
- _HBoxContainer.hide()
-
-
- #Callback Methods
-
- func _on_RemoveInfoboxButton_pressed():
- _disable_infobox()
- emit_signal("infobox_removed")
-
- func _on_ConditionsList_conditions_changed(new_json_structure):
- _json_structure.conditions = new_json_structure
- _emit_changed_signal()
-
- func _on_TextEdit_text_changed():
- _json_structure.text = self._TextEdit.get_text()
- _emit_changed_signal()
-
-
- func _on_CreateButton_pressed():
- _enable_infobox()
- _emit_changed_signal()
-
- #Public Methods
-
- func set_structure(new_json_structure):
- _json_structure = new_json_structure
- _TextEdit.set_text(_json_structure.text)
- _ConditionsList.set_structure(_json_structure.conditions)
- _enable_infobox()
-
- #Private Methods
-
- func _enable_infobox():
- _CreateButton.hide()
- _HBoxContainer.show()
-
-
- func _disable_infobox():
- _CreateButton.show()
- _HBoxContainer.hide()
-
-
- func _emit_changed_signal():
- emit_signal("infobox_changed", _json_structure)
-
|