diff --git a/_Core/EventNames.gd b/_Core/EventNames.gd index c37dd7a..cb7fd70 100644 --- a/_Core/EventNames.gd +++ b/_Core/EventNames.gd @@ -57,15 +57,4 @@ const GRID_SNAP_REQUESTED = "grid_snap_requested" # ============================================================================ # 测试事件 # ============================================================================ -const TEST_EVENT = "test_event" - -# ============================================================================ -# 聊天事件 -# ============================================================================ -const CHAT_MESSAGE_SENT = "chat_message_sent" -const CHAT_MESSAGE_RECEIVED = "chat_message_received" -const CHAT_ERROR_OCCURRED = "chat_error_occurred" -const CHAT_CONNECTION_STATE_CHANGED = "chat_connection_state_changed" -const CHAT_POSITION_UPDATED = "chat_position_updated" -const CHAT_LOGIN_SUCCESS = "chat_login_success" -const CHAT_LOGIN_FAILED = "chat_login_failed" \ No newline at end of file +const TEST_EVENT = "test_event" \ No newline at end of file diff --git a/_Core/managers/AuthManager.gd b/_Core/managers/AuthManager.gd index 3de2b35..3077463 100644 --- a/_Core/managers/AuthManager.gd +++ b/_Core/managers/AuthManager.gd @@ -102,9 +102,10 @@ var _game_token: String = "" # @deprecated 使用 _access_token 替代 # 初始化管理器 func _init() -> void: _load_auth_data() + print("AuthManager 初始化完成") # 清理资源 -func cleanup() -> void: +func cleanup(): # 取消所有活动的网络请求 for request_id in active_request_ids: NetworkManager.cancel_request(request_id) @@ -265,6 +266,7 @@ func get_refresh_token() -> String: func get_user_info() -> Dictionary: return _user_info + # ============ 登录相关方法 ============ # 执行密码登录 @@ -593,21 +595,19 @@ func validate_verification_code(code: String) -> Dictionary: # ============ 网络响应处理 ============ # 处理登录响应 -func _on_login_response(success: bool, data: Dictionary, error_info: Dictionary) -> void: +func _on_login_response(success: bool, data: Dictionary, error_info: Dictionary): _reset_login_state() - + var result = ResponseHandler.handle_login_response(success, data, error_info) - + if result.should_show_toast: show_toast_message.emit(result.message, result.success) - + if result.success: - # 保存 Token 到内存和本地 - _save_tokens_to_memory(data) - _save_tokens_to_local(data) - - var username: String = _user_info.get("username", "") - + var username = "" + if data.has("data") and data.data.has("user") and data.data.user.has("username"): + username = data.data.user.username + # 延迟发送登录成功信号 await Engine.get_main_loop().create_timer(1.0).timeout login_success.emit(username) @@ -615,21 +615,19 @@ func _on_login_response(success: bool, data: Dictionary, error_info: Dictionary) login_failed.emit(result.message) # 处理验证码登录响应 -func _on_verification_login_response(success: bool, data: Dictionary, error_info: Dictionary) -> void: +func _on_verification_login_response(success: bool, data: Dictionary, error_info: Dictionary): _reset_login_state() - + var result = ResponseHandler.handle_verification_code_login_response(success, data, error_info) - + if result.should_show_toast: show_toast_message.emit(result.message, result.success) - + if result.success: - # 保存 Token 到内存和本地 - _save_tokens_to_memory(data) - _save_tokens_to_local(data) - - var username: String = _user_info.get("username", "") - + var username = "" + if data.has("data") and data.data.has("user") and data.data.user.has("username"): + username = data.data.user.username + await Engine.get_main_loop().create_timer(1.0).timeout login_success.emit(username) else: diff --git a/_Core/managers/ChatManager.gd.uid b/_Core/managers/ChatManager.gd.uid deleted file mode 100644 index 4f86a00..0000000 --- a/_Core/managers/ChatManager.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://b6lnbss2i3pss diff --git a/_Core/managers/WebSocketManager.gd.uid b/_Core/managers/WebSocketManager.gd.uid deleted file mode 100644 index 23aa214..0000000 --- a/_Core/managers/WebSocketManager.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dmbgtbf6gyk6t diff --git a/assets/audio/music/Spawn Fixed.mp3 b/assets/audio/music/Spawn Fixed.mp3 deleted file mode 100644 index 0a7b794..0000000 Binary files a/assets/audio/music/Spawn Fixed.mp3 and /dev/null differ diff --git a/assets/audio/music/Spawn Fixed.mp3.import b/assets/audio/music/Spawn Fixed.mp3.import deleted file mode 100644 index 8d15f7f..0000000 --- a/assets/audio/music/Spawn Fixed.mp3.import +++ /dev/null @@ -1,19 +0,0 @@ -[remap] - -importer="mp3" -type="AudioStreamMP3" -uid="uid://c5ujr1fj14n58" -path="res://.godot/imported/Spawn Fixed.mp3-cdebcc11ab16736c9b4a0906adccb431.mp3str" - -[deps] - -source_file="res://assets/audio/music/Spawn Fixed.mp3" -dest_files=["res://.godot/imported/Spawn Fixed.mp3-cdebcc11ab16736c9b4a0906adccb431.mp3str"] - -[params] - -loop=false -loop_offset=0 -bpm=0 -beat_count=0 -bar_beats=4 diff --git a/assets/ui/auth/Image (1).png b/assets/ui/auth/Image (1).png deleted file mode 100644 index dff1603..0000000 Binary files a/assets/ui/auth/Image (1).png and /dev/null differ diff --git a/assets/ui/auth/Image (1).png.import b/assets/ui/auth/Image (1).png.import deleted file mode 100644 index 060d6fd..0000000 --- a/assets/ui/auth/Image (1).png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c8on1etsscvcg" -path="res://.godot/imported/Image (1).png-aa55b4ad122083e1e56d7de11ec05750.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/auth/Image (1).png" -dest_files=["res://.godot/imported/Image (1).png-aa55b4ad122083e1e56d7de11ec05750.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/auth/Image (2).png b/assets/ui/auth/Image (2).png deleted file mode 100644 index cb99e6a..0000000 Binary files a/assets/ui/auth/Image (2).png and /dev/null differ diff --git a/assets/ui/auth/Image (2).png.import b/assets/ui/auth/Image (2).png.import deleted file mode 100644 index b885927..0000000 --- a/assets/ui/auth/Image (2).png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dh07ed5tsiyhp" -path="res://.godot/imported/Image (2).png-d93edf5c7f9059af2b89d1fb72733335.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/auth/Image (2).png" -dest_files=["res://.godot/imported/Image (2).png-d93edf5c7f9059af2b89d1fb72733335.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/auth/Image (3).png b/assets/ui/auth/Image (3).png deleted file mode 100644 index eefdb03..0000000 Binary files a/assets/ui/auth/Image (3).png and /dev/null differ diff --git a/assets/ui/auth/Image (3).png.import b/assets/ui/auth/Image (3).png.import deleted file mode 100644 index 9fc4968..0000000 --- a/assets/ui/auth/Image (3).png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://kvgofnnxp31q" -path="res://.godot/imported/Image (3).png-0fd2a2989e780fcbaf4376bb6e288f40.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/auth/Image (3).png" -dest_files=["res://.godot/imported/Image (3).png-0fd2a2989e780fcbaf4376bb6e288f40.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/auth/微信图片_20251218232924_983_1425.png b/assets/ui/auth/微信图片_20251218232924_983_1425.png deleted file mode 100644 index df9090b..0000000 Binary files a/assets/ui/auth/微信图片_20251218232924_983_1425.png and /dev/null differ diff --git a/assets/ui/auth/微信图片_20251218232924_983_1425.png.import b/assets/ui/auth/微信图片_20251218232924_983_1425.png.import deleted file mode 100644 index 5b70a86..0000000 --- a/assets/ui/auth/微信图片_20251218232924_983_1425.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://0pt270gaevbk" -path="res://.godot/imported/微信图片_20251218232924_983_1425.png-0163d5f3fcf9765f1d8d0ec22851e7b0.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/auth/微信图片_20251218232924_983_1425.png" -dest_files=["res://.godot/imported/微信图片_20251218232924_983_1425.png-0163d5f3fcf9765f1d8d0ec22851e7b0.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/auth/清空内部组件的登录框架 (1).png b/assets/ui/auth/清空内部组件的登录框架 (1).png deleted file mode 100644 index 193bb52..0000000 Binary files a/assets/ui/auth/清空内部组件的登录框架 (1).png and /dev/null differ diff --git a/assets/ui/auth/清空内部组件的登录框架 (1).png.import b/assets/ui/auth/清空内部组件的登录框架 (1).png.import deleted file mode 100644 index f7f4339..0000000 --- a/assets/ui/auth/清空内部组件的登录框架 (1).png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://b6wlro1vixo8a" -path="res://.godot/imported/清空内部组件的登录框架 (1).png-4be35396d0272fde2f195d02324c3439.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/auth/清空内部组件的登录框架 (1).png" -dest_files=["res://.godot/imported/清空内部组件的登录框架 (1).png-4be35396d0272fde2f195d02324c3439.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/auth/登录背景.png b/assets/ui/auth/登录背景.png deleted file mode 100644 index d52c92c..0000000 Binary files a/assets/ui/auth/登录背景.png and /dev/null differ diff --git a/assets/ui/auth/登录背景.png.import b/assets/ui/auth/登录背景.png.import deleted file mode 100644 index 62181d5..0000000 --- a/assets/ui/auth/登录背景.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dyma4hpodhdxi" -path="res://.godot/imported/登录背景.png-89ec90e6b5b2b96eba5cf8e1b1d50ed8.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/auth/登录背景.png" -dest_files=["res://.godot/imported/登录背景.png-89ec90e6b5b2b96eba5cf8e1b1d50ed8.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/auth/输入框.png b/assets/ui/auth/输入框.png deleted file mode 100644 index ab19f97..0000000 Binary files a/assets/ui/auth/输入框.png and /dev/null differ diff --git a/assets/ui/auth/输入框.png.import b/assets/ui/auth/输入框.png.import deleted file mode 100644 index 1d6595e..0000000 --- a/assets/ui/auth/输入框.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cnrffaqbtw8f5" -path="res://.godot/imported/输入框.png-74076fbd98c6a5dee8485c2e25f4d583.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/auth/输入框.png" -dest_files=["res://.godot/imported/输入框.png-74076fbd98c6a5dee8485c2e25f4d583.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/chat/缩略框背景.png b/assets/ui/chat/缩略框背景.png deleted file mode 100644 index e6b2d15..0000000 Binary files a/assets/ui/chat/缩略框背景.png and /dev/null differ diff --git a/assets/ui/chat/缩略框背景.png.import b/assets/ui/chat/缩略框背景.png.import deleted file mode 100644 index c286f73..0000000 --- a/assets/ui/chat/缩略框背景.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cchjgp6qh7u61" -path="res://.godot/imported/缩略框背景.png-1ffcbaafc0bc1c1b17eae2ad5370d0bc.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/chat/缩略框背景.png" -dest_files=["res://.godot/imported/缩略框背景.png-1ffcbaafc0bc1c1b17eae2ad5370d0bc.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/chat/装饰.png b/assets/ui/chat/装饰.png deleted file mode 100644 index 89d4e60..0000000 Binary files a/assets/ui/chat/装饰.png and /dev/null differ diff --git a/assets/ui/chat/装饰.png.import b/assets/ui/chat/装饰.png.import deleted file mode 100644 index 3eb6dc5..0000000 --- a/assets/ui/chat/装饰.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://ct0cl4h2i6ydn" -path="res://.godot/imported/装饰.png-ee12c19262540c6b6c0fc47732c88ff9.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/chat/装饰.png" -dest_files=["res://.godot/imported/装饰.png-ee12c19262540c6b6c0fc47732c88ff9.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/chat/装饰2.png b/assets/ui/chat/装饰2.png deleted file mode 100644 index 5029d6b..0000000 Binary files a/assets/ui/chat/装饰2.png and /dev/null differ diff --git a/assets/ui/chat/装饰2.png.import b/assets/ui/chat/装饰2.png.import deleted file mode 100644 index 46a6724..0000000 --- a/assets/ui/chat/装饰2.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://q0ijn5y0tbw3" -path="res://.godot/imported/装饰2.png-d3c5ac2817d592f843ba8179eb83dd5b.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/chat/装饰2.png" -dest_files=["res://.godot/imported/装饰2.png-d3c5ac2817d592f843ba8179eb83dd5b.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/assets/ui/chat/输入框背景.png b/assets/ui/chat/输入框背景.png deleted file mode 100644 index c1fcd80..0000000 Binary files a/assets/ui/chat/输入框背景.png and /dev/null differ diff --git a/assets/ui/chat/输入框背景.png.import b/assets/ui/chat/输入框背景.png.import deleted file mode 100644 index 8658adc..0000000 --- a/assets/ui/chat/输入框背景.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://clmgyxpeh5742" -path="res://.godot/imported/输入框背景.png-0abeb0259c1b08c235f188bb6bf412c1.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://assets/ui/chat/输入框背景.png" -dest_files=["res://.godot/imported/输入框背景.png-0abeb0259c1b08c235f188bb6bf412c1.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/uastc_level=0 -compress/rdo_quality_loss=0.0 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/channel_remap/red=0 -process/channel_remap/green=1 -process/channel_remap/blue=2 -process/channel_remap/alpha=3 -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/claude.md b/claude.md index eb41871..a5bc259 100644 --- a/claude.md +++ b/claude.md @@ -158,17 +158,4 @@ func _physics_process(delta: float) -> void: func _move(_delta: float) -> void: var dir := Input.get_vector("move_left", "move_right", "move_up", "move_down") velocity = dir * move_speed - move_and_slide() -``` -## 10. 🔄 Plan Mode Protocol (MANDATORY) -- **Planning Phase**: - - Whenever using **Plan Mode** to outline a task, a TODO list MUST be outputted to `docs/ai_docs/plan/[feature_name].md`. -- **Execution & Reporting**: - - Every time a TODO item is completed, the corresponding `.md` document MUST be updated. - - After updating the document, report to the user with the following: - 1. **Completed Items**: What was just finished. - 2. **User Acceptance Rules**: Instructions on how the user can test/verify the current progress. - 3. **Next Step**: The next TODO item to be tackled. -- **Strict Confirmation**: - - After reporting progress, **Claude MUST stop and wait**. - - Do NOT proceed to the next TODO until the user has replied with confirmation/approval. \ No newline at end of file + move_and_slide() \ No newline at end of file diff --git a/project.godot b/project.godot index 19e3658..b6be5f2 100644 --- a/project.godot +++ b/project.godot @@ -22,8 +22,11 @@ SceneManager="*res://_Core/managers/SceneManager.gd" EventSystem="*res://_Core/systems/EventSystem.gd" NetworkManager="*res://_Core/managers/NetworkManager.gd" ResponseHandler="*res://_Core/managers/ResponseHandler.gd" +<<<<<<< HEAD ChatManager="*res://_Core/managers/ChatManager.gd" LocationManager="*res://_Core/managers/LocationManager.gd" +======= +>>>>>>> main [debug] @@ -31,8 +34,13 @@ gdscript/warnings/treat_warnings_as_errors=false [display] +<<<<<<< HEAD window/size/viewport_width=1920 window/size/viewport_height=1440 +======= +window/size/viewport_width=1376 +window/size/viewport_height=768 +>>>>>>> main window/size/mode=2 window/stretch/mode="viewport" window/stretch/aspect="expand" diff --git a/scenes/MainScene.gd b/scenes/MainScene.gd index 8ac2b14..3237a6e 100644 --- a/scenes/MainScene.gd +++ b/scenes/MainScene.gd @@ -14,7 +14,6 @@ extends Control # 场景节点引用 @onready var auth_scene: Control = $AuthScene @onready var main_game_ui: Control = $MainGameUI -@onready var chat_ui: Control = %ChatUI @onready var user_label: Label = $MainGameUI/TopBar/HBoxContainer/UserLabel @onready var logout_button: Button = $MainGameUI/TopBar/HBoxContainer/LogoutButton @@ -156,4 +155,4 @@ func _input(event): get_tree().quit() GameState.MAIN_GAME: # 在游戏中按ESC可能显示菜单或返回登录 - show_auth_scene() + show_auth_scene() \ No newline at end of file diff --git a/scenes/MainScene.tscn b/scenes/MainScene.tscn index fd3ddd6..4162235 100644 --- a/scenes/MainScene.tscn +++ b/scenes/MainScene.tscn @@ -1,16 +1,13 @@ -[gd_scene load_steps=4 format=3 uid="uid://cjabtnqbdd2ey"] +[gd_scene load_steps=3 format=3 uid="uid://cjabtnqbdd2ey"] -[ext_resource type="Script" uid="uid://ghehm4srs0ho" path="res://scenes/MainScene.gd" id="1_script"] +[ext_resource type="Script" path="res://scenes/MainScene.gd" id="1_script"] [ext_resource type="PackedScene" uid="uid://by7m8snb4xllf" path="res://scenes/ui/AuthScene.tscn" id="2_main"] -[ext_resource type="PackedScene" uid="uid://bv7k2nan4xj8q" path="res://scenes/ui/ChatUI.tscn" id="3_chat_ui"] [node name="Main" type="Control"] layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 script = ExtResource("1_script") [node name="AuthScene" parent="." instance=ExtResource("2_main")] @@ -22,15 +19,12 @@ layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 [node name="TopBar" type="Panel" parent="MainGameUI"] layout_mode = 1 anchors_preset = 10 anchor_right = 1.0 offset_bottom = 60.0 -grow_horizontal = 2 [node name="HBoxContainer" type="HBoxContainer" parent="MainGameUI/TopBar"] layout_mode = 1 @@ -41,8 +35,6 @@ offset_left = 20.0 offset_top = 10.0 offset_right = -20.0 offset_bottom = -10.0 -grow_horizontal = 2 -grow_vertical = 2 [node name="UserLabel" type="Label" parent="MainGameUI/TopBar/HBoxContainer"] layout_mode = 2 @@ -60,23 +52,19 @@ anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = 60.0 -grow_horizontal = 2 -grow_vertical = 2 [node name="CenterContainer" type="CenterContainer" parent="MainGameUI/MainContent"] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 [node name="VBoxContainer" type="VBoxContainer" parent="MainGameUI/MainContent/CenterContainer"] layout_mode = 2 [node name="StatusPanel" type="Panel" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer"] -custom_minimum_size = Vector2(400, 150) layout_mode = 2 +custom_minimum_size = Vector2(400, 150) [node name="StatusContainer" type="MarginContainer" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel"] layout_mode = 1 @@ -87,8 +75,6 @@ offset_left = 20.0 offset_top = 20.0 offset_right = -20.0 offset_bottom = -20.0 -grow_horizontal = 2 -grow_vertical = 2 [node name="StatusGrid" type="GridContainer" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/StatusPanel/StatusContainer"] layout_mode = 2 @@ -115,24 +101,21 @@ layout_mode = 2 columns = 2 [node name="ExploreButton" type="Button" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid"] -custom_minimum_size = Vector2(150, 50) layout_mode = 2 +custom_minimum_size = Vector2(150, 50) text = "🗺️ 探索小镇" [node name="InventoryButton" type="Button" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid"] -custom_minimum_size = Vector2(150, 50) layout_mode = 2 +custom_minimum_size = Vector2(150, 50) text = "🎒 背包" [node name="ShopButton" type="Button" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid"] -custom_minimum_size = Vector2(150, 50) layout_mode = 2 +custom_minimum_size = Vector2(150, 50) text = "🏪 商店" [node name="FriendsButton" type="Button" parent="MainGameUI/MainContent/CenterContainer/VBoxContainer/GameMenuGrid"] -custom_minimum_size = Vector2(150, 50) layout_mode = 2 -text = "👥 好友" - -[node name="ChatUI" parent="MainGameUI" instance=ExtResource("3_chat_ui")] -layout_mode = 1 +custom_minimum_size = Vector2(150, 50) +text = "👥 好友" \ No newline at end of file diff --git a/scenes/prefabs/GrassTile.gd.uid b/scenes/prefabs/GrassTile.gd.uid deleted file mode 100644 index 0931488..0000000 --- a/scenes/prefabs/GrassTile.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://b7bgtip4yxeg8 diff --git a/scenes/prefabs/ui/ChatMessage.gd.uid b/scenes/prefabs/ui/ChatMessage.gd.uid deleted file mode 100644 index e5354f5..0000000 --- a/scenes/prefabs/ui/ChatMessage.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://djqrgj3h0lif7 diff --git a/scenes/ui/AuthScene.tscn b/scenes/ui/AuthScene.tscn index 8e81345..3cf8c76 100644 --- a/scenes/ui/AuthScene.tscn +++ b/scenes/ui/AuthScene.tscn @@ -1,14 +1,10 @@ -[gd_scene load_steps=13 format=3 uid="uid://by7m8snb4xllf"] +[gd_scene load_steps=10 format=3 uid="uid://by7m8snb4xllf"] [ext_resource type="Texture2D" uid="uid://bx17oy8lvaca4" path="res://assets/ui/auth/bg_auth_scene.png" id="1_background"] -[ext_resource type="Script" uid="uid://b514h2wuido0h" path="res://scenes/ui/AuthScene.gd" id="3_script"] -[ext_resource type="Texture2D" uid="uid://dyma4hpodhdxi" path="res://assets/ui/auth/登录背景.png" id="3_wh4n4"] -[ext_resource type="Texture2D" uid="uid://cnrffaqbtw8f5" path="res://assets/ui/auth/输入框.png" id="4_lnw07"] +[ext_resource type="Texture2D" uid="uid://de4q4s1gxivtf" path="res://assets/ui/auth/login_frame_smart_transparent.png" id="2_frame"] +[ext_resource type="Script" path="res://scenes/ui/AuthScene.gd" id="3_script"] -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_26vyf"] - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_cjyup"] -texture = ExtResource("4_lnw07") +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hover"] bg_color = Color(0.3, 0.6, 0.9, 1) @@ -63,8 +59,6 @@ Button/styles/hover = SubResource("StyleBoxFlat_hover") Button/styles/normal = SubResource("StyleBoxFlat_normal") Button/styles/pressed = SubResource("StyleBoxFlat_pressed") -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1"] - [node name="AuthScene" type="Control"] layout_mode = 3 anchors_preset = 15 @@ -87,14 +81,22 @@ texture = ExtResource("1_background") expand_mode = 1 stretch_mode = 6 -[node name="ColorRect" type="ColorRect" parent="."] -modulate = Color(0.84313726, 0.92941177, 0.98039216, 0.47058824) +[node name="WhaleFrame" type="TextureRect" parent="."] layout_mode = 1 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -300.0 +offset_top = -300.0 +offset_right = 300.0 +offset_bottom = 300.0 grow_horizontal = 2 grow_vertical = 2 +texture = ExtResource("2_frame") +expand_mode = 1 +stretch_mode = 5 [node name="CenterContainer" type="CenterContainer" parent="."] layout_mode = 1 @@ -110,45 +112,35 @@ offset_bottom = 236.0 grow_horizontal = 2 grow_vertical = 2 -[node name="WhaleFrame" type="TextureRect" parent="CenterContainer"] -custom_minimum_size = Vector2(500, 0) -layout_mode = 2 -texture = ExtResource("3_wh4n4") -expand_mode = 4 -stretch_mode = 5 - [node name="LoginPanel" type="Panel" parent="CenterContainer"] -custom_minimum_size = Vector2(300, 0) +custom_minimum_size = Vector2(350, 400) layout_mode = 2 -theme_override_styles/panel = SubResource("StyleBoxEmpty_26vyf") +theme_override_styles/panel = SubResource("StyleBoxEmpty_1") [node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/LoginPanel"] layout_mode = 1 -anchors_preset = 8 -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -140.0 -offset_top = -185.5 -offset_right = 140.0 -offset_bottom = 185.5 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 30.0 +offset_top = 30.0 +offset_right = -30.0 +offset_bottom = -30.0 grow_horizontal = 2 grow_vertical = 2 [node name="TitleLabel" type="Label" parent="CenterContainer/LoginPanel/VBoxContainer"] layout_mode = 2 theme_override_colors/font_color = Color(0, 0, 0, 1) -theme_override_colors/font_shadow_color = Color(0.011764706, 0.12156863, 0.101960786, 0) -theme_override_font_sizes/font_size = 32 +theme_override_font_sizes/font_size = 24 text = "Whaletown" horizontal_alignment = 1 vertical_alignment = 1 [node name="SubtitleLabel" type="Label" parent="CenterContainer/LoginPanel/VBoxContainer"] layout_mode = 2 -theme_override_colors/font_color = Color(0.53333336, 0.53333336, 0.53333336, 1) -theme_override_font_sizes/font_size = 16 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 14 text = "开始你的小镇之旅!" horizontal_alignment = 1 vertical_alignment = 1 @@ -188,13 +180,10 @@ theme_override_font_sizes/font_size = 12 text = "用户名不能为空" horizontal_alignment = 2 -[node name="UsernameInput" type="LineEdit" parent="CenterContainer/LoginPanel/VBoxContainer/LoginForm"] -custom_minimum_size = Vector2(0, 48) +[node name="UsernameInput" type="LineEdit" parent="CenterContainer/LoginPanel/VBoxContainer/LoginForm/UsernameContainer"] layout_mode = 2 theme_override_colors/font_color = Color(0, 0, 0, 1) theme_override_colors/font_placeholder_color = Color(0.5, 0.5, 0.5, 1) -theme_override_colors/selection_color = Color(0.5, 0.5, 0.5, 1) -theme_override_styles/normal = SubResource("StyleBoxTexture_cjyup") placeholder_text = "用户名/手机/邮箱" [node name="PasswordContainer" type="VBoxContainer" parent="CenterContainer/LoginPanel/VBoxContainer/LoginForm"] @@ -563,8 +552,6 @@ theme = SubResource("Theme_button") text = "返回登录" [node name="ToastContainer" type="Control" parent="."] -modulate = Color(0.84313726, 0.92941177, 0.98039216, 1) -self_modulate = Color(0.84313726, 0.92941177, 0.9843137, 1) layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 diff --git a/scenes/ui/ChatUI.gd.uid b/scenes/ui/ChatUI.gd.uid deleted file mode 100644 index 515e26e..0000000 --- a/scenes/ui/ChatUI.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://pibdlvhb12q8 diff --git a/tests/unit/test_chat_manager.gd.uid b/tests/unit/test_chat_manager.gd.uid deleted file mode 100644 index 63d8242..0000000 --- a/tests/unit/test_chat_manager.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dgmrscyt2lsnt