public override bool SendJob(IAgent agent) { lock (currentLock) { if (!hasNextJob) { agent.AcceptMissions(); return(hasNextJob); } // closest block // pack job Int3 mineBlockPosition = current; Debug.WriteLine(mineBlockPosition); if (current.X < _end.X) { current.X += 1; } else if (current.Z < _end.Z) { current.X = _start.X; current.Z += 1; } else { hasNextJob = false; } var job = new MiningJob(agent, mineBlockPosition); job.Subscribe(this); // execute job job.Handle(default);