public virtual void OnDeserialize(BinaryReader stream, StringCacheTable cache_table)
        {
            var count = stream.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                var command = CommandDeserializtionFactory.Create(stream, cache_table);
                AddCommand(command);//todo: use AddCommandRange()
            }

            //ImageFilePath=stream.ReadString();
            ImageFilePath = cache_table[stream.ReadUInt32()];

            FromOsbFile.OnDeserialize(stream);
            FrameStartTime.OnDeserialize(stream);
            FrameEndTime.OnDeserialize(stream);
            layer = (Layer)stream.ReadByte();
            Z.OnDeserialize(stream);

            Postion.OnDeserialize(stream, cache_table);
            Scale.OnDeserialize(stream, cache_table);
            Color.OnDeserialize(stream, cache_table);
            OriginOffset.OnDeserialize(stream, cache_table);
            Rotate.OnDeserialize(stream);

            IsAdditive.OnDeserialize(stream);
            IsHorizonFlip.OnDeserialize(stream);
            IsVerticalFlip.OnDeserialize(stream);

            FileLine.OnDeserialize(stream);

            //try to rebuild base trasform reset action
            var pos      = Postion;
            var start    = FrameStartTime;
            var end      = FrameEndTime;
            var color    = Color;
            var scale    = Scale;
            var additive = IsAdditive;
            var rotate   = Rotate;
            var horizon  = IsHorizonFlip;
            var vertical = IsVerticalFlip;

            BaseTransformResetAction += (StoryboardObject obj) =>
            {
                obj.Postion        = pos;
                obj.FrameStartTime = start;
                obj.FrameEndTime   = end;
                obj.Color          = color;
                obj.Scale          = scale;
                obj.IsAdditive     = additive;
                obj.IsHorizonFlip  = horizon;
                obj.IsVerticalFlip = vertical;
                obj.Rotate         = rotate;
            };
        }
Exemple #2
0
        public override void OnDeserialize(BinaryReader stream, StringCacheTable cache)
        {
            base.OnDeserialize(stream, cache);

            var count = stream.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                var command = CommandDeserializtionFactory.Create(stream, cache);
                AddSubCommand(command);
            }
        }
        public void CommandTest()
        {
            var command = new FadeCommand();

            command.StartTime  = 1000;
            command.EndTime    = 2000;
            command.StartValue = 1;
            command.EndValue   = 0;
            command.Easing     = EasingTypes.None;

            MemoryStream stream = new MemoryStream();

            StringCacheTable cache = new StringCacheTable();

            using (var writer = new BinaryWriter(stream))
            {
                command.OnSerialize(writer, cache);
            }

            var bytes = stream.ToArray();

            stream.Dispose();

            stream = new MemoryStream(bytes);

            using (var reader = new BinaryReader(stream))
            {
                var fade = CommandDeserializtionFactory.Create(reader, cache);

                Assert.AreEqual(command.StartTime, fade.StartTime);
                Assert.AreEqual(command.EndTime, fade.EndTime);
                Assert.AreEqual(command.Event, fade.Event);

                var x = fade as FadeCommand;
                Assert.IsNotNull(x);

                Assert.AreEqual(command.StartValue, x.StartValue);
                Assert.AreEqual(command.EndValue, x.EndValue);
                Assert.AreEqual(command.Easing, x.Easing);
            }
        }