Ejemplo n.º 1
0
            public override void DeSerialize(DataReader data)
            {
                assetPath = data.ReadStringNull();
                var oldOrder = data.byteOrder;

                data.byteOrder = DataReader.ByteOrder.Big;
                guidMost       = data.ReadInt64();
                guidLeast      = data.ReadInt64();
                data.byteOrder = oldOrder;
                type           = data.ReadInt32();
                filePath       = data.ReadStringNull();
            }
Ejemplo n.º 2
0
 public override void DeSerialize(DataReader data)
 {
     header.DeSerialize(data);
     uint n1 = BitConverter.ToUInt32(new byte[] { 1, 0, 0, 0 }, 0);
     data.byteOrder = DataReader.ByteOrder.Little;
     //compress with lzma
     if (!header.signature.Contains("UnityRaw")) {
         SevenZip.Compression.LZMA.Decoder decoder = new SevenZip.Compression.LZMA.Decoder();
         data.position = header.headerSize;
         byte[] properties = data.ReadBytes(5);
         long uncompressFileSize = data.ReadInt64();
         decoder.SetDecoderProperties(properties);
         MemoryStream outMs = new MemoryStream((int)uncompressFileSize);
         decoder.Code(data.BaseStream,outMs,data.BaseStream.Length-header.headerSize,uncompressFileSize,null);
         data.Close();
         data = new DataReader(outMs);
         data.position = 0;
     }
     data.byteOrder = DataReader.ByteOrder.Big;
     numOfEntryCount = data.ReadInt32();
     entrys = new SerializeBundleEntry[numOfEntryCount];
     for (int i = 0; i < numOfEntryCount; i++) {
         entrys[i] = new SerializeBundleEntry();
         entrys[i].DeSerialize(data);
     }
 }
Ejemplo n.º 3
0
        public override void DeSerialize(DataReader data)
        {
            header.DeSerialize(data);
            uint n1 = BitConverter.ToUInt32(new byte[] { 1, 0, 0, 0 }, 0);

            data.byteOrder = DataReader.ByteOrder.Little;
            //compress with lzma
            if (!header.signature.Contains("UnityRaw"))
            {
                SevenZip.Compression.LZMA.Decoder decoder = new SevenZip.Compression.LZMA.Decoder();
                data.position = header.headerSize;
                byte[] properties         = data.ReadBytes(5);
                long   uncompressFileSize = data.ReadInt64();
                decoder.SetDecoderProperties(properties);
                MemoryStream outMs = new MemoryStream((int)uncompressFileSize);
                decoder.Code(data.BaseStream, outMs, data.BaseStream.Length - header.headerSize, uncompressFileSize, null);
                data.Close();
                data          = new DataReader(outMs);
                data.position = 0;
            }
            data.byteOrder  = DataReader.ByteOrder.Big;
            numOfEntryCount = data.ReadInt32();
            entrys          = new SerializeBundleEntry[numOfEntryCount];
            for (int i = 0; i < numOfEntryCount; i++)
            {
                entrys[i] = new SerializeBundleEntry();
                entrys[i].DeSerialize(data);
            }
        }
Ejemplo n.º 4
0
 public override void DeSerialize(DataReader br)
 {
     br.Align(4);
     PathID          = br.ReadInt64();
     offset          = br.ReadUint32();
     length          = br.ReadUint32();
     typeID          = br.ReadInt32();
     classID         = br.ReadInt16();
     scriptTypeIndex = br.ReadInt16();
     stripped        = br.ReadBool();
     data            = br.GetRangeBytes((uint)(mDataOffset + offset), length);
 }
