public static void saveData(taskCacheData data)
        {
            FileInfo fi = new FileInfo(CACHEDATAPATH);

            if (!fi.Directory.Exists)
            {
                fi.Directory.Create();
            }
            writeFs          = fi.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite);
            writeFs.Position = 0;
            Serialization.WriteIntToStream(writeFs, data.taskId);
            Serialization.WriteIntToStream(writeFs, data.stepId);
            Serialization.WriteIntToStream(writeFs, data.canConductTaskList.Values.Count);
            foreach (int key in data.canConductTaskList.Keys)
            {
                Serialization.WriteIntToStream(writeFs, key);
            }

            Serialization.WriteIntToStream(writeFs, data.PrepareInitNpcMap.Keys.Count);
            foreach (Vector3 key in data.PrepareInitNpcMap.Keys)
            {
                Serialization.WriteIntToStream(writeFs, (int)data.PrepareInitNpcMap[key].position.x);
                Serialization.WriteIntToStream(writeFs, (int)data.PrepareInitNpcMap[key].position.y);
                Serialization.WriteIntToStream(writeFs, (int)data.PrepareInitNpcMap[key].position.z);
                Serialization.WriteIntToStream(writeFs, data.PrepareInitNpcMap[key].NPCId);
                Serialization.WriteIntToStream(writeFs, data.PrepareInitNpcMap[key].taskId);
                Serialization.WriteIntToStream(writeFs, data.PrepareInitNpcMap[key].stepId);
            }
            writeFs.Flush();
            writeFs.Close();
            writeFs = null;
        }
示例#2
0
        public void Serialize(Stream stream)
        {
            for (int i = 0; i < sections.Length; i++)
            {
                sections[i].Serialize(stream);
            }
            for (int i = 0; i < biomeIdMap.Length; i++)
            {
                Serialization.WriteIntToStream(stream, biomeIdMap[i]);
            }
            for (int i = 0; i < heightMap.Length; i++)
            {
                Serialization.WriteIntToStream(stream, heightMap[i]);
            }
            Serialization.WriteBoolToStream(stream, isTerrainDataPrepared);
            Serialization.WriteBoolToStream(stream, isPopulationDataPrepared);
            Serialization.WriteBoolToStream(stream, isLightDataPreparedAndUpdate);
            Serialization.WriteBoolToStream(stream, isLightDataPrepared);

            Serialization.WriteBoolToStream(stream, haveWater);

            Serialization.WriteIntToStream(stream, entities.Count);
            while (entities.Count > 0)
            {
                EntityData entityData = entities.Dequeue();
                entityData.Serialize(stream);
            }
        }
示例#3
0
 public void Serialize(Stream stream)
 {
     stream.Write(blockTypes, 0, blockTypes.Length);
     extendIds.WriteBytes(stream);
     sunLight.WriteBytes(stream);
     blockLight.WriteBytes(stream);
     Serialization.WriteIntToStream(stream, visibleBlocks);
     Serialization.WriteIntToStream(stream, specialBlocks);
 }
示例#4
0
 public virtual void Serialize(Stream stream)
 {
     Serialization.WriteIntToStream(stream, type);
     Serialization.WriteIntToStream(stream, id);
     Serialization.WriteIntToStream(stream, (int)pos.x);
     Serialization.WriteIntToStream(stream, (int)pos.y);
     Serialization.WriteIntToStream(stream, (int)pos.z);
     Serialization.WriteIntToStream(stream, exData.Count);
     for (int i = 0; i < exData.Count; i++)
     {
         Serialization.WriteIntToStream(stream, exData[i]);
     }
 }