diff options
Diffstat (limited to 'src/wieldmesh.cpp')
-rw-r--r-- | src/wieldmesh.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/wieldmesh.cpp b/src/wieldmesh.cpp index dbec4a177..332c8ba22 100644 --- a/src/wieldmesh.cpp +++ b/src/wieldmesh.cpp @@ -146,10 +146,8 @@ public: // Destructor virtual ~ExtrusionMeshCache() { - for (std::map<int, scene::IMesh*>::iterator - it = m_extrusion_meshes.begin(); - it != m_extrusion_meshes.end(); ++it) { - it->second->drop(); + for (auto &extrusion_meshe : m_extrusion_meshes) { + extrusion_meshe.second->drop(); } m_cube->drop(); } @@ -309,14 +307,15 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client) m_base_color = idef->getItemstackColor(item, client); // If wield_image is defined, it overrides everything else - if (def.wield_image != "") { + if (!def.wield_image.empty()) { setExtruded(def.wield_image, def.wield_scale, tsrc, 1); - m_colors.push_back(ItemPartColor()); + m_colors.emplace_back(); return; } + // Handle nodes // See also CItemDefManager::createClientCached() - else if (def.type == ITEM_NODE) { + if (def.type == ITEM_NODE) { if (f.mesh_ptr[0]) { // e.g. mesh nodes and nodeboxes scene::SMesh *mesh = cloneMesh(f.mesh_ptr[0]); @@ -377,9 +376,9 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client) } return; } - else if (def.inventory_image != "") { + else if (!def.inventory_image.empty()) { setExtruded(def.inventory_image, def.wield_scale, tsrc, 1); - m_colors.push_back(ItemPartColor()); + m_colors.emplace_back(); return; } @@ -455,9 +454,9 @@ void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result) result->needs_shading = true; // If inventory_image is defined, it overrides everything else - if (def.inventory_image != "") { + if (!def.inventory_image.empty()) { mesh = getExtrudedMesh(tsrc, def.inventory_image); - result->buffer_colors.push_back(ItemPartColor()); + result->buffer_colors.emplace_back(); // Items with inventory images do not need shading result->needs_shading = false; } else if (def.type == ITEM_NODE) { @@ -560,7 +559,7 @@ scene::SMesh *getExtrudedMesh(ITextureSource *tsrc, const std::string &imagename } void postProcessNodeMesh(scene::SMesh *mesh, const ContentFeatures &f, - bool use_shaders, bool set_material, video::E_MATERIAL_TYPE *mattype, + bool use_shaders, bool set_material, const video::E_MATERIAL_TYPE *mattype, std::vector<ItemPartColor> *colors) { u32 mc = mesh->getMeshBufferCount(); |