Ejemplo n.º 5
0
        public object readArrayValue(TypeTree typeTree, DataReader data)
        {
            var elementType = typeTree.GetChildren()[1];

            arrayLength      = data.ReadInt32();
            arrayElementType = typeStr2PropertyType(elementType.type);
            object ret = null;

            switch (arrayElementType)
            {
            case SerializePropertyType.Bool:
                ret = data.ReadBool(arrayLength);
                break;

            case SerializePropertyType.Byte:
                ret = data.ReadBytes(arrayLength);
                break;

            case SerializePropertyType.Double:
                ret = data.ReadDouble(arrayLength);
                break;

            case SerializePropertyType.Float:
                ret = data.ReadFloat(arrayLength);
                break;

            case SerializePropertyType.Int:
                ret = data.ReadInt32(arrayLength);
                break;

            case SerializePropertyType.Long:
                ret = data.ReadInt64(arrayLength);
                break;

            case SerializePropertyType.SByte:
                ret = data.ReadSbytes(arrayLength);
                break;

            case SerializePropertyType.Short:
                ret = data.ReadInt16(arrayLength);
                break;

            case SerializePropertyType.String:
                string[] stringArray = new string[arrayLength];
                for (int i = 0; i < arrayLength; i++)
                {
                    int strSize = data.ReadInt32();
                    stringArray[i] = UnicodeEncoding.UTF8.GetString(data.ReadBytes(strSize));
                    data.Align(4);
                }
                ret = stringArray;
                break;

            case SerializePropertyType.UInt:
                ret = data.ReadUint32(arrayLength);
                break;

            case SerializePropertyType.ULong:
                ret = data.ReadUInt64(arrayLength);
                break;

            case SerializePropertyType.UShort:
                ret = data.ReadUInt16(arrayLength);
                break;

            default:
                SerializeProperty[] properArray = new SerializeProperty[arrayLength];
                for (int i = 0; i < arrayLength; i++)
                {
                    SerializeProperty value = null;
                    if (arrayElementType == SerializePropertyType.Property || arrayElementType == SerializePropertyType.Array)
                    {
                        var sp = new SerializeProperty(elementType);
                        sp.DeSerialize(data);
                        value = sp;
                    }
                    properArray[i] = value;
                }
                ret = properArray;
                break;
            }

            data.Align(4);
            return(ret);
        }
Ejemplo n.º 6
0
        private object readValue(SerializePropertyType ptype, TypeTree typeTree, DataReader data)
        {
            object ret = null;

            switch (ptype)
            {
            case SerializePropertyType.Bool:
                ret = data.ReadBool();
                break;

            case SerializePropertyType.SByte:
                ret = data.ReadSbyte();
                break;

            case SerializePropertyType.Byte:
                ret = data.ReadByte();
                break;

            case SerializePropertyType.Short:
                ret = data.ReadInt16();
                break;

            case SerializePropertyType.UShort:
                ret = data.ReadUInt16();
                break;

            case SerializePropertyType.Int:
                ret = data.ReadInt32();
                break;

            case SerializePropertyType.UInt:
                ret = data.ReadUint32();
                break;

            case SerializePropertyType.Long:
                ret = data.ReadInt64();
                break;

            case SerializePropertyType.ULong:
                ret = data.ReadUInt64();
                break;

            case SerializePropertyType.Float:
                ret = data.ReadFloat();
                break;

            case SerializePropertyType.Double:
                ret = data.ReadDouble();
                break;

            case SerializePropertyType.String:
                int strSize = data.ReadInt32();
                ret = UnicodeEncoding.UTF8.GetString(data.ReadBytes(strSize));
                //ret = UTF8Encoding.Default.GetString();
                break;

            default:
                break;
            }

            if (((typeTree.metaFlag & TypeTree.FLAG_FORCE_ALIGN) != 0) || propertyType == SerializePropertyType.String)
            {
                data.Align(4);
            }

            return(ret);
        }
