Пример #1
0
        public override YAMLNode ExportYAML(IExportContainer container)
        {
            YAMLMappingNode node = (YAMLMappingNode)base.ExportYAML(container);

            node.Add("mode", (int)Mode);
            if (IsReadTimeMode(container.ExportVersion))
            {
                node.Add("timeMode", (int)TimeMode);
                node.Add("fps", FPS);
            }
            node.Add("frameOverTime", FrameOverTime.ExportYAML(container));
            node.Add("startFrame", GetExportStartFrame(container.Version).ExportYAML(container));
            if (IsReadSpeedRange(container.ExportVersion))
            {
                node.Add("speedRange", SpeedRange.ExportYAML(container));
            }
            node.Add("tilesX", TilesX);
            node.Add("tilesY", TilesY);
            node.Add("animationType", (int)AnimationType);
            node.Add("rowIndex", RowIndex);
            node.Add("cycles", Cycles);
            node.Add("uvChannelMask", GetExportUvChannelMask(container.Version));
            node.Add("flipU", FlipU);
            node.Add("flipV", FlipV);
            node.Add("randomRow", RandomRow);
            node.Add("sprites", GetExportSprites(container.Version).ExportYAML(container));
            return(node);
        }
Пример #2
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            if (IsReadMode(reader.Version))
            {
                Mode = (ParticleSystemAnimationMode)reader.ReadInt32();
            }
            if (IsReadTimeMode(reader.Version))
            {
                TimeMode = (ParticleSystemAnimationTimeMode)reader.ReadInt32();
                FPS      = reader.ReadSingle();
            }
            FrameOverTime.Read(reader);
            if (IsReadStartFrame(reader.Version))
            {
                StartFrame.Read(reader);
            }
            if (IsReadSpeedRange(reader.Version))
            {
                SpeedRange.Read(reader);
            }
            TilesX        = reader.ReadInt32();
            TilesY        = reader.ReadInt32();
            AnimationType = (ParticleSystemAnimationType)reader.ReadInt32();
            RowIndex      = reader.ReadInt32();
            Cycles        = reader.ReadSingle();
            if (IsReadUvChannelMask(reader.Version))
            {
                UvChannelMask = reader.ReadInt32();
            }
            if (IsReadFlipU(reader.Version))
            {
                if (IsReadFlipUFirst(reader.Version))
                {
                    FlipU = reader.ReadSingle();
                    FlipV = reader.ReadSingle();
                }
            }
            RandomRow = reader.ReadBoolean();
            reader.AlignStream(AlignType.Align4);

            if (IsReadSprites(reader.Version))
            {
                m_sprites = reader.ReadArray <SpriteData>();
            }
            if (IsReadFlipU(reader.Version))
            {
                if (!IsReadFlipUFirst(reader.Version))
                {
                    FlipU = reader.ReadSingle();
                    FlipV = reader.ReadSingle();
                }
            }
        }
Пример #3
0
        public override YAMLNode ExportYAML(IExportContainer container)
        {
            YAMLMappingNode node = (YAMLMappingNode)base.ExportYAML(container);

            node.AddSerializedVersion(GetSerializedVersion(container.ExportVersion));
            node.Add(ModeName, (int)Mode);
            if (IsReadTimeMode(container.ExportVersion))
            {
                node.Add(TimeModeName, (int)TimeMode);
                node.Add(FpsName, FPS);
            }
            node.Add(FrameOverTimeName, FrameOverTime.ExportYAML(container));
            node.Add(StartFrameName, GetExportStartFrame(container.Version).ExportYAML(container));
            if (IsReadSpeedRange(container.ExportVersion))
            {
                node.Add(SpeedRangeName, SpeedRange.ExportYAML(container));
            }
            node.Add(TilesXName, TilesX);
            node.Add(TilesYName, TilesY);
            node.Add(AnimationTypeName, (int)AnimationType);
            node.Add(RowIndexName, RowIndex);
            node.Add(CyclesName, Cycles);
            node.Add(UvChannelMaskName, GetExportUvChannelMask(container.Version));
            node.Add(FlipUName, FlipU);
            node.Add(FlipVName, FlipV);
            if (IsReadRowMode(container.ExportVersion))
            {
                node.Add(RowModeName, (int)RowMode);
            }
            else
            {
                node.Add(RandomRowName, RandomRow);
            }
            node.Add(SpritesName, GetExportSprites(container.Version).ExportYAML(container));
            return(node);
        }
Пример #4
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            if (HasMode(reader.Version))
            {
                Mode = (ParticleSystemAnimationMode)reader.ReadInt32();
            }
            if (HasTimeMode(reader.Version))
            {
                TimeMode = (ParticleSystemAnimationTimeMode)reader.ReadInt32();
                FPS      = reader.ReadSingle();
            }
            FrameOverTime.Read(reader);
            if (HasStartFrame(reader.Version))
            {
                StartFrame.Read(reader);
            }
            if (HasSpeedRange(reader.Version))
            {
                SpeedRange.Read(reader);
            }
            TilesX        = reader.ReadInt32();
            TilesY        = reader.ReadInt32();
            AnimationType = (ParticleSystemAnimationType)reader.ReadInt32();
            RowIndex      = reader.ReadInt32();
            Cycles        = reader.ReadSingle();
            if (HasUvChannelMask(reader.Version))
            {
                UvChannelMask = reader.ReadInt32();
            }
            if (HasFlipU(reader.Version))
            {
                if (HasFlipUFirst(reader.Version))
                {
                    FlipU = reader.ReadSingle();
                    FlipV = reader.ReadSingle();
                }
            }
            if (HasRowMode(reader.Version))
            {
                RowMode = (ParticleSystemAnimationRowMode)reader.ReadInt32();
            }
            else
            {
                bool RandomRow = reader.ReadBoolean();
                RowMode = RandomRow ? ParticleSystemAnimationRowMode.Random : ParticleSystemAnimationRowMode.Custom;
                reader.AlignStream();
            }

            if (HasSprites(reader.Version))
            {
                Sprites = reader.ReadAssetArray <SpriteData>();
            }
            if (HasFlipU(reader.Version))
            {
                if (!HasFlipUFirst(reader.Version))
                {
                    FlipU = reader.ReadSingle();
                    FlipV = reader.ReadSingle();
                }
            }
        }