Updated UI to have Section for Display Added logic to handle Authorizing Streamer and Bot. Added logic to handle Connecting to OBS. Added Loading/Saving Logic for other settings in the General Panel.
90 lines
3.4 KiB
GDScript
90 lines
3.4 KiB
GDScript
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()
|