Esempio n. 1
0
            private void DestroyMeteor()
            {
                MyParticleEffect impactParticle;

                if (InParticleVisibleRange && MyParticlesManager.TryCreateParticleEffect((int)MyParticleEffectsIDEnum.MeteorAsteroidCollision, out impactParticle))
                {
                    impactParticle.WorldMatrix = Entity.WorldMatrix;
                    impactParticle.UserScale   = MyUtils.GetRandomFloat(1.5f, 2);
                }
                if (m_dustEffect != null)
                {
                    m_dustEffect.Stop();
                    if (m_particleEffectId == (int)MyParticleEffectsIDEnum.MeteorParticle)
                    {
                        m_dustEffect.Close(false);
                        if (InParticleVisibleRange && m_particleVectorUp != Vector3.Zero && MyParticlesManager.TryCreateParticleEffect((int)MyParticleEffectsIDEnum.MeteorParticleAfterHit, out m_dustEffect))
                        {
                            MatrixD m = MatrixD.CreateWorld(Entity.WorldMatrix.Translation, m_particleVectorForward, m_particleVectorUp);
                            m_dustEffect.WorldMatrix = m;
                        }
                    }
                    m_dustEffect = null;
                }
                PlayExplosionSound();
            }
Esempio n. 2
0
            private void DestroyMeteor()
            {
                MyParticleEffect impactParticle;

                if (InParticleVisibleRange && MyParticlesManager.TryCreateParticleEffect("Meteorit_Smoke1AfterHit", out impactParticle))
                {
                    impactParticle.WorldMatrix = Entity.WorldMatrix;
                    impactParticle.UserScale   = 5 * MyUtils.GetRandomFloat(0.8f, 1.2f);
                }
                if (m_dustEffect != null)
                {
                    m_dustEffect.Stop();
                    if (MySession.Static.EnvironmentHostility != MyEnvironmentHostilityEnum.CATACLYSM_UNREAL)
                    {
                        m_dustEffect.Close(false);
                        if (InParticleVisibleRange && m_particleVectorUp != Vector3.Zero && MyParticlesManager.TryCreateParticleEffect("Meteorit_Smoke1AfterHit", out m_dustEffect))
                        {
                            MatrixD m = MatrixD.CreateWorld(Entity.WorldMatrix.Translation, m_particleVectorForward, m_particleVectorUp);
                            m_dustEffect.WorldMatrix = m;
                        }
                    }
                    m_dustEffect = null;
                }
                if (m_dustEffect != null)
                {
                    m_dustEffect.Stop();
                    m_dustEffect = null;
                }
                PlayExplosionSound();
            }
Esempio n. 3
0
 public void HyperSpaceParticleStop()
 {
     if (_effect == null)
     {
         return;
     }
     _effect.Stop();
     _effect.Close(false, true);
     _effect = null;
 }