extends PanelContainer class_name GeneralPanel const EYE_SLASH = preload("uid://csrvryk82h6w8") const EYE = preload("uid://baex3uuhl827k") var test: Color = Color.BLUE # Called when the node enters the scene tree for the first time. func _ready() -> void: %ObsPass.right = EYE_SLASH %ObsPass.secret = true %ObsPass.right_button_pressed.connect(_handle_password_show) %DisplayScreen.item_selected.connect(func(x): Globals.main_win.get_window().current_screen = x) %UseScreen.pressed.connect(func(): Globals.main_win.get_window().current_screen = ProjectSettings.get_setting("display/window/size/initial_screen") %DisplayScreen.select(Globals.main_win.get_window().current_screen) %DisplayScreen.disabled = !%UseScreen.button_pressed ) %AuthStreamer.pressed.connect(func(): %AuthStreamer.disabled = await Globals.twitcher.authorize_streamer()) %AuthBot.pressed.connect(func(): %AuthBot.disabled = await Globals.twitcher.authorize_chatbot()) %ConnectObs.pressed.connect(func(): ObsManager.connect_to_host()) _load_settings() func _load_settings() -> void: %ObsHost.text = Globals.settings.obs_host %ObsPort.value = Globals.settings.obs_port %ObsPass.text = Globals.settings.obs_pass %AutoTwitch.button_pressed = Globals.settings.auto_connect_twitch %AutoObs.button_pressed = Globals.settings.auto_connect_obs %ObsRecon.button_pressed = Globals.settings.obs_reconnect %ConnectTwitch.disabled = Globals.twitcher.eventsub.is_open %ConnectTwitch.text = "Connect Twitch" if not Globals.twitcher.eventsub.is_open else "Disconnect Twitch" for scr in DisplayServer.get_screen_count(): %DisplayScreen.add_item("Monitor %d" % (scr + 1)) if Globals.settings.display_screen == -1: %UseScreen.button_pressed = false %DisplayScreen.disabled = true else: %UseScreen.button_pressed = true %DisplayScreen.select(Globals.settings.display_screen) %DisplayScreen.disabled = false if not Globals.twitcher.streamer_token_loaded: var res := await Globals.twitcher.load_streamer_token() if res == TwitcherExtended.AuthStatus.UNAUTHORIZED: %AuthStreamer.disabled = false else: %AuthStreamer.disabled = true %StreamerName.text = Globals.twitcher.streamer_user.display_name else: %AuthStreamer.disabled = true %StreamerName.text = Globals.twitcher.streamer_user.display_name if not Globals.twitcher.chatbot_token_loaded: var res := await Globals.twitcher.load_chatbot_token() if res == TwitcherExtended.AuthStatus.UNAUTHORIZED: %AuthBot.disabled = false else: %AuthBot.disabled = true %BotName.text = Globals.twitcher.bot_user.display_name else: %AuthBot.disabled = true %BotName.text = Globals.twitcher.bot_user.display_name func apply_settings() -> void: Globals.settings.obs_host = %ObsHost.text Globals.settings.obs_port = floori(%ObsPort.value) Globals.settings.obs_pass = %ObsPass.text Globals.settings.auto_connect_twitch = %AutoTwitch.button_pressed Globals.settings.auto_connect_obs = %AutoObs.button_pressed Globals.settings.obs_reconnect = %ObsRecon.button_pressed if %UseScreen.button_pressed: Globals.settings.display_screen = %DisplayScreen.selected else: Globals.settings.display_screen = -1 Globals.main_win.get_window().current_screen = ProjectSettings.get_setting("display/window/size/initial_screen") func _handle_password_show() -> void: if %ObsPass.right == EYE_SLASH: %ObsPass.right = EYE %ObsPass.secret = false else: %ObsPass.right = EYE_SLASH %ObsPass.secret = true func _exit_tree() -> void: apply_settings()