neon-sprawl/server/NeonSprawl.Server/Game/PositionState/IPositionStateStore.cs

15 lines
794 B
C#

namespace NeonSprawl.Server.Game.PositionState;
/// <summary>Authoritative player positions — in-memory or PostgreSQL per configuration (NS-15 read API, NS-16 move apply, NS-17 persistence).</summary>
public interface IPositionStateStore
{
/// <summary>Returns false if the player is unknown (HTTP 404). <paramref name="playerId"/> is trimmed; matching is ordinal case-insensitive.</summary>
bool TryGetPosition(string playerId, out PositionSnapshot snapshot);
/// <summary>
/// Sets authoritative position to the given coordinates (v1 snap) and increments <see cref="PositionSnapshot.Sequence"/>.
/// Returns false if the player is unknown.
/// </summary>
bool TryApplyMoveTarget(string playerId, double x, double y, double z, out PositionSnapshot snapshot);
}