Refactoring UI
Refactoring Main UI.
This commit is contained in:
parent
74a22f0792
commit
583f0fbe38
2 changed files with 1 additions and 144 deletions
96
main_win.gd
96
main_win.gd
|
|
@ -1,6 +1,7 @@
|
|||
extends Control
|
||||
|
||||
@onready var controls: VBoxContainer = %Controls
|
||||
@onready var ui_bar: HBoxContainer = %UIBar
|
||||
@onready var auth_twitch: Button = %AuthTwitch
|
||||
@onready var auth_bot: Button = %AuthBot
|
||||
@onready var bot_hello: Button = %BotHello
|
||||
|
|
@ -17,27 +18,11 @@ extends Control
|
|||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
Globals.twitcher = twitcher
|
||||
auto_connect.button_pressed = Globals.settings.auto_connect
|
||||
auth_twitch.pressed.connect(_handle_twitch_auth)
|
||||
auth_bot.pressed.connect(_handle_bot_auth)
|
||||
bot_hello.pressed.connect(_handle_bot_hello)
|
||||
twitcher.chat.message_received.connect(_handle_chat_message)
|
||||
get_window().mouse_entered.connect(func(): controls.visible = true)
|
||||
get_window().mouse_exited.connect(func(): controls.visible = false)
|
||||
exit_overlay.pressed.connect(func(): get_tree().quit())
|
||||
auto_connect.pressed.connect(func(): Globals.settings.auto_connect = auto_connect.button_pressed)
|
||||
|
||||
var res := twitcher.load_streamer_token()
|
||||
if res == TwitcherExtended.AuthStatus.UNAUTHORIZED:
|
||||
return
|
||||
|
||||
if auto_connect.button_pressed:
|
||||
_handle_twitch_auth()
|
||||
res = twitcher.load_chatbot_token()
|
||||
if res == TwitcherExtended.AuthStatus.UNAUTHORIZED:
|
||||
return
|
||||
_handle_bot_auth()
|
||||
|
||||
func _handle_twitch_auth() -> void:
|
||||
await twitcher.setup_streamer()
|
||||
if twitcher.is_streamer_authed():
|
||||
|
|
@ -47,82 +32,3 @@ func _handle_bot_auth() -> void:
|
|||
await twitcher.setup_chatbot()
|
||||
if twitcher.is_chatbot_authed():
|
||||
auth_bot.disabled = true
|
||||
|
||||
func _handle_bot_hello() -> void:
|
||||
twitcher.send_message("Hello")
|
||||
|
||||
func _handle_chat_message(message: TwitchChatMessage) -> void:
|
||||
var badges_dict: Dictionary = await message.get_badges(twitcher.media)
|
||||
var badges: Array[SpriteFrames] = []
|
||||
badges.assign(badges_dict.values())
|
||||
|
||||
var result_message: String = ""
|
||||
var badge_id: int = 0
|
||||
for badge: SpriteFrames in badges:
|
||||
result_message += "[sprite id='0-%s']%s[/sprite]" % [badge_id, badge.resource_path]
|
||||
badge_id += 1
|
||||
result_message += "[color=%s]%s[/color]: " % [message.get_color(), message.chatter_user_name]
|
||||
|
||||
match message.message_type:
|
||||
# The default message style
|
||||
TwitchChatMessage.MessageType.text:
|
||||
result_message = await show_text(message, result_message)
|
||||
|
||||
# When someone is using the gigantified emotes
|
||||
TwitchChatMessage.MessageType.power_ups_gigantified_emote:
|
||||
result_message = await show_text(message, result_message, 3)
|
||||
|
||||
# When someone is using the hilight my message from channel points rewards
|
||||
TwitchChatMessage.MessageType.channel_points_highlighted:
|
||||
result_message += "[bgcolor=#755ebc][color=#e9fffb]"
|
||||
result_message = await show_text(message, result_message)
|
||||
result_message += "[/color][/bgcolor]"
|
||||
|
||||
# When someone is using teh message effect bit reward:
|
||||
TwitchChatMessage.MessageType.power_ups_message_effect:
|
||||
result_message += "[shake rate=20.0 level=5 connected=1]"
|
||||
result_message = await show_text(message, result_message)
|
||||
result_message += "[/shake]"
|
||||
|
||||
append_history(result_message)
|
||||
|
||||
func append_history(message: String) -> void:
|
||||
var msg: RichTextLabel = RichTextLabel.new()
|
||||
msg.bbcode_enabled = true
|
||||
msg.fit_content = true
|
||||
|
||||
var effect: SpriteFrameEffect = SpriteFrameEffect.new()
|
||||
msg.install_effect(effect)
|
||||
chat_list.add_child(msg)
|
||||
|
||||
message = effect.prepare_message(message, msg)
|
||||
msg.text = "%s %s" % [_get_time(), message]
|
||||
|
||||
await get_tree().process_frame
|
||||
var rect := msg.get_rect()
|
||||
chat_history.scroll_vertical = roundi(rect.position.y + rect.size.y)
|
||||
|
||||
func _get_time() -> String:
|
||||
var time_data: Dictionary = Time.get_time_dict_from_system()
|
||||
return "%02d:%02d" % [time_data["hour"], time_data["minute"]]
|
||||
|
||||
|
||||
func show_text(message: TwitchChatMessage, current_text: String, emote_scale: int = 1) -> String:
|
||||
await message.load_emotes_from_fragment(twitcher.media)
|
||||
|
||||
var fragment_id: int = 0
|
||||
for fragment: TwitchChatMessage.Fragment in message.message.fragments:
|
||||
fragment_id += 1
|
||||
match fragment.type:
|
||||
TwitchChatMessage.FragmentType.text:
|
||||
current_text += fragment.text
|
||||
TwitchChatMessage.FragmentType.cheermote:
|
||||
var cheermote_scale: StringName = TwitchCheermoteDefinition.SCALE_MAP.get(emote_scale, TwitchCheermoteDefinition.SCALE_1)
|
||||
var cheermote: SpriteFrames = await fragment.cheermote.get_sprite_frames(twitcher.media, cheermote_scale)
|
||||
current_text += "[sprite id='f-%s']%s[/sprite]" % [fragment_id, cheermote.resource_path]
|
||||
TwitchChatMessage.FragmentType.emote:
|
||||
var emote: SpriteFrames = await fragment.emote.get_sprite_frames(twitcher.media, emote_scale)
|
||||
current_text += "[sprite id='f-%s']%s[/sprite]" % [fragment_id, emote.resource_path]
|
||||
TwitchChatMessage.FragmentType.mention:
|
||||
current_text += "[color=%s]%s[/color]" % ["#00a0b6", fragment.mention.user_name]
|
||||
return current_text
|
||||
|
|
|
|||
|
|
@ -52,55 +52,6 @@ grow_horizontal = 2
|
|||
grow_vertical = 2
|
||||
script = ExtResource("1_bgu0c")
|
||||
|
||||
[node name="Controls" type="VBoxContainer" parent="." unique_id=1372792566]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Controls" unique_id=1218191491]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="AuthTwitch" type="Button" parent="Controls/HBoxContainer" unique_id=262058607]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Auth Twitch"
|
||||
|
||||
[node name="AuthBot" type="Button" parent="Controls/HBoxContainer" unique_id=64725557]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Auth Bot"
|
||||
|
||||
[node name="BotHello" type="Button" parent="Controls/HBoxContainer" unique_id=353165911]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Bot Send Hello"
|
||||
|
||||
[node name="AutoConnect" type="CheckBox" parent="Controls/HBoxContainer" unique_id=171499895]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Auto-Connect"
|
||||
|
||||
[node name="ExitOverlay" type="Button" parent="Controls/HBoxContainer" unique_id=655410314]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 10
|
||||
text = "Exit"
|
||||
|
||||
[node name="ChatHistory" type="ScrollContainer" parent="Controls" unique_id=1443037902]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
horizontal_scroll_mode = 0
|
||||
|
||||
[node name="ChatList" type="VBoxContainer" parent="Controls/ChatHistory" unique_id=895834768]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="TwitcherExtended" type="Node" parent="." unique_id=1225944144 node_paths=PackedStringArray("service", "chat", "bot", "chatbot_auth", "eventsub", "api", "auth", "media")]
|
||||
script = ExtResource("2_x1kh3")
|
||||
streamer_token = ExtResource("3_vhvw8")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue