Minecraft.TAG_Compound.Read C# (CSharp) Method

Read() public method

public Read ( Stream data ) : void
data Stream
return void
        public override void Read(Stream data)
        {
            Payload = new Dictionary<String, TAG>();
            while (true)
            {
                if (data.Position >= data.Length)
                    break;
                TAG_Byte tagType = new TAG_Byte(data);
                if (tagType.Payload == (SByte)TYPE.TAG_End)
                    break;
                TAG_String name = new TAG_String(data);
                TAG nextTag = null;
                switch ((TYPE)tagType.Payload)
                {
                    case TYPE.TAG_Byte:
                        nextTag = (TAG)new TAG_Byte(data);
                        break;
                    case TYPE.TAG_Short:
                        nextTag = (TAG)new TAG_Short(data);
                        break;
                    case TYPE.TAG_Int:
                        nextTag = (TAG)new TAG_Int(data);
                        break;
                    case TYPE.TAG_Long:
                        nextTag = (TAG)new TAG_Long(data);
                        break;
                    case TYPE.TAG_Float:
                        nextTag = (TAG)new TAG_Float(data);
                        break;
                    case TYPE.TAG_Double:
                        nextTag = (TAG)new TAG_Double(data);
                        break;
                    case TYPE.TAG_Byte_Array:
                        nextTag = (TAG)new TAG_Byte_Array(data);
                        break;
                    case TYPE.TAG_String:
                        nextTag = (TAG)new TAG_String(data);
                        break;
                    case TYPE.TAG_List:
                        nextTag = (TAG)new TAG_List(data);
                        break;
                    case TYPE.TAG_Compound:
                        nextTag = (TAG)new TAG_Compound(data, this);
                        break;
                    case TYPE.TAG_Int_Array:
                        nextTag = (TAG)new TAG_Int_Array(data);
                        break;
                    default:
                        throw new Exception("Unrecognized tag type.");
                }
                nextTag.Name = name;
                nextTag.IsNamed = true;
                Payload.Add(name.PayloadString, nextTag);
            }
        }