mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
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
This commit is contained in:
parent
a8650e785d
commit
b3a36f7378
50 changed files with 1568 additions and 1567 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue