Jump to content

Let sword in forge 1.15.2 render as sword not as item


Joshi234

Recommended Posts

Hey, Im currently porting my sword mod from 1.7.10 to 1.15.2 and before I could simply use the ItemSword class to render it as an sword not as an item but now if I use extends SwordItem it doesn't render the sword as an sword, it renders it as an item, how can I render the item in the hand as an normal sword?

Link to comment
Share on other sites

25 minutes ago, Joshi234 said:

how can I render the item in the hand as an normal sword?

I would look at the vanilla code/models for one of those swords, and follow suit.

 

What have you tried? What happened that wasn't expected? More details please :)

Link to comment
Share on other sites

Just now, Ugdhar said:

I would look at the vanilla code/models for one of those swords, and follow suit.

 

What have you tried? What happened that wasn't expected? More details please :)

I wrote a scode that renders the sword at to times, made it as ISTER but it never gets called and its just rendering how you see it in the screenshot

package com.joshi234.lotrswordaddon;

import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;

import java.util.List;

public class RenderLargerItems extends ItemStackTileEntityRenderer {



    @Override
    public void render(ItemStack itemstack, MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int combinedLightIn, int combinedOverlayIn)
    {
        PlayerEntity player=Minecraft.getInstance().player;


        GL11.glPushMatrix();

        GL11.glTranslatef(-0.5F, -0.5F, 0F);
        GL11.glScalef(2F, 2F, 1F);
        TextureManager textureManager = Minecraft.getInstance().getTextureManager();
        ResourceLocation texture = null;



        texture = new ResourceLocation(main.MODID, "textures/items/" + itemstack.getTranslationKey().replace(" ","_").replace("item.","").replace(".name","") + ".png");





        textureManager.bindTexture(texture);

        if(itemstack.isEnchanted()){
            textureManager.bindTexture(RenderLargerItemsFire.enchantmentTexture);
        }
        if (itemstack != null )
        {
            GL11.glDepthFunc(GL11.GL_EQUAL);
            GL11.glDisable(GL11.GL_LIGHTING);

            GL11.glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
            float f = 0.76F;
            GL11.glColor4f(0.5F * f, 0.25F * f, 0.8F * f, 1.0F);
            GL11.glMatrixMode(GL11.GL_TEXTURE);
            GL11.glPushMatrix();
            float f1 = 0.125F;
            GL11.glScalef(f1, f1, f1);
            float f2 = (float)(System.currentTimeMillis() % 3000L) / 3000.0F * 8.0F;
            GL11.glTranslatef(f2, 0.0F, 0.0F);
            GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F);

            GL11.glPopMatrix();

            GL11.glMatrixMode(GL11.GL_MODELVIEW);
            GL11.glDisable(GL11.GL_BLEND);
            GL11.glEnable(GL11.GL_LIGHTING);
            GL11.glDepthFunc(GL11.GL_LEQUAL);
        }

        GL11.glPopMatrix();
    }
}

 

Screenshot_9.png

Link to comment
Share on other sites

1 minute ago, Joshi234 said:

I wrote a scode that renders the sword at to times, made it as ISTER but it never gets called and its just rendering how you see it in the screenshot


package com.joshi234.lotrswordaddon;

import com.mojang.blaze3d.matrix.MatrixStack;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.client.renderer.tileentity.ItemStackTileEntityRenderer;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;

import java.util.List;

public class RenderLargerItems extends ItemStackTileEntityRenderer {



    @Override
    public void render(ItemStack itemstack, MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int combinedLightIn, int combinedOverlayIn)
    {
        PlayerEntity player=Minecraft.getInstance().player;


        GL11.glPushMatrix();

        GL11.glTranslatef(-0.5F, -0.5F, 0F);
        GL11.glScalef(2F, 2F, 1F);
        TextureManager textureManager = Minecraft.getInstance().getTextureManager();
        ResourceLocation texture = null;



        texture = new ResourceLocation(main.MODID, "textures/items/" + itemstack.getTranslationKey().replace(" ","_").replace("item.","").replace(".name","") + ".png");





        textureManager.bindTexture(texture);

        if(itemstack.isEnchanted()){
            textureManager.bindTexture(RenderLargerItemsFire.enchantmentTexture);
        }
        if (itemstack != null )
        {
            GL11.glDepthFunc(GL11.GL_EQUAL);
            GL11.glDisable(GL11.GL_LIGHTING);

            GL11.glEnable(GL11.GL_BLEND);
            GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
            float f = 0.76F;
            GL11.glColor4f(0.5F * f, 0.25F * f, 0.8F * f, 1.0F);
            GL11.glMatrixMode(GL11.GL_TEXTURE);
            GL11.glPushMatrix();
            float f1 = 0.125F;
            GL11.glScalef(f1, f1, f1);
            float f2 = (float)(System.currentTimeMillis() % 3000L) / 3000.0F * 8.0F;
            GL11.glTranslatef(f2, 0.0F, 0.0F);
            GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F);

            GL11.glPopMatrix();

            GL11.glMatrixMode(GL11.GL_MODELVIEW);
            GL11.glDisable(GL11.GL_BLEND);
            GL11.glEnable(GL11.GL_LIGHTING);
            GL11.glDepthFunc(GL11.GL_LEQUAL);
        }

