mirror of
https://github.com/luanti-org/luanti.git
synced 2025-07-22 17:18:39 +00:00
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.
This commit is contained in:
parent
d4e9dd4643
commit
58d83a7bb2
23 changed files with 308 additions and 139 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue