So, as a guy with protanomaly, I'm a bit wary of colours-only labeling
. But I'll get back to that.
I prefer the coloured icons (so 2, 3 and 4) over the black-and-white one, although that's very personal. Makes them feel more alive, from my perspective - especially if they match their in-game model. However, if the in-game models vary a lot in texture (crabs in different colours and such) then maybe the black/white option is more fitting.
I think 1 and 2 are too "busy", because they're a patchwork of colours, although that might also be a matter of being unsorted: 1 and 2 are not, 3 and 4 are.
That said, I don't like the external numbers of 3, and the border of 4 is a bit
too subtle for my tastes (colours also are harder to read for me with thin lines compared to opaque blocks).
Are all materials in one category "equal", or is there an implied hierarchy? For example, does one fish and one crab give the same amount of nutrition? Because if
not, maybe you could so something like option 4 with a number of coloured dots in the box to indicate how "nutricious" a food is? Apply to other types of material with similar logic: more dots = more "value", or more "rare", or higher "tier".
If you go with that, you can also have different shapes per type - so food could get round dots, materials get hexagons. That way the colour-blind can also read the material using shapes (and the non-colourblind benefit from this too).
Have you tried borderless icons? How does that fit into the overall look?