Doors on all vehicles: no more part-logic FSMs in DoorSync, single sender for hinges

- DoorSync matched every FSM with door/hood/lid/trunk in its name, including
  the door parts' removal/assembly/bolt/paint FSMs and trigger_ objects, and
  forced their states at the other players: doors hung crooked, snapped back
  or came off. Those are excluded now (assembly runs via FsmSync).
- HingeSync: on a parked vehicle everyone nearby sent the angle, so doors
  ping-ponged. Now only the player who clicked near the door (4 s) sends;
  on a driven vehicle the driver sends; received angles are held 3 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 17:44:03 +02:00
co-authored by Claude Opus 5.5
parent dd31587d61
commit f707e67e5c
4 changed files with 57 additions and 4 deletions
+3
View File
@@ -1883,6 +1883,9 @@ namespace MSCO
}
else if (IsPeerReady && MenuHelper.InGame && localPlayer != null && !overlays.AnyOpen)
passengerResult = passenger.AutoUpdate(localPlayer, playerCamera, objects, players); // in die Beifahrertür treten
// Klick an einer Fahrzeugtür: wir bewegen sie (nur dann wird ihr Winkel geschickt, siehe HingeSync)
if (MenuHelper.InGame && localPlayer != null && !overlays.AnyOpen)
hinges.NoteInteraction(playerCamera != null ? playerCamera.transform.position : localPlayer.position);
if (passengerResult != null)
{
SetStatus(passengerResult);