mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-13 16:45:20 +02: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:
@@ -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
|
||||
|
Reference in New Issue
Block a user