        GL11.glPopMatrix();
    }
}

Wrong:

Screenshot_9.png

Screenshot_10.png.e172e1db2ebe095350f31a3075f6678d.png

        ^

Right |

Link to comment
Share on other sites

2 minutes ago, Joshi234 said:

Yeah render gets never called

Then it's likely a problem with the way your ISTER is being registered/created. I believe the vanilla shield and trident use ISTER for rendering, they might be helpful examples.

Link to comment
Share on other sites

3 minutes ago, Ugdhar said:

Then it's likely a problem with the way your ISTER is being registered/created. I believe the vanilla shield and trident use ISTER for rendering, they might be helpful examples.

 

public static Item.Properties properties=new Item.Properties().setISTER(() -> RenderLargerItems::new).group(ItemGroup.COMBAT);

this is how I do it  but I looked into the items and trident class there no item is using this way

Edited by Joshi234
Link to comment
Share on other sites

Weird, that render method looks wrong. It should be more like this:

Quote

public void render(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) {

*edit: at least, that's the one i had for a custom shield that worked for 1.15.2. Looking at the one in my latest project with newer mappings it looks like the one you have. I guess at this point, I have no idea, sorry!

Edited by Ugdhar
Link to comment
Share on other sites

Howdy

 

Probably your item model doesn't have "builtin/entity" as the parent type.  (see the "Item" section of https://minecraft.gamepedia.com/Model)?

 

If that doesn't work, I'd suggest trying some breakpoints in strategic locations, eg:

- inside your lambda for supplying the ItemStackTileEntityRenderer

- inside the render method of vanilla ItemStackTileEntityRenderer

- inside ItemRenderer::renderItem(ItemStack itemStackIn ....)

 

However - based on your screenshots it doesn't look like you need an ISTER to render the sword.  You can just use a vanilla icon (item/generated) and set the "display" parameters correctly in your item -i.e. the rotation, scaling, translation.  If your icon looks similar to the sword icon, then try copying the vanilla sword item display parameters into yours.

 

-TGG

 

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I was just trying to play my modded world when i randomly got this crash for no reason. I sorted through like every mod and eventually I realized it was LLibrary but I can't seem to find a solution to fix the crashing. I can't lose the world that I have that uses this mod please help me. Here's the report: https://pastebin.com/0D00B79i If anyone has a solution please let me know.  
    • 🤑DAFTAR & LOGIN🤑 🤑DAFTAR & LOGIN🤑 🤑DAFTAR & LOGIN🤑   Daftar Slot Ligawin88 adalah bocoran slot rekomendasi gacor dari Ligawin88 yang bisa anda temukan di SLOT Ligawin88. Situs SLOT Ligawin88 hari ini yang kami bagikan di sini adalah yang terbaik dan bersiaplah untuk mengalami sensasi tak terlupakan dalam permainan slot online. Temukan game SLOT Ligawin88 terbaik dengan 100 pilihan provider ternama yang dipercaya akan memberikan kepuasan dan kemenangan hari ini untuk meraih x500. RTP SLOT Ligawin88 merupakan SLOT Ligawin88 hari ini yang telah menjadi pilihan utama bagi pemain judi online di seluruh Indonesia. Setiap harinya jutaan pemain memasuki dunia maya untuk memperoleh hiburan seru dan kemenangan besar dalam bermain slot dengan adanya bocoran RTP SLOT Ligawin88. Tidak ada yang lebih menyenangkan daripada mengungguli mesin slot dan meraih jackpot x500 yang menggiurkan di situs SLOT Ligawin88 hari ini yang telah disediakan SLOT Ligawin88. Menangkan jackpot besar x500 rajanya maxwin dari segala slot dan raih kemenangan spektakuler di situs Ligawin88 terbaik 2024 adalah tempat yang menyediakan mesin slot dengan peluang kemenangan lebih tinggi daripada situs slot lainnya. Bagi anda yang mencari pengalaman judi slot paling seru dan mendebarkan, situs bo SLOT Ligawin88 terbaik 2024 adalah pilihan yang tepat. Jelajahi dunia slot online melalui situs SLOT Ligawin88 di link SLOT Ligawin88.
    • 🤑DAFTAR & LOGIN🤑 🤑DAFTAR & LOGIN🤑 🤑DAFTAR & LOGIN🤑   Daftar Slot Asusslot adalah bocoran slot rekomendasi gacor dari Asusslot yang bisa anda temukan di SLOT Asusslot. Situs SLOT Asusslot hari ini yang kami bagikan di sini adalah yang terbaik dan bersiaplah untuk mengalami sensasi tak terlupakan dalam permainan slot online. Temukan game SLOT Asusslot terbaik dengan 100 pilihan provider ternama yang dipercaya akan memberikan kepuasan dan kemenangan hari ini untuk meraih x500. RTP SLOT Asusslot merupakan SLOT Asusslot hari ini yang telah menjadi pilihan utama bagi pemain judi online di seluruh Indonesia. Setiap harinya jutaan pemain memasuki dunia maya untuk memperoleh hiburan seru dan kemenangan besar dalam bermain slot dengan adanya bocoran RTP SLOT Asusslot. Tidak ada yang lebih menyenangkan daripada mengungguli mesin slot dan meraih jackpot x500 yang menggiurkan di situs SLOT Asusslot hari ini yang telah disediakan SLOT Asusslot. Menangkan jackpot besar x500 rajanya maxwin dari segala slot dan raih kemenangan spektakuler di situs Asusslot terbaik 2024 adalah tempat yang menyediakan mesin slot dengan peluang kemenangan lebih tinggi daripada situs slot lainnya. Bagi anda yang mencari pengalaman judi slot paling seru dan mendebarkan, situs bo SLOT Asusslot terbaik 2024 adalah pilihan yang tepat. Jelajahi dunia slot online melalui situs SLOT Asusslot di link SLOT Asusslot.
    • 🤑DAFTAR & LOGIN🤑 🤑DAFTAR & LOGIN🤑 🤑DAFTAR & LOGIN🤑 Daftar Slot Galeri555 adalah bocoran slot rekomendasi gacor dari Galeri555 yang bisa anda temukan di SLOT Galeri555. Situs SLOT Galeri555 hari ini yang kami bagikan di sini adalah yang terbaik dan bersiaplah untuk mengalami sensasi tak terlupakan dalam permainan slot online. Temukan game SLOT Galeri555 terbaik dengan 100 pilihan provider ternama yang dipercaya akan memberikan kepuasan dan kemenangan hari ini untuk meraih x500. RTP SLOT Galeri555 merupakan SLOT Galeri555 hari ini yang telah menjadi pilihan utama bagi pemain judi online di seluruh Indonesia. Setiap harinya jutaan pemain memasuki dunia maya untuk memperoleh hiburan seru dan kemenangan besar dalam bermain slot dengan adanya bocoran RTP SLOT Galeri555. Tidak ada yang lebih menyenangkan daripada mengungguli mesin slot dan meraih jackpot x500 yang menggiurkan di situs SLOT Galeri555 hari ini yang telah disediakan SLOT Galeri555. Menangkan jackpot besar x500 rajanya maxwin dari segala slot dan raih kemenangan spektakuler di situs Galeri555 terbaik 2024 adalah tempat yang menyediakan mesin slot dengan peluang kemenangan lebih tinggi daripada situs slot lainnya. Bagi anda yang mencari pengalaman judi slot paling seru dan mendebarkan, situs bo SLOT Galeri555 terbaik 2024 adalah pilihan yang tepat. Jelajahi dunia slot online melalui situs SLOT Galeri555 di link SLOT Galeri555.
    • 🤑DAFTAR & LOGIN🤑 🤑DAFTAR & LOGIN🤑 🤑DAFTAR & LOGIN🤑 Daftar Slot Kocok303 adalah bocoran slot rekomendasi gacor dari Kocok303 yang bisa anda temukan di SLOT Kocok303. Situs SLOT Kocok303 hari ini yang kami bagikan di sini adalah yang terbaik dan bersiaplah untuk mengalami sensasi tak terlupakan dalam permainan slot online. Temukan game SLOT Kocok303 terbaik dengan 100 pilihan provider ternama yang dipercaya akan memberikan kepuasan dan kemenangan hari ini untuk meraih x500. RTP SLOT Kocok303 merupakan SLOT Kocok303 hari ini yang telah menjadi pilihan utama bagi pemain judi online di seluruh Indonesia. Setiap harinya jutaan pemain memasuki dunia maya untuk memperoleh hiburan seru dan kemenangan besar dalam bermain slot dengan adanya bocoran RTP SLOT Kocok303. Tidak ada yang lebih menyenangkan daripada mengungguli mesin slot dan meraih jackpot x500 yang menggiurkan di situs SLOT Kocok303 hari ini yang telah disediakan SLOT Kocok303. Menangkan jackpot besar x500 rajanya maxwin dari segala slot dan raih kemenangan spektakuler di situs Kocok303 terbaik 2024 adalah tempat yang menyediakan mesin slot dengan peluang kemenangan lebih tinggi daripada situs slot lainnya. Bagi anda yang mencari pengalaman judi slot paling seru dan mendebarkan, situs bo SLOT Kocok303 terbaik 2024 adalah pilihan yang tepat. Jelajahi dunia slot online melalui situs SLOT Kocok303 di link SLOT Kocok303.
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.