I'm working on a voxel game, and I would like to add different properties to the voxels, which are visualised by an extra (transparent) diffuse texture on the voxel's default one.
Voxels could have multiple properties attached to them, and if they do have, their textures are combined. ( = all of the property textures are shown in some order)
no property: no extra texture, only the default
"voxel is damaged": crack texture is masked on the default one
"voxel has gems in itself": gem texture is masked on the default one
"voxel has gems" + "voxel is damaged" : crack texture > gem texture > default
How is this implementable in an efficient way?