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); } }