feat: 2.3.1

This commit is contained in:
2026-05-12 17:55:53 +08:00
parent 13f3c3d591
commit 7ca11c6534
28 changed files with 1328 additions and 578 deletions
+27 -17
View File
@@ -30,6 +30,7 @@ extends Control
@onready var shop_btn = %CartBtn
@onready var top_right_profile_btn = %ProfileBtn
@onready var mailbox_btn = get_node_or_null("%MailboxBtn")
@onready var mail_badge = get_node_or_null("%MailBadge")
@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")
@@ -869,28 +870,37 @@ 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)
var _mailbox_panel_instance: Control
func _on_mailbox_closed() -> void:
if main_menu_panel:
main_menu_panel.show()
func _on_mailbox_pressed() -> void:
if not _mailbox_panel_instance:
var scene = load("res://scenes/ui/mailbox_panel.tscn")
if scene:
_mailbox_panel_instance = scene.instantiate()
_mailbox_panel_instance.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
var cl := CanvasLayer.new()
cl.layer = 100
cl.name = "MailboxCanvasLayer"
add_child(cl)
cl.add_child(_mailbox_panel_instance)
if _mailbox_panel_instance.has_signal("closed"):
_mailbox_panel_instance.closed.connect(func():
_mailbox_panel_instance.get_parent().queue_free()
_mailbox_panel_instance = null
)
if _mailbox_panel_instance:
_mailbox_panel_instance.show_panel()
func _on_mail_unread_count_changed(count: int) -> void:
if mailbox_btn:
if mail_badge:
if count > 0:
mailbox_btn.text = "MAIL (%d)" % count
mailbox_btn.add_theme_color_override("font_color", Color.YELLOW)
mail_badge.text = str(count) if count < 100 else "99+"
mail_badge.visible = true
else:
mailbox_btn.text = "MAIL"
mailbox_btn.remove_theme_color_override("font_color")
mail_badge.visible = false
func _on_logout_pressed() -> void:
AuthManager.logout()