Jump to content

Verify Renderer, Tessalator and RenderEntity question


navybofus

Recommended Posts

Hello again Minecraft Forge guru's! I've decided to add a small bit of flare to my newest mod (mostly for practice).

 

I'd like to have an item hover over my block and slowly rotate. I'm going to change this item based on the inventory, but I can do that after I find out how to render any item. So far, I've tried using the tesselator to draw ANYTHING above my block, but I can't even figure out if my Renderer is being registered correctly. I've placed a few log notes and none of them show up. Here's some of my code that I believe is the culprit.

 

EDIT: I've made sure that my renderer is being registered and got something on the screen. I forgot to add proxy.registerRenderers(); to my FMLInitilizationEvent

 

public class CommonProxy {

public void registerRenderers(){}

}

 

public class ClientProxy extends CommonProxy{

public void registerRenderers(){
	ClientRegistry.bindTileEntitySpecialRenderer(TEMetalExtractor.class, new RendererMetalExtractor());
}
}

 

public class RendererMetalExtractor extends TileEntitySpecialRenderer{

public RendererMetalExtractor(){}

private static final ResourceLocation texture = new ResourceLocation(ModInfo.MODID, "textures/blocks/magnet.png");

@Override
@SideOnly(Side.CLIENT)
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float f) {
	bindTexture(texture);
	Tessellator t = Tessellator.instance;
	GL11.glPushMatrix();
	GL11.glColor3ub((byte)255, (byte)0, (byte)0);
	GL11.glTranslated(x, y+1, z);
	GL11.glLineWidth(10.0F);
	t.startDrawingQuads();

	t.addVertexWithUV(0, 0, 0, 0, 0);
	t.addVertexWithUV(0, 1, 0, 0, 1);
	t.addVertexWithUV(1, 1, 0, 1, 1);
	t.addVertexWithUV(1, 0, 0, 1, 0);

	t.draw();
	GL11.glPopMatrix();
}
}

 

All of this TESR code is the product of several tutorials that don't do what I wanted, but I thought I could figure it out if I got something to show up.

 

I'm going to continue working towards a solution. If anyone can provide some help I'd really appreciate it.

Link to comment
Share on other sites

Whenever you're not sure if a method is being called, that's an excellent time to use either break points or a simple println. If it doesn't print, it's not getting called and you should check that your block implements ITileEntityProvider (or extends BlockContainer) and returns your tile entity for the create new tile entity method. If it does print, then the problem is with your rendering.

 

Btw, if you want an item to float and rotate above the block, why not use an EntityItem directly in the render class (not for spawning in the world, but only for rendering) ? I think that could greatly simplify the work you need to do.

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.