Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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);
    }