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.

45 lines
1.2 KiB

6 months ago
@tool
class_name DialogicLayoutLayer
extends Node
## Base class that should be extended by custom dialogic layout layers.
@export_group('Layer')
@export_subgroup('Disabled')
@export var disabled := false
## This is turned on automatically when the layout is realized [br] [br]
## Turn it off, if you want to modify the settings of the nodes yourself.
@export_group('Private')
@export var apply_overrides_on_ready := false
var this_folder: String = get_script().resource_path.get_base_dir()
func _ready() -> void:
if apply_overrides_on_ready and not Engine.is_editor_hint():
_apply_export_overrides()
## Override this and load all your exported settings (apply them to the scene)
func _apply_export_overrides() -> void:
pass
func apply_export_overrides() -> void:
if disabled:
if "visible" in self:
set('visible', false)
process_mode = Node.PROCESS_MODE_DISABLED
else:
if "visible" in self:
set('visible', true)
process_mode = Node.PROCESS_MODE_INHERIT
_apply_export_overrides()
## Use this to get potential global settings.
func get_global_setting(setting_name:StringName, default:Variant) -> Variant:
return get_parent().get_global_setting(setting_name, default)