]> git.lizzy.rs Git - minetest.git/blobdiff - src/content_cao.cpp
Use single box for halo mesh
[minetest.git] / src / content_cao.cpp
index bde0dd320889a3754650c4e4bbd1de42ab6d932a..c3247bd17036f3b1de63f712cb4382b9e35a39cb 100644 (file)
@@ -954,43 +954,15 @@ void GenericCAO::addToScene(scene::ISceneManager *smgr, ITextureSource *tsrc,
                        IItemDefManager *idef = m_gamedef->idef();
                        ItemStack item(m_prop.textures[0], 1, 0, "", idef);
 
-                       if (!item.getDefinition(idef).meshname.empty())
-                       {
-                               scene::IAnimatedMesh *mesh = m_gamedef->getMesh(item.getDefinition(idef).meshname);
-                               if(mesh)
-                               {
-                                       m_animated_meshnode = smgr->addAnimatedMeshSceneNode(mesh, NULL);
-
-                                       m_animated_meshnode->grab();
-                                       mesh->drop(); // The scene node took hold of it
-                                       m_animated_meshnode->animateJoints(); // Needed for some animations
-                                       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));
-
-                                       bool backface_culling = m_prop.backface_culling;
-                                       if (m_is_player)
-                                               backface_culling = false;
-
-                                       m_animated_meshnode->setMaterialFlag(video::EMF_LIGHTING, false);
-                                       m_animated_meshnode->setMaterialFlag(video::EMF_BILINEAR_FILTER, false);
-                                       m_animated_meshnode->setMaterialType(video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF);
-                                       m_animated_meshnode->setMaterialFlag(video::EMF_FOG_ENABLE, true);
-                                       m_animated_meshnode->setMaterialFlag(video::EMF_BACK_FACE_CULLING, backface_culling);
-                               }
-                       }
-                       else {
-                               m_wield_meshnode = new WieldMeshSceneNode(
-                                               smgr->getRootSceneNode(), smgr, -1);
-                               m_wield_meshnode->setItem(item, m_gamedef);
-                               m_wield_meshnode->setScale(v3f(m_prop.visual_size.X/2,
-                                               m_prop.visual_size.Y/2,
-                                               m_prop.visual_size.X/2));
-                               u8 li = m_last_light;
-                               m_wield_meshnode->setColor(video::SColor(255,li,li,li));
-                       }
+                       m_wield_meshnode = new WieldMeshSceneNode(
+                                       smgr->getRootSceneNode(), smgr, -1);
+                       m_wield_meshnode->setItem(item, m_gamedef);
+
+                       m_wield_meshnode->setScale(v3f(m_prop.visual_size.X/2,
+                                       m_prop.visual_size.Y/2,
+                                       m_prop.visual_size.X/2));
+                       u8 li = m_last_light;
+                       m_wield_meshnode->setColor(video::SColor(255,li,li,li));
                }
        } else {
                infostream<<"GenericCAO::addToScene(): \""<<m_prop.visual
@@ -1220,15 +1192,13 @@ void GenericCAO::step(float dtime, ClientEnvironment *env)
                        f32 pos_max_d = BS*0.125; // Distance per iteration
                        v3f p_pos = m_position;
                        v3f p_velocity = m_velocity;
-                       v3f p_acceleration = m_acceleration;
                        moveresult = collisionMoveSimple(env,env->getGameDef(),
                                        pos_max_d, box, m_prop.stepheight, dtime,
-                                       p_pos, p_velocity, p_acceleration,
+                                       &p_pos, &p_velocity, m_acceleration,
                                        this, m_prop.collideWithObjects);
                        // Apply results
                        m_position = p_pos;
                        m_velocity = p_velocity;
-                       m_acceleration = p_acceleration;
 
                        bool is_end_position = moveresult.collides;
                        pos_translator.update(m_position, is_end_position, dtime);
@@ -1430,21 +1400,6 @@ void GenericCAO::updateTextures(const std::string &mod)
                                m_animated_meshnode->getMaterial(i).SpecularColor = m_prop.colors[i];
                        }
                }
-               else if (m_prop.visual == "wielditem") {
-                       IItemDefManager *idef = m_gamedef->idef();
-                       ItemStack item(m_prop.textures[0], 1, 0, "", idef);
-
-                       if (!item.getDefinition(idef).meshname.empty()) {
-
-                               unsigned int materialcount = m_animated_meshnode->getMaterialCount();
-
-                               for (unsigned int i = 0; i < materialcount; i++) {
-                                       m_animated_meshnode->getMaterial(i)
-                                                       .setTexture(0, tsrc->getTexture(item
-                                                                       .getDefinition(idef).meshtexture));
-                               }
-                       }
-               }
        }
        if(m_meshnode)
        {