Example #1
0
    protected MineSerializer GetMineSerializer()
    {
        MineSerializer ms = new MineSerializer();

        ms.workBuildingSerializer   = GetWorkBuildingSerializer();
        ms.workFinished             = workFinished;
        ms.lastWorkObjectPos        = lastWorkObjectPos;
        ms.awaitingElevatorBuilding = awaitingElevatorBuilding;
        ms.level         = level;
        ms.elevators     = new List <StructureSerializer>(); ms.elevatorHeights = new List <byte>();
        ms.haveElevators = false;
        if (level > 1)
        {
            for (int i = 0; i < elevators.Count; i++)
            {
                if (elevators[i] == null)
                {
                    continue;
                }
                else
                {
                    ms.elevators.Add((elevators[i] as MineElevator).GetSerializer());
                    ms.elevatorHeights.Add(elevators[i].basement.pos.y);
                    ms.haveElevators = true;
                }
            }
        }
        return(ms);
    }
Example #2
0
    override public void Load(StructureSerializer ss, SurfaceBlock sblock)
    {
        LoadStructureData(ss, sblock);
        MineSerializer ms = new MineSerializer();

        GameMaster.DeserializeByteArray(ss.specificData, ref ms);
        LoadMineData(ms);
    }
Example #3
0
 protected void LoadMineData(MineSerializer ms)
 {
     level = ms.level;
     LoadWorkBuildingData(ms.workBuildingSerializer);
     elevators = new List <Structure>();
     if (level > 1 & ms.haveElevators)
     {
         for (int i = 0; i < ms.elevators.Count; i++)
         {
             Structure s = Structure.GetStructureByID(MINE_ELEVATOR_ID);
             s.Load(ms.elevators[i], basement.myChunk.GetBlock(basement.pos.x, ms.elevatorHeights[i], basement.pos.z) as SurfaceBlock);
             elevators.Add(s);
         }
     }
     workFinished             = ms.workFinished;
     lastWorkObjectPos        = ms.lastWorkObjectPos;
     awaitingElevatorBuilding = ms.awaitingElevatorBuilding;
 }