summaryrefslogtreecommitdiff
path: root/src/wieldmesh.h
diff options
context:
space:
mode:
authorDániel Juhász <juhdanad@gmail.com>2017-03-10 18:25:58 +0100
committerAuke Kok <sofar@foo-projects.org>2017-04-08 18:39:15 -0700
commit58d83a7bb2f992194c3df304b1dcbb81f98f78c0 (patch)
tree4beedb69ac8b9b74352ef52c3a1d27004e77bc1d /src/wieldmesh.h
parentd4e9dd4643607192f5adebeecda86f25074f02cd (diff)
downloadminetest-58d83a7bb2f992194c3df304b1dcbb81f98f78c0.tar.gz
minetest-58d83a7bb2f992194c3df304b1dcbb81f98f78c0.tar.bz2
minetest-58d83a7bb2f992194c3df304b1dcbb81f98f78c0.zip
Hardware coloring for itemstacks
Adds the possibility to colorize item stacks based on their metadata. In the item/node definition you can specify palette (an image file) and color (fallback color if the item has no palette or metadata). Then you can add palette_index to the metadata. Dropped itemstacks with different colors do not merge.
Diffstat (limited to 'src/wieldmesh.h')
-rw-r--r--src/wieldmesh.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/wieldmesh.h b/src/wieldmesh.h
index 200587058..94edb1de6 100644
--- a/src/wieldmesh.h
+++ b/src/wieldmesh.h
@@ -28,6 +28,22 @@ class Client;
class ITextureSource;
struct TileSpec;
+struct ItemMesh
+{
+ scene::IMesh* mesh;
+ /*!
+ * Stores the color of each mesh buffer.
+ * If the boolean is true, the color is fixed, else
+ * palettes can modify it.
+ */
+ std::vector<std::pair<bool, video::SColor> > buffer_colors;
+
+ ItemMesh():
+ mesh(NULL),
+ buffer_colors()
+ {}
+};
+
/*
Wield item scene node, renders the wield mesh of some item
*/
@@ -79,7 +95,7 @@ private:
aabb3f m_bounding_box;
};
-scene::IMesh *getItemMesh(Client *client, const ItemStack &item);
+void getItemMesh(Client *client, const ItemStack &item, ItemMesh *result);
scene::IMesh *getExtrudedMesh(ITextureSource *tsrc, const std::string &imagename);
#endif