diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintManager.kt index a1d4d8601..dca1d64cf 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintManager.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/TintManager.kt @@ -19,6 +19,8 @@ import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.data.container.stack.ItemStack import de.bixilon.minosoft.data.registries.blocks.state.BlockState import de.bixilon.minosoft.data.registries.fluid.Fluid +import de.bixilon.minosoft.data.registries.item.items.Item +import de.bixilon.minosoft.data.registries.item.items.pixlyzer.PixLyzerItem import de.bixilon.minosoft.data.text.formatting.color.RGBColor import de.bixilon.minosoft.data.text.formatting.color.RGBColor.Companion.asRGBColor import de.bixilon.minosoft.data.world.chunk.chunk.Chunk @@ -77,9 +79,17 @@ class TintManager(val connection: PlayConnection) { return provider.getFluidTint(fluid, biome, height, x, y, z) } + private fun Item.getTintProvider(): TintProvider? { + if (this is TintedBlock && tintProvider != null) return tintProvider + if (this::class.java == Item::class.java && this !is PixLyzerItem) return null + // TODO: dirty hack: get block + val block = connection.registries.block[identifier] ?: return null + if (block !is TintedBlock) return null + return block.tintProvider + } + fun getItemTint(stack: ItemStack): IntArray? { - if (stack.item.item !is TintedBlock) return null - val tintProvider = stack.item.item.tintProvider ?: return null + val tintProvider = stack.item.item.getTintProvider() ?: return null val tints = IntArray(if (tintProvider is MultiTintProvider) tintProvider.tints else 1) for (tintIndex in tints.indices) { diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/tints/grass/GrassTintCalculator.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/tints/grass/GrassTintCalculator.kt index 1a15d6b8f..ae50ee66d 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/tint/tints/grass/GrassTintCalculator.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/tint/tints/grass/GrassTintCalculator.kt @@ -58,7 +58,7 @@ class GrassTintCalculator : ColorMapTint(FILE) { } override fun getItemColor(stack: ItemStack, tintIndex: Int): Int { - return getColor(127, 255) // TODO: verify + return getColor(173, 50) // TODO: plains, verify } companion object {