Covers whose texture is greyscale and coloured at render time broke into
grey particles. A grass cover hit on the top face gave stone coloured
particles while its sides and bottom looked right, and a leaves cover was
wrong on every face. The cover itself rendered correctly, because
BlockMicroMaterial.renderMicroFace already feeds colorMultiplier to the
face renderer, but nothing carried that tint through to the particles.
Add getBreakingColour to IMicroMaterial, defaulting to no tint.
BlockMicroMaterial returns the block colour multiplier and
GrassMicroMaterial restricts it to the top face, since grass_side and
dirt are already coloured, matching the carve out in vanilla
EntityDiggingFX. JIconHitEffects gains matching getBreakingColour and
getBrokenColour defaults, IconHitEffects passes them to the colour aware
EntityDigIconFX overloads, and McBlockPart uses the colour multiplier of
the block it wraps.
Microblock carries the part level override rather than the
MicroblockClient trait. A new Scala trait member is abstract on the
compiled interface, so mixins built against older FMP would fail with
AbstractMethodError, which the frozen ReferenceScalaMicroblockTraits
fixture caught. A concrete method on the class is inherited by those
mixins instead, and still wins over the interface default.
Characterization expectations are updated for the added signatures and
for the hit effect evaluation order, which now reads the colour from the
material right after the icon for the same side.
Needs the CodeChickenCore build that adds the colour aware
EntityDigIconFX overloads.