From a833bee9edaeb6df69d1e510759a7b33915a41e0 Mon Sep 17 00:00:00 2001 From: Alex <24834740+GreenXenith@users.noreply.github.com> Date: Mon, 10 Dec 2018 18:57:04 -0800 Subject: Add object visual type 'item' (#7870) --- src/client/content_cao.cpp | 5 +++-- src/client/wieldmesh.cpp | 6 +++--- src/client/wieldmesh.h | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index db59ae5c5..e2517f7ca 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -662,7 +662,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc) } else errorstream<<"GenericCAO::addToScene(): Could not load mesh "<setItem(item, m_client); + m_wield_meshnode->setItem(item, m_client, + (m_prop.visual == "wielditem")); m_wield_meshnode->setScale( v3f(m_prop.visual_size.X / 2, m_prop.visual_size.Y / 2, diff --git a/src/client/wieldmesh.cpp b/src/client/wieldmesh.cpp index 7791a5a92..4c25fafb1 100644 --- a/src/client/wieldmesh.cpp +++ b/src/client/wieldmesh.cpp @@ -333,7 +333,7 @@ scene::SMesh *createSpecialNodeMesh(Client *client, content_t id, std::vectorgetTextureSource(); IItemDefManager *idef = client->getItemDefManager(); @@ -354,8 +354,8 @@ void WieldMeshSceneNode::setItem(const ItemStack &item, Client *client) m_colors.clear(); m_base_color = idef->getItemstackColor(item, client); - // If wield_image is defined, it overrides everything else - if (!def.wield_image.empty()) { + // If wield_image needs to be checked and is defined, it overrides everything else + if (!def.wield_image.empty() && check_wield_image) { setExtruded(def.wield_image, def.wield_overlay, def.wield_scale, tsrc, 1); m_colors.emplace_back(); diff --git a/src/client/wieldmesh.h b/src/client/wieldmesh.h index 0908d3ac2..7c80a811b 100644 --- a/src/client/wieldmesh.h +++ b/src/client/wieldmesh.h @@ -80,7 +80,8 @@ public: void setCube(const ContentFeatures &f, v3f wield_scale); void setExtruded(const std::string &imagename, const std::string &overlay_image, v3f wield_scale, ITextureSource *tsrc, u8 num_frames); - void setItem(const ItemStack &item, Client *client); + void setItem(const ItemStack &item, Client *client, + bool check_wield_image = true); // Sets the vertex color of the wield mesh. // Must only be used if the constructor was called with lighting = false -- cgit v1.2.3