Esempio n. 1
0
 public override void Write(BigEndianStream stream)
 {
     stream.Write(WindowId);
     stream.Write((sbyte)InventoryType);
     stream.Write8(WindowTitle);
     stream.Write(SlotCount);
 }
Esempio n. 2
0
        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;
            }
        }