summaryrefslogtreecommitdiff
path: root/src/wieldmesh.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wieldmesh.cpp')
-rw-r--r--src/wieldmesh.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/wieldmesh.cpp b/src/wieldmesh.cpp
index a022754a6..77a5cf73a 100644
--- a/src/wieldmesh.cpp
+++ b/src/wieldmesh.cpp
@@ -386,6 +386,20 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, IGameDef *gamedef)
}
return;
}
+ else if (idef->getWieldMesh(def.name, gamedef) != 0) {
+ irr::scene::IMesh * mesh = idef->getWieldMesh(def.name, gamedef);
+ m_meshnode->setMesh(mesh);
+ u32 material_count = m_meshnode->getMaterialCount();
+ for (u32 i = 0; i < material_count; ++i) {
+ video::SMaterial &material = m_meshnode->getMaterial(i);
+ material.setFlag(video::EMF_BACK_FACE_CULLING, true);
+ material.setFlag(video::EMF_BILINEAR_FILTER, m_bilinear_filter);
+ material.setFlag(video::EMF_TRILINEAR_FILTER, m_trilinear_filter);
+ material.MaterialType = m_material_type;
+ material.setTexture(0, tsrc->getTexture(def.meshtexture));
+ }
+ return;
+ }
else if (def.inventory_image != "") {
setExtruded(def.inventory_image, def.wield_scale, tsrc, 1);
return;