Пример #1
0
    override public void Load(BlockSerializer bs)
    {
        LoadBlockData(bs);
        SurfaceBlockSerializer sbs = new SurfaceBlockSerializer();

        GameMaster.DeserializeByteArray <SurfaceBlockSerializer>(bs.specificData, ref sbs);
        LoadSurfaceBlockData(sbs);
        if (sbs.haveStructures)
        {
            foreach (StructureSerializer ss in sbs.structuresList)
            {
                if (ss.id != Structure.PLANT_ID)
                {
                    Structure s = Structure.GetStructureByID(ss.id);
                    if (s != null)
                    {
                        s.Load(ss, this);
                    }
                }
                else
                {
                    Plant p = Plant.GetNewPlant(ss.id);
                    if (p != null)
                    {
                        p.Load(ss, this);
                    }
                }
            }
        }
    }
Пример #2
0
 protected void LoadSurfaceBlockData(SurfaceBlockSerializer sbs)
 {
     if (sbs.haveGrassland)
     {
         grassland = Grassland.CreateOn(this);
         grassland.Load(sbs.grasslandSerializer);
     }
 }
Пример #3
0
    public SurfaceBlockSerializer GetSurfaceBlockSerializer()
    {
        SurfaceBlockSerializer sbs = new SurfaceBlockSerializer();

        if (grassland != null)
        {
            sbs.haveGrassland       = true;
            sbs.grasslandSerializer = grassland.Save();
        }
        else
        {
            sbs.haveGrassland = false;
        }
        if (surfaceObjects.Count != 0)
        {
            sbs.haveStructures = true;
            sbs.structuresList = new List <StructureSerializer>();
            int realCount = 0;
            foreach (Structure s in surfaceObjects)
            {
                if (s == null)
                {
                    continue;
                }
                StructureSerializer ss = s.Save();
                if (ss == null)
                {
                    continue;
                }
                sbs.structuresList.Add(ss);
                realCount++;
            }
            if (realCount == 0)
            {
                sbs.haveStructures = false;
            }
        }
        else
        {
            sbs.haveStructures = false;
        }
        return(sbs);
    }