feat(headless): observe canonical placement receipts

This commit is contained in:
Erik 2026-08-01 15:10:03 +02:00
parent 74c9b155bd
commit 378ca95a67
5 changed files with 445 additions and 23 deletions

View file

@ -4,6 +4,7 @@ using AcDream.Headless.Diagnostics;
using AcDream.Headless.Policies;
using AcDream.Runtime;
using AcDream.Runtime.Gameplay;
using AcDream.Runtime.Physics;
using AcDream.Runtime.Session;
namespace AcDream.Headless.Hosting;
@ -521,7 +522,7 @@ internal sealed class HeadlessSessionHost : IDisposable
}
}
private LiveSessionEventRouter CreateEventRoute(
private ILiveSessionEventRouting CreateEventRoute(
AcDream.Core.Net.WorldSession session)
{
IRuntimeDirectWorldProjection? worldProjection =
@ -536,7 +537,7 @@ internal sealed class HeadlessSessionHost : IDisposable
message,
Runtime.Generation.Value),
worldProjection);
return new LiveSessionEventRouter(
var route = new LiveSessionEventRouter(
session,
entities.CreateSink(),
new LiveEnvironmentSessionSink(
@ -579,6 +580,10 @@ internal sealed class HeadlessSessionHost : IDisposable
Runtime.CommunicationOwner.TurbineChat,
Runtime.CommunicationOwner.Friends,
Runtime.CommunicationOwner.Squelch));
return new HeadlessSessionEventRoute(
route,
Runtime,
new HeadlessRuntimePlacementProjectionSink(Runtime));
}
private static LiveSessionCharacterSelector MapCharacterSelector(