feat(runtime): freeze initial placement inbound admission
This commit is contained in:
parent
9d601817b8
commit
30012361e1
9 changed files with 2506 additions and 323 deletions
|
|
@ -1,4 +1,5 @@
|
|||
using AcDream.Core.Net;
|
||||
using AcDream.Core.Net.Messages;
|
||||
using AcDream.Core.Physics;
|
||||
using AcDream.Runtime.Physics;
|
||||
|
||||
|
|
@ -47,6 +48,10 @@ public sealed class RuntimeEntityDirectory
|
|||
public InboundCreateResult AcceptCreate(WorldSession.EntitySpawn incoming) =>
|
||||
_inbound.AcceptCreate(incoming);
|
||||
|
||||
internal InboundCreateResult AcceptCreateDeferredSameGeneration(
|
||||
WorldSession.EntitySpawn incoming) =>
|
||||
_inbound.AcceptCreateDeferredSameGeneration(incoming);
|
||||
|
||||
public CreateObjectTimestampDisposition PreviewCreateDisposition(
|
||||
WorldSession.EntitySpawn incoming) =>
|
||||
_inbound.PreviewCreateDisposition(incoming);
|
||||
|
|
@ -59,6 +64,11 @@ public sealed class RuntimeEntityDirectory
|
|||
public bool TryGetSnapshot(uint guid, out WorldSession.EntitySpawn spawn) =>
|
||||
_inbound.TryGetSnapshot(guid, out spawn);
|
||||
|
||||
internal bool TryGetAcceptedTimestamps(
|
||||
uint guid,
|
||||
out AcceptedPhysicsTimestamps timestamps) =>
|
||||
_inbound.TryGetAcceptedTimestamps(guid, out timestamps);
|
||||
|
||||
public bool TryGetActive(uint guid, out RuntimeEntityRecord record) =>
|
||||
_activeByGuid.TryGetValue(guid, out record!);
|
||||
|
||||
|
|
@ -482,6 +492,58 @@ public sealed class RuntimeEntityDirectory
|
|||
out accepted,
|
||||
out timestamps);
|
||||
|
||||
internal bool TryAcceptDeferredPosition(
|
||||
WorldSession.EntityPositionUpdate update,
|
||||
bool isLocalPlayer,
|
||||
out PositionTimestampDisposition disposition,
|
||||
out AcceptedPhysicsTimestamps timestamps,
|
||||
out bool hasTimestampMutation) =>
|
||||
_inbound.TryAcceptDeferredPosition(
|
||||
update,
|
||||
isLocalPlayer,
|
||||
out disposition,
|
||||
out timestamps,
|
||||
out hasTimestampMutation);
|
||||
|
||||
internal bool TryAcceptDeferredObjDesc(
|
||||
ObjDescEvent.Parsed update,
|
||||
out AcceptedPhysicsTimestamps timestamps) =>
|
||||
_inbound.TryAcceptDeferredObjDesc(update, out timestamps);
|
||||
|
||||
internal bool TryAcceptDeferredPickup(
|
||||
PickupEvent.Parsed update,
|
||||
out AcceptedPhysicsTimestamps timestamps) =>
|
||||
_inbound.TryAcceptDeferredPickup(update, out timestamps);
|
||||
|
||||
internal bool TryAcceptDeferredCreateParent(
|
||||
CreateParentUpdate update,
|
||||
out AcceptedPhysicsTimestamps timestamps) =>
|
||||
_inbound.TryAcceptDeferredCreateParent(update, out timestamps);
|
||||
|
||||
internal bool TryAcceptDeferredParent(
|
||||
ParentEvent.Parsed update,
|
||||
out AcceptedPhysicsTimestamps timestamps) =>
|
||||
_inbound.TryAcceptDeferredParent(update, out timestamps);
|
||||
|
||||
internal bool TryAcceptDeferredMotion(
|
||||
WorldSession.EntityMotionUpdate update,
|
||||
out AcceptedPhysicsTimestamps timestamps,
|
||||
out bool hasTimestampMutation) =>
|
||||
_inbound.TryAcceptDeferredMotion(
|
||||
update,
|
||||
out timestamps,
|
||||
out hasTimestampMutation);
|
||||
|
||||
internal bool TryAcceptDeferredState(
|
||||
SetState.Parsed update,
|
||||
out AcceptedPhysicsTimestamps timestamps) =>
|
||||
_inbound.TryAcceptDeferredState(update, out timestamps);
|
||||
|
||||
internal bool TryAcceptDeferredVector(
|
||||
VectorUpdate.Parsed update,
|
||||
out AcceptedPhysicsTimestamps timestamps) =>
|
||||
_inbound.TryAcceptDeferredVector(update, out timestamps);
|
||||
|
||||
public bool IsFreshTeleportStart(uint guid, ushort teleportSequence) =>
|
||||
_inbound.IsFreshTeleportStart(guid, teleportSequence);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue