public override void Write(BigEndianStream stream) { stream.Write(WindowId); stream.Write((sbyte)InventoryType); stream.Write8(WindowTitle); stream.Write(SlotCount); }
private void WriteNode(BigEndianStream zipped, NbtNode node) { zipped.Write(node.Type); if (node.Type == 0) { return; } zipped.Write8(node.Name); switch (node.Type) { case 1: zipped.Write(((NbtByte)node).Value); break; case 2: zipped.Write(((NbtShort)node).Value); break; case 3: zipped.Write(((NbtInt)node).Value); break; case 4: zipped.Write(((NbtLong)node).Value); break; case 5: zipped.Write(((NbtFloat)node).Value); break; case 6: zipped.Write(((NbtDouble)node).Value); break; case 7: zipped.Write(((NbtBytes)node).Value.Length); zipped.Write(((NbtBytes)node).Value); break; case 8: zipped.Write8(((NbtString)node).Value); break; case 9: var list = (NbtList)node; zipped.Write(list.TagId); zipped.Write(list.Childs.Count); foreach (var child in list.Childs) { WriteRaw(zipped, list.TagId, child); } break; case 10: var compount = (NbtCompound)node; foreach (var item in compount.Childs) { WriteNode(zipped, item); } WriteNode(zipped, new NbtStop()); break; case 11: zipped.Write(((NbtInts)node).Value.Length); zipped.Write(IntToByteArray(((NbtInts)node).Value)); break; } }