Ejemplo n.º 7
0
 public override void DeSerialize(DataReader data)
 {
     serializeFileIndex = data.ReadInt32();
     identifierInFile   = data.ReadInt64();
     data.Align(4);
 }
            public override void DeSerialize(DataReader data)
            {
                assetPath = data.ReadStringNull();
                var oldOrder = data.byteOrder;
                data.byteOrder = DataReader.ByteOrder.Big;
                guidMost = data.ReadInt64();
                guidLeast = data.ReadInt64();
                data.byteOrder = oldOrder;
                type = data.ReadInt32();
                filePath = data.ReadStringNull();

            }
        public object readArrayValue(TypeTree typeTree, DataReader data)
        {            
            var elementType = typeTree.GetChildren()[1];
            arrayLength = data.ReadInt32();
            arrayElementType = typeStr2PropertyType(elementType.type);
            object ret = null;
            switch (arrayElementType) {
                case SerializePropertyType.Bool:
                ret = data.ReadBool(arrayLength);
                break;
                case SerializePropertyType.Byte:
                ret = data.ReadBytes(arrayLength);
                break;
                case SerializePropertyType.Double:
                ret = data.ReadDouble(arrayLength);
                break;
                case SerializePropertyType.Float:
                ret = data.ReadFloat(arrayLength);
                break;
                case SerializePropertyType.Int:
                ret = data.ReadInt32(arrayLength);
                break;
                case SerializePropertyType.Long:
                ret = data.ReadInt64(arrayLength);
                break;
                case SerializePropertyType.SByte:
                ret = data.ReadSbytes(arrayLength);
                break;
                case SerializePropertyType.Short:
                ret = data.ReadInt16(arrayLength);
                break;
                case SerializePropertyType.String:
                string[] stringArray = new string[arrayLength];
                for (int i = 0; i < arrayLength; i++) {
                    int strSize = data.ReadInt32();
                    stringArray[i] = UnicodeEncoding.UTF8.GetString(data.ReadBytes(strSize));
                    data.Align(4);
                }
                ret = stringArray;
                break;
                case SerializePropertyType.UInt:
                ret = data.ReadUint32(arrayLength);
                break;
                case SerializePropertyType.ULong:
                ret = data.ReadUInt64(arrayLength);
                break;
                case SerializePropertyType.UShort:
                ret = data.ReadUInt16(arrayLength);
                break;
                default:
                SerializeProperty[] properArray = new SerializeProperty[arrayLength];
                for (int i = 0; i < arrayLength; i++) {
                    SerializeProperty value = null;
                    if (arrayElementType == SerializePropertyType.Property || arrayElementType == SerializePropertyType.Array) {
                        var sp = new SerializeProperty(elementType);
                        sp.DeSerialize(data);
                        value = sp;
                    }
                    properArray[i] = value;
                }
                ret = properArray;
                break;
            }

            data.Align(4);
            return ret;
        }
Ejemplo n.º 10
0
        private object readValue(SerializePropertyType ptype,TypeTree typeTree, DataReader data)
        {
            
            object ret = null;
            switch (ptype) {
                case SerializePropertyType.Bool:
                ret = data.ReadBool();
                break;
                case SerializePropertyType.SByte:
                ret = data.ReadSbyte();
                break;
                case SerializePropertyType.Byte:
                ret = data.ReadByte();
                break;
                case SerializePropertyType.Short:
                ret = data.ReadInt16();
                break;
                case SerializePropertyType.UShort:
                ret = data.ReadUInt16();
                break;
                case SerializePropertyType.Int:
                ret = data.ReadInt32();
                break;
                case SerializePropertyType.UInt:
                ret = data.ReadUint32();
                break;
                case SerializePropertyType.Long:
                ret = data.ReadInt64();
                break;
                case SerializePropertyType.ULong:
                ret = data.ReadUInt64();
                break;
                case SerializePropertyType.Float:
                ret = data.ReadFloat();
                break;
                case SerializePropertyType.Double:
                ret = data.ReadDouble();
                break;
                case SerializePropertyType.String:
                int strSize = data.ReadInt32();
                ret = UnicodeEncoding.UTF8.GetString(data.ReadBytes(strSize));
                //ret = UTF8Encoding.Default.GetString();
                break;
                default:
                break;
            }

            if (((typeTree.metaFlag & TypeTree.FLAG_FORCE_ALIGN) != 0)  || propertyType == SerializePropertyType.String) {
                data.Align(4);
            }

            return ret;
        }
Ejemplo n.º 11
0
 public override void DeSerialize(DataReader data)
 {
     serializeFileIndex = data.ReadInt32();
     identifierInFile = data.ReadInt64();
     data.Align(4);
 }
Ejemplo n.º 12
0
 public override void DeSerialize(DataReader br)
 {
     br.Align(4);
     PathID = br.ReadInt64();
     offset = br.ReadUint32();
     length = br.ReadUint32();
     typeID = br.ReadInt32();
     classID = br.ReadInt16();
     scriptTypeIndex = br.ReadInt16();
     stripped = br.ReadBool();
     data = br.GetRangeBytes((uint)(mDataOffset + offset), length);
 }