Jump to content
  • Home
  • Files
  • Docs
Topics
  • All Content

  • This Topic
  • This Forum

  • Advanced Search
  • Existing user? Sign In  

    Sign In



    • Not recommended on shared computers


    • Forgot your password?

  • Sign Up
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • Let sword in forge 1.15.2 render as sword not as item
Currently Supported: 1.16.X (Latest) and 1.15.X (LTS)
Sign in to follow this  
Followers 1
Joshi234

Let sword in forge 1.15.2 render as sword not as item

By Joshi234, June 9, 2020 in Modder Support

  • Reply to this topic
  • Start new topic

Recommended Posts

Joshi234    0

Joshi234

Joshi234    0

  • Tree Puncher
  • Joshi234
  • Members
  • 0
  • 15 posts
Posted June 9, 2020

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?

  • Quote

Share this post


Link to post
Share on other sites

Ugdhar    232

Ugdhar

Ugdhar    232

  • World Shaper
  • Ugdhar
  • Members
  • 232
  • 2215 posts
Posted June 9, 2020
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 :)

  • Quote

Share this post


Link to post
Share on other sites

Joshi234    0

Joshi234

Joshi234    0

  • Tree Puncher
  • Joshi234
  • Members
  • 0
  • 15 posts
Posted June 9, 2020
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

  • Quote

Share this post


Link to post
Share on other sites

Ugdhar    232

Ugdhar

Ugdhar    232

  • World Shaper
  • Ugdhar
  • Members
  • 232
  • 2215 posts
Posted June 9, 2020

A lot has changed with rendering: https://gist.github.com/williewillus/30d7e3f775fe93c503bddf054ef3f93e

Quote

In the vast majority of cases, you should no longer use direct OpenGL calls via GlStateManager/GL11.

 

I have not done a ton with rendering, but I would go over those 1.15 rendering change notes, and see how it applies to your situation.

  • Quote

Share this post


Link to post
Share on other sites

Joshi234    0

Joshi234

Joshi234    0

  • Tree Puncher
  • Joshi234
  • Members
  • 0
  • 15 posts
Posted June 9, 2020
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 |

  • Quote

Share this post


Link to post
Share on other sites

Joshi234    0

Joshi234

Joshi234    0

  • Tree Puncher
  • Joshi234
  • Members
  • 0
  • 15 posts
Posted June 9, 2020

I think the problem is more that render gets never called but let me check

  • Quote

Share this post


Link to post
Share on other sites

Joshi234    0

Joshi234

Joshi234    0

  • Tree Puncher
  • Joshi234
  • Members
  • 0
  • 15 posts
Posted June 9, 2020
4 minutes ago, Ugdhar said:

A lot has changed with rendering: https://gist.github.com/williewillus/30d7e3f775fe93c503bddf054ef3f93e

 

I have not done a ton with rendering, but I would go over those 1.15 rendering change notes, and see how it applies to your situation.

Yeah render gets never called

  • Quote

Share this post


Link to post
Share on other sites

Ugdhar    232

Ugdhar

Ugdhar    232

  • World Shaper
  • Ugdhar
  • Members
  • 232
  • 2215 posts
Posted June 9, 2020
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.

  • Quote

Share this post


Link to post
Share on other sites

Joshi234    0

Joshi234

Joshi234    0

  • Tree Puncher
  • Joshi234
  • Members
  • 0
  • 15 posts
Posted June 9, 2020 (edited)
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 June 9, 2020 by Joshi234
  • Quote

Share this post


Link to post
Share on other sites

Ugdhar    232

Ugdhar

Ugdhar    232

  • World Shaper
  • Ugdhar
  • Members
  • 232
  • 2215 posts
Posted June 9, 2020 (edited)

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 June 9, 2020 by Ugdhar
  • Quote

Share this post


Link to post
Share on other sites

Joshi234    0

Joshi234

Joshi234    0

  • Tree Puncher
  • Joshi234
  • Members
  • 0
  • 15 posts
Posted June 9, 2020

in the model json under parent item/handheld lets it render in the hand but not bigger and still not calling render,gonna check your method

  • Quote

