예제 #1
0
        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);