From 9dac96e115e5488dcd36f78ca19193352066f84b Mon Sep 17 00:00:00 2001 From: "val = int(1)" Date: Sun, 25 Feb 2024 01:17:05 +0100 Subject: [PATCH 1/2] Fixed invisible tank item model issue It happens when another mod wraps the tank model into another class (example: Continuity) --- .../lucaargolo/kibe/items/tank/TankBlockItemBakedModel.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/io/github/lucaargolo/kibe/items/tank/TankBlockItemBakedModel.kt b/src/main/kotlin/io/github/lucaargolo/kibe/items/tank/TankBlockItemBakedModel.kt index 0faf278..2c26816 100644 --- a/src/main/kotlin/io/github/lucaargolo/kibe/items/tank/TankBlockItemBakedModel.kt +++ b/src/main/kotlin/io/github/lucaargolo/kibe/items/tank/TankBlockItemBakedModel.kt @@ -9,6 +9,7 @@ import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel +import net.fabricmc.fabric.api.renderer.v1.model.WrapperBakedModel import net.fabricmc.fabric.api.renderer.v1.render.RenderContext import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant @@ -42,7 +43,10 @@ class TankBlockItemBakedModel: BakedModel, FabricBakedModel { override fun emitItemQuads(stack: ItemStack, randSupplier: Supplier, context: RenderContext) { val client = MinecraftClient.getInstance() - val tankBlockModel = client.bakedModelManager.getModel(ModelIdentifier(Identifier(MOD_ID, "tank"), "level=0")) + var tankBlockModel = client.bakedModelManager.getModel(ModelIdentifier(Identifier(MOD_ID, "tank"), "level=0")) + + while(tankBlockModel is WrapperBakedModel) + tankBlockModel = WrapperBakedModel.unwrap(tankBlockModel) (tankBlockModel as? TankCustomModel)?.emitBlockQuads(null, null, BlockPos.ORIGIN, randSupplier, context) From ec70a3553ed3fe3229bafd051e4938f06b54f0c0 Mon Sep 17 00:00:00 2001 From: "val = int(1)" Date: Sun, 25 Feb 2024 01:49:45 +0100 Subject: [PATCH 2/2] Fix NPE with the crosshair target w/ ImmersivePortals --- .../kibe/blocks/entangledchest/EntangledChestEntityRenderer.kt | 1 + .../kibe/blocks/entangledtank/EntangledTankEntityRenderer.kt | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/kotlin/io/github/lucaargolo/kibe/blocks/entangledchest/EntangledChestEntityRenderer.kt b/src/main/kotlin/io/github/lucaargolo/kibe/blocks/entangledchest/EntangledChestEntityRenderer.kt index 7d725ca..f914a63 100644 --- a/src/main/kotlin/io/github/lucaargolo/kibe/blocks/entangledchest/EntangledChestEntityRenderer.kt +++ b/src/main/kotlin/io/github/lucaargolo/kibe/blocks/entangledchest/EntangledChestEntityRenderer.kt @@ -160,6 +160,7 @@ class EntangledChestEntityRenderer(private val arg: BlockEntityRendererFactory.C matrices.translate(-0.5, 0.0, -0.5) val popup = if( + MinecraftClient.getInstance().crosshairTarget != null && MinecraftClient.getInstance().crosshairTarget!!.type == HitResult.Type.BLOCK && (MinecraftClient.getInstance().crosshairTarget!! as BlockHitResult).blockPos == entity.pos && MinecraftClient.getInstance().player!!.getStackInHand(Hand.MAIN_HAND).item is Rune diff --git a/src/main/kotlin/io/github/lucaargolo/kibe/blocks/entangledtank/EntangledTankEntityRenderer.kt b/src/main/kotlin/io/github/lucaargolo/kibe/blocks/entangledtank/EntangledTankEntityRenderer.kt index d1ef7a7..0a1d2e1 100644 --- a/src/main/kotlin/io/github/lucaargolo/kibe/blocks/entangledtank/EntangledTankEntityRenderer.kt +++ b/src/main/kotlin/io/github/lucaargolo/kibe/blocks/entangledtank/EntangledTankEntityRenderer.kt @@ -59,6 +59,7 @@ class EntangledTankEntityRenderer(private val arg: BlockEntityRendererFactory.Co bottomModel.render(matrices, chestConsumer, lightAbove, overlay) val popup = if( + MinecraftClient.getInstance().crosshairTarget != null && MinecraftClient.getInstance().crosshairTarget!!.type == HitResult.Type.BLOCK && (MinecraftClient.getInstance().crosshairTarget!! as BlockHitResult).blockPos == entity.pos && MinecraftClient.getInstance().player!!.getStackInHand(Hand.MAIN_HAND).item is Rune