fix(runtime): production controller install never wired OnInterfaceText — the jump-in-air silence
Round-3 probe evidence pinpointed it: '[jump] ReportJumpRefusal result=NotGrounded hasCallback=False' — the edge detection, OnWalkable clearing, and refusal dispatch all worked; the callback was null because CommitRuntimeOwnedController (the C3c production publication path) writes _controller directly and never applied _onInterfaceText the way the internal setter does. Two install paths, one wired. Regression test pins the commit path. Runtime tests 1,323/0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
1fd515436c
commit
a5a7eb4fb6
2 changed files with 29 additions and 0 deletions
|
|
@ -449,6 +449,13 @@ public sealed class RuntimeLocalPlayerMovementState
|
|||
{
|
||||
_controller?.RetireRuntimePublication();
|
||||
_controller = controller;
|
||||
// The PRODUCTION install path must carry the same wiring the
|
||||
// internal Controller setter applies: this line was missing, so
|
||||
// every live graphical controller ran with a null OnInterfaceText
|
||||
// and client-local refusals (jump-in-air) silently vanished —
|
||||
// proven by the round-3 probe line
|
||||
// "[jump] ReportJumpRefusal result=NotGrounded hasCallback=False".
|
||||
controller.OnInterfaceText = _onInterfaceText;
|
||||
ControllerOwnershipEpoch++;
|
||||
Interlocked.Increment(ref _revision);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue