feat: expand multiplayer, chat, and release support

- add network NPC synchronization and dialogue interactions
- add world bulletin publishing and display
- improve authentication, session refresh, and appearance sync
- synchronize player direction and movement animations
- improve input focus and progressive Web loading
- add macOS/Windows builds and deployment configuration
- include required fonts, shaders, and runtime assets
This commit is contained in:
2026-09-08 21:37:43 +08:00
parent 175621f66c
commit fc6c3c1bd3
87 changed files with 4546 additions and 506 deletions

View File

@@ -163,6 +163,41 @@ func set_message(from_user: String, content: String, timestamp: float, is_self:
# 应用样式
_apply_style()
# NPC 会话由外层复古对话框承载,单条内容不再绘制聊天气泡。
func set_dialogue_mode(enabled: bool) -> void:
if not enabled:
return
_cache_node_refs()
size_flags_horizontal = Control.SIZE_EXPAND_FILL
custom_minimum_size.y = 0.0
if message_row:
message_row.alignment = BoxContainer.ALIGNMENT_BEGIN
message_row.size_flags_horizontal = Control.SIZE_EXPAND_FILL
message_row.add_theme_constant_override("separation", 0)
if left_avatar_panel:
left_avatar_panel.visible = false
if right_avatar_panel:
right_avatar_panel.visible = false
if bubble_panel:
bubble_panel.size_flags_horizontal = Control.SIZE_EXPAND_FILL
bubble_panel.custom_minimum_size.x = 0.0
bubble_panel.add_theme_stylebox_override("panel", StyleBoxEmpty.new())
if text_container:
text_container.size_flags_horizontal = Control.SIZE_EXPAND_FILL
text_container.add_theme_constant_override("separation", 4)
if user_info_container:
user_info_container.alignment = BoxContainer.ALIGNMENT_BEGIN
if username_label:
username_label.add_theme_color_override("font_color", Color(0.08, 0.24, 0.27, 1.0))
username_label.add_theme_font_size_override("font_size", 16)
if timestamp_label:
timestamp_label.visible = false
if content_label:
content_label.custom_minimum_size.x = 0.0
content_label.size_flags_horizontal = Control.SIZE_EXPAND_FILL
content_label.add_theme_color_override("default_color", Color(0.12, 0.18, 0.18, 1.0))
content_label.add_theme_font_size_override("normal_font_size", 17)
# ============================================================================
# 内部方法 - 样式处理
# ============================================================================