From 0362531a43c09fc3968095d49249bfb4c7b749df Mon Sep 17 00:00:00 2001 From: calmilamsy Date: Wed, 29 Jul 2026 19:20:02 +0100 Subject: [PATCH 1/3] Why --- .../api/client/model/item/ItemWithRenderer.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/model/item/ItemWithRenderer.java b/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/model/item/ItemWithRenderer.java index cdd519797..0222b9c45 100644 --- a/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/model/item/ItemWithRenderer.java +++ b/station-renderer-api-v0/src/main/java/net/modificationstation/stationapi/api/client/model/item/ItemWithRenderer.java @@ -4,15 +4,23 @@ import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.texture.TextureManager; import net.minecraft.item.ItemStack; +import org.lwjgl.opengl.GL11; -@Deprecated public interface ItemWithRenderer { - @Deprecated void renderItemOnGui(ItemRenderer itemRenderer, TextRenderer textRenderer, TextureManager textureManager, int itemId, int damage, int textureIndex, int x, int y); - @Deprecated default void renderItemOnGui(ItemRenderer itemRenderer, TextRenderer textRenderer, TextureManager textureManager, ItemStack stack, int x, int y) { renderItemOnGui(itemRenderer, textRenderer, textureManager, stack.itemId, stack.getDamage(), stack.getTextureId(), x, y); } + + default void renderItemInWorld(ItemRenderer itemRenderer, TextRenderer textRenderer, TextureManager textureManager, ItemStack stack, float brightness) { + GL11.glColor3f(brightness, brightness, brightness); + renderItemOnGui(itemRenderer, textRenderer, textureManager, stack, 0, 0); + } + + default void renderItemInHand(ItemRenderer itemRenderer, TextRenderer textRenderer, TextureManager textureManager, ItemStack stack, float brightness) { + GL11.glColor3f(brightness, brightness, brightness); + renderItemOnGui(itemRenderer, textRenderer, textureManager, stack, 0, 0); + } } From 7d7b1119133501fd2830ce44cfb7e13f544b7e44 Mon Sep 17 00:00:00 2001 From: calmilamsy Date: Wed, 29 Jul 2026 19:39:50 +0100 Subject: [PATCH 2/3] Actual implementation --- .../renderer/render/ArsenicItemRenderer.java | 11 +++++++- .../render/ArsenicOverlayRenderer.java | 26 +++++++++++++++++-- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicItemRenderer.java b/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicItemRenderer.java index 2f194e4f8..b0444f4b5 100644 --- a/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicItemRenderer.java +++ b/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicItemRenderer.java @@ -1,7 +1,9 @@ package net.modificationstation.stationapi.impl.client.arsenic.renderer.render; import lombok.val; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.block.BlockRenderManager; @@ -85,7 +87,14 @@ private void renderVanilla(ItemEntity item, float x, float y, float z, float del glTranslatef(var30, var31, var32); } - itemRendererAccessor.getBlockRenderer().render(block, var10.getDamage(), item.getBrightnessAtEyes(delta)); + if (item.stack.getItem() instanceof ItemWithRenderer renderer) { + //noinspection deprecation + Minecraft minecraft = (Minecraft) FabricLoader.getInstance().getGameInstance(); + renderer.renderItemInWorld(itemRenderer, minecraft.textRenderer, minecraft.textureManager, item.stack, item.getBrightnessAtEyes(delta)); + } + else { + itemRendererAccessor.getBlockRenderer().render(block, var10.getDamage(), item.getBrightnessAtEyes(delta)); + } glPopMatrix(); } } else { diff --git a/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicOverlayRenderer.java b/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicOverlayRenderer.java index 8e08779ea..a70b339f3 100644 --- a/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicOverlayRenderer.java +++ b/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicOverlayRenderer.java @@ -1,13 +1,17 @@ package net.modificationstation.stationapi.impl.client.arsenic.renderer.render; +import net.fabricmc.loader.api.FabricLoader; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.block.BlockRenderManager; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.render.entity.EntityRenderer; import net.minecraft.client.render.entity.PlayerEntityRenderer; import net.minecraft.client.render.item.HeldItemRenderer; +import net.minecraft.client.render.item.ItemRenderer; import net.minecraft.client.render.platform.Lighting; +import net.minecraft.entity.ItemEntity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.ClientPlayerEntity; import net.minecraft.item.Item; @@ -15,6 +19,7 @@ import net.minecraft.item.map.MapState; import net.minecraft.util.math.MathHelper; import net.modificationstation.stationapi.api.client.StationRenderAPI; +import net.modificationstation.stationapi.api.client.model.item.ItemWithRenderer; import net.modificationstation.stationapi.api.client.render.model.BakedModel; import net.modificationstation.stationapi.api.client.render.model.VanillaBakedModel; import net.modificationstation.stationapi.api.client.render.model.json.ModelTransformation; @@ -50,8 +55,17 @@ public void renderItem3D(LivingEntity entity, ItemStack item) { private void renderVanilla(LivingEntity entity, ItemStack item, SpriteAtlasTexture atlas) { Block block; - if (item.getItem() instanceof BlockItemForm blockItemForm && BlockRenderManager.isSideLit((block = blockItemForm.getBlock()).getRenderType())) - access.stationapi$getBlockRenderManager().render(block, item.getDamage(), entity.getBrightnessAtEyes(1.0F)); + if (item.getItem() instanceof BlockItemForm blockItemForm && BlockRenderManager.isSideLit((block = blockItemForm.getBlock()).getRenderType())) { + if (item.getItem() instanceof ItemWithRenderer renderer) { + //noinspection deprecation + Minecraft minecraft = (Minecraft) FabricLoader.getInstance().getGameInstance(); + ItemRenderer itemRenderer = (ItemRenderer) EntityRenderDispatcher.INSTANCE.get(ItemEntity.class); + renderer.renderItemInHand(itemRenderer, minecraft.textRenderer, minecraft.textureManager, item, entity.getBrightnessAtEyes(1f)); + } + else { + access.stationapi$getBlockRenderManager().render(block, item.getDamage(), entity.getBrightnessAtEyes(1.0F)); + } + } else { Tessellator var3 = Tessellator.INSTANCE; int var4 = entity.getItemStackTextureId(item); @@ -280,7 +294,15 @@ private void renderVanilla(float f, float var2, ClientPlayerEntity var3, ItemSta f4 = 0.4f; glScalef(f4, f4, f4); if (var5.getItem().isHandheldRod()) glRotatef(180.0f, 0.0f, 1.0f, 0.0f); + if (var5.getItem() instanceof ItemWithRenderer renderer) { + //noinspection deprecation + Minecraft minecraft = (Minecraft) FabricLoader.getInstance().getGameInstance(); + ItemRenderer itemRenderer = (ItemRenderer) EntityRenderDispatcher.INSTANCE.get(ItemEntity.class); + renderer.renderItemInHand(itemRenderer, minecraft.textRenderer, minecraft.textureManager, var5, var3.getBrightnessAtEyes(f)); + } + else { this.renderItem3D(var3, var5); + } glPopMatrix(); } From 65e7aafeb8cea87d4dd0ac1f7b778b1f559fbf14 Mon Sep 17 00:00:00 2001 From: mine_diver Date: Sun, 2 Aug 2026 00:21:47 +0500 Subject: [PATCH 3/3] Damn it cal --- .../client/arsenic/renderer/render/ArsenicOverlayRenderer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicOverlayRenderer.java b/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicOverlayRenderer.java index a70b339f3..3f36c02b4 100644 --- a/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicOverlayRenderer.java +++ b/station-renderer-arsenic/src/main/java/net/modificationstation/stationapi/impl/client/arsenic/renderer/render/ArsenicOverlayRenderer.java @@ -301,7 +301,7 @@ private void renderVanilla(float f, float var2, ClientPlayerEntity var3, ItemSta renderer.renderItemInHand(itemRenderer, minecraft.textRenderer, minecraft.textureManager, var5, var3.getBrightnessAtEyes(f)); } else { - this.renderItem3D(var3, var5); + this.renderItem3D(var3, var5); } glPopMatrix(); }