summaryrefslogtreecommitdiff
path: root/src/particles.cpp
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-06-26 20:11:17 +0200
committerGitHub <noreply@github.com>2017-06-26 20:11:17 +0200
commitb3a36f7378ea0f299cfa36c81de42e00adb7292d (patch)
tree23d056b575ff0dba8cc759cc00f732099a1f3bce /src/particles.cpp
parenta8650e785df3f12efa5f8cd3c6a695fb9e22a598 (diff)
downloadminetest-b3a36f7378ea0f299cfa36c81de42e00adb7292d.tar.gz
minetest-b3a36f7378ea0f299cfa36c81de42e00adb7292d.tar.bz2
minetest-b3a36f7378ea0f299cfa36c81de42e00adb7292d.zip
Isolate irrlicht references and use a singleton (#6041)
* Add Device3D class which will contain IrrlichtDevice interface move getSupportedVideoDrivers to Device3D Add Device3D singleton & use it in various places Rename Device3D to Rendering engine & add helper functions to various device pointers More singleton work RenderingEngine owns draw_load_screen move draw functions to RenderingEngine Reduce IrrlichtDevice exposure and guienvironment RenderingEngine: Expose get_timer_time() to remove device from guiEngine Make irrlichtdevice & scene manager less exposed * Code style fixes * Move porting::getVideoDriverName, getVideoDriverFriendlyName, getDisplayDensity, getDisplaySize to RenderingEngine Fix XORG_USED macro -> RenderingEngine + create_engine_device from RenderingEngine constructor directly * enum paralax => enum parallax
Diffstat (limited to 'src/particles.cpp')
-rw-r--r--src/particles.cpp34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/particles.cpp b/src/particles.cpp
index a02c32f21..10b9811bb 100644
--- a/src/particles.cpp
+++ b/src/particles.cpp
@@ -21,6 +21,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "client.h"
#include "collision.h"
#include <stdlib.h>
+#include "client/renderingengine.h"
#include "util/numeric.h"
#include "light.h"
#include "environment.h"
@@ -42,7 +43,6 @@ v3f random_v3f(v3f min, v3f max)
Particle::Particle(
IGameDef *gamedef,
- scene::ISceneManager* smgr,
LocalPlayer *player,
ClientEnvironment *env,
v3f pos,
@@ -60,7 +60,8 @@ Particle::Particle(
u8 glow,
video::SColor color
):
- scene::ISceneNode(smgr->getRootSceneNode(), smgr)
+ scene::ISceneNode(RenderingEngine::get_scene_manager()->getRootSceneNode(),
+ RenderingEngine::get_scene_manager())
{
// Misc
m_gamedef = gamedef;
@@ -244,7 +245,7 @@ void Particle::updateVertices()
ParticleSpawner
*/
-ParticleSpawner::ParticleSpawner(IGameDef* gamedef, scene::ISceneManager *smgr, LocalPlayer *player,
+ParticleSpawner::ParticleSpawner(IGameDef *gamedef, LocalPlayer *player,
u16 amount, float time,
v3f minpos, v3f maxpos, v3f minvel, v3f maxvel, v3f minacc, v3f maxacc,
float minexptime, float maxexptime, float minsize, float maxsize,
@@ -255,7 +256,6 @@ ParticleSpawner::ParticleSpawner(IGameDef* gamedef, scene::ISceneManager *smgr,
m_particlemanager(p_manager)
{
m_gamedef = gamedef;
- m_smgr = smgr;
m_player = player;
m_amount = amount;
m_spawntime = time;
@@ -344,7 +344,6 @@ void ParticleSpawner::step(float dtime, ClientEnvironment* env)
Particle* toadd = new Particle(
m_gamedef,
- m_smgr,
m_player,
env,
pos,
@@ -405,7 +404,6 @@ void ParticleSpawner::step(float dtime, ClientEnvironment* env)
Particle* toadd = new Particle(
m_gamedef,
- m_smgr,
m_player,
env,
pos,
@@ -507,7 +505,7 @@ void ParticleManager::clearAll ()
}
void ParticleManager::handleParticleEvent(ClientEvent *event, Client *client,
- scene::ISceneManager* smgr, LocalPlayer *player)
+ LocalPlayer *player)
{
switch (event->type) {
case CE_DELETE_PARTICLESPAWNER: {
@@ -533,7 +531,7 @@ void ParticleManager::handleParticleEvent(ClientEvent *event, Client *client,
video::ITexture *texture =
client->tsrc()->getTextureForMesh(*(event->add_particlespawner.texture));
- ParticleSpawner* toadd = new ParticleSpawner(client, smgr, player,
+ ParticleSpawner *toadd = new ParticleSpawner(client, player,
event->add_particlespawner.amount,
event->add_particlespawner.spawntime,
*event->add_particlespawner.minpos,
@@ -578,7 +576,7 @@ void ParticleManager::handleParticleEvent(ClientEvent *event, Client *client,
video::ITexture *texture =
client->tsrc()->getTextureForMesh(*(event->spawn_particle.texture));
- Particle* toadd = new Particle(client, smgr, player, m_env,
+ Particle *toadd = new Particle(client, player, m_env,
*event->spawn_particle.pos,
*event->spawn_particle.vel,
*event->spawn_particle.acc,
@@ -607,25 +605,22 @@ void ParticleManager::handleParticleEvent(ClientEvent *event, Client *client,
}
void ParticleManager::addDiggingParticles(IGameDef* gamedef,
- scene::ISceneManager* smgr, LocalPlayer *player, v3s16 pos,
- const MapNode &n, const ContentFeatures &f)
+ LocalPlayer *player, v3s16 pos, const MapNode &n, const ContentFeatures &f)
{
- for (u16 j = 0; j < 32; j++) // set the amount of particles here
- {
- addNodeParticle(gamedef, smgr, player, pos, n, f);
+ // set the amount of particles here
+ for (u16 j = 0; j < 32; j++) {
+ addNodeParticle(gamedef, player, pos, n, f);
}
}
void ParticleManager::addPunchingParticles(IGameDef* gamedef,
- scene::ISceneManager* smgr, LocalPlayer *player, v3s16 pos,
- const MapNode &n, const ContentFeatures &f)
+ LocalPlayer *player, v3s16 pos, const MapNode &n, const ContentFeatures &f)
{
- addNodeParticle(gamedef, smgr, player, pos, n, f);
+ addNodeParticle(gamedef, player, pos, n, f);
}
void ParticleManager::addNodeParticle(IGameDef* gamedef,
- scene::ISceneManager* smgr, LocalPlayer *player, v3s16 pos,
- const MapNode &n, const ContentFeatures &f)
+ LocalPlayer *player, v3s16 pos, const MapNode &n, const ContentFeatures &f)
{
// Texture
u8 texid = myrand_range(0, 5);
@@ -667,7 +662,6 @@ void ParticleManager::addNodeParticle(IGameDef* gamedef,
Particle* toadd = new Particle(
gamedef,
- smgr,
player,
m_env,
particlepos,