diff options
author | Dániel Juhász <juhdanad@gmail.com> | 2017-03-10 18:25:58 +0100 |
---|---|---|
committer | Auke Kok <sofar@foo-projects.org> | 2017-04-08 18:39:15 -0700 |
commit | 58d83a7bb2f992194c3df304b1dcbb81f98f78c0 (patch) | |
tree | 4beedb69ac8b9b74352ef52c3a1d27004e77bc1d /src/wieldmesh.h | |
parent | d4e9dd4643607192f5adebeecda86f25074f02cd (diff) | |
download | hax-minetest-server-58d83a7bb2f992194c3df304b1dcbb81f98f78c0.tar.gz hax-minetest-server-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 '')
-rw-r--r-- | src/wieldmesh.h | 18 |
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 |