28 lines
918 B
C#
28 lines
918 B
C#
namespace NeonSprawl.Server.Game.PositionState;
|
|
|
|
/// <summary>Maps HTTP routes for authoritative position read API.</summary>
|
|
public static class PositionStateApi
|
|
{
|
|
public static WebApplication MapPositionStateApi(this WebApplication app)
|
|
{
|
|
app.MapGet(
|
|
"/game/players/{id}/position",
|
|
(string id, IPositionStateStore store) =>
|
|
{
|
|
if (!store.TryGetPosition(id, out var snap))
|
|
return Results.NotFound();
|
|
|
|
var body = new PositionStateResponse
|
|
{
|
|
SchemaVersion = PositionStateResponse.CurrentSchemaVersion,
|
|
PlayerId = id,
|
|
Position = new PositionVector { X = snap.X, Y = snap.Y, Z = snap.Z },
|
|
Sequence = snap.Sequence,
|
|
};
|
|
return Results.Json(body);
|
|
});
|
|
|
|
return app;
|
|
}
|
|
}
|