38 for (
int i = 0; i < 65537; i++) {
60 chunk.ModificationCounter = 0;
75 throw new InvalidOperationException(
"Invalid chunk header.");
86 public static void ReadTOCEntry(Stream stream, out
int cx, out
int cz, out
int index) {
92 public static void WriteTOCEntry(Stream stream,
int cx,
int cz,
int index) {
100 int num = chunk.Origin.X >> 4;
101 int num2 = chunk.Origin.Y >> 4;
107 m_stream.Seek(value, SeekOrigin.Begin);
111 int* ptr2 = (
int*)ptr;
112 for (
int i = 0; i < 16; i++) {
113 for (
int j = 0; j < 16; j++) {
127 int* ptr3 = (
int*)ptr;
128 for (
int k = 0; k < 16; k++) {
129 for (
int l = 0; l < 16; l++) {
139 catch (Exception e) {
147 int num = chunk.Origin.X >> 4;
148 int num2 = chunk.Origin.Y >> 4;
152 m_stream.Seek(value, SeekOrigin.Begin);
157 m_stream.Seek(value, SeekOrigin.Begin);
161 int* ptr2 = (
int*)ptr;
162 for (
int i = 0; i < 16; i++) {
163 for (
int j = 0; j < 16; j++) {
177 int* ptr3 = (
int*)ptr;
178 for (
int k = 0; k < 16; k++) {
179 for (
int l = 0; l < 16; l++) {
188 int num5 = m_chunkOffsets.Count % 65536 * 3 * 4;
189 m_stream.Seek(num5, SeekOrigin.Begin);
197 catch (Exception e) {
204 stream.ReadByte() + (stream.ReadByte() << 8) + (stream.ReadByte() << 16) + (stream.ReadByte() << 24);
206 public static void WriteInt(Stream stream,
int value) {
207 stream.WriteByte((
byte)value);
208 stream.WriteByte((
byte)(value >> 8));
209 stream.WriteByte((
byte)(value >> 16));
210 stream.WriteByte((
byte)(value >> 24));
static void Error(object message)
static Stream OpenFile(string path, OpenFileMode openFileMode)
static bool FileExists(string path)
static string CombinePaths(params string[] paths)
static string MakeFullErrorMessage(Exception e)
static int CalculateCellIndex(int x, int y, int z)
virtual int GetCellValueFast(int index)
virtual void SetCellValueFast(int x, int y, int z, int value)
static void WriteTOCEntry(Stream stream, int cx, int cz, int index)
static int ReadInt(Stream stream)
Dictionary< Point2, long > m_chunkOffsets
static void ReadChunkHeader(Stream stream)
void SaveChunk(TerrainChunk chunk)
const int ChunkBytesCount
static void WriteInt(Stream stream, int value)
TerrainSerializer129(Terrain terrain, string directoryName)
bool LoadChunk(TerrainChunk chunk)
unsafe bool LoadChunkBlocks(TerrainChunk chunk)
static void ReadTOCEntry(Stream stream, out int cx, out int cz, out int index)
const string ChunksFileName
static void WriteChunkHeader(Stream stream, int cx, int cz)
const int TocEntryBytesCount
unsafe void SaveChunkBlocks(TerrainChunk chunk)