forked from datawhale/whale-town-front
feat:实现登录系统和用户认证功能
- 添加登录场景(login_scene.tscn)和主菜单场景(main_menu_scene.tscn) - 实现认证管理器(AuthManager)用于用户登录和会话管理 - 添加核心服务:加密服务、存储服务、网络服务 - 配置项目主场景为登录场景 - 添加自动加载服务到项目配置 - 添加开发环境配置(VSCode、Claude) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
37
scripts/ui/UI_MainMenu.gd
Normal file
37
scripts/ui/UI_MainMenu.gd
Normal file
@@ -0,0 +1,37 @@
|
||||
extends Control
|
||||
|
||||
## 主菜单界面控制器
|
||||
## 显示用户信息并提供退出登录功能
|
||||
|
||||
@onready var welcomeLabel: Label = $centerContainer/vboxContainer/welcomeLabel
|
||||
@onready var userInfoLabel: Label = $centerContainer/vboxContainer/userInfoLabel
|
||||
@onready var logoutButton: Button = $centerContainer/vboxContainer/logoutButton
|
||||
|
||||
func _ready():
|
||||
# 连接退出登录按钮
|
||||
logoutButton.pressed.connect(_onLogoutPressed)
|
||||
|
||||
# 连接 AuthManager 信号
|
||||
AuthManager.logout_success.connect(_onLogoutSuccess)
|
||||
|
||||
# 显示用户信息
|
||||
_displayUserInfo()
|
||||
|
||||
## 显示用户信息
|
||||
func _displayUserInfo() -> void:
|
||||
var currentUser = AuthManager.getCurrentUser()
|
||||
|
||||
if currentUser != null:
|
||||
userInfoLabel.text = "用户名:%s\n等级:%d" % [currentUser.username, currentUser.level]
|
||||
else:
|
||||
userInfoLabel.text = "未登录"
|
||||
|
||||
## 退出登录按钮点击事件
|
||||
func _onLogoutPressed() -> void:
|
||||
# 调用 AuthManager 登出
|
||||
AuthManager.logout()
|
||||
|
||||
## 登出成功回调
|
||||
func _onLogoutSuccess() -> void:
|
||||
# 返回登录界面
|
||||
get_tree().change_scene_to_file("res://scenes/login_scene.tscn")
|
||||
Reference in New Issue
Block a user