Esempio n. 1
0
            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);
                }
            }
Esempio n. 2
0
        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());
        }