Beispiel #1
0
        public override void Read(EndianStream stream)
        {
            base.Read(stream);

            if (IsReadAnimationType)
            {
                AnimationType = (AnimationType)stream.ReadInt32();
            }
            else
            {
                Legacy = stream.ReadBoolean();
            }
            Compressed           = stream.ReadBoolean();
            UseHightQualityCurve = stream.ReadBoolean();
            stream.AlignStream(AlignType.Align4);

            m_rotationCurves           = stream.ReadArray(() => new QuaternionCurve(AssetsFile));
            m_compressedRotationCurves = stream.ReadArray <CompressedAnimationCurve>();

            if (Compressed)
            {
#warning TODO: decompress
                throw new NotImplementedException();
            }

            if (IsReadEulerCurves)
            {
                m_eulerCurves = stream.ReadArray(() => new Vector3Curve(AssetsFile));
            }

            m_positionCurves = stream.ReadArray(() => new Vector3Curve(AssetsFile));
            m_scaleCurves    = stream.ReadArray(() => new Vector3Curve(AssetsFile));
            m_floatCurves    = stream.ReadArray(() => new FloatCurve(AssetsFile));
            m_PPtrCurves     = stream.ReadArray(() => new PPtrCurve(AssetsFile));

            SampleRate = stream.ReadSingle();
            WrapMode   = stream.ReadInt32();

            Bounds.Read(stream);

            MuscleClipSize = stream.ReadUInt32();
            MuscleClip.Read(stream);
            ClipBindingConstant.Read(stream);

            m_events = stream.ReadArray(() => new AnimationEvent(AssetsFile));
            stream.AlignStream(AlignType.Align4);
        }
Beispiel #2
0
        public override void Read(AssetStream stream)
        {
            base.Read(stream);

            if (IsReadClassIDToTrack(stream.Version))
            {
                m_classIDToTrack = new Dictionary <int, PPtr <BaseAnimationTrack> >();
                m_classIDToTrack.Read(stream);
                m_childTracks = stream.ReadArray <ChildTrack>();
            }

            if (IsReadAnimationType(stream.Version))
            {
                AnimationType = (AnimationType)stream.ReadInt32();
            }
            if (IsReadLegacy(stream.Version))
            {
                Legacy = stream.ReadBoolean();
            }

            if (IsReadCompressed(stream.Version))
            {
                Compressed = stream.ReadBoolean();
            }
            if (IsReadUseHightQualityCurve(stream.Version))
            {
                UseHightQualityCurve = stream.ReadBoolean();
            }
            if (IsAlignCompressed(stream.Version))
            {
                stream.AlignStream(AlignType.Align4);
            }

            if (IsReadCurves(stream.Version))
            {
                m_rotationCurves = stream.ReadArray <QuaternionCurve>();
            }
            if (IsReadCompressedRotationCurves(stream.Version))
            {
                m_compressedRotationCurves = stream.ReadArray <CompressedAnimationCurve>();
            }
            if (IsReadEulerCurves(stream.Version))
            {
                m_eulerCurves = stream.ReadArray <Vector3Curve>();
            }
            if (IsReadCurves(stream.Version))
            {
                m_positionCurves = stream.ReadArray <Vector3Curve>();
                m_scaleCurves    = stream.ReadArray <Vector3Curve>();
                m_floatCurves    = stream.ReadArray <FloatCurve>();
            }
            if (IsReadPPtrCurves(stream.Version))
            {
                m_PPtrCurves = stream.ReadArray <PPtrCurve>();
            }

            if (IsReadSampleRate(stream.Version))
            {
                SampleRate = stream.ReadSingle();
            }

            if (IsReadWrapMode(stream.Version))
            {
                WrapMode = (WrapMode)stream.ReadInt32();
            }
            if (IsReadBounds(stream.Version))
            {
                Bounds.Read(stream);
            }
            if (IsReadMuscleClipSize(stream.Version))
            {
                MuscleClipSize = stream.ReadUInt32();
                MuscleClip.Read(stream);
            }
            if (IsReadClipBindingConstant(stream.Version))
            {
                ClipBindingConstant.Read(stream);
            }

            if (IsReadEvents(stream.Version))
            {
                m_events = stream.ReadArray <AnimationEvent>();
            }
            if (IsAlign(stream.Version))
            {
                stream.AlignStream(AlignType.Align4);
            }
        }