public override void HandleMessage(BaseMessage message)
        {
            JobAssignedMessage msg = (JobAssignedMessage)message;
            Chunk chunk            = World.GetChunkByTile(msg.Worker.Dimension, msg.Worker.MapLocation.X, msg.Worker.MapLocation.Y);

            chunk.GetCreature(msg.Worker.MapLocation, out Living worker);
            worker.Task = msg.Task;
            worker.Task.BeginJob(worker);
        }
Esempio n. 2
0
        public void TestJobSerialization()
        {
            this.Setup();
            MineJob job = new MineJob(new MagicalLifeAPI.DataTypes.Point2D(3, 6));

            HumanFactory humanFactory = new HumanFactory();
            Human        human        = humanFactory.GenerateHuman(new MagicalLifeAPI.DataTypes.Point2D(1, 3), 0, Guid.NewGuid());

            JobAssignedMessage message = new JobAssignedMessage(human, job);

            byte[] data = ProtoUtil.Serialize(message);
            Assert.IsNotNull(data);

            JobAssignedMessage result = (JobAssignedMessage)ProtoUtil.Deserialize(data);
        }
Esempio n. 3
0
        private void Client_DataReceived(object sender, Message e)
        {
            MasterLog.DebugWriteLine("Receiving " + e.Data.Length + " bytes");
            this.MsgBuffer.ReceiveData(e.Data);

            while (this.MsgBuffer.IsMessageAvailible())
            {
                BaseMessage msg = this.MsgBuffer.GetMessageData();
                if (msg is JobAssignedMessage)
                {
                    JobAssignedMessage m = (JobAssignedMessage)msg;
                    MasterLog.DebugWriteLine("Job ID After: " + m.Task.Dependencies.ElementAt(0).Key.ToString());
                }

                ClientProcessor.Process(msg);
            }
        }