diff --git a/src/main/java/thedarkcolour/exdeorum/compat/ClientXeiUtil.java b/src/main/java/thedarkcolour/exdeorum/compat/ClientXeiUtil.java index ee5e853f..c5f0df04 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/ClientXeiUtil.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/ClientXeiUtil.java @@ -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 diff --git a/src/main/java/thedarkcolour/exdeorum/material/AbstractMaterial.java b/src/main/java/thedarkcolour/exdeorum/material/AbstractMaterial.java index 7609c2b7..ea060133 100644 --- a/src/main/java/thedarkcolour/exdeorum/material/AbstractMaterial.java +++ b/src/main/java/thedarkcolour/exdeorum/material/AbstractMaterial.java @@ -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 getItemHolder() { + return this.item; + } + public Block getBlock() { return this.block.get(); } diff --git a/src/main/resources/assets/exdeorum/items/oak_barrel_composting.json b/src/main/resources/assets/exdeorum/items/oak_barrel_composting.json new file mode 100644 index 00000000..32ec84b3 --- /dev/null +++ b/src/main/resources/assets/exdeorum/items/oak_barrel_composting.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "exdeorum:item/oak_barrel_composting" + } +}