From 91bafceee6606fab79db1bde4cba01b84fed65c7 Mon Sep 17 00:00:00 2001 From: Sapier Date: Sat, 19 Dec 2015 04:43:59 +0100 Subject: Add support for using arbitrary meshes as items --- src/wieldmesh.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/wieldmesh.cpp') 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; -- cgit v1.2.3