Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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.

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.

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.