public override void Read(AssetReader reader)
 {
     base.Read(reader);
     ConnectedBody.Read(reader);
     Anchor = reader.ReadAsset <Vector3f>();
     Axis   = reader.ReadAsset <Vector3f>();
     AutoConfigureConnectedAnchor = reader.ReadBoolean();
     reader.AlignStream(AlignType.Align4);
     ConnectedAnchor  = reader.ReadAsset <Vector3f>();
     SwingAxis        = reader.ReadAsset <Vector3f>();
     TwistLimitSpring = reader.ReadAsset <SoftJointLimitSpring>();
     LowTwistLimit    = reader.ReadAsset <SoftJointLimit>();
     HighTwistLimit   = reader.ReadAsset <SoftJointLimit>();
     SwingLimitSpring = reader.ReadAsset <SoftJointLimitSpring>();
     Swing1Limit      = reader.ReadAsset <SoftJointLimit>();
     Swing2Limit      = reader.ReadAsset <SoftJointLimit>();
     EnableProjection = reader.ReadBoolean();
     reader.AlignStream(AlignType.Align4);
     ProjectionDistance  = reader.ReadSingle();
     ProjectionAngle     = reader.ReadSingle();
     BreakForce          = reader.ReadSingle();
     BreakTorque         = reader.ReadSingle();
     EnableCollision     = reader.ReadBoolean();
     EnablePreprocessing = reader.ReadBoolean();
     if (IsReadMassScale(reader.Version))
     {
         reader.AlignStream(AlignType.Align4);
         MassScale          = reader.ReadSingle();
         ConnectedMassScale = reader.ReadSingle();
     }
 }
        public override void Read(AssetReader reader)
        {
            base.Read(reader);
            ConnectedBody.Read(reader);
            Anchor = reader.ReadAsset <Vector3f>();
            AutoConfigureConnectedAnchor = reader.ReadBoolean();
            reader.AlignStream(AlignType.Align4);
            ConnectedAnchor = reader.ReadAsset <Vector3f>();

            Spring      = reader.ReadSingle();
            Damper      = reader.ReadSingle();
            MinDistance = reader.ReadSingle();
            MaxDistance = reader.ReadSingle();
            Tolerance   = reader.ReadSingle();

            BreakForce          = reader.ReadSingle();
            BreakTorque         = reader.ReadSingle();
            EnableCollision     = reader.ReadBoolean();
            EnablePreprocessing = reader.ReadBoolean();
            if (IsReadMassScale(reader.Version))
            {
                reader.AlignStream(AlignType.Align4);
                MassScale          = reader.ReadSingle();
                ConnectedMassScale = reader.ReadSingle();
            }
        }
Exemplo n.º 3
0
        public void Read(AssetReader reader)
        {
            if (IsMaxGradientFirst(reader.Version))
            {
                MaxGradient.Read(reader);
                MinGradient.Read(reader);
                if (IsColor32(reader.Version))
                {
                    MinColor32 = reader.ReadAsset <ColorRGBA32>();
                    MaxColor32 = reader.ReadAsset <ColorRGBA32>();
                }
                else
                {
                    MinColor.Read(reader);
                    MaxColor.Read(reader);
                }
            }

            MinMaxState = (MinMaxGradientState)reader.ReadUInt16();
            reader.AlignStream();

            if (!IsMaxGradientFirst(reader.Version))
            {
                MinColor.Read(reader);
                MaxColor.Read(reader);
                MaxGradient.Read(reader);
                MinGradient.Read(reader);
            }
        }
Exemplo n.º 4
0
 public void Read(AssetReader reader)
 {
     if (IsVector3(reader.Version))
     {
         Min = reader.ReadAsset <Vector3f>();
         Max = reader.ReadAsset <Vector3f>();
     }
     else
     {
         Min4.Read(reader);
         Max4.Read(reader);
     }
 }
