fix(interaction): bind selection to live incarnations
Carry local WorldEntity identity through render hits, lighting pulses, and deferred movement actions so GUID reuse cannot target a replacement. Reset all session-owned selection and ItemHolder state and prevent combat auto-target during teardown.
This commit is contained in:
parent
c271383714
commit
047a4c83b5
19 changed files with 374 additions and 42 deletions
|
|
@ -1418,4 +1418,20 @@ public sealed class ItemInteractionControllerTests
|
|||
Assert.True(h.Controller.ActivateItem(0x50000A0Au));
|
||||
Assert.Equal(2, h.Uses.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ResetSession_ClearsTargetBusyThrottleAndConsumedClickState()
|
||||
{
|
||||
var h = new Harness();
|
||||
const uint kit = 0x50000A0Cu;
|
||||
h.AddContained(kit, item => item.Useability = HealthKitUseability);
|
||||
Assert.True(h.Controller.ActivateItem(kit));
|
||||
h.Controller.IncrementBusyCount();
|
||||
|
||||
h.Controller.ResetSession();
|
||||
|
||||
Assert.False(h.Controller.IsAnyTargetModeActive);
|
||||
Assert.Equal(0, h.Controller.BusyCount);
|
||||
Assert.Equal(InteractionModeKind.None, h.Controller.InteractionState.Current.Kind);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue