// Customize material
video::SMaterial &material = m_meshnode->getMaterial(0);
- material.setTexture(0, tsrc->getTexture(imagename));
+ material.setTexture(0, tsrc->getTextureForMesh(imagename));
material.TextureLayer[0].TextureWrapU = video::ETC_CLAMP_TO_EDGE;
material.TextureLayer[0].TextureWrapV = video::ETC_CLAMP_TO_EDGE;
material.MaterialType = m_material_type;
material.setFlag(video::EMF_USE_MIP_MAPS, false);
#endif
if (m_enable_shaders) {
- material.setTexture(2, tsrc->getShaderFlagsTexture(false, true, true));
+ material.setTexture(2, tsrc->getShaderFlagsTexture(false));
}
}
}
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;