extends Node ## 游戏配置管理类 ## 集中管理游戏的各种配置参数 # 网络配置 const NETWORK = { "server_url": "ws://localhost:8080", "connection_timeout": 10.0, "max_reconnect_attempts": 3, "reconnect_base_delay": 1.0, "heartbeat_interval": 30.0 } # 角色配置 const CHARACTER = { "move_speed": 200.0, "interaction_range": 80.0, "name_min_length": 2, "name_max_length": 20, "position_sync_threshold": 1.0 # 位置同步的最小距离阈值 } # UI配置 const UI = { "notification_duration": 5.0, "error_notification_duration": 8.0, "loading_timeout": 15.0, "font_sizes": { "small": 12, "normal": 16, "large": 20, "title": 24 }, "animations": { "enable_animations": true, "animation_speed": 1.0, "reduce_motion": false }, "accessibility": { "high_contrast": false, "large_text": false, "screen_reader_support": false }, "mobile_optimizations": { "larger_touch_targets": true, "haptic_feedback": true, "auto_zoom_inputs": true }, "performance": { "reduce_transparency": false, "disable_particles": false, "low_quality_mode": false } } # 场景配置 const SCENE = { "world_size": Vector2(2000, 1500), "spawn_position": Vector2(1000, 750), "camera_follow_speed": 5.0, "camera_zoom_speed": 2.0, "camera_min_zoom": 0.5, "camera_max_zoom": 2.0 } # 输入配置 const INPUT = { "virtual_joystick_size": 100, "virtual_button_size": 80, "touch_deadzone": 0.1 } # 动画配置 const ANIMATION = { "default_tween_duration": 0.3, "position_smooth_duration": 0.2, "ui_fade_duration": 0.25, "camera_reset_duration": 0.5 } # 调试配置 const DEBUG = { "enable_debug_prints": true, "show_collision_shapes": false, "show_fps": false, "log_network_messages": true } # 性能配置 const PERFORMANCE = { "max_characters_visible": 50, "update_frequency": 60, # FPS "network_sync_rate": 20, # 网络同步频率 "physics_fps": 60 } ## 获取网络配置 static func get_network_config() -> Dictionary: """获取网络相关配置""" return NETWORK ## 获取角色配置 static func get_character_config() -> Dictionary: """获取角色相关配置""" return CHARACTER ## 获取UI配置 static func get_ui_config() -> Dictionary: """获取UI相关配置""" return UI ## 获取场景配置 static func get_scene_config() -> Dictionary: """获取场景相关配置""" return SCENE ## 获取输入配置 static func get_input_config() -> Dictionary: """获取输入相关配置""" return INPUT ## 获取动画配置 static func get_animation_config() -> Dictionary: """获取动画相关配置""" return ANIMATION ## 获取调试配置 static func get_debug_config() -> Dictionary: """获取调试相关配置""" return DEBUG ## 获取性能配置 static func get_performance_config() -> Dictionary: """获取性能相关配置""" return PERFORMANCE ## 是否启用调试模式 static func is_debug_enabled() -> bool: """检查是否启用调试模式""" return DEBUG.enable_debug_prints ## 获取服务器URL static func get_server_url() -> String: """获取服务器URL""" return NETWORK.server_url ## 获取角色移动速度 static func get_character_move_speed() -> float: """获取角色移动速度""" return CHARACTER.move_speed ## 获取交互范围 static func get_interaction_range() -> float: """获取角色交互范围""" return CHARACTER.interaction_range ## 验证角色名称长度 static func is_valid_character_name_length(character_name: String) -> bool: """ 验证角色名称长度是否有效 @param character_name: 角色名称 @return: 是否有效 """ var length = character_name.length() return length >= CHARACTER.name_min_length and length <= CHARACTER.name_max_length ## 获取默认生成位置 static func get_default_spawn_position() -> Vector2: """获取默认角色生成位置""" return SCENE.spawn_position ## 获取世界大小 static func get_world_size() -> Vector2: """获取游戏世界大小""" return SCENE.world_size ## 获取通知显示时长 static func get_notification_duration(is_error: bool = false) -> float: """ 获取通知显示时长 @param is_error: 是否为错误通知 @return: 显示时长(秒) """ return UI.error_notification_duration if is_error else UI.notification_duration ## 获取相机配置 static func get_camera_config() -> Dictionary: """获取相机相关配置""" return { "follow_speed": SCENE.camera_follow_speed, "zoom_speed": SCENE.camera_zoom_speed, "min_zoom": SCENE.camera_min_zoom, "max_zoom": SCENE.camera_max_zoom, "reset_duration": ANIMATION.camera_reset_duration } ## 获取网络同步配置 static func get_network_sync_config() -> Dictionary: """获取网络同步相关配置""" return { "sync_rate": PERFORMANCE.network_sync_rate, "position_threshold": CHARACTER.position_sync_threshold, "timeout": NETWORK.connection_timeout, "max_reconnects": NETWORK.max_reconnect_attempts }