MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / renderParticles

Method renderParticles

source/game/StarObject.cpp:1317–1343  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1315}
1316
1317void Object::renderParticles(RenderCallback* renderCallback) {
1318 if (!inWorld())
1319 return;
1320
1321 if (auto orientation = currentOrientation()) {
1322 if (m_emissionTimers.size() != orientation->particleEmitters.size())
1323 resetEmissionTimers();
1324
1325 for (size_t i = 0; i < orientation->particleEmitters.size(); i++) {
1326 auto& particleEmitter = orientation->particleEmitters.at(i);
1327
1328 if (particleEmitter.particleEmissionRate <= 0.0f)
1329 continue;
1330
1331 auto& timer = m_emissionTimers.at(i);
1332 if (timer.ready()) {
1333 auto particle = particleEmitter.particle;
1334 particle.applyVariance(particleEmitter.particleVariance);
1335 if (particleEmitter.placeInSpaces)
1336 particle.translate(Vec2F(Random::randFrom(orientation->spaces)) + Vec2F(0.5, 0.5));
1337 particle.translate(position());
1338 renderCallback->addParticle(std::move(particle));
1339 timer = GameTimer(1.0f / (particleEmitter.particleEmissionRate + Random::randf(-particleEmitter.particleEmissionRateVariance, particleEmitter.particleEmissionRateVariance)));
1340 }
1341 }
1342 }
1343}
1344
1345void Object::renderSounds(RenderCallback* renderCallback) {
1346 if (m_soundEffectEnabled.get()) {

Callers

nothing calls this directly

Calls 8

GameTimerClass · 0.85
randfFunction · 0.85
applyVarianceMethod · 0.80
addParticleMethod · 0.80
sizeMethod · 0.45
atMethod · 0.45
readyMethod · 0.45
translateMethod · 0.45

Tested by

no test coverage detected