Exemplo n.º 5
0
        private static void FindMinMaxBounds(Version version, ref VertexData vertexData, int firstVertex, int vertexCount, out Vector3f min, out Vector3f max)
        {
            ChannelInfo channel      = vertexData.GetChannel(version, ShaderChannel.Vertex);
            int         streamOffset = vertexData.GetStreamOffset(version, channel.Stream);
            int         streamStride = vertexData.GetStreamStride(version, channel.Stream);
            int         extraStride  = streamStride - ShaderChannel.Vertex.GetStride(version);
            int         vertexOffset = firstVertex * streamStride;
            int         begin        = streamOffset + vertexOffset + channel.Offset;

            using (MemoryStream stream = new MemoryStream(vertexData.Data))
            {
                using (AssetReader reader = new AssetReader(stream, version, Platform.NoTarget, TransferInstructionFlags.NoTransferInstructionFlags))
                {
                    stream.Position = begin;
                    Vector3f dummyVertex = reader.ReadAsset <Vector3f>();
                    min = dummyVertex;
                    max = dummyVertex;

                    stream.Position = begin;
                    for (int i = 0; i < vertexCount; i++)
                    {
                        Vector3f vertex = reader.ReadAsset <Vector3f>();
                        if (vertex.X > max.X)
                        {
                            max.X = vertex.X;
                        }
                        else if (vertex.X < min.X)
                        {
                            min.X = vertex.X;
                        }
                        if (vertex.Y > max.Y)
                        {
                            max.Y = vertex.Y;
                        }
                        else if (vertex.Y < min.Y)
                        {
                            min.Y = vertex.Y;
                        }
                        if (vertex.Z > max.Z)
                        {
                            max.Z = vertex.Z;
                        }
                        else if (vertex.Z < min.Z)
                        {
                            min.Z = vertex.Z;
                        }
                        stream.Position += extraStride;
                    }
                }
            }
        }
Exemplo n.º 6
0
        private static void FindMinMaxBounds(AssetLayout layout, ref VertexData vertexData, int firstVertex, int vertexCount, out Vector3f min, out Vector3f max)
        {
            ChannelInfo channel      = vertexData.GetChannel(layout.Info.Version, ShaderChannel.Vertex);
            int         streamOffset = vertexData.GetStreamOffset(layout.Info.Version, channel.Stream);
            int         streamStride = vertexData.GetStreamStride(layout.Info.Version, channel.Stream);
            int         extraStride  = streamStride - ShaderChannel.Vertex.GetStride(layout.Info.Version);
            int         vertexOffset = firstVertex * streamStride;
            int         begin        = streamOffset + vertexOffset + channel.Offset;

            using (MemoryStream stream = new MemoryStream(vertexData.Data))
            {
                using (AssetReader reader = new AssetReader(stream, EndianType.LittleEndian, layout))
                {
                    stream.Position = begin;
                    Vector3f dummyVertex = reader.ReadAsset <Vector3f>();
                    min = dummyVertex;
                    max = dummyVertex;

                    stream.Position = begin;
                    for (int i = 0; i < vertexCount; i++)
                    {
                        Vector3f vertex = reader.ReadAsset <Vector3f>();
                        if (vertex.X > max.X)
                        {
                            max.X = vertex.X;
                        }
                        else if (vertex.X < min.X)
                        {
                            min.X = vertex.X;
                        }
                        if (vertex.Y > max.Y)
                        {
                            max.Y = vertex.Y;
                        }
                        else if (vertex.Y < min.Y)
                        {
                            min.Y = vertex.Y;
                        }
                        if (vertex.Z > max.Z)
                        {
                            max.Z = vertex.Z;
                        }
                        else if (vertex.Z < min.Z)
                        {
                            min.Z = vertex.Z;
                        }
                        stream.Position += extraStride;
                    }
                }
            }
        }
Exemplo n.º 7
0
 public void Read(AssetReader reader)
 {
     Texture.Read(reader);
     if (IsVector3(reader.Version))
     {
         Scale3.Read(reader);
         Offset3.Read(reader);
     }
     else
     {
         Scale  = reader.ReadAsset <Vector2f>();
         Offset = reader.ReadAsset <Vector2f>();
     }
 }
