using MoonTools.ECS; using Nerfed.Runtime.Scheduling; namespace Nerfed.Runtime.Systems.Synthetic; public sealed class DummyMainThreadWorkSystem : MoonTools.ECS.System, IParallelSystemMetadata { private readonly TimeSpan duration; private readonly DummyWorkloadMode mode; private readonly string scheduleName; private int seed; public DummyMainThreadWorkSystem( World world, TimeSpan duration, DummyWorkloadMode mode, string scheduleName, int initialSeed = 1) : base(world) { this.duration = duration; this.mode = mode; this.scheduleName = scheduleName; seed = initialSeed; } public string ScheduleName => scheduleName; public SystemAccessDeclaration AccessDeclaration => SystemAccessDeclaration.Empty; public override void Update(TimeSpan delta) { seed = DummyWorkloadRunner.Run(duration, mode, seed); } }