Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.16.5 - SOLVED] Render string over an ItemStack


Recommended Posts

Posted (edited)

I want to draw string over an itemStack, but string is rendering below an itemStack

Here's my code:

 

// i = index (0-9)

// j = rows

int count = listStack.get(i + (j * 9)).getCount();

Minecraft.getInstance().getItemRenderer().renderItemAndEffectIntoGUI(listStack.get(i + (j * 9)), startPointX + (i * 18), startPointY + (j * 18));

if (count > 1) { this.font.drawStringWithShadow(matrixStack, String.valueOf(count), (float) (startPointX + (i * 18) + 16) - this.font.getStringWidth(String.valueOf(count)), (float) (startPointY + (j * 18) + 10), FontColor.WHITE.getColorCodes()); }

 

 

string_render_forge.PNG

Edited by Th1Minecraft
Link to post
Share on other sites

This code is in MixinContainerScreen and I've tried for RenderGameOverlayEvent.Pre but it is just the same

 

private final ContainerScreen that = (ContainerScreen) (Object) this;

 

Method RenderExtraContainer:

private void renderExtraContainer(MatrixStack matrixStack, Slot slot) throws CommandSyntaxException { if (!slot.getStack().isEmpty()) { RenderSystem.disableDepthTest(); RenderSystem.enableBlend(); RenderSystem.enableAlphaTest(); RenderUtils.bindTexture(EXTRA_CONTAINER); AbstractGui.blit(matrixStack, this.that.getGuiLeft() + this.that.getXSize() + 10, this.that.getGuiTop(), 0.0F, 0.0F, 176, 80, 176, 80); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.blendFunc(770, 771); GL11.glTexEnvi(8960, 8704, 3042); GL11.glTexEnvi(8960, 8704, 8448); RenderSystem.enableDepthTest(); RenderSystem.disableAlphaTest(); RenderSystem.enableRescaleNormal(); this.font.drawString(matrixStack, slot.getStack().getDisplayName().getString(), this.that.getGuiLeft() + this.that.getXSize() + 18, this.that.getGuiTop() + 6, FontColor.GRAY.getColorCodes()); ArrayList<ItemStack> listStack = this.getInventoryFromShulkerBoxItem(slot.getStack()); assert this.minecraft != null; ItemRenderer itemRenderer = this.minecraft.getItemRenderer(); int startPointX = this.that.getGuiLeft() + this.that.getXSize() + 18; int startPointY = this.that.getGuiTop() + 18; if (!listStack.isEmpty()) { for (int i = 0; i < 9; i++) { for (int j = 0; j < 3; j++) { if ((i + j * 9) <= listStack.size() - 1) { int count = listStack.get(i + (j * 9)).getCount(); matrixStack.push(); itemRenderer.renderItemAndEffectIntoGUI(listStack.get(i + (j * 9)), startPointX + (i * 18), startPointY + (j * 18)); matrixStack.pop(); if (count > 1) { this.font.drawStringWithShadow(matrixStack, String.valueOf(count), (float) (startPointX + (i * 18) + 16) - this.font.getStringWidth(String.valueOf(count)), (float) (startPointY + (j * 18) + 10), FontColor.WHITE.getColorCodes()); } } } } } } }

mixincontainer_bs0.PNG

