public WaterfallSmokeEmitter(string prefabName, Transform parentTransform)
        {
            prefab = prefabName;
            parent = parentTransform;
            GameObject go = GameObject.Instantiate(WaterfallParticleLoader.GetParticles(prefabName), Vector3.zero, Quaternion.identity) as GameObject;

            emitter  = go.GetComponent <ParticleSystem>();
            renderer = go.GetComponent <ParticleSystemRenderer>();
            go.transform.SetParent(parentTransform);
            go.transform.localPosition = Vector3.zero;
            go.transform.localScale    = Vector3.one;
            go.transform.localRotation = Quaternion.identity;

            FloatingOrigin.RegisterParticleSystem(emitter);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Attaches the LaunchPadFX module and
        /// </summary>
        /// <param name="emitterTransformNames"></param>
        /// <param name="baseObject"></param>
        public void Setup(List <string> emitterTransformNames, GameObject baseObject, string smokeName)
        {
            InitializePSystems();
            List <ParticleSystem>     unityEmitters = new List <ParticleSystem>();
            List <KSPParticleEmitter> kspEmitters   = new List <KSPParticleEmitter>();

            totalFXField = typeof(LaunchPadFX).GetField("totalFX", BindingFlags.NonPublic | BindingFlags.Instance);

            foreach (string emName in emitterTransformNames)
            {
                foreach (Transform emTransform in baseObject.transform.FindAllRecursive(emName))
                {
                    if (particleSystems.ContainsKey(smokeName))
                    {
                        if (particleSystems[smokeName].pSystems != null)
                        {
                            foreach (ParticleSystem pSystem in particleSystems[smokeName].pSystems)
                            {
                                //Log.Normal("adding PSystem: " + pSystem.name);
                                ParticleSystem emPsystem = Instantiate(pSystem, emTransform.position, emTransform.rotation, emTransform);
                                emPsystem.gameObject.SetActive(true);
                                unityEmitters.Add(emPsystem);
                                FloatingOrigin.RegisterParticleSystem(emPsystem);
                            }
                        }
                        if (particleSystems[smokeName].kspEmitters != null)
                        {
                            foreach (KSPParticleEmitter pSystem in particleSystems[smokeName].kspEmitters)
                            {
                                //Log.Normal("adding PSystem: " + pSystem.name);
                                KSPParticleEmitter emPsystem = Instantiate(pSystem, emTransform.position, emTransform.rotation, emTransform);
                                emPsystem.gameObject.SetActive(true);
                                kspEmitters.Add(emPsystem);
                            }
                        }
                    }
                    else
                    {
                        Log.UserError("Cannot find a LaunchPad Smoke with name: " + smokeName);
                    }
                }
            }
            // assign the emitters to the underlying component
            ps    = unityEmitters.ToArray();
            kspPS = kspEmitters.ToArray();
        }
Exemplo n.º 3
0
        public void Setup(List <string> emitterTransformNames, GameObject baseObject)
        {
            GetSquadPsystem();

            List <ParticleSystem> emitters = new List <ParticleSystem>();

            foreach (string emName in emitterTransformNames)
            {
                foreach (Transform emTransform in baseObject.transform.FindAllRecursive(emName))
                {
                    //ParticleSystem emPsystem  = emTransform.gameObject.AddComponent<ParticleSystem>();
                    //ParticleSystemRenderer emPsystemRenderer = emTransform.gameObject.AddComponent<ParticleSystemRenderer>();
                    ParticleSystem         emPsystem         = Instantiate(pSystem, emTransform.position, emTransform.rotation, emTransform);
                    ParticleSystemRenderer emPsystemRenderer = Instantiate(pSystemRenderer, emTransform.position, emTransform.rotation, emTransform);

                    emitters.Add(emPsystem);
                    FloatingOrigin.RegisterParticleSystem(emPsystem);
                }
            }

            ps = emitters.ToArray();
        }
Exemplo n.º 4
0
 public static void Add(PersistentKSPShurikenEmitter pkpe)
 {
     persistentEmittersShuriken.Add(pkpe);
     FloatingOrigin.RegisterParticleSystem(pkpe.pe);
 }