feat: expand progression and multiplayer systems
Add named save slots, progression import/export, and a unified play flow. Add live friend requests, presence, invitations, and relationship controls without durable discovery-server social storage. Advance the network protocol with isolated channels, movement reconciliation, late-join recovery, fishing replication, and animation synchronization. Preserve per-species catch totals, refine generated-world startup and water recovery, and complete the related input and interface improvements.
This commit is contained in:
parent
1db1a5b754
commit
3b84bfe3a0
97 changed files with 7869 additions and 982 deletions
|
|
@ -177,6 +177,17 @@ func get_active_bindings() -> Dictionary:
|
|||
return _default_bindings.duplicate(true)
|
||||
|
||||
|
||||
func get_binding(role: StringName) -> Dictionary:
|
||||
var binding: Variant = get_active_bindings().get(str(role), {})
|
||||
if typeof(binding) != TYPE_DICTIONARY:
|
||||
return {}
|
||||
return (binding as Dictionary).duplicate(true)
|
||||
|
||||
|
||||
func get_binding_label(role: StringName) -> String:
|
||||
return binding_label(get_binding(role))
|
||||
|
||||
|
||||
func get_role_label(role: StringName) -> String:
|
||||
return str(ROLE_LABELS.get(role, str(role).replace("_", " ")))
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ const UI_COMPACT_RENDER_HEIGHTS: Array[int] = [0, 408, 336, 264, 192]
|
|||
@export_range(0.001, 0.012, 0.0005) var mouse_camera_sensitivity: float = 0.005
|
||||
@export_range(0.5, 5.0, 0.1) var controller_camera_sensitivity: float = 2.5
|
||||
@export var invert_camera_y: bool = false
|
||||
@export var swap_hotbar_camera_scroll: bool = false
|
||||
@export var on_screen_keyboard_enabled: bool = false
|
||||
@export var chat_draft: String = ""
|
||||
@export var chat_collapsed: bool = false
|
||||
|
|
@ -79,6 +80,7 @@ func copy() -> PlayerSettings:
|
|||
result.mouse_camera_sensitivity = mouse_camera_sensitivity
|
||||
result.controller_camera_sensitivity = controller_camera_sensitivity
|
||||
result.invert_camera_y = invert_camera_y
|
||||
result.swap_hotbar_camera_scroll = swap_hotbar_camera_scroll
|
||||
result.on_screen_keyboard_enabled = on_screen_keyboard_enabled
|
||||
result.chat_draft = chat_draft
|
||||
result.chat_collapsed = chat_collapsed
|
||||
|
|
|
|||
|
|
@ -54,6 +54,10 @@ func load_settings() -> bool:
|
|||
if (
|
||||
typeof(accessibility.get("auto_click_enabled")) != TYPE_BOOL
|
||||
or typeof(camera.get("invert_vertical")) != TYPE_BOOL
|
||||
or (
|
||||
camera.has("swap_hotbar_camera_scroll")
|
||||
and typeof(camera["swap_hotbar_camera_scroll"]) != TYPE_BOOL
|
||||
)
|
||||
or (
|
||||
accessibility.has("on_screen_keyboard_enabled")
|
||||
and typeof(accessibility["on_screen_keyboard_enabled"]) != TYPE_BOOL
|
||||
|
|
@ -109,6 +113,9 @@ func load_settings() -> bool:
|
|||
-1.0
|
||||
)
|
||||
loaded.invert_camera_y = camera["invert_vertical"]
|
||||
loaded.swap_hotbar_camera_scroll = bool(
|
||||
camera.get("swap_hotbar_camera_scroll", false)
|
||||
)
|
||||
loaded.on_screen_keyboard_enabled = bool(
|
||||
accessibility.get("on_screen_keyboard_enabled", false)
|
||||
)
|
||||
|
|
@ -237,6 +244,9 @@ func save_now() -> bool:
|
|||
"mouse_sensitivity": current_settings.mouse_camera_sensitivity,
|
||||
"controller_sensitivity": current_settings.controller_camera_sensitivity,
|
||||
"invert_vertical": current_settings.invert_camera_y,
|
||||
"swap_hotbar_camera_scroll": (
|
||||
current_settings.swap_hotbar_camera_scroll
|
||||
),
|
||||
},
|
||||
"audio": {
|
||||
"master": current_settings.master_volume,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue