private IReadOnlyList <ParticleSystemEmissionBurst> GetExportBursts(Version version) { if (IsReadBursts(version)) { return(Bursts); } else { ParticleSystemEmissionBurst[] bursts = new ParticleSystemEmissionBurst[4]; bursts[0] = new ParticleSystemEmissionBurst(Time0, Cnt0, IsReadCntMax(version) ? CntMax0 : Cnt0); bursts[1] = new ParticleSystemEmissionBurst(Time1, Cnt1, IsReadCntMax(version) ? CntMax1 : Cnt1); bursts[2] = new ParticleSystemEmissionBurst(Time2, Cnt2, IsReadCntMax(version) ? CntMax2 : Cnt2); bursts[3] = new ParticleSystemEmissionBurst(Time3, Cnt3, IsReadCntMax(version) ? CntMax3 : Cnt3); return(bursts); } }
public override YAMLNode ExportYAML(IAssetsExporter exporter) { #warning TODO: values acording to read version (current 2017.3.0f3) YAMLMappingNode node = (YAMLMappingNode)base.ExportYAML(exporter); node.AddSerializedVersion(GetSerializedVersion(exporter.Version)); node.Add("rateOverTime", RateOverTime.ExportYAML(exporter)); node.Add("rateOverDistance", RateOverDistance.ExportYAML(exporter)); node.Add("m_BurstCount", BurstCount); if (IsReadBursts(exporter.Version)) { node.Add("m_Bursts", Bursts.ExportYAML(exporter)); } else if (Config.IsExportTopmostSerializedVersion) { ParticleSystemEmissionBurst[] bursts = new ParticleSystemEmissionBurst[4]; bursts[0] = new ParticleSystemEmissionBurst(Time0, Cnt0, IsReadCntMax(exporter.Version) ? CntMax0 : Cnt0); bursts[1] = new ParticleSystemEmissionBurst(Time1, Cnt1, IsReadCntMax(exporter.Version) ? CntMax1 : Cnt1); bursts[2] = new ParticleSystemEmissionBurst(Time2, Cnt2, IsReadCntMax(exporter.Version) ? CntMax2 : Cnt2); bursts[3] = new ParticleSystemEmissionBurst(Time3, Cnt3, IsReadCntMax(exporter.Version) ? CntMax3 : Cnt3); node.Add("m_Bursts", bursts.ExportYAML(exporter)); } return(node); }
public override void Read(AssetReader reader) { base.Read(reader); if (IsReadType(reader.Version)) { EmissionType type = (EmissionType)reader.ReadInt32(); if (type == EmissionType.Time) { RateOverTime.Read(reader); RateOverDistance = new MinMaxCurve(0.0f); } else { RateOverTime = new MinMaxCurve(0.0f); RateOverDistance.Read(reader); } } else { RateOverTime.Read(reader); RateOverDistance.Read(reader); } if (IsReadCnt(reader.Version)) { int cnt0 = IsIntCount(reader.Version) ? reader.ReadInt32() : reader.ReadUInt16(); int cnt1 = IsIntCount(reader.Version) ? reader.ReadInt32() : reader.ReadUInt16(); int cnt2 = IsIntCount(reader.Version) ? reader.ReadInt32() : reader.ReadUInt16(); int cnt3 = IsIntCount(reader.Version) ? reader.ReadInt32() : reader.ReadUInt16(); int cntMax0 = cnt0; int cntMax1 = cnt1; int cntMax2 = cnt2; int cntMax3 = cnt3; if (IsReadCntMax(reader.Version)) { cntMax0 = IsIntCount(reader.Version) ? reader.ReadInt32() : reader.ReadUInt16(); cntMax1 = IsIntCount(reader.Version) ? reader.ReadInt32() : reader.ReadUInt16(); cntMax2 = IsIntCount(reader.Version) ? reader.ReadInt32() : reader.ReadUInt16(); cntMax3 = IsIntCount(reader.Version) ? reader.ReadInt32() : reader.ReadUInt16(); } float time0 = reader.ReadSingle(); float time1 = reader.ReadSingle(); float time2 = reader.ReadSingle(); float time3 = reader.ReadSingle(); BurstCount = IsIntCount(reader.Version) ? reader.ReadInt32() : reader.ReadByte(); reader.AlignStream(AlignType.Align4); m_bursts = new ParticleSystemEmissionBurst[BurstCount]; if (BurstCount > 0) { m_bursts[0] = new ParticleSystemEmissionBurst(time0, cnt0, cntMax0); if (BurstCount > 1) { m_bursts[1] = new ParticleSystemEmissionBurst(time1, cnt1, cntMax1); if (BurstCount > 2) { m_bursts[2] = new ParticleSystemEmissionBurst(time2, cnt2, cntMax2); if (BurstCount > 3) { m_bursts[3] = new ParticleSystemEmissionBurst(time3, cnt3, cntMax3); } } } } } else { BurstCount = reader.ReadInt32(); reader.AlignStream(AlignType.Align4); m_bursts = reader.ReadArray <ParticleSystemEmissionBurst>(); } }