using Engine.Kernel.Plugins; using Engine.Kernel.Scheduling; using Engine.Kernel.World; using Sandbox.Echo.Contracts; namespace Sandbox.Echo; /// /// M0's test fixture. Exists only to exercise the reload loop end to end — /// edit, rebuild, ALC reload, headless run, dump — before any real /// subsystem exists to test it against. See M0 in docs/kernel-contract.md §8. /// public sealed class EchoPlugin : IPlugin { public void Configure(IPluginContext ctx) { ctx.Schedule.Add(Stage.Update, Tick) .Writes(); ctx.Log.Info("sandbox.echo configured"); } public void Shutdown(IPluginContext ctx) { ctx.Schedule.RemoveAllFrom("sandbox.echo"); } static void Tick(IWorld world) { // TODO(M0): bump every Ping.Count by one. Placeholder until the // Scheduler actually exists to invoke this. } }