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
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)
|