Jump to content

Trouble rendering some thrown entities


ulfgur

Recommended Posts

Hi!

 

    I've just started modding minecraft 1.8 very recently. I'm building my mod directly off of Minecraft By example. (The framework was very convenient, and I don't intend to distribute my mod.)

 

    I have two items, a blunderbuss and flintlock. Each fires different thrown entities, namely, grapeshot and musketball. My problem is that no matter what I do, the grapeshot renders using the musketball's image. I am absolutely sure that the blunderbuss fires grapeshot entities, but they render as musketballs anyway. Any idea what could cause this?

 

    I don't know what information is pertinent here, so I'm going to post StartupClient, RenderMusketBall, and RenderGrapeshot. If it's too much, I apologize. Same with too little. I don't know what's relevant at this stage of my modding.

 

I'm working from a version of RenderSnowball for both grapeshot and musketball.

 

 

public class StartupClientOnly

{

  public static void preInitClientOnly()

  {

  }

 

  public static void initClientOnly()

  {

    // required in order for the renderer to know how to render your item.  Likely to change in the near future.

    ModelResourceLocation itemModelResourceLocation = new ModelResourceLocation("minecraftbyexample:mbe10_item_simple", "inventory");

    final int DEFAULT_ITEM_SUBTYPE = 0;

    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(StartupCommon.itemSimple, DEFAULT_ITEM_SUBTYPE, itemModelResourceLocation);

   

    ModelResourceLocation flintlockModelResourceLocation = new ModelResourceLocation("minecraftbyexample:flintlock", "inventory");

    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(StartupCommon.itemFlintlock, DEFAULT_ITEM_SUBTYPE, flintlockModelResourceLocation);

   

    ModelResourceLocation musketBallModelResourceLocation = new ModelResourceLocation("minecraftbyexample:musketball", "inventory");

    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(StartupCommon.itemMusketBall, DEFAULT_ITEM_SUBTYPE, musketBallModelResourceLocation);

   

    ModelResourceLocation blunderbussModelResourceLocation = new ModelResourceLocation("minecraftbyexample:blunderbuss", "inventory");

    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(StartupCommon.itemBlunderbuss, DEFAULT_ITEM_SUBTYPE, blunderbussModelResourceLocation);

   

    ModelResourceLocation grapeshotModelResourceLocation = new ModelResourceLocation("minecraftbyexample:grapeshot", "inventory");

    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(StartupCommon.itemGrapeshot, DEFAULT_ITEM_SUBTYPE, grapeshotModelResourceLocation);

   

    RenderManager reman = Minecraft.getMinecraft().getRenderManager();

    RenderItem reIt = Minecraft.getMinecraft().getRenderItem();

   

    System.out.println(StartupCommon.itemGrapeshot);

   

    RenderingRegistry.registerEntityRenderingHandler(EntityMusketBall.class, new RenderMusketBall(reman, StartupCommon.itemMusketBall, reIt, new ModelResourceLocation("minecraftbyexample:musketball")));

    RenderingRegistry.registerEntityRenderingHandler(EntityGrapeshot.class, new RenderGrapeshot(reman, StartupCommon.itemGrapeshot, reIt));

 

  }

 

public static void postInitClientOnly()

  {

  }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

package minecraftbyexample.mbe10_item_simple;

 

import net.minecraft.client.Minecraft;

import net.minecraft.client.renderer.GlStateManager;

import net.minecraft.client.renderer.entity.Render;

import net.minecraft.client.renderer.entity.RenderItem;

import net.minecraft.client.renderer.entity.RenderManager;

import net.minecraft.client.renderer.texture.TextureMap;

import net.minecraft.client.resources.model.ModelResourceLocation;

import net.minecraft.entity.Entity;

import net.minecraft.item.Item;

import net.minecraft.item.ItemStack;

import net.minecraft.util.ResourceLocation;

 

public class RenderGrapeshot extends Render

{

ModelResourceLocation modelResourceLocation;

protected final Item item;

    private final RenderItem renderitem;

    private static final String __OBFID = "CL_00001008";

 

   

   

    public RenderGrapeshot(RenderManager man)

    {

    super(man);

    item = new ItemGrapeshot();

        renderitem = Minecraft.getMinecraft().getRenderItem();

        modelResourceLocation = new ModelResourceLocation("minecraftbyexample:grapeshot");

    }

   

    public RenderGrapeshot(RenderManager man, Item item, RenderItem renderItem)

    {

        super(man);

        this.item = item;

        this.renderitem = renderItem;

        modelResourceLocation = new ModelResourceLocation("minecraftbyexample:grapeshot");

    }

 

    public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float partialTicks)

    {

    System.out.println("render grapeshot---------------------------------");

        GlStateManager.pushMatrix();

        GlStateManager.translate((float)x, (float)y, (float)z);

        GlStateManager.enableRescaleNormal();

        GlStateManager.scale(0.5F, 0.5F, 0.5F);

        GlStateManager.rotate(-this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F);

        GlStateManager.rotate(this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F);

        //this.bindTexture(modelResourceLocation);

        this.renderitem.renderItemModel(this.convertEntitytoStack(entity));

        GlStateManager.disableRescaleNormal();

        GlStateManager.popMatrix();

        super.doRender(entity, x, y, z, p_76986_8_, partialTicks);

    }

 

    public ItemStack convertEntitytoStack(Entity p_177082_1_)

    {

        return new ItemStack(this.item, 1);

    }

 

@Override

protected ResourceLocation getEntityTexture(Entity entity)

{

return modelResourceLocation;

}

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

package minecraftbyexample.mbe10_item_simple;

 

import net.minecraft.client.Minecraft;

import net.minecraft.client.renderer.GlStateManager;

import net.minecraft.client.renderer.entity.Render;

import net.minecraft.client.renderer.entity.RenderItem;

import net.minecraft.client.renderer.entity.RenderManager;

import net.minecraft.client.renderer.texture.TextureMap;

import net.minecraft.client.resources.model.ModelResourceLocation;

import net.minecraft.entity.Entity;

import net.minecraft.item.Item;

import net.minecraft.item.ItemStack;

import net.minecraft.util.ResourceLocation;

 

public class RenderMusketBall extends Render

{

ModelResourceLocation modelResourceLocation;

protected final Item item;

    private final RenderItem renderitem;

    private static final String __OBFID = "CL_00001008";

 

    public RenderMusketBall(RenderManager man, Item item, RenderItem renderItem, ModelResourceLocation modelLoc)

    {

        super(man);

        this.item = item;

        this.renderitem = renderItem;

        modelResourceLocation = modelLoc;

    }

   

    public RenderMusketBall(RenderManager man)

    {

    super(man);

    item = new ItemGrapeshot();

        renderitem = Minecraft.getMinecraft().getRenderItem();

        //modelResourceLocation = new ModelResourceLocation("minecraftbyexample:musketball");

    }

 

    public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float partialTicks)

    {

        GlStateManager.pushMatrix();

        GlStateManager.translate((float)x, (float)y, (float)z);

        GlStateManager.enableRescaleNormal();

        GlStateManager.scale(0.5F, 0.5F, 0.5F);

        GlStateManager.rotate(-this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F);

        GlStateManager.rotate(this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F);

        //this.bindTexture(modelResourceLocation);

        this.renderitem.renderItemModel(this.convertEntitytoStack(entity));

        GlStateManager.disableRescaleNormal();

        GlStateManager.popMatrix();

        super.doRender(entity, x, y, z, p_76986_8_, partialTicks);

    }

 

    public ItemStack convertEntitytoStack(Entity p_177082_1_)

    {

        return new ItemStack(this.item, 1);

    }

 

@Override

protected ResourceLocation getEntityTexture(Entity entity)

{

return modelResourceLocation;

}

 

}

 

 

Link to comment
Share on other sites

 

 

 

It's still doing exactly the same thing, but now I'm getting the following error the first time I fire one of the weapons.

 

I also stuck a println in RenderGrapeshot, and it looks like RenderGrapeshot's doRender is never called. Weird. 0.o

 

 

[09:34:59] [Client thread/WARN]: Failed to load texture: minecraftbyexample:musketball#normal

java.io.FileNotFoundException: minecraftbyexample:musketball#normal

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:70) ~[FallbackResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]

