Example #1
0
        public override void ReadData(Reader reader)
        {
            //Clear out any current jobs.
            while (normalJobs.Count > 0)
            {
                Cancel(normalJobs.First());
            }
            while (emergencyJobs.Count > 0)
            {
                Cancel(emergencyJobs.First());
            }

            //Stop JobQueries from doing stuff until after deserialization is done.
            JobQueries.Dispose();

            base.ReadData(reader);

            reader.Collection("normalJobs",
                              (MyData.Reader rd, ref Job outval, string name) =>
                              { outval = Job.Read(rd, name, TheMap); },
                              (i) => normalJobs);
            reader.Collection("emergencyJobs",
                              (MyData.Reader rd, ref Job outVal, string name) =>
                              { outVal = Job.Read(rd, name, TheMap); },
                              (i) => emergencyJobs);

            foreach (Job j in normalJobs.Concat(emergencyJobs))
            {
                InitJob(j);
            }
        }