void IByteable.Write(ByteScribe writer) { writer.Write(fileversion); writer.Write((byte)width); writer.Write((byte)height); writer.Write(exitNorth); writer.Write(exitSouth); writer.Write(exitEast); writer.Write(exitWest); for (int l = 0; l < layerCount; l++) { for (int i = 0; i < arrayLength; i++) { writer.Write(tileData[l][i]); } } writer.Write((byte)decorations.Count); foreach (Decoration d in decorations) { writer.Write(d); } }
void IByteable.Read(ByteScribe reader) { reader.ReadByte();//fileVersion width = reader.ReadByte(); height = reader.ReadByte(); exitNorth = reader.ReadString(); exitSouth = reader.ReadString(); exitEast = reader.ReadString(); exitWest = reader.ReadString(); if (arrayLength != width * height) { arrayLength = width * height; for (int i = 0; i < layerCount; i++) { tileData[i] = new byte[arrayLength]; } } for (int l = 0; l < layerCount; l++) { for (int i = 0; i < arrayLength; i++) { tileData[l][i] = reader.ReadByte(); } } decorations.Clear(); int decCount = reader.ReadByte(); for (int i = 0; i < decCount; i++) { AddDecoration(reader.ReadFloat(), reader.ReadFloat(), reader.ReadByte()); } }
void IByteable.Write(ByteScribe writer) { writer.Write(x); writer.Write(y); writer.Write(value); }
void IByteable.Read(ByteScribe reader) { x = reader.ReadFloat(); y = reader.ReadFloat(); value = reader.ReadByte(); }