fix: harden recovery flow and clean diagnostics

This commit is contained in:
Alexander Sellite 2026-09-01 07:44:01 -04:00
parent 0158b0215f
commit ff78710303
64 changed files with 1163 additions and 418 deletions

View file

@ -293,25 +293,25 @@ func _wait_for_avatar_sitting(
var deadline: int = Time.get_ticks_msec() + 10000
while Time.get_ticks_msec() < deadline:
await process_frame
var avatar: Player = spawn_service.get_avatar(peer_id)
if avatar != null and avatar.is_sitting() == expected:
var observed_avatar: Player = spawn_service.get_avatar(peer_id)
if observed_avatar != null and observed_avatar.is_sitting() == expected:
return true
var avatar: Player = spawn_service.get_avatar(peer_id)
if avatar != null:
var timed_out_avatar: Player = spawn_service.get_avatar(peer_id)
if timed_out_avatar != null:
print(
"sitting wait timed out: ",
{
"peer_id": peer_id,
"expected": expected,
"sitting": avatar.is_sitting(),
"sit_after_landing": bool(avatar.get("_sit_after_landing")),
"on_floor": avatar.is_on_floor(),
"position": avatar.global_position,
"velocity": avatar.velocity,
"authoritative": bool(avatar.get(
"sitting": timed_out_avatar.is_sitting(),
"sit_after_landing": bool(timed_out_avatar.get("_sit_after_landing")),
"on_floor": timed_out_avatar.is_on_floor(),
"position": timed_out_avatar.global_position,
"velocity": timed_out_avatar.velocity,
"authoritative": bool(timed_out_avatar.get(
"_network_authoritative_simulation"
)),
"last_input": int(avatar.get(
"last_input": int(timed_out_avatar.get(
"_last_network_input_sequence"
)),
},