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(); }
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(); }
public void HyperSpaceParticleStop() { if (_effect == null) { return; } _effect.Stop(); _effect.Close(false, true); _effect = null; }