dirty hack for tinting block items

This commit is contained in:
Moritz Zwerger 2023-12-08 19:02:44 +01:00
parent 25a5becbbd
commit 5e1bdbff64
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
2 changed files with 13 additions and 3 deletions

View File

@ -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) {

View File

@ -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 {