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); }
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); }
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); } }