Share this post


Link to post
Share on other sites

Joshi234    0

Joshi234

Joshi234    0

  • Tree Puncher
  • Joshi234
  • Members
  • 0
  • 15 posts
Posted June 9, 2020 (edited)
5 minutes ago, Ugdhar said:

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

 

It still doesnt get called ?

Edited June 9, 2020 by Joshi234
  • Quote

Share this post


Link to post
Share on other sites

TheGreyGhost    819

TheGreyGhost

TheGreyGhost    819

  • Reality Controller
  • TheGreyGhost
  • Members
  • 819
  • 3280 posts
Posted June 10, 2020

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
  • Quote

Share this post


Link to post
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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

    • Insert image from URL
×
  • Desktop
  • Tablet
  • Phone
Sign in to follow this  
Followers 1
Go To Topic Listing



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • diesieben07
      1.16.4 Can't connect to server, incomplete server tags.

      By diesieben07 · Posted 17 minutes ago

      I need a server log where the player that cannot connect tried to connect.
    • diesieben07
      The item given to the player disappears

      By diesieben07 · Posted 18 minutes ago

      You are reaching across logical sides. You need to use the living entity given to you and also check World#isRemote to ensure you only modify the inventory on the server.
    • Hubmac
      The item given to the player disappears

      By Hubmac · Posted 29 minutes ago

      Hi there i have problem with my mod. I create this mod for learning forge. Mod adds new item to minecraft and in the overided method "OnBlockDestroyed" i give to player 2 diamonds but when i click on this item in inventory dissapear or when i drop this item.   Code:  package com.example.examplemod; import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.player.ClientPlayerEntity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.util.datafix.fixes.ItemStackUUID; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.ToolType; import net.minecraftforge.fml.common.registry.GameRegistry; public class Hammer extends Item { public Hammer() { super(new Item.Properties().group(ItemGroup.TOOLS).maxStackSize(4).addToolType(ToolType.AXE, 3).defaultMaxDamage(100).maxDamage(200)); } @Override public boolean onBlockDestroyed(ItemStack itemStack, World world, BlockState blockState, BlockPos blockPos, LivingEntity livingEntity) { ClientPlayerEntity clientPlayerEntity = Minecraft.getInstance().player; clientPlayerEntity.sendChatMessage("You destroy: "+ blockState.getBlock().getRegistryName()); clientPlayerEntity.inventory.addItemStackToInventory(new ItemStack(Items.DIAMOND, 2)); return super.onBlockDestroyed(itemStack, world, blockState, blockPos, livingEntity); } }
    • Latobius
      1.16.4 Can't connect to server, incomplete server tags.

      By Latobius · Posted 30 minutes ago

      Right. I already ran it a few times without my friend since then because I was trying to figure things out. Is that alright, or should I get you new logs with my friend trying to join?   Server log (github.com)
    • diesieben07
      Can't Connect to Forge 1.16.5 Server

      By diesieben07 · Posted 32 minutes ago

      Yes that sounds like it.
  • Topics

    • Latobius
      3
      1.16.4 Can't connect to server, incomplete server tags.

      By Latobius
      Started 10 hours ago

    • Hubmac
      1
      The item given to the player disappears

      By Hubmac
      Started 29 minutes ago

    • KBomb
      11
      Can't Connect to Forge 1.16.5 Server

      By KBomb
      Started Thursday at 11:58 PM

    • adiah1134
      1
      My Server wont work.

      By adiah1134
      Started 1 hour ago

    • milkman69
      25
      My game keeps crashing and I haven't even added any mods on yet

      By milkman69
      Started Wednesday at 11:53 PM

  • Who's Online (See full list)

    • qSided
    • rjakobs
    • Unlucky
    • JackRaidenPH
    • Aecht_Rob
    • lupicus
    • diesieben07
    • Hubmac
    • Jads147
    • Nanook
    • milkman69
    • Talp1
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • Let sword in forge 1.15.2 render as sword not as item
  • Theme

Copyright © 2019 ForgeDevelopment LLC · Ads by Longitude Ads LLC Powered by Invision Community