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:
Alexander Sellite 2026-08-23 20:48:38 -04:00
parent 1db1a5b754
commit 3b84bfe3a0
97 changed files with 7869 additions and 982 deletions

View file

@ -11,16 +11,19 @@ var _local_player: Player
var _spawn_transform: Transform3D
var _avatars: Dictionary[int, Player] = {}
var _local_peer_id: int = 1
var _dedicated_runtime: bool = false
func setup(
players_root: Node3D,
local_player: Player,
spawn_transform: Transform3D,
dedicated_runtime: bool = false,
) -> void:
_players_root = players_root
_local_player = local_player
_spawn_transform = spawn_transform
_dedicated_runtime = dedicated_runtime
func set_spawn_transform(spawn_transform: Transform3D) -> void:
@ -56,7 +59,10 @@ func spawn_remote_player(
avatar.set_network_peer_id(peer_id)
_players_root.add_child(avatar)
avatar.global_transform = transform
avatar.configure_network_remote(authoritative_simulation)
avatar.configure_network_remote(
authoritative_simulation,
_dedicated_runtime and authoritative_simulation,
)
_avatars[peer_id] = avatar
avatar_spawned.emit(peer_id, avatar)
return avatar