You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.3.5: move rotation injection from GetRotationInput to Update postfix
v0.3.4 confirmed two things from the BepInEx log:
- Lifecycle workaround (orphan + DontDestroyOnLoad + HideAndDontSave)
unblocked patches: PhysGrabber.Update POSTFIX fired at line 28,
Plugin.Update heartbeats fired every 5s for 2+ minutes
- GetRotationInput POSTFIX never appeared, even during gameplay
So PhysGrabber.GetRotationInput() simply isn't called by the vanilla
code path that drives normal grab rotation — it's likely only invoked
when a specific keyboard rotation modifier is held. The actual per-
frame rotation must happen elsewhere (probably in Update or
ObjectTurning).
This release moves the rotation injection into the Update postfix
that we know fires. On each call we:
- gate on isLocal && grabbed
- accumulate the SpaceMouse delta in HeldObjectController
- compose ourDelta * vanilla.physRotation and write it back
- mirror to nextPhysRotation in case downstream reads from that field
Three new diag log lines (each fires once per session):
- 'PhysGrabber.Update POSTFIX firing.' — confirms the new postfix
- 'First time observing grabbed=true on local PhysGrabber.' — confirms
we hit the holding branch
- 'First rotation write: before=(...) delta=(...)' — confirms we
computed and wrote a non-identity rotation
Stub PhysGrabber.cs adds nextPhysRotation since we now write to it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>