private SaveToBuffer ( NbtCompression compression ) : byte[] | ||
compression | NbtCompression | |
return | byte[] |
public override void WriteTo(MinecraftStream stream, byte index) { stream.WriteUInt8(GetKey(index)); stream.WriteInt16(Value.Id); if (Value.Id != -1) { stream.WriteInt8(Value.Count); stream.WriteInt16(Value.Metadata); if (Value.Nbt != null) { var file = new NbtFile(Value.Nbt); var data = file.SaveToBuffer(NbtCompression.GZip); stream.WriteInt16((short)data.Length); stream.WriteUInt8Array(data); } else stream.WriteInt16(-1); } }
public byte[] SaveBytes() { if (IsExternal) { var data = new byte[Size + 5]; var size = DataUtils.GetBytes(1); Array.Copy(size, data, 4); data[4] = ExternalCompression; return(data); } if (!IsLoaded) { var stream = Region.GetStream(); stream.Seek(Offset, SeekOrigin.Begin); byte[] result = new byte[Size]; stream.Read(result, 0, Size); stream.Dispose(); return(result); } if (IsCorrupt) { return(new byte[0]); } var file = new fNbt.NbtFile(Data); var bytes = file.SaveToBuffer(Compression); var with_header = new byte[bytes.Length + 5]; Array.Copy(bytes, 0, with_header, 5, bytes.Length); var length = DataUtils.GetBytes(bytes.Length); Array.Copy(length, with_header, 4); if (Compression == NbtCompression.GZip) { with_header[4] = 1; } else if (Compression == NbtCompression.ZLib) { with_header[4] = 2; } HasUnsavedChanges = false; return(with_header); }
private byte[] GetNbtData(NbtCompound nbtCompound) { nbtCompound.Name = string.Empty; var file = new NbtFile(nbtCompound); file.BigEndian = false; return file.SaveToBuffer(NbtCompression.None); }