@@ -24,7 +24,6 @@ with this program; if not, write to the Free Software Foundation, Inc.,
24
24
#include < IMeshManipulator.h>
25
25
#include < IAnimatedMeshSceneNode.h>
26
26
#include " client/client.h"
27
- #include " client/renderingengine.h"
28
27
#include " client/sound.h"
29
28
#include " client/tile.h"
30
29
#include " util/basic_macros.h"
@@ -189,7 +188,7 @@ class TestCAO : public ClientActiveObject
189
188
190
189
static ClientActiveObject* create (Client *client, ClientEnvironment *env);
191
190
192
- void addToScene (ITextureSource *tsrc);
191
+ void addToScene (ITextureSource *tsrc, irr::scene::ISceneManager *smgr );
193
192
void removeFromScene (bool permanent);
194
193
void updateLight (u32 day_night_ratio);
195
194
void updateNodePos ();
@@ -220,7 +219,7 @@ ClientActiveObject* TestCAO::create(Client *client, ClientEnvironment *env)
220
219
return new TestCAO (client, env);
221
220
}
222
221
223
- void TestCAO::addToScene (ITextureSource *tsrc)
222
+ void TestCAO::addToScene (ITextureSource *tsrc, irr::scene::ISceneManager *smgr )
224
223
{
225
224
if (m_node != NULL )
226
225
return ;
@@ -249,7 +248,7 @@ void TestCAO::addToScene(ITextureSource *tsrc)
249
248
// Add to mesh
250
249
mesh->addMeshBuffer (buf);
251
250
buf->drop ();
252
- m_node = RenderingEngine::get_scene_manager () ->addMeshSceneNode (mesh, NULL );
251
+ m_node = smgr ->addMeshSceneNode (mesh, NULL );
253
252
mesh->drop ();
254
253
updateNodePos ();
255
254
}
@@ -591,9 +590,9 @@ void GenericCAO::removeFromScene(bool permanent)
591
590
m_client->getMinimap ()->removeMarker (&m_marker);
592
591
}
593
592
594
- void GenericCAO::addToScene (ITextureSource *tsrc)
593
+ void GenericCAO::addToScene (ITextureSource *tsrc, irr::scene::ISceneManager *smgr )
595
594
{
596
- m_smgr = RenderingEngine::get_scene_manager () ;
595
+ m_smgr = smgr ;
597
596
598
597
if (getSceneNode () != NULL ) {
599
598
return ;
@@ -625,8 +624,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc)
625
624
}
626
625
627
626
auto grabMatrixNode = [this ] {
628
- m_matrixnode = RenderingEngine::get_scene_manager ()->
629
- addDummyTransformationSceneNode ();
627
+ m_matrixnode = m_smgr->addDummyTransformationSceneNode ();
630
628
m_matrixnode->grab ();
631
629
};
632
630
@@ -644,7 +642,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc)
644
642
645
643
if (m_prop.visual == " sprite" ) {
646
644
grabMatrixNode ();
647
- m_spritenode = RenderingEngine::get_scene_manager () ->addBillboardSceneNode (
645
+ m_spritenode = m_smgr ->addBillboardSceneNode (
648
646
m_matrixnode, v2f (1 , 1 ), v3f (0 ,0 ,0 ), -1 );
649
647
m_spritenode->grab ();
650
648
m_spritenode->setMaterialTexture (0 ,
@@ -729,8 +727,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc)
729
727
mesh->addMeshBuffer (buf);
730
728
buf->drop ();
731
729
}
732
- m_meshnode = RenderingEngine::get_scene_manager ()->
733
- addMeshSceneNode (mesh, m_matrixnode);
730
+ m_meshnode = m_smgr->addMeshSceneNode (mesh, m_matrixnode);
734
731
m_meshnode->grab ();
735
732
mesh->drop ();
736
733
// Set it to use the materials of the meshbuffers directly.
@@ -739,8 +736,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc)
739
736
} else if (m_prop.visual == " cube" ) {
740
737
grabMatrixNode ();
741
738
scene::IMesh *mesh = createCubeMesh (v3f (BS,BS,BS));
742
- m_meshnode = RenderingEngine::get_scene_manager ()->
743
- addMeshSceneNode (mesh, m_matrixnode);
739
+ m_meshnode = m_smgr->addMeshSceneNode (mesh, m_matrixnode);
744
740
m_meshnode->grab ();
745
741
mesh->drop ();
746
742
@@ -753,8 +749,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc)
753
749
grabMatrixNode ();
754
750
scene::IAnimatedMesh *mesh = m_client->getMesh (m_prop.mesh , true );
755
751
if (mesh) {
756
- m_animated_meshnode = RenderingEngine::get_scene_manager ()->
757
- addAnimatedMeshSceneNode (mesh, m_matrixnode);
752
+ m_animated_meshnode = m_smgr->addAnimatedMeshSceneNode (mesh, m_matrixnode);
758
753
m_animated_meshnode->grab ();
759
754
mesh->drop (); // The scene node took hold of it
760
755
@@ -795,8 +790,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc)
795
790
infostream << " serialized form: " << m_prop.wield_item << std::endl;
796
791
item.deSerialize (m_prop.wield_item , m_client->idef ());
797
792
}
798
- m_wield_meshnode = new WieldMeshSceneNode (
799
- RenderingEngine::get_scene_manager (), -1 );
793
+ m_wield_meshnode = new WieldMeshSceneNode (m_smgr, -1 );
800
794
m_wield_meshnode->setItem (item, m_client,
801
795
(m_prop.visual == " wielditem" ));
802
796
@@ -1074,7 +1068,7 @@ void GenericCAO::step(float dtime, ClientEnvironment *env)
1074
1068
}
1075
1069
1076
1070
removeFromScene (false );
1077
- addToScene (m_client->tsrc ());
1071
+ addToScene (m_client->tsrc (), m_smgr );
1078
1072
1079
1073
// Attachments, part 2: Now that the parent has been refreshed, put its attachments back
1080
1074
for (u16 cao_id : m_attachment_child_ids) {
0 commit comments