Exemplo n.º 8
0
        public void Read(AssetReader reader)
        {
            if (IsReadBuildTargetString(reader.Version))
            {
                string buildTarget = reader.ReadString();
                BuildTarget = StringToBuildGroup(buildTarget);
            }
            else
            {
                BuildTarget = (BuildTargetGroup)reader.ReadInt32();
            }
            if (IsReadTier(reader.Version))
            {
                Tier = (GraphicsTier)reader.ReadInt32();
            }

            if (IsReadPlatfromSettings(reader.Version))
            {
                PlatformShaderSettings settings = reader.ReadAsset <PlatformShaderSettings>();
                Settings = new TierGraphicsSettingsEditor(settings, reader.Version, reader.Flags);
            }
            else
            {
                Settings.Read(reader);
            }

            Automatic = reader.ReadBoolean();
            reader.AlignStream(AlignType.Align4);
        }
Exemplo n.º 9
0
        public void Read(AssetReader reader)
        {
            if (HasCurrentChannels(reader.Version))
            {
                CurrentChannels = reader.ReadUInt32();
            }
            VertexCount = (int)reader.ReadUInt32();

            if (HasChannels(reader.Version))
            {
                Channels = reader.ReadAssetArray <ChannelInfo>();
                reader.AlignStream(AlignType.Align4);
            }
            if (HasStreams(reader.Version))
            {
                if (IsStreamStatic(reader.Version))
                {
                    Streams = new StreamInfo[StaticStreamCount];
                    for (int i = 0; i < StaticStreamCount; i++)
                    {
                        Streams[i] = reader.ReadAsset <StreamInfo>();
                    }
                }
                else
                {
                    Streams = reader.ReadAssetArray <StreamInfo>();
                }
            }

            Data = reader.ReadByteArray();
            reader.AlignStream(AlignType.Align4);
        }
Exemplo n.º 10
0
        public void Read(AssetReader reader)
        {
            RootX.Read(reader);
            if (IsVector3(reader.Version))
            {
                LookAtPosition = reader.ReadAsset <Vector3f>();
            }
            else
            {
                LookAtPosition.Read(reader);
            }
            LookAtWeight.Read(reader);
            GoalArray = reader.ReadAssetArray <HumanGoal>();
            LeftHandPose.Read(reader);
            RightHandPose.Read(reader);
            DoFArray = reader.ReadSingleArray();

            if (HasTArray(reader.Version))
            {
                if (IsVector3(reader.Version))
                {
                    TDoFArray = reader.ReadVector3Array();
                }
                else
                {
                    TDoFArray = reader.ReadAssetArray <Vector4f>();
                }
            }
        }
Exemplo n.º 11
0
        public void CanSerializeTreeCollection()
        {
            var entity0 = new Entity(new VariableCollection());
            var entity1 = new Entity(new VariableCollection());
            var entity2 = new Entity(new VariableCollection());
            var entity3 = new Entity(new VariableCollection());

            entity1.Parent = entity0;
            entity2.Parent = entity0;
            entity3.Parent = entity1;

            entity0.AddComponent <FakeComp>();
            entity1.AddComponent <FakeComp>();
            entity1.AddComponent <FakeComp>();
            entity2.AddComponent <FakeComp>();
            entity3.AddComponent <FakeComp>();

            collection.Add(entity0);


            Stream stream = new MemoryStream();

            AssetWriter.WriteAsset(stream, collection, new TypeWriterFactory());
            stream.Position = 0;
            var collection2 = AssetReader.ReadAsset <EntityCollection>(stream, new TypeReaderFactory());
        }
        public void CanSerializeValidTypes([ValueSource("Values")] object value)
        {
            var stream = new System.IO.MemoryStream();

            AssetWriter.WriteAsset(stream, value, new TypeWriterFactory());
            stream.Position = 0;
            object result = AssetReader.ReadAsset <object>(stream, new TypeReaderFactory());

            Assert.AreEqual(value, result);
        }
Exemplo n.º 13
0
        public void Read(AssetReader reader)
        {
            GradientLayout layout = reader.Layout.Serialized.Gradient;

            if (layout.Version == 1)
            {
                Key0_32 = reader.ReadAsset <ColorRGBA32>();
                Key1_32 = reader.ReadAsset <ColorRGBA32>();
                Key2_32 = reader.ReadAsset <ColorRGBA32>();
                Key3_32 = reader.ReadAsset <ColorRGBA32>();
                Key4_32 = reader.ReadAsset <ColorRGBA32>();
                Key5_32 = reader.ReadAsset <ColorRGBA32>();
                Key6_32 = reader.ReadAsset <ColorRGBA32>();
                Key7_32 = reader.ReadAsset <ColorRGBA32>();
            }
            else
            {
                Key0.Read(reader);
                Key1.Read(reader);
                Key2.Read(reader);
                Key3.Read(reader);
                Key4.Read(reader);
                Key5.Read(reader);
                Key6.Read(reader);
                Key7.Read(reader);
            }

            Ctime0 = reader.ReadUInt16();
            Ctime1 = reader.ReadUInt16();
            Ctime2 = reader.ReadUInt16();
            Ctime3 = reader.ReadUInt16();
            Ctime4 = reader.ReadUInt16();
            Ctime5 = reader.ReadUInt16();
            Ctime6 = reader.ReadUInt16();
            Ctime7 = reader.ReadUInt16();
            Atime0 = reader.ReadUInt16();
            Atime1 = reader.ReadUInt16();
            Atime2 = reader.ReadUInt16();
            Atime3 = reader.ReadUInt16();
            Atime4 = reader.ReadUInt16();
            Atime5 = reader.ReadUInt16();
            Atime6 = reader.ReadUInt16();
            Atime7 = reader.ReadUInt16();
            if (layout.HasMode)
            {
                Mode = (GradientMode)reader.ReadInt32();
            }

            NumColorKeys = reader.ReadByte();
            NumAlphaKeys = reader.ReadByte();
            reader.AlignStream();
        }
        public void CanSerializeSignedBytes([Random(sbyte.MinValue, sbyte.MaxValue, 5)] int val)
        {
            this.writerProviderMock.Setup((w) => w.GetTypeWriter(typeof(sbyte))).Returns(new SignedByteWriter());
            this.readerProviderMock.Setup((w) => w.GetTypeReader(typeof(sbyte))).Returns(new SignedByteReader());

            AssetWriter.WriteAsset(this.stream, (sbyte)val, this.writerProviderMock.Object);
            this.stream.Position = 0;
            var result = AssetReader.ReadAsset <sbyte>(stream, this.readerProviderMock.Object);

            Assert.AreEqual((sbyte)val, result);
        }
        public void CanSerializeCharacters([Random(char.MinValue, char.MaxValue, 5)] int val)
        {
            this.writerProviderMock.Setup((w) => w.GetTypeWriter(typeof(char))).Returns(new CharacterWriter());
            this.readerProviderMock.Setup((w) => w.GetTypeReader(typeof(char))).Returns(new CharacterReader());

            AssetWriter.WriteAsset(this.stream, (char)val, this.writerProviderMock.Object);
            this.stream.Position = 0;
            var result = AssetReader.ReadAsset <char>(stream, this.readerProviderMock.Object);

            Assert.AreEqual((char)val, result);
        }
Exemplo n.º 16
0
 public void Read(AssetReader reader)
 {
     if (IsVector3(reader.Version))
     {
         T = reader.ReadAsset <Vector3f>();
     }
     else
     {
         T4.Read(reader);
     }
     Q.Read(reader);
     if (IsVector3(reader.Version))
     {
         S = reader.ReadAsset <Vector3f>();
     }
     else
     {
         S4.Read(reader);
     }
 }
