public Expedition Load(ExpeditionSerializer es) { ID = es.ID; shuttles = new List <Shuttle>(); if (es.shuttles_ID.Count > 0) { foreach (int i in es.shuttles_ID) { AssignShuttle(Shuttle.GetShuttle(i)); } } progress = es.progress; if (es.haveTransmitter) { SurfaceBlock transmitterBasis = GameMaster.mainChunk.GetBlock(es.transmitterPosition) as SurfaceBlock; foreach (Structure s in transmitterBasis.surfaceObjects) { if (s is QuantumTransmitter) { transmitter = s as QuantumTransmitter; transmitter.SetExpedition(this); break; } } } else { transmitter = null; } return(this); }
public ExpeditionSerializer Save() { ExpeditionSerializer es = new ExpeditionSerializer(); es.ID = ID; //es.quest_ID = (quest == null ? -1 : quest.ID); es.shuttles_ID = new List <int>(); if (shuttles.Count > 0) { int i = 0; while (i < shuttles.Count) { if (shuttles[i] == null) { shuttles.RemoveAt(i); continue; } else { es.shuttles_ID.Add(shuttles[i].ID); i++; } } } es.progress = progress; if (transmitter != null) { es.transmitterPosition = transmitter.basement.pos; es.haveTransmitter = true; } else { es.haveTransmitter = false; } return(es); }