public override void Write(BigEndianStream stream) { stream.Write(EntityId); stream.Write(Type); stream.Write((int)(X * 32)); stream.Write((int)(Y * 32)); stream.Write((int)(Z * 32)); }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); Type = stream.ReadSByte(); X = (double)stream.ReadInt() / 32.0d; Y = (double)stream.ReadInt() / 32.0d; Z = (double)stream.ReadInt() / 32.0d; }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); Type = (ObjectType)stream.ReadSByte(); X = (double)stream.ReadInt() / 32.0d; // ((double)intX / 32.0d) => representation of X as double Y = (double)stream.ReadInt() / 32.0d; Z = (double)stream.ReadInt() / 32.0d; UnknownFlag = stream.ReadInt(); UnknownA = stream.ReadShort(); UnknownB = stream.ReadShort(); UnknownC = stream.ReadShort(); }
public override void Write(BigEndianStream stream) { stream.Write(X); stream.Write(Y); stream.Write(Z); stream.Write(SizeX); stream.Write(SizeY); stream.Write(SizeZ); int o = 16 * 16 * 128; byte[] data = new byte[o * 5 / 2]; int i = 0; for (int x = 0; x < 16; x++) { for (int z = 0; z < 16; z++) { for (int y = 0; y < 128; y++) { int s = ((i + 1) & 1) * 4; int ofst = i; data[ofst] = Chunk[x, y, z]; ofst = i / 2 + o * 2 / 2; data[ofst] = unchecked((byte)(data[ofst] | (Chunk.GetData(x, y, z) << s))); ofst = i / 2 + o * 3 / 2; data[ofst] = unchecked((byte)(data[ofst] | (Chunk.GetBlockLight(x, y, z) << s))); ofst = i / 2 + o * 4 / 2; data[ofst] = unchecked((byte)(data[ofst] | (Chunk.GetSkyLight(x, y, z) << s))); i++; } } } byte[] comp = new byte[o * 5]; int len; Deflater deflater = new Deflater(0); try { deflater.setInput(data); deflater.finish(); len = deflater.deflate(comp); } finally { deflater.end(); } stream.Write(len); stream.Write(comp, 0, len); }
public override void Read(BigEndianStream stream) { int posX = stream.ReadInt(); short posY = stream.ReadShort(); int posZ = stream.ReadInt(); byte sizeX = (byte)(stream.ReadByte() + 1); byte sizeY = (byte)(stream.ReadByte() + 1); byte sizeZ = (byte)(stream.ReadByte() + 1); int o = sizeX * sizeY * sizeZ; Chunk = new Chunk(null, posX, posZ); int len = stream.ReadInt(); byte[] comp = new byte[len]; byte[] data = new byte[o * 5 / 2]; len = stream.Read(comp, 0, len); }
public override void Write(BigEndianStream stream) { stream.Write(EntityId); stream.Write(DeltaX); stream.Write(DeltaY); stream.Write(DeltaZ); }
public override void Write(BigEndianStream stream) { stream.Write(EntityId); stream.Write(Title); stream.Write(X); stream.Write(Y); stream.Write(Z); stream.Write(GraphicId); }
public override void Write(BigEndianStream stream) { stream.Write(EntityId); stream.Write(Data); }
public override void Write(BigEndianStream stream) { stream.Write(EntityId); stream.Write(Yaw); stream.Write(Pitch); }
public override void Write(BigEndianStream stream) { stream.Write(EntityId); stream.Write(Slot); stream.Write(ItemId); stream.Write(Durability); }
public override void Write(BigEndianStream stream) { stream.Write(EntityId); stream.Write((byte)Effect); stream.Write(Amplifier); stream.Write(Duration); }
public override void Read(BigEndianStream stream) { WindowId = stream.ReadSByte(); }
public override void Write(BigEndianStream stream) { stream.Write(Message); }
public override void Read(BigEndianStream stream) { Message = stream.ReadString16(100); }
public override void Write(BigEndianStream stream) { stream.Write(X); stream.Write(Y); stream.Write(Z); stream.Write(Type); stream.Write(Data); }
internal void ReadEnchantmentsFromNBT(BigEndianStream stream) { // TODO: Implement this and choose return value }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); Effect = (EntityEffects)stream.ReadByte(); Amplifier = stream.ReadByte(); Duration = stream.ReadShort(); }
public override void Write(BigEndianStream stream) { stream.Write(WindowId); }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); Slot = stream.ReadShort(); ItemId = stream.ReadShort(); Durability = stream.ReadShort(); }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); PlayerId = stream.ReadInt(); }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); Yaw = stream.ReadSByte(); Pitch = stream.ReadSByte(); }
public override void Read(BigEndianStream stream) { Slot = stream.ReadShort(); ItemID = stream.ReadShort(); Quantity = stream.ReadShort(); Damage = stream.ReadShort(); }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); Data = stream.ReadMetaData(); }
public override void Write(BigEndianStream stream) { stream.Write(Slot); stream.Write(ItemID); stream.Write(Quantity); stream.Write(Damage); }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); Title = stream.ReadString16(13); X = stream.ReadInt(); Y = stream.ReadInt(); Z = stream.ReadInt(); GraphicId = stream.ReadInt(); }
public override void Read(BigEndianStream stream) { Reason = stream.ReadString16(100); }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); DeltaX = stream.ReadSByte(); DeltaY = stream.ReadSByte(); DeltaZ = stream.ReadSByte(); }
public override void Write(BigEndianStream stream) { stream.Write(Reason); }
public override void Read(BigEndianStream stream) { EntityId = stream.ReadInt(); EntityStatus = stream.ReadSByte(); }
public override void Read(BigEndianStream stream) { PlayerId = stream.ReadInt(); Action = (ActionType)stream.ReadSByte(); }
public override void Write(BigEndianStream stream) { stream.Write(PlayerId); stream.Write((sbyte)Action); }
private NbtNode ReadNode(BigEndianStream zipped) { byte type = (byte)zipped.ReadByte(); NbtNode node = null; switch (type) { case 0: return(new NbtStop()); case 1: node = new NbtByte { Name = zipped.ReadString8(), Value = zipped.ReadByte() }; break; case 2: node = new NbtShort { Name = zipped.ReadString8(), Value = zipped.ReadInt16() }; break; case 3: node = new NbtInt { Name = zipped.ReadString8(), Value = zipped.ReadInt32() }; break; case 4: node = new NbtLong { Name = zipped.ReadString8(), Value = zipped.ReadInt64() }; break; case 5: node = new NbtFloat { Name = zipped.ReadString8(), Value = zipped.ReadSingle() }; break; case 6: node = new NbtDouble { Name = zipped.ReadString8(), Value = zipped.ReadDouble() }; break; case 7: node = new NbtBytes { Name = zipped.ReadString8(), Value = zipped.ReadBytes(zipped.ReadInt32()) }; break; case 8: node = new NbtString { Name = zipped.ReadString8(), Value = zipped.ReadString8() }; break; case 9: node = new NbtList(); ((NbtList)node).Name = zipped.ReadString8(); ((NbtList)node).Childs = new List <object>(); byte tagId = zipped.ReadByte(); ((NbtList)node).TagId = tagId; int length = zipped.ReadInt32(); for (int i = 0; i < length; i++) { ((NbtList)node).Childs.Add(ReadRaw(zipped, tagId)); } break; case 10: node = new NbtCompound(); ((NbtCompound)node).Name = zipped.ReadString8(); ((NbtCompound)node).Childs = new List <NbtNode>(); NbtNode subNode; while ((subNode = ReadNode(zipped)).Type != 0) { ((NbtCompound)node).Childs.Add(subNode); } break; case 11: node = new NbtInts { Name = zipped.ReadString8(), Value = ByteToIntArray(zipped.ReadBytes(zipped.ReadInt32() * sizeof(int))) }; break; } //string str = zipped.ReadString8(100); if (node == null) { throw new Exception(); } return(node); }