Exemplo n.º 17
0
        public static Vector4f[] ReadVector3Array(this AssetReader reader)
        {
            int count = reader.ReadInt32();

            Vector4f[] array = new Vector4f[count];
            for (int i = 0; i < count; i++)
            {
                array[i] = reader.ReadAsset <Vector3f>();
            }
            return(array);
        }
        public void CanSerializeDoubles([Random(double.MinValue, double.MaxValue, 5)] double val)
        {
            this.writerProviderMock.Setup((w) => w.GetTypeWriter(typeof(double))).Returns(new DoubleWriter());
            this.readerProviderMock.Setup((w) => w.GetTypeReader(typeof(double))).Returns(new DoubleReader());


            AssetWriter.WriteAsset(this.stream, (double)val, this.writerProviderMock.Object);
            this.stream.Position = 0;
            var result = AssetReader.ReadAsset <double>(stream, this.readerProviderMock.Object);

            Assert.AreEqual((double)val, result);
        }
        public void CanSerializeUnsignedIntegers([Random(uint.MinValue, uint.MaxValue, 5)] double val)
        {
            this.writerProviderMock.Setup((w) => w.GetTypeWriter(typeof(uint))).Returns(new UInt32Writer());
            this.readerProviderMock.Setup((w) => w.GetTypeReader(typeof(uint))).Returns(new UInt32Reader());


            AssetWriter.WriteAsset(this.stream, (uint)val, this.writerProviderMock.Object);
            this.stream.Position = 0;
            var result = AssetReader.ReadAsset <uint>(stream, this.readerProviderMock.Object);

            Assert.AreEqual((uint)val, result);
        }
        public void CanSerializeSignedLongs([Random(long.MinValue, long.MaxValue, 5)] double val)
        {
            this.writerProviderMock.Setup((w) => w.GetTypeWriter(typeof(long))).Returns(new Int64Writer());
            this.readerProviderMock.Setup((w) => w.GetTypeReader(typeof(long))).Returns(new Int64Reader());


            AssetWriter.WriteAsset(this.stream, (long)val, this.writerProviderMock.Object);
            this.stream.Position = 0;
            var result = AssetReader.ReadAsset <long>(stream, this.readerProviderMock.Object);

            Assert.AreEqual((long)val, result);
        }
Exemplo n.º 21
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            if (IsReadSubEmitters(reader.Version))
            {
                m_subEmitters = reader.ReadAssetArray <SubEmitterData>();
            }
            else
            {
                List <SubEmitterData> subEmitters     = new List <SubEmitterData>();
                PPtr <ParticleSystem> subEmitterBirth = reader.ReadAsset <PPtr <ParticleSystem> >();
                if (!subEmitterBirth.IsNull)
                {
                    subEmitters.Add(new SubEmitterData(ParticleSystemSubEmitterType.Birth, subEmitterBirth));
                }
                if (IsReadSecond(reader.Version))
                {
                    PPtr <ParticleSystem> subEmitterBirth1 = reader.ReadAsset <PPtr <ParticleSystem> >();
                    if (!subEmitterBirth1.IsNull)
                    {
                        subEmitters.Add(new SubEmitterData(ParticleSystemSubEmitterType.Birth, subEmitterBirth1));
                    }
                }

                PPtr <ParticleSystem> subEmitterDeath = reader.ReadAsset <PPtr <ParticleSystem> >();
                if (!subEmitterDeath.IsNull)
                {
                    subEmitters.Add(new SubEmitterData(ParticleSystemSubEmitterType.Death, subEmitterDeath));
                }
                if (IsReadSecond(reader.Version))
                {
                    PPtr <ParticleSystem> subEmitterDeath1 = reader.ReadAsset <PPtr <ParticleSystem> >();
                    if (!subEmitterDeath1.IsNull)
                    {
                        subEmitters.Add(new SubEmitterData(ParticleSystemSubEmitterType.Death, subEmitterDeath1));
                    }
                }

                PPtr <ParticleSystem> subEmitterCollision = reader.ReadAsset <PPtr <ParticleSystem> >();
                if (!subEmitterCollision.IsNull)
                {
                    subEmitters.Add(new SubEmitterData(ParticleSystemSubEmitterType.Collision, subEmitterCollision));
                }
                if (IsReadSecond(reader.Version))
                {
                    PPtr <ParticleSystem> subEmitterCollision1 = reader.ReadAsset <PPtr <ParticleSystem> >();
                    if (!subEmitterCollision1.IsNull)
                    {
                        subEmitters.Add(new SubEmitterData(ParticleSystemSubEmitterType.Collision, subEmitterCollision1));
                    }
                }

                if (subEmitters.Count == 0)
                {
                    subEmitters.Add(new SubEmitterData(ParticleSystemSubEmitterType.Birth, default));
                }
                m_subEmitters = subEmitters.ToArray();
            }
        }
