コード例 #1
0
ファイル: Chunk.cs プロジェクト: zhanjunxiong/ProjectMTB
        public void Deserialize(Stream stream)
        {
            for (int i = 0; i < sections.Length; i++)
            {
                sections[i].Deserialize(stream);
            }
            for (int i = 0; i < biomeIdMap.Length; i++)
            {
                biomeIdMap[i] = Serialization.ReadIntFromStream(stream);
            }
            for (int i = 0; i < heightMap.Length; i++)
            {
                heightMap[i] = Serialization.ReadIntFromStream(stream);
            }
            isTerrainDataPrepared        = Serialization.ReadBoolFromStream(stream);
            isPopulationDataPrepared     = Serialization.ReadBoolFromStream(stream);
            isLightDataPreparedAndUpdate = Serialization.ReadBoolFromStream(stream);
            isLightDataPrepared          = Serialization.ReadBoolFromStream(stream);

            haveWater = Serialization.ReadBoolFromStream(stream);

            int entitiesLen = Serialization.ReadIntFromStream(stream);

            for (int i = 0; i < entitiesLen; i++)
            {
                EntityData entidata = new EntityData();
                entidata.Deserialize(stream);
                entities.Enqueue(entidata);
            }
        }
コード例 #2
0
 public void Deserialize(Stream stream)
 {
     stream.Read(blockTypes, 0, blockTypes.Length);
     extendIds.ReadBytes(stream);
     sunLight.ReadBytes(stream);
     blockLight.ReadBytes(stream);
     visibleBlocks = Serialization.ReadIntFromStream(stream);
     specialBlocks = Serialization.ReadIntFromStream(stream);
 }
コード例 #3
0
        public static taskCacheData loadData()
        {
            taskCacheData data = new taskCacheData();
            FileInfo      fi   = new FileInfo(CACHEDATAPATH);

            if (!fi.Directory.Exists)
            {
                fi.Directory.Create();
            }
            readFs          = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite);
            readFs.Position = 0;

            if (readFs.Length == 0)
            {
                data.canConductTaskList.Add(1, MTBTaskDataManager.Instance.getData(1));
                readFs.Close();
                readFs.Dispose();
                readFs      = null;
                data.taskId = 0;
                data.stepId = 0;
                saveData(data);
                EventManager.SendEvent(EventMacro.FIRST_INIT_TASK);
                return(data);
            }
            int curTaskId = Serialization.ReadIntFromStream(readFs);
            int curStepId = Serialization.ReadIntFromStream(readFs);
            int count     = Serialization.ReadIntFromStream(readFs);

            for (int i = 0; i < count; i++)
            {
                int key = Serialization.ReadIntFromStream(readFs);
                data.canConductTaskList.Add(key, MTBTaskDataManager.Instance.getData(key));
            }

            int count2 = Serialization.ReadIntFromStream(readFs);

            data.PrepareInitNpcMap.Clear();
            for (int i = 0; i < count2; i++)
            {
                Vector3 key  = new Vector3(Serialization.ReadIntFromStream(readFs), Serialization.ReadIntFromStream(readFs), Serialization.ReadIntFromStream(readFs));
                NPCInfo info = new NPCInfo();
                info.NPCId  = Serialization.ReadIntFromStream(readFs);
                info.taskId = Serialization.ReadIntFromStream(readFs);
                info.stepId = Serialization.ReadIntFromStream(readFs);
                data.PrepareInitNpcMap.Add(key, info);
            }
            readFs.Flush();
            readFs.Close();
            readFs = null;

            data.taskId = curTaskId;
            data.stepId = curStepId;
            return(data);
        }
コード例 #4
0
        public virtual void Deserialize(Stream stream)
        {
            type = Serialization.ReadIntFromStream(stream);
            id   = Serialization.ReadIntFromStream(stream);
            pos  = new Vector3(Serialization.ReadIntFromStream(stream), Serialization.ReadIntFromStream(stream), Serialization.ReadIntFromStream(stream));
            int count = Serialization.ReadIntFromStream(stream);

            exData.Clear();
            for (int i = 0; i < count; i++)
            {
                exData.Add(Serialization.ReadIntFromStream(stream));
            }
        }