Fix incorrect JEI compost barrel icon rendering

This commit is contained in:
thedarkcolour 2026-05-15 11:22:24 -07:00
parent 5c913be4b6
commit 65dd68fe6b
3 changed files with 18 additions and 6 deletions

View File

@ -1,8 +1,11 @@
package thedarkcolour.exdeorum.compat;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphicsExtractor;
import net.minecraft.client.renderer.RenderPipelines;
import net.minecraft.core.component.DataComponentPatch;
import net.minecraft.core.component.DataComponents;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.state.BlockState;
@ -13,7 +16,7 @@ import thedarkcolour.exdeorum.material.DefaultMaterials;
// client-only logic shared between JEI and EMI
public class ClientXeiUtil {
private static final ItemStack OAK_BARREL = new ItemStack(DefaultMaterials.OAK_BARREL.getItem());
private static final ItemStack OAK_BARREL_COMPOSTING = new ItemStack(DefaultMaterials.OAK_BARREL.getItemHolder(), 1, DataComponentPatch.builder().set(DataComponents.ITEM_MODEL, ExDeorum.loc("oak_barrel_composting")).build());
public static void renderBlock(GuiGraphicsExtractor guiGraphics, BlockState state, float x, float y, float z, float scale) {
var fluidState = state.getFluidState();
@ -35,15 +38,13 @@ public class ClientXeiUtil {
}
public static void renderAsterisk(GuiGraphicsExtractor graphics, int xOffset, int yOffset) {
var font = net.minecraft.client.Minecraft.getInstance().font;
var font = Minecraft.getInstance().font;
// 0xff5555 is Minecraft's red text color.
graphics.text(font, "*", xOffset + 19 - 2 - font.width("*"), yOffset + 12, 0xff5555);
graphics.text(font, "*", xOffset + 19 - 2 - font.width("*"), yOffset + 12, 0xffff5555);
}
public static void renderFilledCompostBarrel(GuiGraphicsExtractor guiGraphics, int xOffset, int yOffset) {
guiGraphics.fakeItem(OAK_BARREL, xOffset, yOffset);
var sprite = RenderUtil.getBlockSprite(ExDeorum.loc("block/compost_dirt"));
guiGraphics.blitSprite(RenderPipelines.GUI_TEXTURED, sprite, xOffset + 4, yOffset + 5, 8, 8);
guiGraphics.fakeItem(OAK_BARREL_COMPOSTING, xOffset, yOffset);
}
// Takes a decimal probability and returns a user-friendly percentage value

View File

@ -18,6 +18,7 @@
package thedarkcolour.exdeorum.material;
import net.minecraft.core.Holder;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.Identifier;
import net.minecraft.resources.ResourceKey;
@ -65,6 +66,10 @@ public abstract class AbstractMaterial implements ItemLike {
return this.item.get();
}
public Holder<Item> getItemHolder() {
return this.item;
}
public Block getBlock() {
return this.block.get();
}

View File

@ -0,0 +1,6 @@
{
"model": {
"type": "minecraft:model",
"model": "exdeorum:item/oak_barrel_composting"
}
}