Exemplo n.º 22
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);
            ConnectedBody.Read(reader);
            Anchor = reader.ReadAsset <Vector3f>();
            Axis   = reader.ReadAsset <Vector3f>();
            AutoConfigureConnectedAnchor = reader.ReadBoolean();
            reader.AlignStream(AlignType.Align4);
            ConnectedAnchor = reader.ReadAsset <Vector3f>();

            UseSpring = reader.ReadBoolean();
            reader.AlignStream(AlignType.Align4);
            Spring   = reader.ReadAsset <JointSpring>();
            UseMotor = reader.ReadBoolean();
            reader.AlignStream(AlignType.Align4);
            Motor     = reader.ReadAsset <JointMotor>();
            UseLimits = reader.ReadBoolean();
            reader.AlignStream(AlignType.Align4);
            Limits = reader.ReadAsset <JointLimits>();

            BreakForce      = reader.ReadSingle();
            BreakTorque     = reader.ReadSingle();
            EnableCollision = reader.ReadBoolean();
            if (IsReadMassScale(reader.Version))
            {
                reader.AlignStream(AlignType.Align4);
                MassScale          = reader.ReadSingle();
                ConnectedMassScale = reader.ReadSingle();
            }
        }
Exemplo n.º 23
0
        public void Read(AssetReader reader)
        {
            int maxGradientPlacement = GetMaxGradientPlacement(reader.Version);

            if (maxGradientPlacement == 1)
            {
                MaxGradient.Read(reader);
                MinGradient.Read(reader);
                if (IsColor32(reader.Version))
                {
                    MinColor32 = reader.ReadAsset <ColorRGBA32>();
                    MaxColor32 = reader.ReadAsset <ColorRGBA32>();
                }
                else
                {
                    MinColor.Read(reader);
                    MaxColor.Read(reader);
                }
            }

            // Int16 before 5.6.0p4
            MinMaxState = (MinMaxGradientState)reader.ReadUInt16();
            reader.AlignStream();

            if (maxGradientPlacement != 1)
            {
                if (maxGradientPlacement == 2)
                {
                    MaxGradient.Read(reader);
                    MinGradient.Read(reader);
                }
                MinColor.Read(reader);
                MaxColor.Read(reader);
                if (maxGradientPlacement == 3)
                {
                    MaxGradient.Read(reader);
                    MinGradient.Read(reader);
                }
            }
        }
Exemplo n.º 24
0
        public void CanSerializeSimple()
        {
            this.entity.Name = "Daniel";
            this.entity.AddVar <string>("Bear", "Dancing in the forest of mordor is a weak cat!");

            Stream memstream = new MemoryStream();

            AssetWriter.WriteAsset(memstream, entity, new TypeWriterFactory());
            memstream.Position = 0;
            var entity2 = AssetReader.ReadAsset <Entity>(memstream, new TypeReaderFactory());

            Assert.AreEqual(entity.Name, entity2.Name);
            Assert.AreEqual(entity.GetVar <string>("Bear"), entity2.GetVar <string>("Bear"));
        }
Exemplo n.º 25
0
        private T LoadAssetAsset <T>(string filePath, string assetPath)
        {
            if (filePath != assetPath)
            {
                File.Copy(filePath, assetPath, true);
            }

            T result;

            using (Stream stream = new FileStream(assetPath, FileMode.Open))
            {
                result = AssetReader.ReadAsset <T>(stream, this.trfactory);
            }
            return(result);
        }