at net.minecraft.client.renderer.texture.SimpleTexture.loadTexture(SimpleTexture.java:34) ~[simpleTexture.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:70) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.bindTexture(TextureManager.java:44) [TextureManager.class:?]

at net.minecraft.client.renderer.entity.Render.bindTexture(Render.java:86) [Render.class:?]

at minecraftbyexample.mbe10_item_simple.RenderMusketBall.doRender(RenderMusketBall.java:46) [RenderMusketBall.class:?]

at net.minecraft.client.renderer.entity.RenderManager.doRenderEntity(RenderManager.java:370) [RenderManager.class:?]

at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:327) [RenderManager.class:?]

at net.minecraft.client.renderer.entity.RenderManager.renderEntitySimple(RenderManager.java:294) [RenderManager.class:?]

at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:631) [RenderGlobal.class:?]

at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1294) [EntityRenderer.class:?]

at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1207) [EntityRenderer.class:?]

at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1032) [EntityRenderer.class:?]

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1048) [Minecraft.class:?]

at net.minecraft.client.Minecraft.run(Minecraft.java:345) [Minecraft.class:?]

at net.minecraft.client.main.Main.main(Main.java:117) [Main.class:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_65]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_65]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_65]

at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_65]

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]

at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]

at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:78) [start/:?]

at GradleStart.main(GradleStart.java:45) [start/:?]

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



×
×
  • Create New...

Important Information

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