feat: 2.3.1

This commit is contained in:
2026-05-11 17:24:47 +08:00
parent 57e56412e0
commit 13f3c3d591
733 changed files with 17957 additions and 798 deletions
+542 -52
View File
@@ -29,17 +29,28 @@ extends Control
@onready var leaderboard_btn = %LeaderboardBtn
@onready var shop_btn = %CartBtn
@onready var top_right_profile_btn = %ProfileBtn
@onready var banner1_btn = %Banner1
@onready var ticket_btn = $MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/TicketBtn
@onready var mailbox_btn = get_node_or_null("%MailboxBtn")
@onready var banner1_btn = get_node_or_null("%Banner1")
@onready var ticket_btn = get_node_or_null("%TicketBtn")
@onready var mailbox_panel = get_node_or_null("MailboxPanel")
# UI References - Room List
@onready var room_list_panel = $RoomListPanel
@onready var room_list = $RoomListPanel/VBoxContainer/RoomList
@onready var match_id_input = $RoomListPanel/VBoxContainer/MatchIdInput
@onready var refresh_btn = $RoomListPanel/VBoxContainer/ButtonContainer/RefreshBtn
@onready var join_btn = $RoomListPanel/VBoxContainer/ButtonContainer/JoinBtn
@onready var back_btn = $RoomListPanel/VBoxContainer/ButtonContainer/BackBtn
@onready var room_list_profile_btn = $RoomListPanel/VBoxContainer/ButtonContainer/ProfileBtn
@onready var room_list_panel = %RoomListPanel
@onready var room_list = get_node_or_null("%RoomList")
@onready var match_id_input = get_node_or_null("%MatchIdInput")
@onready var refresh_btn = get_node_or_null("%RefreshBtn")
@onready var join_btn = get_node_or_null("%JoinBtn")
@onready var back_btn = get_node_or_null("%RoomListCloseBtn")
@onready var room_list_profile_btn = get_node_or_null("%RoomListProfileBtn")
@onready var item_template = get_node_or_null("%ItemTemplate")
@onready var room_player_username = get_node_or_null("%PlayerUsername")
@onready var room_player_score = get_node_or_null("%PlayerScore")
@onready var room_player_rank = get_node_or_null("%Rank")
@onready var room_avatar = get_node_or_null("%Avatar")
# Cached leaderboard rank for local player
var _local_player_rank: int = 0
# UI References - Lobby Panel
@onready var lobby_panel = $LobbyPanel
@@ -124,6 +135,9 @@ var daily_reward_panel_instance: Control
# Bot name tracking keyed by slot index to avoid re-generating on each update
var _bot_names: Dictionary = {}
# Room list filter ("" = all, "Freemode", "Stop n Go", etc.)
var _room_mode_filter: String = ""
# =============================================================================
# Chat System
# =============================================================================
@@ -135,6 +149,9 @@ var _chat_messages: Array = []
@onready var chat_input: LineEdit = %ChatInput
@onready var chat_send_btn: Button = %SendBtn
var _friend_suggest_panel: PanelContainer
var _friend_suggest_list: ItemList
# Server Selection Controls (Now in tscn)
# var server_option: OptionButton
# var server_ip_input: LineEdit
@@ -167,6 +184,8 @@ func _ready():
main_menu_profile_btn.pressed.connect(_on_profile_btn_pressed)
if top_right_profile_btn:
top_right_profile_btn.pressed.connect(_on_profile_btn_pressed)
if mailbox_btn:
mailbox_btn.pressed.connect(_on_mailbox_pressed)
if lobby_settings_btn:
lobby_settings_btn.pressed.connect(_on_settings_pressed)
@@ -191,6 +210,16 @@ func _ready():
var social_btn = get_node_or_null("%SocialBtn")
if social_btn:
social_btn.pressed.connect(_on_social_pressed)
# Connect Social / Friend UI
var global_chat_tab_btn = get_node_or_null("%GlobalChatTabBtn")
if global_chat_tab_btn:
global_chat_tab_btn.pressed.connect(func(): _switch_chat_tab("global"))
FriendManager.dm_message_received.connect(_on_lobby_dm_received)
# Connect Server Selection signals
if server_option:
@@ -202,15 +231,53 @@ func _ready():
server_ip_input.focus_exited.connect(func(): _on_server_ip_submitted(server_ip_input.text))
# Connect button signals - Room List
refresh_btn.pressed.connect(_on_refresh_pressed)
join_btn.pressed.connect(_on_join_pressed)
back_btn.pressed.connect(_on_back_pressed)
if refresh_btn: refresh_btn.pressed.connect(_on_refresh_pressed)
if join_btn: join_btn.pressed.connect(_on_join_pressed)
if back_btn: back_btn.pressed.connect(_on_back_pressed)
if match_id_input:
match_id_input.text_submitted.connect(func(_text): _on_join_pressed())
if room_list:
room_list.item_selected.connect(_on_room_selected)
room_list.item_activated.connect(_on_room_activated)
if room_list_profile_btn:
room_list_profile_btn.pressed.connect(_on_profile_btn_pressed)
# Connect Side Tab switching
var play_side_btn = get_node_or_null("%PlayTabSideBtn")
var room_side_btn = get_node_or_null("%RoomTabSideBtn")
var room_tabs = get_node_or_null("%RoomListTabs")
if play_side_btn and room_side_btn and room_tabs:
play_side_btn.pressed.connect(func():
room_tabs.current_tab = 0
play_side_btn.button_pressed = true
room_side_btn.button_pressed = false
)
room_side_btn.pressed.connect(func():
room_tabs.current_tab = 1
play_side_btn.button_pressed = false
room_side_btn.button_pressed = true
)
# Connect Play Tab mode buttons
var free_mode_btn = get_node_or_null("%FreeModeBtn")
var stop_n_go_btn = get_node_or_null("%StopNGoBtn")
var room_free_mode_btn = get_node_or_null("%RoomFreeModeBtn")
var room_stop_n_go_btn = get_node_or_null("%RoomStopNGoBtn")
if free_mode_btn:
free_mode_btn.pressed.connect(func(): _host_room("Freemode"))
if stop_n_go_btn:
stop_n_go_btn.pressed.connect(func(): _host_room("Stop n Go"))
if room_free_mode_btn:
room_free_mode_btn.pressed.connect(func():
_room_mode_filter = "Freemode" if _room_mode_filter != "Freemode" else ""
LobbyManager.refresh_room_list()
)
if room_stop_n_go_btn:
room_stop_n_go_btn.pressed.connect(func():
_room_mode_filter = "Stop n Go" if _room_mode_filter != "Stop n Go" else ""
LobbyManager.refresh_room_list()
)
# Connect button signals - Lobby
profile_btn.pressed.connect(_on_profile_btn_pressed)
@@ -274,6 +341,13 @@ func _ready():
chat_send_btn.pressed.connect(_on_chat_send_pressed)
if chat_input:
chat_input.text_submitted.connect(func(_t): _on_chat_send_pressed())
chat_input.text_changed.connect(_on_chat_input_changed)
_setup_friend_suggest_ui()
# Connect Mailbox UI
if MailManager:
MailManager.unread_count_changed.connect(_on_mail_unread_count_changed)
# Connect Social / Friend UI
invite_btn = get_node_or_null("LobbyPanel/BottomBar/InviteBtn")
@@ -455,38 +529,68 @@ func _on_tutorial_pressed() -> void:
LobbyManager.start_game(true)
func _on_create_room_pressed() -> void:
# Use profile name for logged-in users, or guest for others
_show_panel("room_list")
var tabs = get_node_or_null("%RoomListTabs")
if tabs:
tabs.current_tab = 0
if get_node_or_null("%PlayTabSideBtn"): get_node("%PlayTabSideBtn").button_pressed = true
if get_node_or_null("%RoomTabSideBtn"): get_node("%RoomTabSideBtn").button_pressed = false
_sync_room_profile_card()
# --- PRESERVED HOSTING LOGIC ---
# Moved to _host_room() — called by FreeModeBtn / StopNGoBtn
# -------------------------------
func _host_room(game_mode: String) -> void:
"""Restore preserved hosting logic. Called by mode buttons.
game_mode: set LobbyManager.game_mode before hosting (e.g. 'Stop n Go'), or 'Freemode' to keep default."""
# Set player name
if AuthManager.is_guest:
if LobbyManager.local_player_name.is_empty() or LobbyManager.local_player_name == "Player":
LobbyManager.local_player_name = NameGenerator.generate_guest_name()
else:
LobbyManager.local_player_name = UserProfileManager.get_display_name()
# Set game mode BEFORE is_host flag (set_game_mode guards on is_host)
if not game_mode.is_empty():
LobbyManager.game_mode = game_mode
LobbyManager._update_available_areas(game_mode)
_apply_loadout_character()
var mode_prefix := "[%s] " % game_mode if not game_mode.is_empty() else ""
if LobbyManager.is_lan_mode:
connection_status.text = "Starting LAN room..."
# Apply loadout character before creating room
_apply_loadout_character()
var ok = await LobbyManager.create_room_lan("LAN Room " + str(randi_range(100, 999)))
var room_label := "%sLAN Room %d" % [mode_prefix, randi_range(100, 999)]
var ok = await LobbyManager.create_room_lan(room_label)
if not ok:
connection_status.text = "Failed to start LAN room. Check port 7777."
else:
connection_status.text = "Creating Nakama room..."
# Apply loadout character before creating room
_apply_loadout_character()
LobbyManager.create_room("Room %d" % randi_range(1000, 9999))
var room_label := "%sRoom %d" % [mode_prefix, randi_range(1000, 9999)]
LobbyManager.create_room(room_label)
func _on_browse_rooms_pressed() -> void:
_show_panel("room_list")
var tabs = get_node_or_null("%RoomListTabs")
if tabs:
tabs.current_tab = 1
if get_node_or_null("%PlayTabSideBtn"): get_node("%PlayTabSideBtn").button_pressed = false
if get_node_or_null("%RoomTabSideBtn"): get_node("%RoomTabSideBtn").button_pressed = true
_sync_room_profile_card()
var match_id_label = get_node_or_null("%RoomListPanel/RoomListTabs/RoomTab/HBoxContainer/RightCol/MatchIdLabel")
if LobbyManager.is_lan_mode:
connection_status.text = "LAN Mode - Enter Host IP to join"
match_id_input.placeholder_text = "Enter Host IP (e.g. 192.168.1.10)..."
$RoomListPanel/VBoxContainer/MatchIdLabel.text = "DIRECT CONNECT (HOST IP)"
if match_id_label: match_id_label.text = "DIRECT CONNECT (HOST IP)"
_on_refresh_pressed() # Try to discover rooms if implemented
else:
connection_status.text = "Loading Nakama rooms..."
match_id_input.placeholder_text = "Paste match ID here..."
$RoomListPanel/VBoxContainer/MatchIdLabel.text = "DIRECT CONNECT (MATCH ID)"
if match_id_label: match_id_label.text = "DIRECT CONNECT (MATCH ID)"
LobbyManager.refresh_room_list()
# =============================================================================
@@ -765,6 +869,29 @@ func _on_profile_btn_pressed() -> void:
main_menu_panel.hide()
profile_panel_instance.show_panel()
func _on_mailbox_pressed() -> void:
if mailbox_panel:
mailbox_panel.show_panel()
if main_menu_panel:
main_menu_panel.hide()
# Connect the closed signal to reshow main menu if not connected
if not mailbox_panel.closed.is_connected(_on_mailbox_closed):
mailbox_panel.closed.connect(_on_mailbox_closed)
func _on_mailbox_closed() -> void:
if main_menu_panel:
main_menu_panel.show()
func _on_mail_unread_count_changed(count: int) -> void:
if mailbox_btn:
if count > 0:
mailbox_btn.text = "MAIL (%d)" % count
mailbox_btn.add_theme_color_override("font_color", Color.YELLOW)
else:
mailbox_btn.text = "MAIL"
mailbox_btn.remove_theme_color_override("font_color")
func _on_logout_pressed() -> void:
AuthManager.logout()
_go_to_login()
@@ -895,17 +1022,75 @@ func _go_to_login() -> void:
func _on_room_list_updated(rooms: Array) -> void:
room_list.clear()
for room in rooms:
var room_name = room.get("room_name", "Unknown")
var host_name = room.get("host_name", "Unknown")
var player_count = room.get("player_count", 1)
var max_players = room.get("max_players", 4)
room_list.add_item("%s - %s (%d/%d)" % [room_name, host_name, player_count, max_players])
# Remove previously cloned row nodes (children after Head and ItemTemplate)
if item_template:
var parent = item_template.get_parent()
for child in parent.get_children():
if child.has_meta("room_row"):
child.queue_free()
if rooms.size() == 0:
connection_status.text = "No rooms available"
var filtered := rooms.filter(func(r):
return _room_mode_filter.is_empty() or r.get("game_mode", "") == _room_mode_filter
)
if item_template:
# Use visual row template
var parent = item_template.get_parent()
for i in range(filtered.size()):
var room = filtered[i]
var row = item_template.duplicate()
row.visible = true
row.set_meta("room_row", true)
row.set_meta("room_index", i)
var room_id_short = room.get("room_name", "???")
var host_name = room.get("host_name", "Unknown")
var player_count = room.get("player_count", 1)
var max_players = room.get("max_players", 8)
var mode = room.get("game_mode", "")
var mode_short = "FMD" if mode == "Freemode" else ("SNG" if mode == "Stop n Go" else mode.left(3).to_upper())
# Populate labels inside the cloned template
var hbox = row.get_node("PanelContainer/MarginContainer/HBoxContainer")
if hbox:
var lbl_id = hbox.get_child(0) # ListRoomID
var lbl_host = hbox.get_child(1) # ListHost
var lbl_mode = hbox.get_child(2) # ListMode
var lbl_cap = hbox.get_child(3) # ListCap
if lbl_id: lbl_id.text = room_id_short
if lbl_host: lbl_host.text = host_name
if lbl_mode: lbl_mode.text = mode_short
if lbl_cap: lbl_cap.text = "%d/%d" % [player_count, max_players]
parent.add_child(row)
# Make row clickable — select in ItemList + fill MatchIdInput
var panel_box = row.get_node_or_null("PanelContainer")
if panel_box:
var idx = i
panel_box.gui_input.connect(func(event: InputEvent):
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
_on_room_selected(idx)
if event.double_click:
_on_room_activated(idx)
)
panel_box.mouse_filter = Control.MOUSE_FILTER_STOP
else:
connection_status.text = "Found %d room(s)" % rooms.size()
# Fallback: flat strings in ItemList
for room in filtered:
var room_name = room.get("room_name", "Unknown")
var host_name = room.get("host_name", "Unknown")
var player_count = room.get("player_count", 1)
var max_players = room.get("max_players", 4)
var mode = room.get("game_mode", "")
var mode_tag = " [%s]" % mode if not mode.is_empty() else ""
room_list.add_item("%s - %s (%d/%d)%s" % [room_name, host_name, player_count, max_players, mode_tag])
var filter_note = " [Filter: %s]" % _room_mode_filter if not _room_mode_filter.is_empty() else ""
if filtered.size() == 0:
connection_status.text = "No rooms available%s" % filter_note
else:
connection_status.text = "Found %d room(s)%s" % [filtered.size(), filter_note]
func _on_room_joined(room_data: Dictionary) -> void:
_show_panel("lobby")
@@ -1051,12 +1236,76 @@ func _on_profile_updated() -> void:
gold_label.text = str(UserProfileManager.wallet.get("gold", 0))
if star_label and UserProfileManager.is_profile_loaded:
star_label.text = str(UserProfileManager.wallet.get("star", 0))
# Update Room tab stats
if room_player_username:
room_player_username.text = display_name
if room_player_score and UserProfileManager.is_profile_loaded:
var total = UserProfileManager.stats.get("total_score", 0)
room_player_score.text = str(total).pad_zeros(6)
if room_player_rank and UserProfileManager.is_profile_loaded:
room_player_rank.text = str(_local_player_rank).pad_zeros(2)
if room_avatar and avatar_display and avatar_display.texture:
# Copy the style and override it to use the avatar texture
var style = StyleBoxTexture.new()
style.texture = avatar_display.texture
room_avatar.add_theme_stylebox_override("panel", style)
# Sync to LobbyManager
LobbyManager.set_player_name(display_name)
_setup_3d_preview()
# =============================================================================
# Room Profile Card Sync
# =============================================================================
func _sync_room_profile_card() -> void:
"""Sync username, total_score, rank, and avatar into the RoomTab profile card."""
if room_player_username:
room_player_username.text = UserProfileManager.get_display_name() if UserProfileManager.is_profile_loaded else LobbyManager.local_player_name
if room_player_score and UserProfileManager.is_profile_loaded:
var total = UserProfileManager.stats.get("total_score", 0)
room_player_score.text = str(total).pad_zeros(6)
if room_player_rank:
room_player_rank.text = str(_local_player_rank).pad_zeros(2)
if room_avatar and avatar_display and avatar_display.texture:
var style = StyleBoxTexture.new()
style.texture = avatar_display.texture
room_avatar.add_theme_stylebox_override("panel", style)
# Fetch rank from leaderboard in background and update label when done
_fetch_local_player_rank()
# =============================================================================
# Leaderboard Rank Fetch
# =============================================================================
func _fetch_local_player_rank() -> void:
"""Fetch local player's rank from Nakama leaderboard and update the Rank label."""
if not NakamaManager.session or AuthManager.is_guest:
return
var my_id := NakamaManager.session.user_id
# List around the local player to get their rank
var result = await NakamaManager.client.list_leaderboard_records_around_owner_async(
NakamaManager.session,
"global_high_score",
my_id,
null,
1
)
if result.is_exception():
return
if result.owner_records and result.owner_records.size() > 0:
var rec = result.owner_records[0]
_local_player_rank = int(rec.rank)
elif result.records and result.records.size() > 0:
_local_player_rank = int(result.records[0].rank)
else:
return
if room_player_rank and room_list_panel.visible:
room_player_rank.text = str(_local_player_rank).pad_zeros(2)
# =============================================================================
# Player Slot Updates
# =============================================================================
@@ -1286,26 +1535,75 @@ func _on_invite_accepted() -> void:
_pending_invite_match_id = ""
func _on_social_pressed() -> void:
"""Open social / friend list panel."""
if not social_panel_instance:
var scene = load("res://scenes/ui/social_panel.tscn")
if scene:
social_panel_instance = scene.instantiate()
social_panel_instance.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
add_child(social_panel_instance)
# Wrap in CanvasLayer so it draws above 3D viewport and all lobby UI
var cl := CanvasLayer.new()
cl.layer = 100
cl.name = "SocialCanvasLayer"
add_child(cl)
cl.add_child(social_panel_instance)
if social_panel_instance.has_signal("dm_requested"):
social_panel_instance.dm_requested.connect(func(user_id, username):
social_panel_instance.hide()
_open_dm_tab(user_id, username)
# Restore Lobby UI
if main_menu_panel:
var main_hbox = main_menu_panel.get_node_or_null("MainMargin/MainHBox")
if main_hbox:
var left_col = main_hbox.get_node_or_null("LeftCol")
if left_col:
for child in left_col.get_children():
child.show()
var right_col = main_hbox.get_node_or_null("RightCol")
if right_col: right_col.show()
)
if social_panel_instance.has_signal("closed"):
social_panel_instance.closed.connect(func():
social_panel_instance.hide()
if main_menu_panel: main_menu_panel.show()
# Restore Lobby UI
if main_menu_panel:
var main_hbox = main_menu_panel.get_node_or_null("MainMargin/MainHBox")
if main_hbox:
var left_col = main_hbox.get_node_or_null("LeftCol")
if left_col:
for child in left_col.get_children():
child.show()
var right_col = main_hbox.get_node_or_null("RightCol")
if right_col: right_col.show()
)
if social_panel_instance:
if main_menu_panel: main_menu_panel.hide()
# Hide unnecessary UI to focus on Social/Chat
if main_menu_panel:
var main_hbox = main_menu_panel.get_node_or_null("MainMargin/MainHBox")
if main_hbox:
var left_col = main_hbox.get_node_or_null("LeftCol")
if left_col:
for child in left_col.get_children():
# Keep Chat, Input, and Spacer (to keep chat at bottom)
if child.name not in ["ChatPanel", "HBoxContainer", "SpacerMiddle"]:
child.hide()
var right_col = main_hbox.get_node_or_null("RightCol")
if right_col: right_col.hide()
social_panel_instance.show()
# =============================================================================
# Global Chat System
# =============================================================================
var _active_chat_context: String = "global"
var _dm_tabs: Dictionary = {} # user_id -> Control
var _dm_messages: Dictionary = {} # user_id -> Array
func _join_global_chat() -> void:
"""Join the persistent global lobby chat channel via Nakama socket."""
# Already in the channel — don't rejoin
@@ -1388,7 +1686,7 @@ func _add_chat_message(message, refresh_display: bool) -> void:
_refresh_chat_display()
func _on_chat_send_pressed() -> void:
"""Send a message to the global chat channel."""
"""Send a message to the global chat channel or DM."""
if chat_input == null or chat_input.text.strip_edges().is_empty():
return
@@ -1396,6 +1694,68 @@ func _on_chat_send_pressed() -> void:
chat_input.text = ""
chat_input.grab_focus()
if _friend_suggest_panel and _friend_suggest_panel.visible:
_friend_suggest_panel.hide()
# Check if user used @ shortcut
if text.begins_with("@"):
var space_idx = text.find(" ")
var target_username = ""
var dm_message = ""
if space_idx > 0:
target_username = text.substr(1, space_idx - 1)
dm_message = text.substr(space_idx + 1).strip_edges()
else:
target_username = text.substr(1).strip_edges()
if not target_username.is_empty():
var target_friend = null
for f in FriendManager.friends:
if f.get("username", "") == target_username:
target_friend = f
break
if target_friend:
var user_id = target_friend.get("user_id", "")
var username = target_friend.get("username", "")
_open_dm_tab(user_id, username)
if not dm_message.is_empty():
_send_dm_message(user_id, dm_message)
return
elif text.begins_with("@"):
_inject_local_message("User %s not found in friends." % target_username)
return
if _active_chat_context != "global":
if text == "/clear":
_dm_messages[_active_chat_context] = []
_refresh_chat_display()
return
_send_dm_message(_active_chat_context, text)
return
# Handle /clear command on global tab
if text == "/clear":
var is_admin = await AdminManager._check_admin_status()
if is_admin:
# Clear local buffer
_chat_messages.clear()
_refresh_chat_display()
# Also clear server-side persisted messages so they don't reload
if _chat_channel and NakamaManager.session and NakamaManager.client:
var payload = JSON.stringify({"channel_id": _chat_channel.id})
var rpc_result = await NakamaManager.client.rpc_async(NakamaManager.session, "admin_clear_global_chat", payload)
if rpc_result.is_exception():
push_warning("[Chat] admin_clear_global_chat RPC failed: " + rpc_result.get_exception().message)
else:
_inject_local_message("[SYSTEM] : Global chat cleared by admin.")
else:
_inject_local_message("[SYSTEM] : Unknown cmd, /clear only usable on DM between user.")
return
# Instantly show locally for best UX
_inject_local_message(text)
@@ -1409,10 +1769,130 @@ func _on_chat_send_pressed() -> void:
if result.is_exception():
push_warning("[Chat] Failed to send message: " + result.get_exception().message)
func _send_dm_message(user_id: String, text: String) -> void:
var sent = await FriendManager.send_dm(user_id, text)
if sent:
if not _dm_messages.has(user_id):
_dm_messages[user_id] = []
_dm_messages[user_id].append({"sender": "You", "content": text, "ts": _get_local_time()})
if _active_chat_context == user_id:
_refresh_chat_display()
func _on_lobby_dm_received(from_user_id: String, from_name: String, message: String) -> void:
if not _dm_messages.has(from_user_id):
_dm_messages[from_user_id] = []
_dm_messages[from_user_id].append({"sender": from_name, "content": message, "ts": _get_local_time()})
if not _dm_tabs.has(from_user_id):
_create_dm_tab(from_user_id, from_name)
if _active_chat_context == from_user_id:
_refresh_chat_display()
func _open_dm_tab(user_id: String, username: String) -> void:
if not _dm_tabs.has(user_id):
_create_dm_tab(user_id, username)
_dm_messages[user_id] = []
_switch_chat_tab(user_id)
var history = await FriendManager.get_dm_history(user_id)
var my_id = NakamaManager.session.user_id if NakamaManager.session else ""
for entry in history:
var is_self = entry.get("from") == my_id
var sender_name = "You" if is_self else username
var ts = _format_nakama_time(entry.get("create_time", ""))
_dm_messages[user_id].append({"sender": sender_name, "content": entry.get("msg", ""), "ts": ts})
if _active_chat_context == user_id:
_refresh_chat_display()
else:
_switch_chat_tab(user_id)
func _create_dm_tab(user_id: String, username: String) -> void:
var tabs_container = get_node_or_null("%ChatTabsContainer")
var template = get_node_or_null("%DMTabTemplate")
if not tabs_container or not template: return
var hbox = template.duplicate()
hbox.visible = true
var btn = hbox.get_node("DMTabBtn")
if btn:
btn.text = username
btn.pressed.connect(func(): _switch_chat_tab(user_id))
var close_btn = hbox.get_node("DMTabCloseBtn")
if close_btn:
close_btn.pressed.connect(func(): _close_dm_tab(user_id))
tabs_container.add_child(hbox)
_dm_tabs[user_id] = hbox
func _close_dm_tab(user_id: String) -> void:
if _dm_tabs.has(user_id):
var tab = _dm_tabs[user_id]
tab.queue_free()
_dm_tabs.erase(user_id)
if _active_chat_context == user_id:
_switch_chat_tab("global")
func _switch_chat_tab(context_id: String) -> void:
_active_chat_context = context_id
_refresh_chat_display()
var tabs_container = get_node_or_null("%ChatTabsContainer")
if tabs_container:
var global_btn = get_node_or_null("%GlobalChatTabBtn")
if global_btn:
global_btn.modulate = Color(1.0, 1.0, 1.0) if context_id == "global" else Color(0.6, 0.6, 0.6)
for u_id in _dm_tabs:
var tab_hbox = _dm_tabs[u_id]
tab_hbox.modulate = Color(1.0, 1.0, 1.0) if context_id == u_id else Color(0.6, 0.6, 0.6)
func _setup_friend_suggest_ui() -> void:
_friend_suggest_panel = get_node_or_null("%FriendSuggestPanel")
_friend_suggest_list = get_node_or_null("%FriendSuggestList")
if not _friend_suggest_panel or not _friend_suggest_list:
push_warning("[Lobby] FriendSuggestPanel or FriendSuggestList not found in scene")
return
_friend_suggest_panel.visible = false
# item_activated fires on double-click / Enter (desktop)
_friend_suggest_list.item_activated.connect(_on_friend_suggest_activated)
# item_selected fires on single tap (touch / mobile)
_friend_suggest_list.item_selected.connect(_on_friend_suggest_activated)
func _on_chat_input_changed(new_text: String) -> void:
if not _friend_suggest_panel or not _friend_suggest_list:
return
if new_text.begins_with("@") and not " " in new_text:
var search = new_text.substr(1).to_lower()
_friend_suggest_list.clear()
for f in FriendManager.friends:
if f.get("state", -1) == FriendManager.STATE_FRIEND:
var uname = f.get("username", "")
if uname.to_lower().begins_with(search) or search.is_empty():
_friend_suggest_list.add_item(uname)
_friend_suggest_panel.visible = _friend_suggest_list.item_count > 0
else:
_friend_suggest_panel.visible = false
func _on_friend_suggest_activated(index: int) -> void:
if not _friend_suggest_list:
return
var uname = _friend_suggest_list.get_item_text(index)
chat_input.text = "@%s " % uname
chat_input.caret_column = chat_input.text.length()
chat_input.grab_focus()
_friend_suggest_panel.visible = false
func _inject_local_message(text: String) -> void:
"""Display a message as the local player when offline/fallback."""
var display_name = UserProfileManager.get_display_name("You")
var ts_str = _get_local_time_hhmm()
var ts_str = _get_local_time()
_chat_messages.append({
"sender": display_name,
"content": text,
@@ -1432,7 +1912,15 @@ func _refresh_chat_display() -> void:
return
chat_display.clear()
for msg in _chat_messages:
var messages_to_show = _chat_messages
if _active_chat_context != "global":
if _dm_messages.has(_active_chat_context):
messages_to_show = _dm_messages[_active_chat_context]
else:
messages_to_show = []
for msg in messages_to_show:
var ts: String = msg.get("ts", "")
var sender: String = msg.get("sender", "?")
var text: String = msg.get("content", "")
@@ -1448,27 +1936,29 @@ func _refresh_chat_display() -> void:
chat_display.scroll_to_line(chat_display.get_line_count())
func _format_nakama_time(time_str: String) -> String:
"""Convert Nakama time to local 'HH:MM'."""
# Nakama returns UNIX epoch as string (e.g. "1714418656") or ISO string.
"""Convert Nakama time to local 'DD-MM-YY - HH:MM'."""
if time_str.is_valid_int():
var unix_time = time_str.to_int()
var dict = Time.get_time_dict_from_unix_time(unix_time)
return "%02d:%02d" % [dict.hour, dict.minute]
var d = Time.get_date_dict_from_unix_time(unix_time)
var t = Time.get_time_dict_from_unix_time(unix_time)
return "%02d-%02d-%02d - %02d:%02d" % [d.day, d.month, d.year % 100, t.hour, t.minute]
# Fallback for ISO strings or empty
if time_str.length() < 19:
return _get_local_time_hhmm()
var t_parts = time_str.split("T")
if t_parts.size() < 2:
return _get_local_time_hhmm()
var time_part = t_parts[1].replace("Z", "").split(":")
if time_part.size() < 2:
return _get_local_time_hhmm()
return "%s:%s" % [time_part[0], time_part[1]]
if time_str.length() >= 19:
var date_part = time_str.substr(0, 10).split("-")
var time_part = time_str.substr(11, 5) # HH:MM
if date_part.size() == 3:
var year = date_part[0].substr(2, 2)
var month = date_part[1]
var day = date_part[2]
return "%s-%s-%s - %s" % [day, month, year, time_part]
return _get_local_time()
func _get_local_time_hhmm() -> String:
func _get_local_time() -> String:
var d = Time.get_date_dict_from_system()
var t = Time.get_time_dict_from_system()
return "%02d:%02d" % [t.hour, t.minute]
return "%02d-%02d-%02d - %02d:%02d" % [d.day, d.month, d.year % 100, t.hour, t.minute]
func _leave_global_chat() -> void:
"""Leave the chat channel cleanly."""
+926 -123
View File
@@ -2,6 +2,7 @@
[ext_resource type="Script" uid="uid://b5q6yekyk0tld" path="res://scenes/lobby.gd" id="1_lp6xi"]
[ext_resource type="Theme" uid="uid://da337sh5qxi0s" path="res://assets/themes/ui_theme.tres" id="2_theme"]
[ext_resource type="Texture2D" uid="uid://jqvv6s55mlsk" path="res://assets/graphics/gui/BG.png" id="3_iulku"]
[ext_resource type="Texture2D" uid="uid://2d1ks5pmblc7" path="res://assets/graphics/main_menu/bg_back.png" id="3_q60fs"]
[ext_resource type="PackedScene" uid="uid://ejeamn0pyey4" path="res://assets/characters/Bob.glb" id="4_bob"]
[ext_resource type="PackedScene" uid="uid://d4cul3w3wem5w" path="res://assets/characters/Gatot.glb" id="4_gatot"]
@@ -11,6 +12,46 @@
[ext_resource type="AnimationLibrary" uid="uid://c3pyopnwibckj" path="res://assets/characters/animations/animation-pack.res" id="5_animlib"]
[ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="5_pc087"]
[ext_resource type="Texture2D" uid="uid://brhn1dhp1gm13" path="res://assets/graphics/character_selection/sc_characters/sc_copper.png" id="10_dyhay"]
[ext_resource type="Texture2D" uid="uid://c8xwpkvvwa7a4" path="res://assets/graphics/gui/mainmenu/chat.png" id="12_dfnwm"]
[ext_resource type="Texture2D" uid="uid://b5pp08fke7ptd" path="res://assets/graphics/gui/lobby/gold.png" id="12_gufxi"]
[ext_resource type="Texture2D" uid="uid://c05mo12h5umgi" path="res://assets/graphics/gui/mainmenu/chat_emoji.png" id="13_0jb4q"]
[ext_resource type="Texture2D" uid="uid://d0ouvm3x8h42c" path="res://assets/graphics/gui/lobby/star.png" id="13_arjad"]
[ext_resource type="Theme" uid="uid://cxab3xxy00" path="res://assets/themes/GUI_Tekton.tres" id="14_2630d"]
[ext_resource type="FontFile" uid="uid://c2tryhyhlyb1u" path="res://assets/fonts/Supercell-Magic Regular.ttf" id="14_vwf6o"]
[ext_resource type="Texture2D" uid="uid://kflvrkha1jwy" path="res://assets/graphics/gui/mainmenu/chat_enter.png" id="15_iwi7x"]
[ext_resource type="Texture2D" uid="uid://q8vw41qd00lx" path="res://assets/graphics/gui/mainmenu/button_room.png" id="17_wjff0"]
[ext_resource type="Texture2D" uid="uid://bcgu0jku4ntcw" path="res://assets/graphics/gui/mainmenu/button_room_interact.png" id="18_0jb4q"]
[ext_resource type="Texture2D" uid="uid://dllwxub5n4361" path="res://assets/graphics/gui/mainmenu/button_play.png" id="18_h1rib"]
[ext_resource type="Texture2D" uid="uid://l03huy5c0vvy" path="res://assets/graphics/gui/lobby/profile.png" id="18_u7tfn"]
[ext_resource type="Texture2D" uid="uid://jted80o4uarv" path="res://assets/graphics/gui/lobby/leaderboards.png" id="19_2630d"]
[ext_resource type="Texture2D" uid="uid://bvugtpcgc2qkx" path="res://assets/graphics/gui/lobby/shop.png" id="20_835bk"]
[ext_resource type="Texture2D" uid="uid://c6ahbdxx23e3b" path="res://assets/graphics/gui/mainmenu/button_play_interact.png" id="20_vwf6o"]
[ext_resource type="Texture2D" uid="uid://6agwwbc1l4g3" path="res://assets/graphics/gui/play/selection_play0.png" id="21_h1rib"]
[ext_resource type="Texture2D" uid="uid://bmmajc7h7o4dg" path="res://assets/graphics/gui/lobby/dailylogin.png" id="21_ucbax"]
[ext_resource type="Texture2D" uid="uid://dv782w5t0xlcc" path="res://assets/graphics/gui/lobby/friends.png" id="22_1x1aw"]
[ext_resource type="Texture2D" uid="uid://cpy5lppf3ro02" path="res://assets/graphics/gui/play/selection_play1.png" id="22_kn4i6"]
[ext_resource type="Texture2D" uid="uid://b0ovmvcm8rt2n" path="res://assets/graphics/gui/play/selection_room0.png" id="23_3jc85"]
[ext_resource type="Texture2D" uid="uid://bqcxrfu2jlplr" path="res://assets/graphics/gui/lobby/settings.png" id="23_twy5w"]
[ext_resource type="Texture2D" uid="uid://3p0sabd1og31" path="res://assets/graphics/gui/play/selection_room1.png" id="24_jhtcy"]
[ext_resource type="Texture2D" uid="uid://bpco6lch7homj" path="res://assets/graphics/gui/play/bg.png" id="25_iwv4c"]
[ext_resource type="Texture2D" uid="uid://chkt6c6tt7gdb" path="res://assets/graphics/gui/play/story.png" id="26_wpcbs"]
[ext_resource type="Texture2D" uid="uid://6oeuovfdxahu" path="res://assets/graphics/gui/play/story_dimmed.png" id="27_8tmsf"]
[ext_resource type="Texture2D" uid="uid://3kcp8qjd1vfm" path="res://assets/graphics/gui/play/stopngo.png" id="27_ierb3"]
[ext_resource type="Texture2D" uid="uid://4nejhkohp70d" path="res://assets/graphics/gui/play/freemode.png" id="28_78rk6"]
[ext_resource type="Texture2D" uid="uid://b8dgaw0bk3x6f" path="res://assets/graphics/gui/play/Rank.png" id="29_6mek4"]
[ext_resource type="Texture2D" uid="uid://23tvis1trvfr" path="res://assets/graphics/gui/play/x.png" id="29_417c5"]
[ext_resource type="Texture2D" uid="uid://3tsnxh8xbxr5" path="res://assets/graphics/gui/play/stopngo_dimmed.png" id="29_gxh4y"]
[ext_resource type="Texture2D" uid="uid://blh0vhxpbiqip" path="res://assets/graphics/gui/play/stopngo_vertical.png" id="30_8ht5e"]
[ext_resource type="Texture2D" uid="uid://1lilep4qo3tc" path="res://assets/graphics/gui/play/freemode-dimmed.png" id="31_30fw8"]
[ext_resource type="Texture2D" uid="uid://6lopq2j3kmai" path="res://assets/graphics/gui/play/freemode_vertical.png" id="31_tuh25"]
[ext_resource type="Texture2D" uid="uid://dxngyrdx5riab" path="res://assets/graphics/gui/play/room_list.png" id="32_8tmsf"]
[ext_resource type="Texture2D" uid="uid://dimb6edbhvbrm" path="res://assets/graphics/gui/play/refresh.png" id="33_gxh4y"]
[ext_resource type="Texture2D" uid="uid://cniyw4aa1kc4n" path="res://assets/graphics/gui/play/stopngo_vertical_dimmed.png" id="34_7rn74"]
[ext_resource type="Texture2D" uid="uid://bupl61vxuub71" path="res://assets/graphics/gui/play/join.png" id="34_30fw8"]
[ext_resource type="Texture2D" uid="uid://bbuxwuypygk38" path="res://assets/graphics/gui/play/freemode_vertical_dimmed.png" id="36_30el1"]
[ext_resource type="Texture2D" uid="uid://bwu5ms5nsyy43" path="res://assets/graphics/gui/play/referesh_dimmed.png" id="39_s3vw1"]
[ext_resource type="Texture2D" uid="uid://cb454spy2usoa" path="res://assets/graphics/gui/play/x_dimmed.png" id="41_7rn74"]
[ext_resource type="Texture2D" uid="uid://d4mt1q2fxkjy" path="res://assets/graphics/gui/play/join_dimmed.png" id="41_iwv5h"]
[sub_resource type="Environment" id="Env_preview"]
background_mode = 1
@@ -19,6 +60,124 @@ ambient_light_source = 2
ambient_light_color = Color(1, 1, 1, 1)
ambient_light_energy = 0.5
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_busoe"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8mpuv"]
bg_color = Color(0.2784314, 0.8745098, 1, 1)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 15
corner_radius_top_right = 15
corner_radius_bottom_right = 15
corner_radius_bottom_left = 15
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gd4oi"]
bg_color = Color(0, 0, 0, 0.48235294)
border_color = Color(0.92941177, 0.91764706, 0.8862745, 1)
corner_radius_top_left = 3
corner_radius_top_right = 3
corner_radius_bottom_right = 3
corner_radius_bottom_left = 3
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kn4i6"]
bg_color = Color(0, 0, 0, 0.48235294)
border_width_left = 5
border_width_top = 5
border_width_right = 5
border_width_bottom = 5
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3jc85"]
bg_color = Color(0, 0, 0, 0.48235294)
border_width_left = 5
border_width_top = 5
border_width_right = 5
border_width_bottom = 5
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jhtcy"]
bg_color = Color(0.6, 0.6, 0.6, 0)
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_iulku"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_dfnwm"]
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_50md7"]
texture = ExtResource("25_iwv4c")
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_6mek4"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7rn74"]
border_width_left = 8
border_width_top = 8
border_width_right = 8
border_width_bottom = 8
border_color = Color(1, 1, 1, 1)
corner_radius_top_left = 15
corner_radius_top_right = 15
corner_radius_bottom_right = 15
corner_radius_bottom_left = 15
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_30el1"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_s3vw1"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_iwv5h"]
bg_color = Color(0.14117648, 0.16862746, 0.19215687, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 4
border_color = Color(0.19607843, 0.27450982, 0.3372549, 1)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6mek4"]
content_margin_left = 25.0
bg_color = Color(0.14117648, 0.16862746, 0.19215687, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 4
border_color = Color(0.19607843, 0.27450982, 0.3372549, 1)
corner_radius_top_left = 10
corner_radius_top_right = 10
corner_radius_bottom_right = 10
corner_radius_bottom_left = 10
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_gufxi"]
texture = ExtResource("32_8tmsf")
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_arjad"]
texture = ExtResource("32_8tmsf")
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8ht5e"]
bg_color = Color(0.9372549, 0.3764706, 0.30588236, 1)
corner_radius_top_left = 6
corner_radius_top_right = 6
corner_radius_bottom_right = 6
corner_radius_bottom_left = 6
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tuh25"]
bg_color = Color(0.3372549, 0.5254902, 0.28235295, 1)
corner_radius_top_left = 6
corner_radius_top_right = 6
corner_radius_bottom_right = 6
corner_radius_bottom_left = 6
[node name="Lobby" type="Control" unique_id=1490767889]
layout_mode = 3
anchors_preset = 15
@@ -30,6 +189,7 @@ theme = ExtResource("2_theme")
script = ExtResource("1_lp6xi")
[node name="Background3" type="ColorRect" parent="." unique_id=245238082]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -39,15 +199,14 @@ grow_vertical = 2
color = Color(0.0627451, 0.0745098, 0.101961, 1)
[node name="Background" type="TextureRect" parent="." unique_id=767675801]
modulate = Color(1, 1, 1, 0.28235295)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_q60fs")
expand_mode = 2
texture = ExtResource("3_iulku")
expand_mode = 1
[node name="Background2" type="TextureRect" parent="." unique_id=783164473]
visible = false
@@ -86,7 +245,7 @@ unique_name_in_owner = true
own_world_3d = true
transparent_bg = true
handle_input_locally = false
size = Vector2i(1366, 720)
size = Vector2i(1366, 768)
render_target_update_mode = 4
[node name="WorldEnvironment" type="WorldEnvironment" parent="MainMenuPanel/ViewportWrapper/SubViewportContainer/PreviewViewport" unique_id=253593246]
@@ -159,13 +318,18 @@ clip_contents = true
custom_minimum_size = Vector2(0, 130)
layout_mode = 2
size_flags_horizontal = 3
theme = ExtResource("2_theme")
theme_override_styles/panel = SubResource("StyleBoxEmpty_busoe")
[node name="HBox" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard" unique_id=58934509]
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard" unique_id=1195708144]
layout_mode = 2
theme_override_constants/margin_left = 20
theme_override_constants/margin_right = 20
[node name="HBox" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer" unique_id=58934509]
layout_mode = 2
theme_override_constants/separation = 12
[node name="MainProfileBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/HBox" unique_id=89234859]
[node name="MainProfileBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox" unique_id=89234859]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 100)
layout_mode = 2
@@ -173,7 +337,16 @@ size_flags_vertical = 4
flat = true
expand_icon = true
[node name="AvatarDisplay" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/HBox/MainProfileBtn" unique_id=593485890]
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/MainProfileBtn" unique_id=2112174468]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_8mpuv")
[node name="AvatarDisplay" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/MainProfileBtn" unique_id=593485890]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
@@ -185,30 +358,121 @@ texture = ExtResource("10_dyhay")
expand_mode = 1
stretch_mode = 5
[node name="VBoxContainer" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/HBox" unique_id=598345789]
[node name="VBoxContainer" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox" unique_id=598345789]
layout_mode = 2
size_flags_horizontal = 3
alignment = 1
[node name="Username" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/HBox/VBoxContainer" unique_id=50934858]
[node name="Username" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer" unique_id=50934858]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("2_theme")
theme_override_colors/font_color = Color(0.5686275, 0.36862746, 0.12941177, 1)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
theme_override_font_sizes/font_size = 24
text = "USERNAME"
[node name="Subtitle" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/HBox/VBoxContainer" unique_id=5948395]
[node name="Subtitle" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer" unique_id=5948395]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.7, 0.6, 0.2, 1)
theme_override_colors/font_color = Color(0.53, 0.53, 0.53, 1)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 14
text = "EU SERVER"
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer" unique_id=331071595]
layout_mode = 2
theme_override_constants/separation = 6
[node name="Panel" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer" unique_id=113826609]
custom_minimum_size = Vector2(80, 30)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_gd4oi")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel" unique_id=2062391446]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 3
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 6
theme_override_constants/margin_bottom = 3
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel/MarginContainer" unique_id=1826509078]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel/MarginContainer/HBoxContainer" unique_id=1462222702]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("12_gufxi")
[node name="Label" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel/MarginContainer/HBoxContainer" unique_id=312597909]
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "0000000"
horizontal_alignment = 2
vertical_alignment = 1
[node name="GoldLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel/MarginContainer/HBoxContainer" unique_id=94850]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="Panel2" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer" unique_id=1514999060]
custom_minimum_size = Vector2(80, 30)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_gd4oi")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2" unique_id=2040127486]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 3
theme_override_constants/margin_top = 3
theme_override_constants/margin_right = 6
theme_override_constants/margin_bottom = 3
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2/MarginContainer" unique_id=108285540]
layout_mode = 2
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2/MarginContainer/HBoxContainer" unique_id=1770079891]
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 4
texture = ExtResource("13_arjad")
[node name="Label" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2/MarginContainer/HBoxContainer" unique_id=1184388330]
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "0000000"
horizontal_alignment = 2
vertical_alignment = 1
[node name="StarLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2/ProfileCard/MarginContainer/HBox/VBoxContainer/HBoxContainer/Panel2/MarginContainer/HBoxContainer" unique_id=948509]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="Control" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer2" unique_id=177944371]
custom_minimum_size = Vector2(80, 0)
custom_minimum_size = Vector2(50, 0)
layout_direction = 3
layout_mode = 2
@@ -217,6 +481,7 @@ custom_minimum_size = Vector2(0, 8)
layout_mode = 2
[node name="CurrencyRow" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=59384589]
visible = false
layout_mode = 2
theme_override_constants/separation = 8
@@ -246,16 +511,6 @@ theme_override_colors/font_color = Color(0.9, 0.7, 0.3, 1)
theme_override_font_sizes/font_size = 18
text = "✦"
[node name="StarLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/CurrencyRow/HBoxContainer/StarPanel/Margin/HBoxContainer" unique_id=948509]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.5686275, 0.36862746, 0.12941177, 1)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="Control" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/CurrencyRow/HBoxContainer" unique_id=255421565]
custom_minimum_size = Vector2(180, 0)
layout_direction = 3
@@ -287,16 +542,6 @@ theme_override_colors/font_color = Color(0.8, 0.6, 0.2, 1)
theme_override_font_sizes/font_size = 18
text = "▤"
[node name="GoldLabel" type="Label" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/CurrencyRow/HBoxContainer2/GoldPanel/Margin/HBoxContainer" unique_id=94850]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.5686275, 0.36862746, 0.12941177, 1)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "0"
horizontal_alignment = 2
[node name="Control" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/CurrencyRow/HBoxContainer2" unique_id=320833893]
custom_minimum_size = Vector2(180, 0)
layout_direction = 3
@@ -307,51 +552,129 @@ layout_mode = 2
size_flags_vertical = 3
[node name="ChatPanel" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=948590]
custom_minimum_size = Vector2(360, 160)
custom_minimum_size = Vector2(520, 260)
layout_mode = 2
theme = ExtResource("2_theme")
size_flags_vertical = 8
theme = ExtResource("14_2630d")
theme_override_styles/panel = SubResource("StyleBoxFlat_kn4i6")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel" unique_id=945890]
[node name="VBoxContainer" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel" unique_id=459039]
layout_mode = 2
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
[node name="RichTextLabel" type="RichTextLabel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/MarginContainer" unique_id=1730680016]
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer" unique_id=1189440913]
layout_mode = 2
theme_override_constants/margin_left = 7
theme_override_constants/margin_top = 7
theme_override_constants/margin_right = 7
[node name="ChatTabsContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer" unique_id=459040]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("2_theme")
theme_override_colors/default_color = Color(0.5686275, 0.36862746, 0.12941177, 1)
bbcode_enabled = true
scroll_following = true
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=459038]
layout_mode = 2
theme_override_constants/separation = 8
[node name="QuitBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer" unique_id=1853395708]
unique_name_in_owner = true
custom_minimum_size = Vector2(40, 40)
layout_mode = 2
theme = ExtResource("2_theme")
text = "←"
[node name="ChatInput" type="LineEdit" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer" unique_id=1346390421]
[node name="GlobalChatTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer/ChatTabsContainer" unique_id=439566196]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme = ExtResource("2_theme")
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 20
placeholder_text = " type to chat"
text = "Global"
[node name="SendBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer" unique_id=1491048704]
[node name="DMTabTemplate" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer/ChatTabsContainer" unique_id=123456789]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
[node name="DMTabBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer/ChatTabsContainer/DMTabTemplate" unique_id=123456780]
layout_mode = 2
size_flags_horizontal = 3
text = "FriendName"
[node name="DMTabCloseBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/MarginContainer/ChatTabsContainer/DMTabTemplate" unique_id=123456781]
layout_mode = 2
theme_override_colors/font_color = Color(0.8, 0.2, 0.2, 1)
text = " X "
[node name="GlobalChat" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer" unique_id=945890]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 6
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
[node name="RichTextLabel" type="RichTextLabel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/VBoxContainer/GlobalChat" unique_id=1730680016]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/default_color = Color(1, 1, 1, 1)
bbcode_enabled = true
scroll_following = true
[node name="FriendSuggestPanel" type="PanelContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel" unique_id=987654321]
unique_name_in_owner = true
visible = false
layout_mode = 2
[node name="FriendSuggestList" type="ItemList" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/ChatPanel/FriendSuggestPanel" unique_id=987654320]
unique_name_in_owner = true
layout_mode = 2
allow_reselect = true
auto_height = true
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol" unique_id=459038]
clip_contents = true
layout_mode = 2
size_flags_vertical = 8
theme_override_constants/separation = 8
[node name="QuitBtn2" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer" unique_id=1520754242]
unique_name_in_owner = true
custom_minimum_size = Vector2(40, 40)
layout_mode = 2
theme = ExtResource("2_theme")
text = ">"
texture_normal = ExtResource("12_dfnwm")
[node name="Control" type="Panel" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer" unique_id=59880168]
custom_minimum_size = Vector2(0, 70)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_3jc85")
[node name="HBoxContainer" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control" unique_id=1328089782]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
[node name="QuitBtn" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control/HBoxContainer" unique_id=738138485]
unique_name_in_owner = true
layout_mode = 2
texture_normal = ExtResource("13_0jb4q")
[node name="MarginContainer" type="MarginContainer" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control/HBoxContainer" unique_id=628941879]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/margin_left = 5
[node name="ChatInput" type="LineEdit" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control/HBoxContainer/MarginContainer" unique_id=1346390421]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("14_vwf6o")
theme_override_font_sizes/font_size = 16
theme_override_styles/normal = SubResource("StyleBoxFlat_jhtcy")
theme_override_styles/read_only = SubResource("StyleBoxEmpty_iulku")
theme_override_styles/focus = SubResource("StyleBoxEmpty_dfnwm")
placeholder_text = " type to chat"
[node name="SendBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/LeftCol/HBoxContainer/Control/HBoxContainer" unique_id=1491048704]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("2_theme")
icon = ExtResource("15_iwi7x")
flat = true
[node name="CenterCol" type="VBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox" unique_id=7006870]
clip_contents = true
@@ -371,45 +694,111 @@ alignment = 2
[node name="ProfileBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=752873406]
unique_name_in_owner = true
custom_minimum_size = Vector2(44, 44)
custom_minimum_size = Vector2(61, 61)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
text = "PROFILE"
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/ProfileBtn" unique_id=1690437163]
custom_minimum_size = Vector2(32, 32)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("18_u7tfn")
expand_mode = 2
[node name="LeaderboardBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=312524216]
unique_name_in_owner = true
custom_minimum_size = Vector2(44, 44)
custom_minimum_size = Vector2(61, 61)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
text = "LEADERBOARD"
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/LeaderboardBtn" unique_id=1226601226]
custom_minimum_size = Vector2(32, 32)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("19_2630d")
expand_mode = 2
[node name="CartBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=456149005]
unique_name_in_owner = true
custom_minimum_size = Vector2(44, 44)
custom_minimum_size = Vector2(61, 61)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
text = "SHOP"
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/CartBtn" unique_id=1719165221]
custom_minimum_size = Vector2(32, 32)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("20_835bk")
expand_mode = 2
[node name="TicketBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=64042310]
unique_name_in_owner = true
custom_minimum_size = Vector2(44, 44)
custom_minimum_size = Vector2(61, 61)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
text = "BATTLE PASS"
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/TicketBtn" unique_id=109558990]
custom_minimum_size = Vector2(32, 32)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("21_ucbax")
expand_mode = 2
[node name="SocialBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=82719328]
unique_name_in_owner = true
custom_minimum_size = Vector2(44, 44)
custom_minimum_size = Vector2(61, 61)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
text = "SOCIAL"
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/SocialBtn" unique_id=134959792]
custom_minimum_size = Vector2(32, 32)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("22_1x1aw")
expand_mode = 2
[node name="SettingsBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel" unique_id=90]
unique_name_in_owner = true
custom_minimum_size = Vector2(44, 44)
custom_minimum_size = Vector2(61, 61)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
text = "SETTINGS"
flat = true
[node name="TextureRect" type="TextureRect" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/TopRightPanel/SettingsBtn" unique_id=629469797]
custom_minimum_size = Vector2(32, 32)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("23_twy5w")
expand_mode = 2
[node name="Spacer1" type="Control" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=9023]
layout_mode = 2
@@ -489,10 +878,12 @@ size_flags_vertical = 3
[node name="BottomRightPanel" type="HBoxContainer" parent="MainMenuPanel/MainMargin/MainHBox/RightCol" unique_id=987]
layout_mode = 2
theme_override_constants/separation = 12
theme_override_constants/separation = 0
alignment = 1
[node name="TutorialBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel" unique_id=951866518]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
size_flags_horizontal = 3
@@ -501,25 +892,26 @@ theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "TUTORIAL"
[node name="CreateRoomBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel" unique_id=8]
[node name="BrowseRoomsBtn" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel" unique_id=1204550484]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
size_flags_horizontal = 3
size_flags_horizontal = 10
size_flags_vertical = 8
theme = ExtResource("2_theme")
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "HOST"
texture_normal = ExtResource("17_wjff0")
texture_pressed = ExtResource("18_0jb4q")
texture_hover = ExtResource("18_0jb4q")
[node name="BrowseRoomsBtn" type="Button" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel" unique_id=4595]
[node name="CreateRoomBtn" type="TextureButton" parent="MainMenuPanel/MainMargin/MainHBox/RightCol/BottomRightPanel" unique_id=1662316269]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
size_flags_horizontal = 3
theme = ExtResource("2_theme")
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "BROWSE"
texture_normal = ExtResource("18_h1rib")
texture_pressed = ExtResource("20_vwf6o")
texture_hover = ExtResource("20_vwf6o")
[node name="HiddenLogic" type="Control" parent="MainMenuPanel" unique_id=345]
visible = false
@@ -550,7 +942,8 @@ unique_name_in_owner = true
layout_mode = 0
text = "127.0.0.1"
[node name="RoomListPanel" type="PanelContainer" parent="." unique_id=1782359692]
[node name="RoomListPanel" type="HBoxContainer" parent="." unique_id=1782359692]
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 8
@@ -558,74 +951,484 @@ anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -300.0
offset_left = -464.0
offset_top = -260.0
offset_right = 300.0
offset_right = 466.0
offset_bottom = 260.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = -4
[node name="VBoxContainer" type="VBoxContainer" parent="RoomListPanel" unique_id=159201826]
[node name="SideTabs" type="VBoxContainer" parent="RoomListPanel" unique_id=457723868]
layout_mode = 2
theme_override_constants/separation = 16
[node name="Spacer" type="Control" parent="RoomListPanel/SideTabs" unique_id=1305112156]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
[node name="PlayTabSideBtn" type="TextureButton" parent="RoomListPanel/SideTabs" unique_id=262385443]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 80)
layout_mode = 2
toggle_mode = true
button_pressed = true
texture_normal = ExtResource("21_h1rib")
texture_pressed = ExtResource("22_kn4i6")
texture_hover = ExtResource("22_kn4i6")
texture_disabled = ExtResource("21_h1rib")
texture_focused = ExtResource("22_kn4i6")
[node name="RoomTabSideBtn" type="TextureButton" parent="RoomListPanel/SideTabs" unique_id=792287358]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 80)
layout_mode = 2
toggle_mode = true
texture_normal = ExtResource("23_3jc85")
texture_pressed = ExtResource("24_jhtcy")
texture_hover = ExtResource("24_jhtcy")
texture_disabled = ExtResource("23_3jc85")
texture_focused = ExtResource("24_jhtcy")
[node name="ContentPanel" type="Panel" parent="RoomListPanel" unique_id=903537973]
custom_minimum_size = Vector2(789, 0)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxTexture_50md7")
[node name="ContentMargin" type="MarginContainer" parent="RoomListPanel/ContentPanel" unique_id=1254933221]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.006
anchor_top = 0.004
anchor_right = 0.99600005
anchor_bottom = 0.99200004
offset_left = 0.2540002
offset_top = -0.08000016
offset_right = 0.16394043
offset_bottom = -3.8400269
theme_override_constants/margin_left = 20
theme_override_constants/margin_top = 20
theme_override_constants/margin_right = 20
theme_override_constants/margin_bottom = 25
[node name="RoomListTabs" type="TabContainer" parent="RoomListPanel/ContentPanel/ContentMargin" unique_id=1694573690]
unique_name_in_owner = true
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_6mek4")
current_tab = 1
tabs_visible = false
[node name="PlayTab" type="MarginContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs" unique_id=70158569]
unique_name_in_owner = true
visible = false
layout_mode = 2
metadata/_tab_index = 0
[node name="HBoxContainer" type="HBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/PlayTab" unique_id=345253745]
layout_mode = 2
theme_override_constants/separation = 16
[node name="StoryModeBtn" type="TextureButton" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/PlayTab/HBoxContainer" unique_id=741966081]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
disabled = true
texture_normal = ExtResource("26_wpcbs")
texture_pressed = ExtResource("27_8tmsf")
texture_hover = ExtResource("27_8tmsf")
texture_disabled = ExtResource("27_8tmsf")
[node name="VBoxContainer" type="VBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/PlayTab/HBoxContainer" unique_id=814090298]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 14
alignment = 1
[node name="Header" type="Label" parent="RoomListPanel/VBoxContainer" unique_id=911540555]
[node name="StopNGoContainer" type="VBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/PlayTab/HBoxContainer/VBoxContainer" unique_id=948822540]
layout_mode = 2
theme_override_colors/font_color = Color(0.52156866, 0.52156866, 0.52156866, 1)
size_flags_vertical = 3
alignment = 1
[node name="StopNGoBtn" type="TextureButton" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/PlayTab/HBoxContainer/VBoxContainer/StopNGoContainer" unique_id=31593966]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
texture_normal = ExtResource("27_ierb3")
texture_pressed = ExtResource("29_gxh4y")
texture_hover = ExtResource("29_gxh4y")
[node name="HBoxContainer" type="HBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/PlayTab/HBoxContainer/VBoxContainer/StopNGoContainer" unique_id=1937788582]
layout_mode = 2
[node name="StopNGoHostBtn" type="Button" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/PlayTab/HBoxContainer/VBoxContainer/StopNGoContainer/HBoxContainer" unique_id=640606818]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "HOST"
[node name="StopNGoJoinBtn" type="Button" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/PlayTab/HBoxContainer/VBoxContainer/StopNGoContainer/HBoxContainer" unique_id=1558771495]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "JOIN"
[node name="FreeModeBtn" type="TextureButton" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/PlayTab/HBoxContainer/VBoxContainer" unique_id=1261113013]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
texture_normal = ExtResource("28_78rk6")
texture_pressed = ExtResource("31_30fw8")
texture_hover = ExtResource("31_30fw8")
[node name="RoomTab" type="HBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs" unique_id=822716633]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 16
metadata/_tab_index = 1
[node name="LeftCol" type="VBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab" unique_id=1431939029]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 15
[node name="HBoxContainer2" type="HBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol" unique_id=1249733451]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 10
[node name="Avatar" type="Panel" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2" unique_id=125703250]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 120)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_7rn74")
[node name="MarginContainer" type="MarginContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2" unique_id=406695678]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/margin_top = 5
[node name="ProfileCard" type="PanelContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer" unique_id=1500763973]
custom_minimum_size = Vector2(0, 80)
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_30el1")
[node name="VBoxContainer" type="VBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard" unique_id=952839168]
layout_mode = 2
[node name="PlayerUsername" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer" unique_id=383429369]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 6
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 28
text = "SERVER BROWSER"
horizontal_alignment = 1
text = "Username"
[node name="HSeparator" type="HSeparator" parent="RoomListPanel/VBoxContainer" unique_id=1359536044]
[node name="HSeparator" type="HSeparator" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer" unique_id=1027857617]
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/separator = SubResource("StyleBoxEmpty_s3vw1")
[node name="Panel" type="Panel" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer" unique_id=948041471]
custom_minimum_size = Vector2(0, 50)
layout_mode = 2
size_flags_vertical = 8
theme_override_styles/panel = SubResource("StyleBoxFlat_iwv5h")
[node name="HBoxContainer" type="HBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer/Panel" unique_id=1743546351]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="MarginContainer" type="MarginContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer/Panel/HBoxContainer" unique_id=2071748858]
layout_mode = 2
theme_override_constants/margin_left = 11
theme_override_constants/margin_top = 11
theme_override_constants/margin_bottom = 11
[node name="TextureRect" type="TextureRect" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer/Panel/HBoxContainer/MarginContainer" unique_id=642831453]
layout_mode = 2
texture = ExtResource("29_6mek4")
[node name="PlayerScore" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer/Panel/HBoxContainer" unique_id=1539780270]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 6
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 20
text = "000000"
[node name="Label" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer/Panel/HBoxContainer" unique_id=1498448394]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 6
theme_override_colors/font_color = Color(0.19607843, 0.27450982, 0.3372549, 1)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 15
text = "Rank#"
horizontal_alignment = 2
[node name="MarginContainer2" type="MarginContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer/Panel/HBoxContainer" unique_id=911063848]
layout_mode = 2
theme_override_constants/margin_top = 11
theme_override_constants/margin_right = 11
theme_override_constants/margin_bottom = 11
[node name="Rank" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer/Panel/HBoxContainer/MarginContainer2" unique_id=963495505]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 6
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 15
text = "00"
horizontal_alignment = 2
[node name="RoomListProfileBtn" type="TextureButton" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer2/MarginContainer/ProfileCard/VBoxContainer" unique_id=414148016]
unique_name_in_owner = true
visible = false
layout_mode = 2
[node name="MatchIdLabel" type="Label" parent="RoomListPanel/VBoxContainer" unique_id=1208643238]
[node name="HBoxContainer" type="HBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol" unique_id=863196955]
layout_mode = 2
theme_override_colors/font_color = Color(0.69, 0.529, 0.357, 1)
theme_override_font_sizes/font_size = 12
text = "DIRECT CONNECT (MATCH ID)"
size_flags_vertical = 3
alignment = 1
[node name="MatchIdInput" type="LineEdit" parent="RoomListPanel/VBoxContainer" unique_id=425559636]
[node name="RoomFreeModeBtn" type="TextureButton" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer" unique_id=84621540]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 8
toggle_mode = true
texture_normal = ExtResource("30_8ht5e")
texture_pressed = ExtResource("34_7rn74")
texture_hover = ExtResource("34_7rn74")
[node name="RoomStopNGoBtn" type="TextureButton" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol/HBoxContainer" unique_id=1289388514]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 8
toggle_mode = true
texture_normal = ExtResource("31_tuh25")
texture_pressed = ExtResource("36_30el1")
texture_hover = ExtResource("36_30el1")
[node name="MatchIdInput" type="LineEdit" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/LeftCol" unique_id=1340245956]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Paste match ID here..."
size_flags_horizontal = 3
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_colors/font_placeholder_color = Color(1, 1, 1, 0.54901963)
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_styles/normal = SubResource("StyleBoxFlat_6mek4")
placeholder_text = "Quick Join, RoomID "
[node name="RoomListLabel" type="Label" parent="RoomListPanel/VBoxContainer" unique_id=1579554712]
[node name="RightCol" type="VBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab" unique_id=57917118]
custom_minimum_size = Vector2(380, 0)
layout_mode = 2
theme_override_colors/font_color = Color(0.69, 0.529, 0.357, 1)
theme_override_font_sizes/font_size = 12
text = "AVAILABLE SERVERS"
size_flags_horizontal = 3
size_flags_stretch_ratio = 1.5
theme_override_constants/separation = 14
[node name="RoomList" type="ItemList" parent="RoomListPanel/VBoxContainer" unique_id=1747575999]
custom_minimum_size = Vector2(0, 200)
[node name="RoomList" type="ItemList" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol" unique_id=2112541159]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = SubResource("StyleBoxTexture_gufxi")
theme_override_styles/focus = SubResource("StyleBoxTexture_arjad")
allow_reselect = true
[node name="ButtonContainer" type="HBoxContainer" parent="RoomListPanel/VBoxContainer" unique_id=181847289]
[node name="Head" type="MarginContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList" unique_id=1183610877]
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_bottom = 32.0
grow_horizontal = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="PanelContainer" type="PanelContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/Head" unique_id=595994661]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_8ht5e")
[node name="MarginContainer" type="MarginContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/Head/PanelContainer" unique_id=1642394338]
layout_mode = 2
theme_override_constants/margin_left = 4
theme_override_constants/margin_right = 4
[node name="HBoxContainer" type="HBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/Head/PanelContainer/MarginContainer" unique_id=1581258669]
layout_mode = 2
[node name="No_" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/Head/PanelContainer/MarginContainer/HBoxContainer" unique_id=1681773695]
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "No."
[node name="Host_" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/Head/PanelContainer/MarginContainer/HBoxContainer" unique_id=888585232]
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "Host"
horizontal_alignment = 1
[node name="Mode_" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/Head/PanelContainer/MarginContainer/HBoxContainer" unique_id=1130252609]
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "Mode"
horizontal_alignment = 1
[node name="Cap_" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/Head/PanelContainer/MarginContainer/HBoxContainer" unique_id=448943238]
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 18
text = "Cap."
horizontal_alignment = 2
[node name="ItemTemplate" type="MarginContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList" unique_id=1884269351]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(10, 50)
layout_mode = 1
anchors_preset = 10
anchor_right = 1.0
offset_left = 1.0
offset_top = 46.0
offset_right = 1.0
offset_bottom = 96.0
grow_horizontal = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="PanelContainer" type="PanelContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/ItemTemplate" unique_id=1266955143]
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_tuh25")
[node name="MarginContainer" type="MarginContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/ItemTemplate/PanelContainer" unique_id=1789920940]
layout_mode = 2
theme_override_constants/margin_left = 4
theme_override_constants/margin_right = 4
[node name="HBoxContainer" type="HBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/ItemTemplate/PanelContainer/MarginContainer" unique_id=1831109864]
layout_mode = 2
theme_override_constants/separation = 16
[node name="ListRoomID" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/ItemTemplate/PanelContainer/MarginContainer/HBoxContainer" unique_id=1408660710]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 14
text = "00000030203"
vertical_alignment = 1
text_overrun_behavior = 5
uppercase = true
[node name="ListHost" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/ItemTemplate/PanelContainer/MarginContainer/HBoxContainer" unique_id=461956395]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 14
text = "Username"
vertical_alignment = 1
text_overrun_behavior = 5
uppercase = true
[node name="ListMode" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/ItemTemplate/PanelContainer/MarginContainer/HBoxContainer" unique_id=370500984]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 14
text = "FMD"
horizontal_alignment = 1
vertical_alignment = 1
text_overrun_behavior = 5
uppercase = true
[node name="ListCap" type="Label" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/RoomList/ItemTemplate/PanelContainer/MarginContainer/HBoxContainer" unique_id=1233323274]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 14
text = "1/8"
horizontal_alignment = 2
vertical_alignment = 1
text_overrun_behavior = 5
uppercase = true
[node name="BottomRow" type="HBoxContainer" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol" unique_id=1132155666]
layout_mode = 2
theme_override_constants/separation = 14
alignment = 1
[node name="RefreshBtn" type="Button" parent="RoomListPanel/VBoxContainer/ButtonContainer" unique_id=586598199]
custom_minimum_size = Vector2(110, 44)
[node name="RefreshBtn" type="TextureButton" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/BottomRow" unique_id=1709721255]
unique_name_in_owner = true
layout_mode = 2
text = "REFRESH"
texture_normal = ExtResource("33_gxh4y")
texture_pressed = ExtResource("39_s3vw1")
texture_hover = ExtResource("39_s3vw1")
[node name="JoinBtn" type="Button" parent="RoomListPanel/VBoxContainer/ButtonContainer" unique_id=1079497597]
custom_minimum_size = Vector2(130, 44)
[node name="JoinBtn" type="TextureButton" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/BottomRow" unique_id=615778547]
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 44)
layout_mode = 2
text = "JOIN SERVER"
texture_normal = ExtResource("34_30fw8")
texture_pressed = ExtResource("41_iwv5h")
texture_hover = ExtResource("41_iwv5h")
[node name="BackBtn" type="Button" parent="RoomListPanel/VBoxContainer/ButtonContainer" unique_id=1786784033]
custom_minimum_size = Vector2(110, 44)
layout_mode = 2
text = "BACK"
[node name="ProfileBtn" type="Button" parent="RoomListPanel/VBoxContainer/ButtonContainer" unique_id=1473526002]
[node name="HostBtn" type="Button" parent="RoomListPanel/ContentPanel/ContentMargin/RoomListTabs/RoomTab/RightCol/BottomRow" unique_id=1475733954]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(80, 44)
layout_mode = 2
text = "PROFILE"
theme_override_colors/font_color = Color(0, 1, 0, 1)
text = "HOST"
[node name="TopRightAnchor" type="Control" parent="RoomListPanel/ContentPanel" unique_id=898923170]
z_index = 1
anchors_preset = 0
offset_left = 12.0
offset_top = 8.0
offset_right = 784.0
offset_bottom = 507.0
mouse_filter = 2
[node name="RoomListCloseBtn" type="TextureButton" parent="RoomListPanel/ContentPanel/TopRightAnchor" unique_id=1732423618]
unique_name_in_owner = true
custom_minimum_size = Vector2(40, 40)
layout_mode = 1
anchors_preset = -1
anchor_left = 0.99200004
anchor_right = 0.99200004
anchor_bottom = 0.010000001
offset_left = -30.824097
offset_top = -27.0
offset_right = 33.175903
offset_bottom = 32.01
grow_horizontal = 2
grow_vertical = 2
texture_normal = ExtResource("29_417c5")
texture_pressed = ExtResource("41_7rn74")
texture_hover = ExtResource("41_7rn74")
[node name="LobbyPanel" type="Control" parent="." unique_id=1745714811]
visible = false
@@ -697,7 +1500,7 @@ theme_override_fonts/font = ExtResource("5_pc087")
theme_override_font_sizes/font_size = 11
text = "Logout"
[node name="LobbySettingsBtn" type="Button" parent="LobbyPanel/TopBar/ProfileSection" unique_id=987654321]
[node name="LobbySettingsBtn" type="Button" parent="LobbyPanel/TopBar/ProfileSection" unique_id=1778209609]
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
theme_override_fonts/font = ExtResource("5_pc087")
+114
View File
@@ -1,6 +1,7 @@
[gd_scene load_steps=2 format=3 uid="uid://biio8efqysivs"]
[ext_resource type="Script" uid="uid://ic8fg0o0p0i4" path="res://scripts/ui/admin_panel.gd" id="1"]
[ext_resource type="PackedScene" uid="uid://dp12345678" path="res://scenes/ui/date_picker.tscn" id="2_dp"]
[node name="AdminPanel" type="Panel"]
anchors_preset = 15
@@ -262,6 +263,119 @@ custom_minimum_size = Vector2(160, 36)
layout_mode = 2
text = "Save Config"
[node name="Announcements" type="VBoxContainer" parent="Margin/VBox/Tabs"]
visible = false
layout_mode = 2
theme_override_constants/separation = 12
metadata/_tab_index = 3
[node name="TargetHBox" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
layout_mode = 2
theme_override_constants/separation = 12
[node name="Label" type="Label" parent="Margin/VBox/Tabs/Announcements/TargetHBox"]
layout_mode = 2
text = "Target User ID:"
[node name="TargetUserEdit" type="LineEdit" parent="Margin/VBox/Tabs/Announcements/TargetHBox"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Leave empty to send to ALL users (Global)"
[node name="TitleEdit" type="LineEdit" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
layout_mode = 2
placeholder_text = "Message Title"
[node name="ContentEdit" type="TextEdit" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 150)
layout_mode = 2
placeholder_text = "Message Content"
[node name="ScheduleHBox" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
layout_mode = 2
theme_override_constants/separation = 12
[node name="LabelStart" type="Label" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox"]
layout_mode = 2
text = "Start:"
[node name="StartDatePicker" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox" instance=ExtResource("2_dp")]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="LabelEnd" type="Label" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox"]
layout_mode = 2
text = "End:"
[node name="EndDatePicker" parent="Margin/VBox/Tabs/Announcements/ScheduleHBox" instance=ExtResource("2_dp")]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="RewardsHeader" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
layout_mode = 2
[node name="Label" type="Label" parent="Margin/VBox/Tabs/Announcements/RewardsHeader"]
layout_mode = 2
size_flags_horizontal = 3
text = "Attached Rewards"
[node name="AddRewardBtn" type="Button" parent="Margin/VBox/Tabs/Announcements/RewardsHeader"]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 30)
layout_mode = 2
text = "+ ADD"
[node name="RewardsList" type="VBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 8
[node name="RewardRowTemplate" type="HBoxContainer" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
visible = false
layout_mode = 2
theme_override_constants/separation = 8
[node name="TypeOption" type="OptionButton" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"]
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
item_count = 4
selected = 0
popup/item_0/text = "star"
popup/item_0/id = 0
popup/item_1/text = "gold"
popup/item_1/id = 1
popup/item_2/text = "item"
popup/item_2/id = 2
popup/item_3/text = "skin"
popup/item_3/id = 3
[node name="IdEdit" type="LineEdit" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"]
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Item/Skin ID (Leave empty for Star/Gold)"
[node name="AmountSpin" type="SpinBox" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"]
layout_mode = 2
max_value = 100000.0
value = 1.0
[node name="RemoveBtn" type="Button" parent="Margin/VBox/Tabs/Announcements/RewardRowTemplate"]
layout_mode = 2
text = "X"
theme_override_colors/font_color = Color(1, 0.3, 0.3, 1)
[node name="SendMailBtn" type="Button" parent="Margin/VBox/Tabs/Announcements"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
text = "SEND ANNOUNCEMENT"
[node name="StatusLabel" type="Label" parent="Margin/VBox"]
unique_name_in_owner = true
layout_mode = 2
+150 -22
View File
@@ -3,13 +3,38 @@
[ext_resource type="Script" uid="uid://vgyrq5y5p7jw" path="res://scripts/ui/boot_screen.gd" id="1_boot"]
[ext_resource type="Texture2D" uid="uid://2d1ks5pmblc7" path="res://assets/graphics/main_menu/bg_back.png" id="2_17ab1"]
[ext_resource type="FontFile" uid="uid://dsqg0x5lnosou" path="res://assets/fonts/TektonDash2.ttf" id="2_bwjrh"]
[ext_resource type="FontFile" uid="uid://c2tryhyhlyb1u" path="res://assets/fonts/Supercell-Magic Regular.ttf" id="3_f4w4t"]
[ext_resource type="Texture2D" uid="uid://jqvv6s55mlsk" path="res://assets/graphics/gui/BG.png" id="3_1xu5j"]
[ext_resource type="Theme" uid="uid://da337sh5qxi0s" path="res://assets/themes/ui_theme.tres" id="3_jayi6"]
[ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="4_17ab1"]
[ext_resource type="Texture2D" uid="uid://bpco6lch7homj" path="res://assets/graphics/gui/play/bg.png" id="6_yicr8"]
[ext_resource type="FontFile" uid="uid://dckhhpt5emxq0" path="res://assets/fonts/Asap-VariableFont_wdth,wght.ttf" id="7_yicr8"]
[ext_resource type="Texture2D" uid="uid://1yi5lwgle4g0" path="res://assets/graphics/gui/play/btn_green_small.png" id="8_5mhvm"]
[ext_resource type="Texture2D" uid="uid://cuw72qcwxxbjg" path="res://assets/graphics/gui/play/btn_green_small_darken.png" id="9_6t5dt"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1xu5j"]
bg_color = Color(0.08, 0.09, 0.12, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wusgu"]
bg_color = Color(0.14117648, 0.16862746, 0.19215687, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.19607843, 0.27450982, 0.3372549, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2h0ma"]
bg_color = Color(0.54509807, 0.7882353, 0.101960786, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 10
border_color = Color(0.7254902, 0.84313726, 0.38039216, 1)
border_blend = true
[node name="BootScreen" type="Control" unique_id=469561880]
layout_mode = 3
anchors_preset = 15
@@ -20,6 +45,7 @@ grow_vertical = 2
script = ExtResource("1_boot")
[node name="Background" type="ColorRect" parent="." unique_id=698091452]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -29,6 +55,7 @@ grow_vertical = 2
color = Color(0.0823529, 0.0823529, 0.109804, 1)
[node name="Background2" type="Panel" parent="." unique_id=1171074799]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -38,6 +65,7 @@ grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_1xu5j")
[node name="Background3" type="TextureRect" parent="." unique_id=99232146]
visible = false
modulate = Color(1, 1, 1, 0.28235295)
layout_mode = 1
anchors_preset = 15
@@ -48,6 +76,16 @@ grow_vertical = 2
texture = ExtResource("2_17ab1")
expand_mode = 2
[node name="Background4" type="TextureRect" parent="." unique_id=629882829]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_1xu5j")
expand_mode = 1
[node name="CenterContainer" type="CenterContainer" parent="." unique_id=1851252006]
layout_mode = 1
anchors_preset = 15
@@ -64,23 +102,29 @@ theme_override_constants/separation = 20
[node name="Title" type="Label" parent="CenterContainer/MainVBox" unique_id=576295308]
layout_mode = 2
theme_override_colors/font_color = Color(0.6901961, 0.5294118, 0.35686275, 1)
theme_override_fonts/font = ExtResource("2_bwjrh")
theme_override_font_sizes/font_size = 32
text = "Tekton Dash : Update Checker"
horizontal_alignment = 1
[node name="ChangelogPanel" type="PanelContainer" parent="CenterContainer/MainVBox" unique_id=675458612]
[node name="ChangelogPanel" type="TextureRect" parent="CenterContainer/MainVBox" unique_id=136011719]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 300)
layout_mode = 2
texture = ExtResource("6_yicr8")
expand_mode = 5
[node name="Margin" type="MarginContainer" parent="CenterContainer/MainVBox/ChangelogPanel" unique_id=577528369]
layout_mode = 2
theme_override_constants/margin_left = 15
theme_override_constants/margin_top = 15
theme_override_constants/margin_right = 15
theme_override_constants/margin_bottom = 15
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="VBox" type="VBoxContainer" parent="CenterContainer/MainVBox/ChangelogPanel/Margin" unique_id=983868454]
layout_mode = 2
@@ -89,48 +133,92 @@ layout_mode = 2
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
theme_override_colors/default_color = Color(0.6901961, 0.5294118, 0.35686275, 1)
theme_override_fonts/normal_font = ExtResource("3_f4w4t")
theme_override_colors/default_color = Color(1, 1, 1, 1)
theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.2509804)
theme_override_constants/shadow_outline_size = 0
theme_override_constants/shadow_offset_x = -2
theme_override_constants/shadow_offset_y = 2
theme_override_fonts/normal_font = ExtResource("7_yicr8")
bbcode_enabled = true
text = "Loading changelog..."
tab_size = 2
[node name="HBox" type="HBoxContainer" parent="CenterContainer/MainVBox/ChangelogPanel/Margin/VBox" unique_id=1374120193]
layout_mode = 2
size_flags_vertical = 8
alignment = 1
[node name="PrevButton" type="Button" parent="CenterContainer/MainVBox/ChangelogPanel/Margin/VBox/HBox" unique_id=1862079005]
[node name="PrevButton" type="TextureButton" parent="CenterContainer/MainVBox/ChangelogPanel/Margin/VBox/HBox" unique_id=779268670]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 4
texture_normal = ExtResource("8_5mhvm")
texture_pressed = ExtResource("9_6t5dt")
texture_hover = ExtResource("9_6t5dt")
[node name="Label" type="Label" parent="CenterContainer/MainVBox/ChangelogPanel/Margin/VBox/HBox/PrevButton" unique_id=106117176]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.48235294)
theme_override_constants/shadow_offset_x = -1
theme_override_constants/shadow_offset_y = 1
theme_override_constants/shadow_outline_size = 0
theme_override_fonts/font = ExtResource("4_17ab1")
text = " < Previous "
theme_override_font_sizes/font_size = 16
text = "PREV"
horizontal_alignment = 1
vertical_alignment = 1
[node name="PageLabel" type="Label" parent="CenterContainer/MainVBox/ChangelogPanel/Margin/VBox/HBox" unique_id=934971208]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_colors/font_color = Color(0.6901961, 0.5294118, 0.35686275, 1)
theme_override_fonts/font = ExtResource("4_17ab1")
text = "1 / 1"
horizontal_alignment = 1
[node name="NextButton" type="Button" parent="CenterContainer/MainVBox/ChangelogPanel/Margin/VBox/HBox" unique_id=1366632731]
[node name="NextButton" type="TextureButton" parent="CenterContainer/MainVBox/ChangelogPanel/Margin/VBox/HBox" unique_id=1512015952]
unique_name_in_owner = true
layout_mode = 2
texture_normal = ExtResource("8_5mhvm")
texture_pressed = ExtResource("9_6t5dt")
texture_hover = ExtResource("9_6t5dt")
[node name="Label" type="Label" parent="CenterContainer/MainVBox/ChangelogPanel/Margin/VBox/HBox/NextButton" unique_id=2060058712]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.48235294)
theme_override_constants/shadow_offset_x = -1
theme_override_constants/shadow_offset_y = 1
theme_override_constants/shadow_outline_size = 0
theme_override_fonts/font = ExtResource("4_17ab1")
text = " Next > "
theme_override_font_sizes/font_size = 16
text = "NEXT"
horizontal_alignment = 1
vertical_alignment = 1
[node name="StatusLabel" type="Label" parent="CenterContainer/MainVBox" unique_id=955710692]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.6901961, 0.5294118, 0.35686275, 1)
theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.48235294)
theme_override_fonts/font = ExtResource("4_17ab1")
text = "Checking for updates..."
horizontal_alignment = 1
[node name="ProgressBar" type="ProgressBar" parent="CenterContainer/MainVBox" unique_id=2132835750]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
show_percentage = false
theme_override_styles/background = SubResource("StyleBoxFlat_wusgu")
theme_override_styles/fill = SubResource("StyleBoxFlat_2h0ma")
[node name="ProgressLabel" type="Label" parent="CenterContainer/MainVBox/ProgressBar" unique_id=1293848486]
unique_name_in_owner = true
@@ -140,8 +228,11 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.48235294)
theme_override_fonts/font = ExtResource("4_17ab1")
theme_override_font_sizes/font_size = 14
horizontal_alignment = 1
vertical_alignment = 1
[node name="ButtonContainer" type="HBoxContainer" parent="CenterContainer/MainVBox" unique_id=2021809892]
unique_name_in_owner = true
@@ -149,14 +240,51 @@ layout_mode = 2
theme_override_constants/separation = 20
alignment = 1
[node name="SkipButton" type="Button" parent="CenterContainer/MainVBox/ButtonContainer" unique_id=1945691494]
[node name="SkipButton" type="TextureButton" parent="CenterContainer/MainVBox/ButtonContainer" unique_id=450583456]
unique_name_in_owner = true
layout_mode = 2
theme_override_fonts/font = ExtResource("4_17ab1")
text = "Skip"
texture_normal = ExtResource("8_5mhvm")
texture_pressed = ExtResource("9_6t5dt")
texture_hover = ExtResource("9_6t5dt")
[node name="UpdateButton" type="Button" parent="CenterContainer/MainVBox/ButtonContainer" unique_id=200811932]
[node name="Label" type="Label" parent="CenterContainer/MainVBox/ButtonContainer/SkipButton" unique_id=773031370]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.48235294)
theme_override_constants/shadow_offset_x = -1
theme_override_constants/shadow_offset_y = 1
theme_override_constants/shadow_outline_size = 0
theme_override_fonts/font = ExtResource("4_17ab1")
theme_override_font_sizes/font_size = 16
text = "Skip"
horizontal_alignment = 1
vertical_alignment = 1
[node name="UpdateButton" type="TextureButton" parent="CenterContainer/MainVBox/ButtonContainer" unique_id=1083550702]
unique_name_in_owner = true
layout_mode = 2
texture_normal = ExtResource("8_5mhvm")
texture_pressed = ExtResource("9_6t5dt")
texture_hover = ExtResource("9_6t5dt")
stretch_mode = 0
[node name="Label" type="Label" parent="CenterContainer/MainVBox/ButtonContainer/UpdateButton" unique_id=692036465]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.48235294)
theme_override_constants/shadow_offset_x = -1
theme_override_constants/shadow_offset_y = 1
theme_override_constants/shadow_outline_size = 0
theme_override_fonts/font = ExtResource("4_17ab1")
text = "Download Update"
theme_override_font_sizes/font_size = 16
text = "Update"
horizontal_alignment = 1
vertical_alignment = 1
+95
View File
@@ -0,0 +1,95 @@
[gd_scene format=3 uid="uid://dp12345678"]
[ext_resource type="Script" path="res://scripts/ui/date_picker.gd" id="1_dp"]
[node name="DatePicker" type="Button"]
custom_minimum_size = Vector2(120, 36)
text = "Select Date..."
script = ExtResource("1_dp")
[node name="PopupPanel" type="PopupPanel" parent="."]
size = Vector2i(260, 280)
[node name="VBox" type="VBoxContainer" parent="PopupPanel"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 4.0
offset_top = 4.0
offset_right = -4.0
offset_bottom = -4.0
theme_override_constants/separation = 8
[node name="Header" type="HBoxContainer" parent="PopupPanel/VBox"]
layout_mode = 2
[node name="PrevBtn" type="Button" parent="PopupPanel/VBox/Header"]
custom_minimum_size = Vector2(30, 0)
layout_mode = 2
text = "<"
[node name="MonthYearLbl" type="Label" parent="PopupPanel/VBox/Header"]
layout_mode = 2
size_flags_horizontal = 3
text = "Month Year"
horizontal_alignment = 1
[node name="NextBtn" type="Button" parent="PopupPanel/VBox/Header"]
custom_minimum_size = Vector2(30, 0)
layout_mode = 2
text = ">"
[node name="Weekdays" type="GridContainer" parent="PopupPanel/VBox"]
layout_mode = 2
columns = 7
[node name="Sun" type="Label" parent="PopupPanel/VBox/Weekdays"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
text = "Su"
horizontal_alignment = 1
[node name="Mon" type="Label" parent="PopupPanel/VBox/Weekdays"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
text = "Mo"
horizontal_alignment = 1
[node name="Tue" type="Label" parent="PopupPanel/VBox/Weekdays"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
text = "Tu"
horizontal_alignment = 1
[node name="Wed" type="Label" parent="PopupPanel/VBox/Weekdays"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
text = "We"
horizontal_alignment = 1
[node name="Thu" type="Label" parent="PopupPanel/VBox/Weekdays"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
text = "Th"
horizontal_alignment = 1
[node name="Fri" type="Label" parent="PopupPanel/VBox/Weekdays"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
text = "Fr"
horizontal_alignment = 1
[node name="Sat" type="Label" parent="PopupPanel/VBox/Weekdays"]
custom_minimum_size = Vector2(32, 0)
layout_mode = 2
text = "Sa"
horizontal_alignment = 1
[node name="DaysGrid" type="GridContainer" parent="PopupPanel/VBox"]
layout_mode = 2
size_flags_vertical = 3
columns = 7
[node name="ClearBtn" type="Button" parent="PopupPanel/VBox"]
layout_mode = 2
text = "Clear Date"
+96 -18
View File
@@ -1,40 +1,118 @@
[gd_scene format=3 uid="uid://dqfriend001"]
[ext_resource type="Script" path="res://scripts/ui/friend_row.gd" id="1_frow"]
[ext_resource type="Texture2D" path="res://assets/graphics/gui/friendlist/mc_copper.png" id="2_avatar"]
[ext_resource type="Texture2D" path="res://assets/graphics/gui/friendlist/friend_add0.png" id="3_add"]
[ext_resource type="Texture2D" path="res://assets/graphics/gui/friendlist/friend_chat.png" id="4_chat"]
[ext_resource type="Texture2D" path="res://assets/graphics/gui/friendlist/friend_block0.png.png" id="5_block"]
[ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="6_font"]
[node name="FriendRow" type="HBoxContainer"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bg"]
bg_color = Color(0, 0, 0, 0.48)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(0, 0, 0, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_avatar_bg"]
bg_color = Color(1, 1, 1, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[node name="FriendRow" type="PanelContainer"]
custom_minimum_size = Vector2(0, 80)
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxFlat_bg")
script = ExtResource("1_frow")
[node name="NameLabel" type="Label" parent="."]
unique_name_in_owner = true
[node name="Margin" type="MarginContainer" parent="."]
layout_mode = 2
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
[node name="HBox" type="HBoxContainer" parent="Margin"]
layout_mode = 2
theme_override_constants/separation = 12
[node name="AvatarPanel" type="PanelContainer" parent="Margin/HBox"]
custom_minimum_size = Vector2(64, 64)
layout_mode = 2
size_flags_vertical = 4
theme_override_styles/panel = SubResource("StyleBoxFlat_avatar_bg")
[node name="Margin" type="MarginContainer" parent="Margin/HBox/AvatarPanel"]
layout_mode = 2
theme_override_constants/margin_left = 2
theme_override_constants/margin_top = 2
theme_override_constants/margin_right = 2
theme_override_constants/margin_bottom = 2
[node name="Avatar" type="TextureRect" parent="Margin/HBox/AvatarPanel/Margin"]
layout_mode = 2
texture = ExtResource("2_avatar")
expand_mode = 1
[node name="VBox" type="VBoxContainer" parent="Margin/HBox"]
layout_mode = 2
size_flags_horizontal = 3
alignment = 1
[node name="StateLabel" type="Label" parent="."]
[node name="NameLabel" type="Label" parent="Margin/HBox/VBox"]
unique_name_in_owner = true
layout_mode = 2
visible = false
theme_override_fonts/font = ExtResource("6_font")
theme_override_font_sizes/font_size = 20
text = "USERNAME"
[node name="DMBtn" type="Button" parent="."]
[node name="StateLabel" type="Label" parent="Margin/HBox/VBox"]
unique_name_in_owner = true
layout_mode = 2
text = "Chat"
visible = false
theme_override_fonts/font = ExtResource("6_font")
theme_override_colors/font_color = Color(0.7, 0.7, 0.7, 1)
theme_override_font_sizes/font_size = 12
text = "LAST ONLINE: 30 mins ago."
[node name="AcceptBtn" type="Button" parent="."]
unique_name_in_owner = true
[node name="HBoxButtons" type="HBoxContainer" parent="Margin/HBox/VBox"]
layout_mode = 2
text = "Accept"
visible = false
theme_override_constants/separation = 8
[node name="DeclineBtn" type="Button" parent="."]
[node name="AcceptBtn" type="TextureButton" parent="Margin/HBox/VBox/HBoxButtons"]
unique_name_in_owner = true
custom_minimum_size = Vector2(16, 16)
layout_mode = 2
text = "Decline"
visible = false
texture_normal = ExtResource("3_add")
ignore_texture_size = true
stretch_mode = 5
[node name="RemoveBtn" type="Button" parent="."]
[node name="DMBtn" type="TextureButton" parent="Margin/HBox/VBox/HBoxButtons"]
unique_name_in_owner = true
custom_minimum_size = Vector2(16, 16)
layout_mode = 2
text = "Remove"
visible = false
texture_normal = ExtResource("4_chat")
ignore_texture_size = true
stretch_mode = 5
[node name="DeclineBtn" type="TextureButton" parent="Margin/HBox/VBox/HBoxButtons"]
unique_name_in_owner = true
custom_minimum_size = Vector2(16, 16)
layout_mode = 2
texture_normal = ExtResource("5_block")
ignore_texture_size = true
stretch_mode = 5
[node name="RemoveBtn" type="TextureButton" parent="Margin/HBox/VBox/HBoxButtons"]
unique_name_in_owner = true
custom_minimum_size = Vector2(16, 16)
layout_mode = 2
texture_normal = ExtResource("5_block")
ignore_texture_size = true
stretch_mode = 5
+54 -41
View File
@@ -1,7 +1,8 @@
[gd_scene format=3 uid="uid://c3q4w3j6e7y8u"]
[ext_resource type="Script" uid="uid://qe1nth1bnep8" path="res://scripts/ui/leaderboard_panel.gd" id="1"]
[ext_resource type="Theme" uid="uid://da337sh5qxi0s" path="res://assets/themes/ui_theme.tres" id="2"]
[ext_resource type="Theme" uid="uid://cxab3xxy00" path="res://assets/themes/GUI_Tekton.tres" id="1_q8r81"]
[ext_resource type="Texture2D" uid="uid://jqvv6s55mlsk" path="res://assets/graphics/gui/BG.png" id="3_amgyn"]
[ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="3_font"]
[ext_resource type="PackedScene" uid="uid://ejeamn0pyey4" path="res://assets/characters/Bob.glb" id="4_bob"]
[ext_resource type="PackedScene" uid="uid://d4cul3w3wem5w" path="res://assets/characters/Gatot.glb" id="4_gatot"]
@@ -9,6 +10,10 @@
[ext_resource type="PackedScene" uid="uid://bmln7v6v5kvxg" path="res://assets/characters/Oldpop.glb" id="4_oldpop"]
[ext_resource type="AnimationLibrary" uid="uid://c3pyopnwibckj" path="res://assets/characters/animations/animation-pack.res" id="5_animlib"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_amgyn"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_q8r81"]
[sub_resource type="Environment" id="Environment_lb"]
background_mode = 1
background_color = Color(0.06, 0.07, 0.1, 1)
@@ -23,47 +28,56 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2")
theme = ExtResource("1_q8r81")
script = ExtResource("1")
[node name="Background" type="ColorRect" parent="." unique_id=1326531657]
[node name="Background" type="TextureRect" parent="." unique_id=1166091442]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.05, 0.06, 0.09, 0.97)
texture = ExtResource("3_amgyn")
expand_mode = 1
[node name="MainLayout" type="HBoxContainer" parent="." unique_id=53100533]
[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1028567223]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 30
theme_override_constants/margin_top = 30
theme_override_constants/margin_right = 30
theme_override_constants/margin_bottom = 30
[node name="MainLayout" type="HBoxContainer" parent="MarginContainer" unique_id=53100533]
layout_mode = 2
theme_override_constants/separation = 0
[node name="LeftPanel" type="PanelContainer" parent="MainLayout" unique_id=125724276]
[node name="LeftPanel" type="PanelContainer" parent="MarginContainer/MainLayout" unique_id=125724276]
custom_minimum_size = Vector2(500, 0)
layout_mode = 2
size_flags_horizontal = 3
theme_override_styles/panel = SubResource("StyleBoxEmpty_amgyn")
[node name="LeftVBox" type="VBoxContainer" parent="MainLayout/LeftPanel" unique_id=1333726314]
[node name="LeftVBox" type="VBoxContainer" parent="MarginContainer/MainLayout/LeftPanel" unique_id=1333726314]
layout_mode = 2
theme_override_constants/separation = 12
[node name="Header" type="HBoxContainer" parent="MainLayout/LeftPanel/LeftVBox" unique_id=2015043023]
[node name="Header" type="HBoxContainer" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox" unique_id=2015043023]
layout_mode = 2
[node name="BackBtn" type="Button" parent="MainLayout/LeftPanel/LeftVBox/Header" unique_id=1330539196]
[node name="BackBtn" type="Button" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox/Header" unique_id=1330539196]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 44)
layout_mode = 2
theme_override_fonts/font = ExtResource("3_font")
text = "← BACK"
[node name="RefreshBtn" type="Button" parent="MainLayout/LeftPanel/LeftVBox/Header" unique_id=993543919]
[node name="RefreshBtn" type="Button" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox/Header" unique_id=993543919]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(44, 44)
@@ -71,7 +85,7 @@ layout_mode = 2
tooltip_text = "Refresh Data"
text = "⟳"
[node name="SyncBtn" type="Button" parent="MainLayout/LeftPanel/LeftVBox/Header" unique_id=1452457095]
[node name="SyncBtn" type="Button" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox/Header" unique_id=1452457095]
unique_name_in_owner = true
custom_minimum_size = Vector2(160, 44)
layout_mode = 2
@@ -79,143 +93,142 @@ tooltip_text = "Sync your score to the global leaderboard"
text = "⟳ Refresh
"
[node name="Title" type="Label" parent="MainLayout/LeftPanel/LeftVBox/Header" unique_id=1037998429]
[node name="Title" type="Label" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox/Header" unique_id=1037998429]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.647, 0.996, 0.224, 1)
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 26
text = "LEADERBOARD"
horizontal_alignment = 1
[node name="SortTabs" type="HBoxContainer" parent="MainLayout/LeftPanel/LeftVBox" unique_id=718289870]
[node name="SortTabs" type="HBoxContainer" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox" unique_id=718289870]
layout_mode = 2
theme_override_constants/separation = 8
alignment = 1
[node name="SortScoreBtn" type="Button" parent="MainLayout/LeftPanel/LeftVBox/SortTabs" unique_id=130573026]
[node name="SortScoreBtn" type="Button" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox/SortTabs" unique_id=130573026]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 36)
layout_mode = 2
theme_override_fonts/font = ExtResource("3_font")
text = "High Score"
[node name="SortWinRateBtn" type="Button" parent="MainLayout/LeftPanel/LeftVBox/SortTabs" unique_id=1440940092]
[node name="SortWinRateBtn" type="Button" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox/SortTabs" unique_id=1440940092]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 36)
layout_mode = 2
theme_override_fonts/font = ExtResource("3_font")
text = "Win Rate"
[node name="SortGamesBtn" type="Button" parent="MainLayout/LeftPanel/LeftVBox/SortTabs" unique_id=1859306138]
[node name="SortGamesBtn" type="Button" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox/SortTabs" unique_id=1859306138]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 36)
layout_mode = 2
theme_override_fonts/font = ExtResource("3_font")
text = "Games Played"
[node name="HSeparator" type="HSeparator" parent="MainLayout/LeftPanel/LeftVBox" unique_id=1424980566]
[node name="HSeparator" type="HSeparator" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox" unique_id=1424980566]
layout_mode = 2
theme_override_styles/separator = SubResource("StyleBoxEmpty_q8r81")
[node name="ScrollContainer" type="ScrollContainer" parent="MainLayout/LeftPanel/LeftVBox" unique_id=1067011185]
[node name="ScrollContainer" type="ScrollContainer" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox" unique_id=1067011185]
layout_mode = 2
size_flags_vertical = 3
[node name="LeaderboardList" type="VBoxContainer" parent="MainLayout/LeftPanel/LeftVBox/ScrollContainer" unique_id=1303389084]
[node name="LeaderboardList" type="VBoxContainer" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox/ScrollContainer" unique_id=1303389084]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 8
[node name="StatusLabel" type="Label" parent="MainLayout/LeftPanel/LeftVBox" unique_id=218097909]
[node name="StatusLabel" type="Label" parent="MarginContainer/MainLayout/LeftPanel/LeftVBox" unique_id=218097909]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.69, 0.529, 0.357, 1)
theme_override_fonts/font = ExtResource("3_font")
text = "Loading data..."
horizontal_alignment = 1
[node name="RightPanel" type="SubViewportContainer" parent="MainLayout" unique_id=733341277]
[node name="RightPanel" type="SubViewportContainer" parent="MarginContainer/MainLayout" unique_id=733341277]
custom_minimum_size = Vector2(340, 0)
layout_mode = 2
size_flags_horizontal = 3
size_flags_stretch_ratio = 0.8
stretch = true
[node name="PreviewViewport" type="SubViewport" parent="MainLayout/RightPanel" unique_id=434116765]
[node name="PreviewViewport" type="SubViewport" parent="MarginContainer/MainLayout/RightPanel" unique_id=434116765]
unique_name_in_owner = true
own_world_3d = true
transparent_bg = true
handle_input_locally = false
size = Vector2i(608, 720)
size = Vector2i(581, 708)
render_target_update_mode = 4
[node name="WorldEnvironment" type="WorldEnvironment" parent="MainLayout/RightPanel/PreviewViewport" unique_id=176076489]
[node name="WorldEnvironment" type="WorldEnvironment" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport" unique_id=176076489]
environment = SubResource("Environment_lb")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="MainLayout/RightPanel/PreviewViewport" unique_id=1487133814]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport" unique_id=1487133814]
transform = Transform3D(0.866025, -0.25, 0.433013, 0, 0.866025, 0.5, -0.5, -0.433013, 0.75, 0, 4, 0)
light_energy = 1.4
[node name="FillLight" type="OmniLight3D" parent="MainLayout/RightPanel/PreviewViewport" unique_id=1492921006]
[node name="FillLight" type="OmniLight3D" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport" unique_id=1492921006]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 2, 2)
light_color = Color(0.4, 0.5, 1, 1)
light_energy = 0.5
omni_range = 8.0
[node name="Camera3D" type="Camera3D" parent="MainLayout/RightPanel/PreviewViewport" unique_id=28500697]
[node name="Camera3D" type="Camera3D" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport" unique_id=28500697]
transform = Transform3D(1, 0, 0, 0, 0.9659259, 0.25881898, 0, -0.25881898, 0.9659259, 0, 0.8380414, 3.2)
current = true
fov = 40.0
[node name="CharacterRoot" type="Node3D" parent="MainLayout/RightPanel/PreviewViewport" unique_id=1908332248]
[node name="CharacterRoot" type="Node3D" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport" unique_id=1908332248]
unique_name_in_owner = true
[node name="Masbro" parent="MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=1123428413 instance=ExtResource("4_masbro")]
[node name="Masbro" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=1123428413 instance=ExtResource("4_masbro")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.485, 0)
visible = false
[node name="Bob" parent="MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=1443851131 instance=ExtResource("4_bob")]
[node name="Bob" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=1443851131 instance=ExtResource("4_bob")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.484627, 0)
visible = false
[node name="Gatot" parent="MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=1688463565 instance=ExtResource("4_gatot")]
[node name="Gatot" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=1688463565 instance=ExtResource("4_gatot")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.485, 0)
visible = false
[node name="Oldpop" parent="MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=2101387155 instance=ExtResource("4_oldpop")]
[node name="Oldpop" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=2101387155 instance=ExtResource("4_oldpop")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.485, 0)
[node name="AnimationPlayer" type="AnimationPlayer" parent="MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=264395095]
[node name="AnimationPlayer" type="AnimationPlayer" parent="MarginContainer/MainLayout/RightPanel/PreviewViewport/CharacterRoot" unique_id=264395095]
root_node = NodePath("../Oldpop")
libraries/animation-pack = ExtResource("5_animlib")
autoplay = &"animation-pack/idle"
[node name="SelectedPlayerInfo" type="PanelContainer" parent="MainLayout/RightPanel" unique_id=1592883771]
[node name="SelectedPlayerInfo" type="PanelContainer" parent="MarginContainer/MainLayout/RightPanel" unique_id=1592883771]
layout_mode = 2
size_flags_vertical = 8
[node name="InfoMargin" type="MarginContainer" parent="MainLayout/RightPanel/SelectedPlayerInfo" unique_id=882298034]
[node name="InfoMargin" type="MarginContainer" parent="MarginContainer/MainLayout/RightPanel/SelectedPlayerInfo" unique_id=882298034]
layout_mode = 2
theme_override_constants/margin_left = 20
theme_override_constants/margin_top = 15
theme_override_constants/margin_right = 20
theme_override_constants/margin_bottom = 15
[node name="InfoVBox" type="VBoxContainer" parent="MainLayout/RightPanel/SelectedPlayerInfo/InfoMargin" unique_id=567154378]
[node name="InfoVBox" type="VBoxContainer" parent="MarginContainer/MainLayout/RightPanel/SelectedPlayerInfo/InfoMargin" unique_id=567154378]
layout_mode = 2
theme_override_constants/separation = 4
[node name="SelectedNameLabel" type="Label" parent="MainLayout/RightPanel/SelectedPlayerInfo/InfoMargin/InfoVBox" unique_id=1940372038]
[node name="SelectedNameLabel" type="Label" parent="MarginContainer/MainLayout/RightPanel/SelectedPlayerInfo/InfoMargin/InfoVBox" unique_id=1940372038]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.69803923, 0.5411765, 0.3647059, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 24
text = "PLAYER NAME"
horizontal_alignment = 1
[node name="SelectedRankLabel" type="Label" parent="MainLayout/RightPanel/SelectedPlayerInfo/InfoMargin/InfoVBox" unique_id=994755781]
[node name="SelectedRankLabel" type="Label" parent="MarginContainer/MainLayout/RightPanel/SelectedPlayerInfo/InfoMargin/InfoVBox" unique_id=994755781]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.647, 0.996, 0.224, 1)
+316 -228
View File
@@ -1,7 +1,50 @@
[gd_scene format=3 uid="uid://b00eef4tqt2ri"]
[ext_resource type="Script" uid="uid://b1lcy1ikdkknq" path="res://scripts/ui/login_screen.gd" id="1"]
[ext_resource type="Theme" uid="uid://da337sh5qxi0s" path="res://assets/themes/ui_theme.tres" id="2"]
[ext_resource type="Theme" uid="uid://cxab3xxy00" path="res://assets/themes/GUI_Tekton.tres" id="1_25ghd"]
[ext_resource type="Texture2D" uid="uid://jqvv6s55mlsk" path="res://assets/graphics/gui/BG.png" id="3_atvl1"]
[ext_resource type="Texture2D" uid="uid://dvp0as6yyudco" path="res://assets/graphics/main_menu/bg_illust.png" id="4_53sdr"]
[ext_resource type="Texture2D" uid="uid://bvy60hfe7hr4j" path="res://assets/graphics/login_panel/sign_in.png" id="5_dfu6y"]
[ext_resource type="Texture2D" uid="uid://36uhj6e6piai" path="res://assets/graphics/login_panel/sign_in_dimmed.png" id="6_eint3"]
[ext_resource type="Texture2D" uid="uid://dkjiv40yjf2w7" path="res://assets/graphics/login_panel/sign_up.png" id="7_duruf"]
[ext_resource type="Texture2D" uid="uid://3c2hwrbatvsh" path="res://assets/graphics/login_panel/sign_up_dimmed.png" id="8_0gtqq"]
[ext_resource type="Texture2D" uid="uid://cwhe3g5dai0pv" path="res://assets/graphics/gui/login_panel/steam.png" id="9_eint3"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_panel"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.14117648, 0.16862746, 0.19215687, 1)
corner_radius_top_left = 12
corner_radius_top_right = 12
corner_radius_bottom_right = 12
corner_radius_bottom_left = 12
shadow_color = Color(0, 0, 0, 0.3529412)
shadow_size = 4
shadow_offset = Vector2(-2, 2)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tab_inactive"]
content_margin_left = 16.0
content_margin_top = 14.0
content_margin_right = 16.0
content_margin_bottom = 14.0
bg_color = Color(0.33, 0.62, 0.78, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tab_active"]
content_margin_left = 16.0
content_margin_top = 14.0
content_margin_right = 16.0
content_margin_bottom = 14.0
bg_color = Color(0.1, 0.19, 0.27, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[node name="LoginScreen" type="Control" unique_id=1394670984]
layout_mode = 3
@@ -10,60 +53,301 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2")
theme = ExtResource("1_25ghd")
script = ExtResource("1")
[node name="Background" type="ColorRect" parent="." unique_id=1913867293]
[node name="Background2" type="TextureRect" parent="." unique_id=353261948]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.12, 0.1, 0.08, 1)
texture = ExtResource("3_atvl1")
expand_mode = 1
[node name="CenterContainer" type="CenterContainer" parent="." unique_id=706535114]
[node name="Background" type="TextureRect" parent="." unique_id=1187975207]
modulate = Color(1, 1, 1, 0.48235294)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("4_53sdr")
expand_mode = 1
flip_h = true
[node name="LayoutVBox" type="VBoxContainer" parent="CenterContainer" unique_id=1110313476]
[node name="RootHBox" type="HBoxContainer" parent="." unique_id=862490259]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 0
[node name="LeftColumn" type="VBoxContainer" parent="RootHBox" unique_id=1587806516]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
size_flags_horizontal = 10
theme_override_constants/separation = 12
alignment = 2
[node name="LeftSpacer" type="Control" parent="RootHBox/LeftColumn" unique_id=1209422692]
custom_minimum_size = Vector2(0, 200)
layout_mode = 2
[node name="SignInTabBtn" type="TextureButton" parent="RootHBox/LeftColumn" unique_id=2029771907]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 8
toggle_mode = true
texture_normal = ExtResource("6_eint3")
texture_pressed = ExtResource("5_dfu6y")
texture_hover = ExtResource("5_dfu6y")
[node name="SignUpTabBtn" type="TextureButton" parent="RootHBox/LeftColumn" unique_id=1409705912]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 8
toggle_mode = true
texture_normal = ExtResource("8_0gtqq")
texture_pressed = ExtResource("7_duruf")
texture_hover = ExtResource("7_duruf")
[node name="VBoxContainer" type="VBoxContainer" parent="RootHBox/LeftColumn" unique_id=1577376480]
layout_mode = 2
theme_override_constants/separation = 20
[node name="BottomLeftSpacer" type="Control" parent="RootHBox/LeftColumn" unique_id=459259390]
layout_mode = 2
size_flags_vertical = 3
[node name="CenterColumn" type="CenterContainer" parent="RootHBox" unique_id=1801474360]
layout_mode = 2
[node name="PanelBG" type="PanelContainer" parent="RootHBox/CenterColumn" unique_id=320946805]
custom_minimum_size = Vector2(420, 0)
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_panel")
[node name="TabContainer" type="TabContainer" parent="RootHBox/CenterColumn/PanelBG" unique_id=2135112748]
unique_name_in_owner = true
layout_mode = 2
current_tab = 0
tabs_visible = false
[node name="Login" type="MarginContainer" parent="RootHBox/CenterColumn/PanelBG/TabContainer" unique_id=1294712927]
layout_mode = 2
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
metadata/_tab_index = 0
[node name="VBox" type="VBoxContainer" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login" unique_id=1063599539]
layout_mode = 2
theme_override_constants/separation = 12
[node name="HeaderVBox" type="VBoxContainer" parent="CenterContainer/LayoutVBox" unique_id=851120967]
[node name="GuestButton" type="Button" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=2037993426]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
theme_override_font_sizes/font_size = 16
text = "Play as Guest"
[node name="OrLabel" type="Label" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=1387412213]
layout_mode = 2
text = "─────── or sign in ───────"
horizontal_alignment = 1
[node name="EmailInput" type="LineEdit" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=323436289]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Email"
[node name="PasswordInput" type="LineEdit" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=1098627484]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Password"
secret = true
[node name="RememberMe" type="CheckBox" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=1013722117]
unique_name_in_owner = true
layout_mode = 2
theme = ExtResource("1_25ghd")
theme_override_colors/font_color = Color(0.88, 0.9, 0.93, 1)
theme_override_colors/font_pressed_color = Color(0.83, 0.83, 0.83, 1)
theme_override_colors/font_hover_color = Color(0.45, 0.73, 0.91, 1)
button_pressed = true
text = "Remember Me"
[node name="LoginButton" type="Button" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=945681236]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_font_sizes/font_size = 18
theme_override_styles/normal = SubResource("StyleBoxFlat_tab_inactive")
theme_override_styles/pressed = SubResource("StyleBoxFlat_tab_active")
theme_override_styles/hover = SubResource("StyleBoxFlat_tab_inactive")
text = "SIGN IN"
[node name="SocialLabel" type="Label" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=840440943]
layout_mode = 2
text = "─────── or continue with ───────"
horizontal_alignment = 1
[node name="SocialButtons" type="HBoxContainer" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=1899762021]
layout_mode = 2
theme_override_constants/separation = 12
alignment = 1
[node name="GoogleButton" type="Button" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox/SocialButtons" unique_id=196743645]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(100, 44)
layout_mode = 2
text = "Google"
[node name="AppleButton" type="Button" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox/SocialButtons" unique_id=1174582184]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(100, 44)
layout_mode = 2
text = "Apple"
[node name="FacebookButton" type="Button" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox/SocialButtons" unique_id=1252096120]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(100, 44)
layout_mode = 2
text = "Facebook"
[node name="SteamButton" type="Button" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox/SocialButtons" unique_id=1024459784]
unique_name_in_owner = true
custom_minimum_size = Vector2(140, 44)
layout_mode = 2
text = " STEAM"
icon = ExtResource("9_eint3")
[node name="StatusLabel" type="Label" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=1679807364]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(1, 0.4, 0.4, 1)
horizontal_alignment = 1
autowrap_mode = 2
[node name="LoadingSpinner" type="TextureProgressBar" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Login/VBox" unique_id=1985748047]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(40, 40)
layout_mode = 2
size_flags_horizontal = 4
[node name="Register" type="MarginContainer" parent="RootHBox/CenterColumn/PanelBG/TabContainer" unique_id=1373074681]
visible = false
layout_mode = 2
theme_override_constants/separation = 2
theme_override_constants/margin_left = 8
theme_override_constants/margin_top = 8
theme_override_constants/margin_right = 8
theme_override_constants/margin_bottom = 8
metadata/_tab_index = 1
[node name="LogoLabel" type="Label" parent="CenterContainer/LayoutVBox/HeaderVBox" unique_id=73067558]
[node name="VBox" type="VBoxContainer" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register" unique_id=839364109]
layout_mode = 2
theme_override_colors/font_color = Color(0.647, 0.996, 0.224, 1)
theme_override_font_sizes/font_size = 42
text = "TEKTON"
theme_override_constants/separation = 12
[node name="RegEmailInput" type="LineEdit" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox" unique_id=1906331672]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Email"
[node name="RegUsernameInput" type="LineEdit" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox" unique_id=853099369]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Username"
[node name="RegPasswordInput" type="LineEdit" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox" unique_id=1603528515]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Password"
secret = true
[node name="RegConfirmPasswordInput" type="LineEdit" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox" unique_id=830465730]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Confirm Password"
secret = true
[node name="PasswordStrength" type="ProgressBar" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox" unique_id=2023454025]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 12)
layout_mode = 2
max_value = 4.0
show_percentage = false
[node name="PasswordHint" type="Label" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox" unique_id=1402181329]
unique_name_in_owner = true
layout_mode = 2
text = "Min 8 characters, include number and symbol"
horizontal_alignment = 1
[node name="SubtitleLabel" type="Label" parent="CenterContainer/LayoutVBox/HeaderVBox" unique_id=240064697]
[node name="RegCaptchaContainer" type="HBoxContainer" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox" unique_id=1697820195]
layout_mode = 2
theme_override_constants/separation = 25
[node name="RegCaptchaQuestion" type="Label" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox/RegCaptchaContainer" unique_id=1792478300]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Security Check: 5 + 7 = ?"
[node name="RegCaptchaInput" type="LineEdit" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox/RegCaptchaContainer" unique_id=1405718888]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 44)
layout_mode = 2
placeholder_text = "Answer"
alignment = 1
[node name="RegisterButton" type="Button" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox" unique_id=2040733064]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
theme_override_font_sizes/font_size = 18
text = "REGISTER"
[node name="RegStatusLabel" type="Label" parent="RootHBox/CenterColumn/PanelBG/TabContainer/Register/VBox" unique_id=1096594976]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.992, 0.796, 0.047, 1)
theme_override_font_sizes/font_size = 14
text = "Armageddon"
horizontal_alignment = 1
autowrap_mode = 2
[node name="ServerSelectionSection" type="VBoxContainer" parent="CenterContainer/LayoutVBox" unique_id=580109643]
[node name="RightColumn" type="Control" parent="RootHBox" unique_id=115281348]
custom_minimum_size = Vector2(200, 0)
layout_mode = 2
theme_override_constants/separation = 8
size_flags_horizontal = 3
[node name="ConnectionModeLabel" type="Label" parent="CenterContainer/LayoutVBox/ServerSelectionSection" unique_id=2002206900]
layout_mode = 2
theme_override_colors/font_color = Color(0.69, 0.529, 0.357, 1)
theme_override_font_sizes/font_size = 12
text = "CONNECTION MODE"
[node name="ServerSelectionSection" type="VBoxContainer" parent="." unique_id=580109643]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 16.0
offset_top = -60.0
offset_right = 320.0
offset_bottom = -16.0
grow_horizontal = 2
grow_vertical = 0
[node name="ServerOption" type="OptionButton" parent="CenterContainer/LayoutVBox/ServerSelectionSection" unique_id=975117024]
[node name="ServerOption" type="OptionButton" parent="ServerSelectionSection" unique_id=975117024]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
@@ -78,7 +362,7 @@ popup/item_2/id = 2
popup/item_3/text = "Nakama - Tekton Dash EU"
popup/item_3/id = 3
[node name="ServerIPInput" type="LineEdit" parent="CenterContainer/LayoutVBox/ServerSelectionSection" unique_id=1444265129]
[node name="ServerIPInput" type="LineEdit" parent="ServerSelectionSection" unique_id=1444265129]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(0, 44)
@@ -86,13 +370,13 @@ layout_mode = 2
text = "127.0.0.1"
placeholder_text = "Enter Nakama Server IP..."
[node name="LANSection" type="VBoxContainer" parent="CenterContainer/LayoutVBox/ServerSelectionSection" unique_id=1917634402]
[node name="LANSection" type="VBoxContainer" parent="ServerSelectionSection" unique_id=1917634402]
unique_name_in_owner = true
visible = false
layout_mode = 2
theme_override_constants/separation = 8
[node name="LanInfo" type="Label" parent="CenterContainer/LayoutVBox/ServerSelectionSection/LANSection" unique_id=75077084]
[node name="LanInfo" type="Label" parent="ServerSelectionSection/LANSection" unique_id=130839558]
layout_mode = 2
theme_override_colors/font_color = Color(0.7, 0.7, 0.7, 1)
theme_override_font_sizes/font_size = 12
@@ -100,229 +384,33 @@ text = "Play over LAN without any server.
Firewall may need to allow port 7777."
autowrap_mode = 3
[node name="LANHostBtn" type="Button" parent="CenterContainer/LayoutVBox/ServerSelectionSection/LANSection" unique_id=751026831]
[node name="LANHostBtn" type="Button" parent="ServerSelectionSection/LANSection" unique_id=751026831]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
text = "HOST LAN GAME"
[node name="LanSeparator" type="Label" parent="CenterContainer/LayoutVBox/ServerSelectionSection/LANSection" unique_id=2088668724]
[node name="LanSeparator" type="Label" parent="ServerSelectionSection/LANSection" unique_id=29744637]
layout_mode = 2
theme_override_colors/font_color = Color(0.5, 0.5, 0.5, 1)
theme_override_font_sizes/font_size = 11
text = "─────── or join a friend ───────"
horizontal_alignment = 1
[node name="LANIPInput" type="LineEdit" parent="CenterContainer/LayoutVBox/ServerSelectionSection/LANSection" unique_id=1859021984]
[node name="LANIPInput" type="LineEdit" parent="ServerSelectionSection/LANSection" unique_id=1859021984]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
text = "127.0.0.1"
placeholder_text = "Host IP (e.g. 192.168.1.10)"
[node name="LANJoinBtn" type="Button" parent="CenterContainer/LayoutVBox/ServerSelectionSection/LANSection" unique_id=2009389522]
[node name="LANJoinBtn" type="Button" parent="ServerSelectionSection/LANSection" unique_id=2009389522]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
text = "JOIN LAN GAME"
[node name="HSeparator" type="HSeparator" parent="CenterContainer/LayoutVBox" unique_id=1424264812]
layout_mode = 2
[node name="TabContainer" type="TabContainer" parent="CenterContainer/LayoutVBox" unique_id=2135112748]
unique_name_in_owner = true
custom_minimum_size = Vector2(420, 0)
layout_mode = 2
current_tab = 0
[node name="Login" type="MarginContainer" parent="CenterContainer/LayoutVBox/TabContainer" unique_id=1294712927]
layout_mode = 2
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 16
theme_override_constants/margin_right = 16
theme_override_constants/margin_bottom = 16
metadata/_tab_index = 0
[node name="VBox" type="VBoxContainer" parent="CenterContainer/LayoutVBox/TabContainer/Login" unique_id=1063599539]
layout_mode = 2
theme_override_constants/separation = 12
[node name="GuestButton" type="Button" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=2037993426]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
theme_override_font_sizes/font_size = 16
text = "▶ PLAY AS GUEST"
[node name="OrLabel" type="Label" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=1387412213]
layout_mode = 2
theme_override_colors/font_color = Color(0.69, 0.529, 0.357, 1)
text = "─────── or sign in ───────"
horizontal_alignment = 1
[node name="EmailInput" type="LineEdit" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=323436289]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Email"
[node name="PasswordInput" type="LineEdit" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=1098627484]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Password"
secret = true
[node name="RememberMe" type="CheckBox" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=1013722117]
unique_name_in_owner = true
layout_mode = 2
button_pressed = true
text = "Remember me"
[node name="LoginButton" type="Button" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=945681236]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Sign In"
[node name="SocialLabel" type="Label" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=840440943]
layout_mode = 2
theme_override_colors/font_color = Color(0.69, 0.529, 0.357, 1)
text = "─────── or continue with ───────"
horizontal_alignment = 1
[node name="SocialButtons" type="HBoxContainer" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=1899762021]
layout_mode = 2
theme_override_constants/separation = 12
alignment = 1
[node name="GoogleButton" type="Button" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox/SocialButtons" unique_id=196743645]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(100, 44)
layout_mode = 2
text = "Google"
[node name="AppleButton" type="Button" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox/SocialButtons" unique_id=1174582184]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(100, 44)
layout_mode = 2
text = "Apple"
[node name="FacebookButton" type="Button" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox/SocialButtons" unique_id=1252096120]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(100, 44)
layout_mode = 2
text = "Facebook"
[node name="SteamButton" type="Button" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox/SocialButtons" unique_id=1024459784]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 44)
layout_mode = 2
text = "Steam"
[node name="StatusLabel" type="Label" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=1679807364]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(1, 0.4, 0.4, 1)
horizontal_alignment = 1
autowrap_mode = 2
[node name="LoadingSpinner" type="TextureProgressBar" parent="CenterContainer/LayoutVBox/TabContainer/Login/VBox" unique_id=1985748047]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(40, 40)
layout_mode = 2
size_flags_horizontal = 4
[node name="Register" type="MarginContainer" parent="CenterContainer/LayoutVBox/TabContainer" unique_id=1373074681]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 16
theme_override_constants/margin_right = 16
theme_override_constants/margin_bottom = 16
metadata/_tab_index = 1
[node name="VBox" type="VBoxContainer" parent="CenterContainer/LayoutVBox/TabContainer/Register" unique_id=839364109]
layout_mode = 2
theme_override_constants/separation = 12
[node name="RegEmailInput" type="LineEdit" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox" unique_id=1906331672]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Email"
[node name="RegUsernameInput" type="LineEdit" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox" unique_id=853099369]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Username"
[node name="RegPasswordInput" type="LineEdit" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox" unique_id=1603528515]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Password"
secret = true
[node name="RegConfirmPasswordInput" type="LineEdit" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox" unique_id=830465730]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Confirm Password"
secret = true
[node name="PasswordStrength" type="ProgressBar" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox" unique_id=2023454025]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 12)
layout_mode = 2
max_value = 4.0
show_percentage = false
[node name="PasswordHint" type="Label" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox" unique_id=1402181329]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.69, 0.529, 0.357, 1)
theme_override_font_sizes/font_size = 11
text = "Min 8 characters, include number and symbol"
horizontal_alignment = 1
[node name="RegCaptchaContainer" type="VBoxContainer" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox" unique_id=583603175]
layout_mode = 2
theme_override_constants/separation = 4
[node name="RegCaptchaQuestion" type="Label" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox/RegCaptchaContainer" unique_id=1792478300]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.647, 0.996, 0.224, 1)
text = "Security Check: 5 + 7 = ?"
horizontal_alignment = 1
[node name="RegCaptchaInput" type="LineEdit" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox/RegCaptchaContainer" unique_id=1405718888]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Answer"
alignment = 1
[node name="RegisterButton" type="Button" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox" unique_id=2040733064]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 48)
layout_mode = 2
text = "Create Account"
[node name="RegStatusLabel" type="Label" parent="CenterContainer/LayoutVBox/TabContainer/Register/VBox" unique_id=1096594976]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(1, 0.4, 0.4, 1)
horizontal_alignment = 1
autowrap_mode = 2
[node name="VersionLabel" type="Label" parent="." unique_id=481275614]
[node name="VersionLabel" type="Label" parent="." unique_id=256596221]
visible = false
layout_mode = 1
anchors_preset = 3
+174
View File
@@ -0,0 +1,174 @@
[gd_scene format=3 uid="uid://cb5cbbxyxx"]
[ext_resource type="Script" uid="uid://df7xxyyzz" path="res://scripts/ui/mailbox_panel.gd" id="1_a"]
[node name="MailboxPanel" type="Panel"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_a")
[node name="BG" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.08, 0.15, 0.22, 1)
[node name="Margin" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 24
theme_override_constants/margin_top = 24
theme_override_constants/margin_right = 24
theme_override_constants/margin_bottom = 24
[node name="HBox" type="HBoxContainer" parent="Margin"]
layout_mode = 2
theme_override_constants/separation = 24
[node name="LeftCol" type="VBoxContainer" parent="Margin/HBox"]
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
theme_override_constants/separation = 12
[node name="HeaderHBox" type="HBoxContainer" parent="Margin/HBox/LeftCol"]
layout_mode = 2
[node name="Icon" type="TextureRect" parent="Margin/HBox/LeftCol/HeaderHBox"]
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
expand_mode = 1
stretch_mode = 5
[node name="Label" type="Label" parent="Margin/HBox/LeftCol/HeaderHBox"]
layout_mode = 2
text = "MAILBOX"
theme_override_font_sizes/font_size = 24
[node name="Scroll" type="ScrollContainer" parent="Margin/HBox/LeftCol"]
layout_mode = 2
size_flags_vertical = 3
[node name="MailListVBox" type="VBoxContainer" parent="Margin/HBox/LeftCol/Scroll"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 8
[node name="EmptyStateLbl" type="Label" parent="Margin/HBox/LeftCol/Scroll"]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 6
text = "No mails found."
horizontal_alignment = 1
[node name="CloseBtn" type="Button" parent="Margin/HBox/LeftCol"]
unique_name_in_owner = true
custom_minimum_size = Vector2(100, 40)
layout_mode = 2
size_flags_horizontal = 0
text = "BACK"
[node name="MailBtnTemplate" type="Button" parent="Margin/HBox/LeftCol"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(0, 80)
layout_mode = 2
toggle_mode = true
[node name="VBox" type="VBoxContainer" parent="Margin/HBox/LeftCol/MailBtnTemplate"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/margin_left = 8
theme_override_constants/margin_right = 8
[node name="Title" type="Label" parent="Margin/HBox/LeftCol/MailBtnTemplate/VBox"]
layout_mode = 2
theme_override_font_sizes/font_size = 18
text = "No Title"
[node name="HBox" type="HBoxContainer" parent="Margin/HBox/LeftCol/MailBtnTemplate/VBox"]
layout_mode = 2
[node name="DateLbl" type="Label" parent="Margin/HBox/LeftCol/MailBtnTemplate/VBox/HBox"]
layout_mode = 2
theme_override_colors/font_color = Color(0.745098, 0.745098, 0.745098, 1)
theme_override_font_sizes/font_size = 12
[node name="Spacer" type="Control" parent="Margin/HBox/LeftCol/MailBtnTemplate/VBox/HBox"]
layout_mode = 2
size_flags_horizontal = 3
[node name="StatusLbl" type="Label" parent="Margin/HBox/LeftCol/MailBtnTemplate/VBox/HBox"]
layout_mode = 2
theme_override_font_sizes/font_size = 12
[node name="RightCol" type="VBoxContainer" parent="Margin/HBox"]
layout_mode = 2
size_flags_horizontal = 3
[node name="MailTitleLbl" type="Label" parent="Margin/HBox/RightCol"]
unique_name_in_owner = true
layout_mode = 2
theme_override_font_sizes/font_size = 28
text = "WELCOME TO TEKTONIA"
[node name="Sep" type="HSeparator" parent="Margin/HBox/RightCol"]
layout_mode = 2
[node name="MailContentText" type="RichTextLabel" parent="Margin/HBox/RightCol"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
theme_override_font_sizes/normal_font_size = 18
text = "Lorem ipsum..."
[node name="FooterHBox" type="HBoxContainer" parent="Margin/HBox/RightCol"]
layout_mode = 2
[node name="SenderLbl" type="Label" parent="Margin/HBox/RightCol/FooterHBox"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "SENDER:
TEKTON DEV TEAM"
[node name="DynamicRewardsContainer" type="HBoxContainer" parent="Margin/HBox/RightCol/FooterHBox"]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 12
[node name="RewardHBoxTemplate" type="HBoxContainer" parent="Margin/HBox/RightCol/FooterHBox"]
unique_name_in_owner = true
visible = false
layout_mode = 2
[node name="Icon" type="TextureRect" parent="Margin/HBox/RightCol/FooterHBox/RewardHBoxTemplate"]
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
[node name="AmountLbl" type="Label" parent="Margin/HBox/RightCol/FooterHBox/RewardHBoxTemplate"]
layout_mode = 2
text = "100"
[node name="ActionBtn" type="Button" parent="Margin/HBox/RightCol/FooterHBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 48)
layout_mode = 2
theme_override_colors/font_color = Color(1, 0.2, 0.2, 1)
text = "DELETE"
+10 -19
View File
@@ -1,8 +1,8 @@
[gd_scene format=3 uid="uid://dyx0upokhsh2e"]
[ext_resource type="Script" uid="uid://y6wswtalyiho" path="res://scripts/ui/profile_panel.gd" id="1"]
[ext_resource type="Theme" uid="uid://da337sh5qxi0s" path="res://assets/themes/ui_theme.tres" id="2"]
[ext_resource type="Texture2D" uid="uid://2d1ks5pmblc7" path="res://assets/graphics/main_menu/bg_back.png" id="3_0vpw4"]
[ext_resource type="Theme" uid="uid://cxab3xxy00" path="res://assets/themes/GUI_Tekton.tres" id="1_pti1t"]
[ext_resource type="Texture2D" uid="uid://jqvv6s55mlsk" path="res://assets/graphics/gui/BG.png" id="3_3vyn0"]
[ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="3_font"]
[ext_resource type="PackedScene" uid="uid://ejeamn0pyey4" path="res://assets/characters/Bob.glb" id="4_bob"]
[ext_resource type="PackedScene" uid="uid://d4cul3w3wem5w" path="res://assets/characters/Gatot.glb" id="4_gatot"]
@@ -25,10 +25,11 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2")
theme = ExtResource("1_pti1t")
script = ExtResource("1")
[node name="Background" type="ColorRect" parent="." unique_id=1526402211]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -38,14 +39,13 @@ grow_vertical = 2
color = Color(0.0627451, 0.0745098, 0.101961, 1)
[node name="Background2" type="TextureRect" parent="." unique_id=1984021675]
modulate = Color(1, 1, 1, 0.28235295)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_0vpw4")
texture = ExtResource("3_3vyn0")
expand_mode = 2
[node name="MainMargin" type="MarginContainer" parent="." unique_id=949618423]
@@ -144,7 +144,6 @@ text = "✦"
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.5686275, 0.36862746, 0.12941177, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 18
text = "0"
@@ -172,7 +171,6 @@ text = "▤"
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.5686275, 0.36862746, 0.12941177, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 18
text = "0"
@@ -195,7 +193,6 @@ theme_override_constants/separation = 4
[node name="AccountType" type="Label" parent="MainMargin/MainHBox/LeftCol/StatsPanel/Margin/VBox" unique_id=1583438808]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.7, 0.5, 0.3, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 13
text = "Account : Email"
@@ -210,7 +207,6 @@ text = "Link Email"
[node name="GamesPlayed" type="Label" parent="MainMargin/MainHBox/LeftCol/StatsPanel/Margin/VBox" unique_id=279949601]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.8, 0.65, 0.45, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 13
text = "Games Played: 8"
@@ -218,7 +214,6 @@ text = "Games Played: 8"
[node name="WinRate" type="Label" parent="MainMargin/MainHBox/LeftCol/StatsPanel/Margin/VBox" unique_id=1698973042]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.8, 0.65, 0.45, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 13
text = "Win Rate: 62.5%"
@@ -226,7 +221,6 @@ text = "Win Rate: 62.5%"
[node name="HighScore" type="Label" parent="MainMargin/MainHBox/LeftCol/StatsPanel/Margin/VBox" unique_id=1418839301]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.8, 0.65, 0.45, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 13
text = "High Score: 14050"
@@ -343,7 +337,7 @@ unique_name_in_owner = true
own_world_3d = true
transparent_bg = true
handle_input_locally = false
size = Vector2i(627, 487)
size = Vector2i(627, 541)
render_target_update_mode = 4
[node name="WorldEnvironment" type="WorldEnvironment" parent="MainMargin/MainHBox/CenterCol/ViewportWrapper/ViewportContainer/PreviewViewport" unique_id=1660814495]
@@ -494,7 +488,6 @@ theme_override_constants/separation = 6
[node name="ItemNameLabel" type="Label" parent="MainMargin/MainHBox/RightCol/ItemInfoCard/Margin/HBox/VBox" unique_id=1127187232]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.5686275, 0.36862746, 0.12941177, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 16
text = "Cute Hat"
@@ -520,7 +513,6 @@ text = "✦"
[node name="ItemPriceLabel" type="Label" parent="MainMargin/MainHBox/RightCol/ItemInfoCard/Margin/HBox/VBox/RarityPriceRow" unique_id=1837607820]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.5686275, 0.36862746, 0.12941177, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 12
text = "1500"
@@ -649,7 +641,6 @@ text = "◀"
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 32)
layout_mode = 2
theme_override_colors/font_color = Color(0.9, 0.7, 0.3, 1)
theme_override_fonts/font = ExtResource("3_font")
theme_override_font_sizes/font_size = 18
text = "1"
@@ -709,10 +700,10 @@ anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 4.0
offset_top = 4.0
offset_right = 316.0
offset_bottom = 216.0
offset_left = -156.0
offset_top = -106.0
offset_right = 156.0
offset_bottom = 106.0
grow_horizontal = 2
grow_vertical = 2
columns = 3
+114 -121
View File
@@ -1,6 +1,26 @@
[gd_scene format=3 uid="uid://dqsocial001"]
[ext_resource type="Theme" uid="uid://cxab3xxy00" path="res://assets/themes/GUI_Tekton.tres" id="1_mo5tx"]
[ext_resource type="Script" uid="uid://dyr5tlvds11ib" path="res://scripts/ui/social_panel.gd" id="1_social"]
[ext_resource type="Texture2D" uid="uid://jqvv6s55mlsk" path="res://assets/graphics/gui/BG.png" id="3_36pib"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rvn4p"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_5360p"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tab_active"]
bg_color = Color(0, 0, 0, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tab_inactive"]
bg_color = Color(0, 0, 0, 0.48)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[node name="SocialPanel" type="Control" unique_id=1931784939]
layout_mode = 3
@@ -9,225 +29,196 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme = ExtResource("1_mo5tx")
script = ExtResource("1_social")
[node name="BgOverlay" type="ColorRect" parent="." unique_id=680051647]
[node name="BgOverlay" type="TextureRect" parent="." unique_id=2114349387]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.6)
mouse_filter = 2
texture = ExtResource("3_36pib")
expand_mode = 1
[node name="Panel" type="PanelContainer" parent="." unique_id=49835309]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -250.0
offset_top = -310.0
offset_right = 250.0
offset_bottom = 310.0
grow_horizontal = 2
anchor_left = 0.42
anchor_top = 0.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 0.0
offset_top = 80.0
offset_right = -10.0
offset_bottom = -10.0
grow_horizontal = 0
grow_vertical = 2
mouse_filter = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_5360p")
[node name="VBox" type="VBoxContainer" parent="Panel" unique_id=1778361359]
[node name="Margin" type="MarginContainer" parent="Panel"]
layout_mode = 2
mouse_filter = 2
theme_override_constants/margin_left = 30
theme_override_constants/margin_top = 30
theme_override_constants/margin_right = 30
theme_override_constants/margin_bottom = 30
[node name="VBox" type="VBoxContainer" parent="Panel/Margin" unique_id=1778361359]
layout_mode = 2
mouse_filter = 2
[node name="Header" type="HBoxContainer" parent="Panel/Margin/VBox" unique_id=760715334]
layout_mode = 2
[node name="Header" type="HBoxContainer" parent="Panel/VBox" unique_id=760715334]
layout_mode = 2
[node name="TitleLabel" type="Label" parent="Panel/VBox/Header" unique_id=207941011]
[node name="TitleLabel" type="Label" parent="Panel/Margin/VBox/Header" unique_id=207941011]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "Social"
text = ""
[node name="CloseBtn" type="Button" parent="Panel/VBox/Header" unique_id=1052436789]
[node name="CloseBtn" type="Button" parent="Panel/Margin/VBox/Header" unique_id=1052436789]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "X"
[node name="HSep0" type="HSeparator" parent="Panel/VBox" unique_id=2043117827]
[node name="HSep0" type="HSeparator" parent="Panel/Margin/VBox" unique_id=2043117827]
layout_mode = 2
theme_override_styles/separator = SubResource("StyleBoxEmpty_rvn4p")
[node name="TabBar" type="HBoxContainer" parent="Panel/VBox" unique_id=687086642]
[node name="TabBar" type="HBoxContainer" parent="Panel/Margin/VBox" unique_id=687086642]
layout_mode = 2
theme_override_constants/separation = 12
[node name="SearchTabBtn" type="Button" parent="Panel/VBox/TabBar" unique_id=827932127]
[node name="SearchTabBtn" type="Button" parent="Panel/Margin/VBox/TabBar" unique_id=827932127]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "Search"
theme_override_styles/normal = SubResource("StyleBoxFlat_tab_inactive")
theme_override_styles/hover = SubResource("StyleBoxFlat_tab_inactive")
theme_override_styles/pressed = SubResource("StyleBoxFlat_tab_active")
text = "FIND FRIEND"
[node name="RequestsTabBtn" type="Button" parent="Panel/VBox/TabBar" unique_id=243883852]
[node name="FriendsTabBtn" type="Button" parent="Panel/Margin/VBox/TabBar" unique_id=1723617099]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "Requests"
theme_override_styles/normal = SubResource("StyleBoxFlat_tab_active")
theme_override_styles/hover = SubResource("StyleBoxFlat_tab_inactive")
theme_override_styles/pressed = SubResource("StyleBoxFlat_tab_active")
text = "FRIENDS"
[node name="FriendsTabBtn" type="Button" parent="Panel/VBox/TabBar" unique_id=1723617099]
unique_name_in_owner = true
[node name="HSep1" type="HSeparator" parent="Panel/Margin/VBox" unique_id=549111536]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "Friends"
theme_override_styles/separator = SubResource("StyleBoxEmpty_5360p")
[node name="DMTabBtn" type="Button" parent="Panel/VBox/TabBar" unique_id=439566194]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "DM"
[node name="HSep1" type="HSeparator" parent="Panel/VBox" unique_id=549111536]
layout_mode = 2
[node name="SearchView" type="VBoxContainer" parent="Panel/VBox" unique_id=1208859643]
[node name="SearchView" type="VBoxContainer" parent="Panel/Margin/VBox" unique_id=1208859643]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
[node name="SearchRow" type="HBoxContainer" parent="Panel/VBox/SearchView" unique_id=773262308]
[node name="SearchRow" type="HBoxContainer" parent="Panel/Margin/VBox/SearchView" unique_id=773262308]
layout_mode = 2
[node name="SearchInput" type="LineEdit" parent="Panel/VBox/SearchView/SearchRow" unique_id=1000924330]
[node name="SearchInput" type="LineEdit" parent="Panel/Margin/VBox/SearchView/SearchRow" unique_id=1000924330]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Search by username..."
[node name="SearchBtn" type="Button" parent="Panel/VBox/SearchView/SearchRow" unique_id=93688269]
[node name="SearchBtn" type="Button" parent="Panel/Margin/VBox/SearchView/SearchRow" unique_id=93688269]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "Search"
[node name="NoSearchResultsLabel" type="Label" parent="Panel/VBox/SearchView" unique_id=788091908]
[node name="NoSearchResultsLabel" type="Label" parent="Panel/Margin/VBox/SearchView" unique_id=788091908]
unique_name_in_owner = true
visible = false
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "No users found."
[node name="SearchScroll" type="ScrollContainer" parent="Panel/VBox/SearchView" unique_id=209134848]
[node name="SearchScroll" type="ScrollContainer" parent="Panel/Margin/VBox/SearchView" unique_id=209134848]
layout_mode = 2
size_flags_vertical = 3
[node name="SearchResultsList" type="VBoxContainer" parent="Panel/VBox/SearchView/SearchScroll" unique_id=339880904]
[node name="SearchResultsList" type="GridContainer" parent="Panel/Margin/VBox/SearchView/SearchScroll" unique_id=339880904]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/h_separation = 16
theme_override_constants/v_separation = 16
columns = 2
[node name="SearchResultTemplate" type="HBoxContainer" parent="Panel/VBox/SearchView" unique_id=1331976559]
unique_name_in_owner = true
visible = false
layout_mode = 2
[node name="SRNameLabel" type="Label" parent="Panel/VBox/SearchView/SearchResultTemplate" unique_id=1704878305]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
[node name="SRAddBtn" type="Button" parent="Panel/VBox/SearchView/SearchResultTemplate" unique_id=1934694377]
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "Add Friend"
[node name="RequestsView" type="VBoxContainer" parent="Panel/VBox" unique_id=1296365230]
[node name="FriendsView" type="VBoxContainer" parent="Panel/Margin/VBox" unique_id=696809922]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_vertical = 3
[node name="NoRequestsLabel" type="Label" parent="Panel/VBox/RequestsView" unique_id=1128340712]
unique_name_in_owner = true
visible = false
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "No incoming friend requests."
[node name="RequestsScroll" type="ScrollContainer" parent="Panel/VBox/RequestsView" unique_id=964968029]
layout_mode = 2
size_flags_vertical = 3
[node name="RequestsList" type="VBoxContainer" parent="Panel/VBox/RequestsView/RequestsScroll" unique_id=1332648515]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="RequestRowTemplate" type="HBoxContainer" parent="Panel/VBox/RequestsView" unique_id=619262910]
unique_name_in_owner = true
visible = false
layout_mode = 2
[node name="RRNameLabel" type="Label" parent="Panel/VBox/RequestsView/RequestRowTemplate" unique_id=1650836202]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
[node name="RRAcceptBtn" type="Button" parent="Panel/VBox/RequestsView/RequestRowTemplate" unique_id=1452984145]
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "Accept"
[node name="RRDeclineBtn" type="Button" parent="Panel/VBox/RequestsView/RequestRowTemplate" unique_id=942241768]
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "Decline"
[node name="FriendsView" type="VBoxContainer" parent="Panel/VBox" unique_id=696809922]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_vertical = 3
[node name="NoFriendsLabel" type="Label" parent="Panel/VBox/FriendsView" unique_id=1420717854]
[node name="NoFriendsLabel" type="Label" parent="Panel/Margin/VBox/FriendsView" unique_id=1420717854]
unique_name_in_owner = true
visible = false
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "No friends yet!"
[node name="FriendScroll" type="ScrollContainer" parent="Panel/VBox/FriendsView" unique_id=1428917844]
[node name="FriendScroll" type="ScrollContainer" parent="Panel/Margin/VBox/FriendsView" unique_id=1428917844]
layout_mode = 2
size_flags_vertical = 3
[node name="FriendList" type="VBoxContainer" parent="Panel/VBox/FriendsView/FriendScroll" unique_id=1152435338]
[node name="FriendList" type="GridContainer" parent="Panel/Margin/VBox/FriendsView/FriendScroll" unique_id=1152435338]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/h_separation = 16
theme_override_constants/v_separation = 16
columns = 2
[node name="DMView" type="VBoxContainer" parent="Panel/VBox" unique_id=828807744]
[node name="DMView" type="PanelContainer" parent="." unique_id=828807744]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_vertical = 3
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_tab_inactive")
[node name="DMHeader" type="HBoxContainer" parent="Panel/VBox/DMView" unique_id=1689887837]
[node name="VBox" type="VBoxContainer" parent="DMView"]
layout_mode = 2
[node name="DMBackBtn" type="Button" parent="Panel/VBox/DMView/DMHeader" unique_id=1721956547]
[node name="DMHeader" type="HBoxContainer" parent="DMView/VBox" unique_id=1689887837]
layout_mode = 2
[node name="DMBackBtn" type="Button" parent="DMView/VBox/DMHeader" unique_id=1721956547]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "<- Back"
[node name="DMUsernameLabel" type="Label" parent="Panel/VBox/DMView/DMHeader" unique_id=632301252]
[node name="DMUsernameLabel" type="Label" parent="DMView/VBox/DMHeader" unique_id=632301252]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
[node name="DMLog" type="RichTextLabel" parent="Panel/VBox/DMView" unique_id=1090451527]
[node name="DMLog" type="RichTextLabel" parent="DMView/VBox" unique_id=1090451527]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
@@ -235,17 +226,19 @@ theme_override_colors/default_color = Color(0.3, 0.18, 0.1, 1)
bbcode_enabled = true
scroll_following = true
[node name="DMInputRow" type="HBoxContainer" parent="Panel/VBox/DMView" unique_id=433115787]
[node name="DMInputRow" type="HBoxContainer" parent="DMView/VBox" unique_id=433115787]
layout_mode = 2
[node name="DMInput" type="LineEdit" parent="Panel/VBox/DMView/DMInputRow" unique_id=533043662]
[node name="DMInput" type="LineEdit" parent="DMView/VBox/DMInputRow" unique_id=533043662]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Type a message..."
[node name="DMSendBtn" type="Button" parent="Panel/VBox/DMView/DMInputRow" unique_id=695010640]
[node name="DMSendBtn" type="Button" parent="DMView/VBox/DMInputRow" unique_id=695010640]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.3, 0.18, 0.1, 1)
text = "Send"