Exemplo n.º 26
0
 public void Read(AssetReader reader)
 {
     PreQ.Read(reader);
     PostQ.Read(reader);
     if (IsVector3(reader.Version))
     {
         Sgn = reader.ReadAsset <Vector3f>();
     }
     else
     {
         Sgn.Read(reader);
     }
     Limit.Read(reader);
     Length = reader.ReadSingle();
     Type   = reader.ReadUInt32();
 }
Exemplo n.º 27
0
        public override void Read(AssetReader reader)
        {
            PrefabInstanceLayout layout = reader.Layout.PrefabInstance;

            if (layout.IsModificationFormat)
            {
                ReadObject(reader);

                if (layout.HasRootGameObject && layout.IsRootGameObjectFirst)
                {
                    RootGameObject.Read(reader);
                }

                Modification.Read(reader);
                SourcePrefab.Read(reader);
                if (!layout.IsRootGameObjectFirst)
                {
                    RootGameObject.Read(reader);
                }
                if (layout.HasIsPrefabAsset)
                {
                    IsPrefabAsset = reader.ReadBoolean();
                }
                if (layout.HasIsExploded)
                {
                    IsExploded = reader.ReadBoolean();
                }
                reader.AlignStream();
            }
            else
            {
                LastMergeIdentifier.Read(reader);
                if (layout.HasLastTemplateIdentifier)
                {
                    LastTemplateIdentifier.Read(reader);
                }
                Objects        = reader.ReadAssetArray <PPtr <EditorExtension> >();
                Father         = reader.ReadAsset <PPtr <PrefabInstance> >();
                IsDataTemplate = reader.ReadBoolean();
                reader.AlignStream();

                base.Read(reader);
            }
        }
Exemplo n.º 28
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            if (HasDefaultReferences(reader.Version))
            {
                DefaultReferences = new Dictionary <string, PPtr <Object> >();
                DefaultReferences.Read(reader);
            }
            if (HasExecutionOrder(reader.Version))
            {
                ExecutionOrder = reader.ReadInt16();
                reader.AlignStream();

                Icon = reader.ReadAsset <PPtr <Texture2D> >();
            }

            PostRead(reader);
        }
Exemplo n.º 29
0
        public override void Read(AssetReader reader)
        {
            if (IsModificationsFormat(reader.Version))
            {
                ReadObject(reader);

                bool isRootGameObjectFirst = IsRootGameObjectFirst(reader.Version);
                if (isRootGameObjectFirst && IsRootGameObjectRelevant(reader.Flags))
                {
                    RootGameObject.Read(reader);
                }

                Modification.Read(reader);
                SourcePrefab.Read(reader);
                if (!isRootGameObjectFirst)
                {
                    RootGameObject.Read(reader);
                }
                if (IsPrefabAssetRelevant(reader.Version))
                {
                    IsPrefabAsset = reader.ReadBoolean();
                }
                if (IsExplodedRelevant(reader.Version))
                {
                    IsExploded = reader.ReadBoolean();
                }
                reader.AlignStream();
            }
            else
            {
                LastMergeIdentifier.Read(reader);
                if (HasLastTemplateIdentifier(reader.Version))
                {
                    LastTemplateIdentifier.Read(reader);
                }
                Objects        = reader.ReadAssetArray <PPtr <EditorExtension> >();
                Father         = reader.ReadAsset <PPtr <PrefabInstance> >();
                IsDataTemplate = reader.ReadBoolean();
                reader.AlignStream();

                base.Read(reader);
            }
        }
Exemplo n.º 30
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            if (IsReadEditorData(reader.Flags))
            {
                EditorData = reader.ReadAsset <SpriteAtlasEditorData>();
                MasterAtlas.Read(reader);
            }
            m_packedSprites            = reader.ReadAssetArray <PPtr <Sprite> >();
            m_packedSpriteNamesToIndex = reader.ReadStringArray();
            if (IsReadRenderDataMap(reader.Flags))
            {
                m_renderDataMap.Read(reader);
            }
            Tag       = reader.ReadString();
            IsVariant = reader.ReadBoolean();
            reader.AlignStream(AlignType.Align4);
        }