summaryrefslogtreecommitdiff
path: root/src/content_cao.cpp
diff options
context:
space:
mode:
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>2012-10-23 20:03:06 +0300
committerPerttu Ahola <celeron55@gmail.com>2012-11-25 18:14:14 +0200
commit0a020dbcc848ae2debec664846e08bd097d70320 (patch)
tree5c43fc7d023d002dc5fb637eea55022265bde0c8 /src/content_cao.cpp
parentac97a7f70eefd4b8065e006c634a0a5baf236b62 (diff)
downloadminetest-0a020dbcc848ae2debec664846e08bd097d70320.tar.gz
minetest-0a020dbcc848ae2debec664846e08bd097d70320.tar.bz2
minetest-0a020dbcc848ae2debec664846e08bd097d70320.zip
Properly read the mesh from LUA.
Players can now be set to meshes using the following test script: function switch_player_visual() prop = { mesh="player.obj", texture="player.png", visual="mesh", } for _, obj in pairs(minetest.get_connected_players()) do obj:set_properties(prop) end minetest.after(1.0, switch_player_visual) end minetest.after(1.0, switch_player_visual)
Diffstat (limited to 'src/content_cao.cpp')
-rw-r--r--src/content_cao.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/content_cao.cpp b/src/content_cao.cpp
index e177fa15c..985f3cbbd 100644
--- a/src/content_cao.cpp
+++ b/src/content_cao.cpp
@@ -802,14 +802,18 @@ public:
else if(m_prop.visual == "mesh"){
infostream<<"GenericCAO::addToScene(): mesh"<<std::endl;
scene::IAnimatedMesh *mesh = smgr->getMesh(m_prop.mesh.c_str());
- m_animated_meshnode = smgr->addAnimatedMeshSceneNode(mesh, NULL);
- mesh->drop();
-
- m_animated_meshnode->setScale(v3f(m_prop.visual_size.X,
- m_prop.visual_size.Y,
- m_prop.visual_size.X));
- u8 li = m_last_light;
- setMeshColor(m_animated_meshnode->getMesh(), video::SColor(255,li,li,li));
+ if(mesh)
+ {
+ m_animated_meshnode = smgr->addAnimatedMeshSceneNode(mesh, NULL);
+
+ m_animated_meshnode->setScale(v3f(m_prop.visual_size.X,
+ m_prop.visual_size.Y,
+ m_prop.visual_size.X));
+ u8 li = m_last_light;
+ setMeshColor(m_animated_meshnode->getMesh(), video::SColor(255,li,li,li));
+ }
+ else
+ errorstream<<"GenericCAO::addToScene(): Could not load mesh "<<m_prop.mesh<<std::endl;
}
else if(m_prop.visual == "wielditem"){
infostream<<"GenericCAO::addToScene(): node"<<std::endl;