public void AddDependent(MetaparticleEffect metaEffect) { bool add = false; if (metaEffect.ComponentName == this.OriginalName) { metaEffect.ComponentName = this.Handle.EffectName; add = true; } if (metaEffect.ComponentType == this.OriginalName) { metaEffect.ComponentType = this.Handle.EffectName; add = true; } if (add) { //this.Dependents.Add(metaEffect); } }
public static string[] GetSurfaceStrings(VisualEffectName handle, EffectResource resource) { byte pEffectType = (byte)VisualEffectType.Particle; byte mEffectType = (byte)VisualEffectType.Metaparticle; byte dEffectType = (byte)VisualEffectType.Distribute; EffectResource.EffectSection pEffects = FindEffectSection(VisualEffectType.Particle, resource); EffectResource.EffectSection mEffects = FindEffectSection(VisualEffectType.Metaparticle, resource); EffectResource.EffectSection dEffects = FindEffectSection(VisualEffectType.Distribute, resource); List <string> surfaceStrings = new List <string>(); DataList <Effect.Surface> surfaces; VisualEffect visualEffect = FindVisualEffect(handle, resource); VisualEffect.Description index; Effect.Surface surface; int i, j, count, indexCount = visualEffect.Descriptions.Count; for (i = 0; i < indexCount; i++) { index = visualEffect.Descriptions[i] as VisualEffect.Description; if (index.ComponentType == pEffectType) { ParticleEffect particle = pEffects.Items[index.ComponentIndex] as ParticleEffect; surfaces = particle.Surfaces; count = surfaces.Count; for (j = 0; j < count; j++) { surface = surfaces[j]; if (!string.IsNullOrEmpty(surface.String01)) { surfaceStrings.Add(string.Format("{0:X4}(P).Surfaces[{1}].String01:{2}", i, j, surface.String01)); } if (!string.IsNullOrEmpty(surface.String02)) { surfaceStrings.Add(string.Format("{0:X4}(P).Surfaces[{1}].String02:{2}", i, j, surface.String02)); } } } if (index.ComponentType == mEffectType) { MetaparticleEffect metaparticle = mEffects.Items[index.ComponentIndex] as MetaparticleEffect; surfaces = metaparticle.Surfaces; count = surfaces.Count; for (j = 0; j < count; j++) { surface = metaparticle.Surfaces[j]; if (!string.IsNullOrEmpty(surface.String01)) { surfaceStrings.Add(string.Format("{0:X4}(M).Surfaces[{1}].String01:{2}", i, j, surface.String01)); } if (!string.IsNullOrEmpty(surface.String02)) { surfaceStrings.Add(string.Format("{0:X4}(M).Surfaces[{1}].String02:{2}", i, j, surface.String02)); } } } if (index.ComponentType == dEffectType) { DistributeEffect distribute = dEffects.Items[index.ComponentIndex] as DistributeEffect; surfaces = distribute.Surfaces; count = surfaces.Count; for (j = 0; j < count; j++) { surface = surfaces[j]; if (!string.IsNullOrEmpty(surface.String01)) { surfaceStrings.Add(string.Format("{0:X4}(D).Surfaces[{1}].String01:{2}", i, j, surface.String01)); } if (!string.IsNullOrEmpty(surface.String02)) { surfaceStrings.Add(string.Format("{0:X4}(D).Surfaces[{1}].String02:{2}", i, j, surface.String02)); } } } } return(surfaceStrings.ToArray()); }