示例#1
0
 public override void read(BinaryReader reader)
 {
     try
     {
         this.name   = Util.readString(reader);
         this.number = TagFloat.readData(reader);
     }
     catch (IOException exception)
     {
         throw new FailedReadException(exception.Message, exception);
     }
 }
        public override void read(BinaryReader reader)
        {
            try
            {
                this.list  = new List <object>();
                this.name  = Util.readString(reader);
                this.tagId = reader.ReadSByte();
                int length = 0;

                if (BitConverter.IsLittleEndian)
                {
                    length = Util.readIntegerBigEndian(reader);
                }
                else
                {
                    length = reader.ReadInt32();
                }

                for (int a = 0; a < length; a++)
                {
                    switch (tagId)
                    {
                    case 1:
                        list.Add(TagByte.readData(reader));
                        break;

                    case 2:
                        list.Add(TagShort.readData(reader));
                        break;

                    case 3:
                        list.Add(TagInt.readData(reader));
                        break;

                    case 4:
                        list.Add(TagLong.readData(reader));
                        break;

                    case 5:
                        list.Add(TagFloat.readData(reader));
                        break;

                    case 6:
                        list.Add(TagDouble.readData(reader));
                        break;

                    case 7:
                        list.Add(TagByteArray.readData(reader));
                        break;

                    case 8:
                        list.Add(TagString.readData(reader));
                        break;

                    case 9:
                        TagList newList = new TagList();
                        newList.read(reader);
                        list.Add(newList);
                        break;

                    case 10:
                        List <Tag>  newTagList = TagCompound.readData(reader);
                        TagCompound compound   = new TagCompound("", newTagList);
                        list.Add(compound);
                        break;
                    }
                }
            }
            catch (IOException exception)
            {
                throw new FailedReadException(exception.Message, exception);
            }
        }