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
|
|
@ -30,6 +30,7 @@ public sealed class RetailWorldPickerTests
|
|||
|
||||
Assert.NotNull(hit);
|
||||
Assert.Equal(2u, hit.Value.ServerGuid);
|
||||
Assert.Equal(1002u, hit.Value.LocalEntityId);
|
||||
Assert.True(hit.Value.PolygonHit);
|
||||
}
|
||||
|
||||
|
|
@ -72,6 +73,7 @@ public sealed class RetailWorldPickerTests
|
|||
{
|
||||
var front = new RetailSelectionPart(
|
||||
1u,
|
||||
1001u,
|
||||
0,
|
||||
Matrix4x4.Identity,
|
||||
new RetailSelectionMesh(
|
||||
|
|
@ -92,6 +94,7 @@ public sealed class RetailWorldPickerTests
|
|||
* Matrix4x4.CreateTranslation(0f, 0f, -10f);
|
||||
var part = new RetailSelectionPart(
|
||||
3u,
|
||||
1003u,
|
||||
0,
|
||||
transform,
|
||||
new RetailSelectionMesh(Vector3.Zero, 1f, [SquareAtLocalZ(0f)]));
|
||||
|
|
@ -152,6 +155,7 @@ public sealed class RetailWorldPickerTests
|
|||
float sphereRadius = 2f)
|
||||
=> new(
|
||||
guid,
|
||||
guid + 1000u,
|
||||
0,
|
||||
Matrix4x4.CreateTranslation(0f, 0f, z),
|
||||
new RetailSelectionMesh(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue