SaveToBuffer() private method

private SaveToBuffer ( NbtCompression compression ) : byte[]
compression NbtCompression
return byte[]
Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
		private byte[] GetNbtData(NbtCompound nbtCompound)
		{
			nbtCompound.Name = string.Empty;
			var file = new NbtFile(nbtCompound);
			file.BigEndian = false;

			return file.SaveToBuffer(NbtCompression.None);
		}