@abstract extends Node class_name OverlayPlugin #region Internal Variables var _twitch: TwitcherExtended var _obs: NoOBSWS #endregion func _ready() -> void: while not TwitcherExtended.instance: await get_tree().process_frame _twitch = TwitcherExtended.instance @abstract func run() -> void #region Internal Functions func _get_script_name() -> String: return self.get_script().get_global_name() #endregion func send_notification(message: String) -> void: EventManager.test_notification(message) func get_setting(name: String, defval: Variant) -> Variant: var script_name := _get_script_name() if not Globals.settings.script_storage.has(script_name): return defval if not Globals.settings.script_storage[script_name].has(name): return defval return Globals.settings.script_storage[script_name][name] func set_setting(name: String, value: Variant) -> void: var script_name := _get_script_name() if not Globals.settings.script_storage.has(script_name): Globals.settings.script_storage[script_name] = {} Globals.settings.script_storage[script_name][name] = value