fix(interaction): restore retail loot placement and world-drop projection
This commit is contained in:
parent
4d095be286
commit
921712f412
24 changed files with 1581 additions and 34 deletions
|
|
@ -159,6 +159,8 @@ public sealed class LiveEntityInboundAuthorityGateTests
|
|||
out AcceptedPositionNetworkUpdate accepted));
|
||||
Assert.Equal(PositionTimestampDisposition.Apply, accepted.TimestampDisposition);
|
||||
Assert.Equal((ulong)2, accepted.PositionAuthorityVersion);
|
||||
Assert.True(runtime.TryGetCanonical(Guid, out RuntimeEntityRecord canonical));
|
||||
Assert.Same(canonical, accepted.Canonical);
|
||||
Assert.Equal(1, publishCount);
|
||||
|
||||
gate.ResetSessionState();
|
||||
|
|
@ -197,6 +199,33 @@ public sealed class LiveEntityInboundAuthorityGateTests
|
|||
out _));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Position_CanonicalInventoryObjectIsAcceptedBeforeProjectionExists()
|
||||
{
|
||||
LiveEntityRuntime runtime = Runtime();
|
||||
LiveEntityRegistrationResult registration =
|
||||
runtime.RegisterLiveEntity(Spawn(Guid, instance: 5, position: 1));
|
||||
Assert.NotNull(registration.Canonical);
|
||||
Assert.False(runtime.TryGetRecord(Guid, out _));
|
||||
int publishCount = 0;
|
||||
var gate = new LiveEntityInboundAuthorityGate(
|
||||
runtime,
|
||||
(_, _) => publishCount++);
|
||||
|
||||
Assert.True(gate.TryAcceptPosition(
|
||||
Position(Guid, 5, 2, 0x01010002u),
|
||||
localPlayerGuid: 0u,
|
||||
forcePositionRotation: null,
|
||||
currentLocalVelocity: null,
|
||||
payloadIsValid: true,
|
||||
out AcceptedPositionNetworkUpdate accepted));
|
||||
|
||||
Assert.Same(registration.Canonical, accepted.Canonical);
|
||||
Assert.Equal((ulong)2, accepted.PositionAuthorityVersion);
|
||||
Assert.Equal(1, publishCount);
|
||||
Assert.False(runtime.TryGetRecord(Guid, out _));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Vector_NewerSameIncarnationPacketInvalidatesCapturedAuthority()
|
||||
{
|
||||
|
|
@ -308,10 +337,10 @@ public sealed class LiveEntityInboundAuthorityGateTests
|
|||
payloadIsValid: true,
|
||||
out AcceptedPositionNetworkUpdate accepted));
|
||||
Assert.True(runtime.IsCurrentPositionAuthority(
|
||||
accepted.Record,
|
||||
accepted.Canonical,
|
||||
accepted.PositionAuthorityVersion));
|
||||
Assert.False(runtime.IsCurrentVelocityAuthority(
|
||||
accepted.Record,
|
||||
accepted.Canonical,
|
||||
accepted.VelocityAuthorityVersion));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue