diff options
author | MirceaKitsune <sonichedgehog_hyperblast00@yahoo.com> | 2012-10-23 20:03:06 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2012-11-25 18:14:14 +0200 |
commit | 0a020dbcc848ae2debec664846e08bd097d70320 (patch) | |
tree | 5c43fc7d023d002dc5fb637eea55022265bde0c8 /src/content_cao.cpp | |
parent | ac97a7f70eefd4b8065e006c634a0a5baf236b62 (diff) | |
download | hax-minetest-server-0a020dbcc848ae2debec664846e08bd097d70320.tar.gz hax-minetest-server-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.cpp | 20 |
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; |