Link to post
Share on other sites
  • Th1Minecraft changed the title to [1.16.5 - SOLVED] Render string over an ItemStack

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • setBlockAndUpdate uses flag 3, but I've tried 1, 2, and 4 with no success. Is there any documentation on what these flags do? I found this thread but since I'm using the mojang mappings I don't think I have the same javadocs.   
    • Ok i can't make it work. It gives me this error "java.lang.RuntimeException: Attempted to load class net/minecraft/client/renderer/tileentity/ItemStackTileEntityRenderer for invalid dist DEDICATED_SERVER" I try to move the chestRenderer() methods to a separate class but it keeps to give me this error. I don't know how to separate the Supplier<Callable<ItemStackTileEntityRenderer>> renderMethod parameter to the server registration. I tryied to make a class for only the items, removing it from the Blocks class:   public class Items { public static final DeferredRegister<Item> ITEMS; private static final RegistryObject<Item> MINI_CHEST; private static final RegistryObject<Item> SMELTING_CHEST; private static final RegistryObject<Item> INVISIBLE_CHEST; private static final RegistryObject<Item> TRAP_CHEST; private static final RegistryObject<Item> PITFALL_CHEST; private static final RegistryObject<Item> DRILL_CHEST; private static final RegistryObject<Item> TELEPORT_CHEST; private static final RegistryObject<Item> LOOT_CHEST; private static final RegistryObject<Item> MONSTER_CHEST; private static final RegistryObject<Item> POCKET_DIMENSION_CHEST; private static final RegistryObject<Item> COLOSSAL_CHEST; static { ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TenChest.MODID); MINI_CHEST = register("mini_chest", Blocks.MINI_CHEST, ItemBlockRenderer::baseChestRenderer); SMELTING_CHEST = register("smelting_chest", Blocks.SMELTING_CHEST, ItemBlockRenderer::smeltingChestRenderer); INVISIBLE_CHEST = register("invisible_chest", Blocks.INVISIBLE_CHEST, ItemBlockRenderer::baseChestRenderer); TRAP_CHEST = register("trap_chest", Blocks.TRAP_CHEST, ItemBlockRenderer::baseChestRenderer); PITFALL_CHEST = register("pitfall_chest", Blocks.PITFALL_CHEST, ItemBlockRenderer::baseChestRenderer); DRILL_CHEST = register("drill_chest", Blocks.DRILL_CHEST, ItemBlockRenderer::baseChestRenderer); TELEPORT_CHEST = register("teleport_chest", Blocks.TELEPORT_CHEST, ItemBlockRenderer::teleportChestRenderer); LOOT_CHEST = register("loot_chest", Blocks.LOOT_CHEST, ItemBlockRenderer::lootChestRenderer); MONSTER_CHEST = register("monster_chest", Blocks.MONSTER_CHEST, ItemBlockRenderer::baseChestRenderer); POCKET_DIMENSION_CHEST = register("pocket_dimension_chest", Blocks.POCKET_DIMENSION_CHEST, ItemBlockRenderer::pocketDimensionChestRenderer); COLOSSAL_CHEST = register("colossal_chest", Blocks.COLOSSAL_CHEST, ItemBlockRenderer::baseChestRenderer); } private static <T extends Item> RegistryObject<T> register(String name, RegistryObject<Block> block, Supplier<Callable<ItemStackTileEntityRenderer>> renderMethod) { return register(name, block, (item) -> item(block, renderMethod)); } private static <T extends Item> RegistryObject<T> register(String name, RegistryObject<Block> ret, Function<RegistryObject<Block>, Supplier<? extends Item>> itemCreator) { return ITEMS.register(name, (Supplier) itemCreator.apply(ret)); } private static Supplier<BlockItem> item(RegistryObject<? extends Block> block, Supplier<Callable<ItemStackTileEntityRenderer>> renderMethod) { return () -> { BlockItem blockItem = new BlockItem(block.get(), (new Item.Properties().tab(TenChest.MOD_GROUP).setISTER(renderMethod))); return blockItem; }; } } But the items are not registered, and i don't know why. It gives to me this:   [16:06:18] [Render thread/INFO] [ne.mi.re.GameData/REGISTRIES]: Injecting existing registry data into this CLIENT instance [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:colossal_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:colossal_chest_part [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:drill_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:invisible_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:loot_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:mini_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:monster_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:pitfall_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:pocket_dimension_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:smelting_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:teleport_chest [16:06:18] [Render thread/INFO] [ne.mi.re.ForgeRegistry/REGISTRIES]: Registry Item: Found a missing id from the world tenchest:trap_chest [16:06:18] [Render thread/DEBUG] [ne.mi.re.GameData/REGISTRIES]: There are 12 mappings missing - attempting a mod remap [16:06:18] [Render thread/ERROR] [ne.mi.re.GameData/REGISTRIES]: Unidentified mapping from registry minecraft:item tenchest:colossal_chest: 987 tenchest:colossal_chest_part: 986 tenchest:drill_chest: 981 tenchest:invisible_chest: 978 tenchest:loot_chest: 983 tenchest:mini_chest: 976 tenchest:monster_chest: 984 tenchest:pitfall_chest: 980 tenchest:pocket_dimension_chest: 985 tenchest:smelting_chest: 977 tenchest:teleport_chest: 982 tenchest:trap_chest: 979  
    • I've tried to play my old world with mods, but Minecraft just crashes after the mods loading screen. The Minecraft version is 1.12.2 and the Forge version is the latest one, 14.23.5.2855   I've already reinstalled forge, deleted the mods and using the previous version (which I used originally and worked) and even using different versions of Java, so I don't know what else to do   The debug.log file is this: https://pastebin.com/vwLHWvFE . The error is in the line 332, I hope it helps.   Thanks in advance
    • https://github.com/DefDaemon/Daemons_Horror_Moon/blob/02a0d917a9738e7f7076865abb4a74de0e97eb3c/src/main/java/com/defdaemon/horrormoon/lists/ToolMaterialList.java#L9 You cannot access your items here yet, the registration has not happened yet. Store the supplier instead of the item.
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.