This control handles local settings for user, such as marking a user as a streamer, etc etc.
65 lines
2.2 KiB
GDScript
65 lines
2.2 KiB
GDScript
extends PanelContainer
|
|
|
|
var chatter: Chatter:
|
|
set(value):
|
|
chatter = value
|
|
if not chatter:
|
|
_clear_promos()
|
|
return
|
|
_populate_promos()
|
|
|
|
func _ready() -> void:
|
|
for btn in [%Streamer, %Shoutout, %Promote]:
|
|
btn.pressed.connect(_update_promos)
|
|
for le in [%YouTubeHandle, %BlueSkyHandle, %WebSite, %ShoutoutMessage, %PromotionMessage]:
|
|
le.text_changed.connect(_update_promos)
|
|
if not chatter: return
|
|
_populate_promos()
|
|
|
|
func _clear_promos() -> void:
|
|
%Streamer.button_pressed = false
|
|
%Shoutout.button_pressed = false
|
|
%Promote.button_pressed = false
|
|
%YouTubeHandle.text = ""
|
|
%BlueSkyHandle.text = ""
|
|
%WebSite.text = ""
|
|
%ShoutoutMessage.text = ""
|
|
%PromotionMessage.text = ""
|
|
|
|
func _populate_promos() -> void:
|
|
%Streamer.button_pressed = chatter.is_streamer
|
|
%Shoutout.button_pressed = chatter.auto_shoutout
|
|
%Promote.button_pressed = chatter.extra_data.has("auto-promo")
|
|
%YouTubeHandle.text = chatter.urls.youtube if chatter.urls.has("youtube") else ""
|
|
%BlueSkyHandle.text = chatter.urls.bluesky if chatter.urls.has("bluesky") else ""
|
|
%WebSite.text = chatter.urls.website if chatter.urls.has("website") else ""
|
|
%ShoutoutMessage.text = chatter.extra_data.shoutout_message if chatter.extra_data.has("shoutout_message") else ""
|
|
%PromotionMessage.text = chatter.extra_data.promotion_message if chatter.extra_data.has("promotion_message") else ""
|
|
|
|
func _update_promos() -> void:
|
|
if not chatter: return
|
|
chatter.is_streamer = %Streamer.button_pressed
|
|
chatter.auto_shoutout = %Shoutout.button_pressed
|
|
chatter.extra_data["auto_promo"] = %Promote.button_pressed
|
|
if %YouTubeHandle.text != "":
|
|
chatter.urls["youtube"] = %YouTubeHandle.text
|
|
else:
|
|
chatter.urls.erase("youtube")
|
|
if %BlueSkyHandle.text != "":
|
|
chatter.urls["bluesky"] = %BlueSkyHandle.text
|
|
else:
|
|
chatter.urls.erase("bluesky")
|
|
if %WebSite.text != "":
|
|
chatter.urls["website"] = %WebSite.text
|
|
else:
|
|
chatter.urls.erase("website")
|
|
if %ShoutoutMessage.text != "":
|
|
chatter.extra_data.shoutout_message = %ShoutoutMessage.text
|
|
else:
|
|
chatter.extra_data.erase("shoutout_message")
|
|
if %PromotionMessage.text != "":
|
|
chatter.extra_data.promotion_message = %PromotionMessage.text
|
|
else:
|
|
chatter.extra_data.erase("promotion_message")
|
|
|
|
chatter.save()
|