41 lines
1.1 KiB
GDScript
41 lines
1.1 KiB
GDScript
extends Button
|
|
class_name ButtonElement
|
|
|
|
## Reference to the element's panel scene.
|
|
@export var ElementPanelScene: PackedScene
|
|
|
|
## Reference to the node the settings element is under.
|
|
@onready var ParentRef: Node = owner
|
|
|
|
## Reference to the element's panel.
|
|
var ElementPanelRef: Node
|
|
|
|
|
|
func _ready():
|
|
# Connect necessary signals
|
|
connect("pressed", pressed)
|
|
create_element_panel()
|
|
|
|
|
|
func pressed() -> void:
|
|
# Switch panels
|
|
ParentRef.SettingsMenuRef.SettingsPanelRef.hide()
|
|
ElementPanelRef.show()
|
|
# Populate the settings cache of the panel
|
|
ElementPanelRef.get_settings()
|
|
|
|
|
|
## Called to create the element's panel.
|
|
func create_element_panel() -> void:
|
|
var ElementPanelsRef: Control = ParentRef.SettingsMenuRef.ElementPanelsRef
|
|
ElementPanelRef = ElementPanelScene.instantiate()
|
|
|
|
# Check if the element panel exists
|
|
if not ElementPanelsRef.find_child(ElementPanelRef.name):
|
|
# Give a reference of the element
|
|
ElementPanelRef.PanelOwnerRef = self
|
|
ElementPanelRef.hide()
|
|
# Add the panel to the element panels list
|
|
ElementPanelsRef.add_child(ElementPanelRef)
|
|
ElementPanelRef.set_owner(ParentRef.SettingsMenuRef)
|