i am trying to render a item that is in the inventory of the block on a tileentity/block but when i add the item in the slot it crashes
ublic class TileentityPedistalRenderer extends TileEntitySpecialRenderer {
//The model of your block
private final PedistalModel model;
public TileentityPedistalRenderer() {
this.model = new PedistalModel();
customRenderItem = new RenderItem()
{
@Override
public boolean shouldBob()
{
return false;
}
};
}
private void adjustRotatePivotViaMeta(World world, int x, int y, int z) {
int meta = world.getBlockMetadata(x, y, z);
GL11.glRotatef(meta * (90), 0.0F, 1.0F, 0.0F);
}
private final RenderItem customRenderItem;
private Entity entItem;
@Override
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale) {
GL11.glPushMatrix();
GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F);
ResourceLocation texture = new ResourceLocation("baublelicious:textures/models/TileentityPedistal.png");
FMLClientHandler.instance().getClient().renderEngine.bindTexture(texture);
GL11.glPushMatrix();
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
adjustRotatePivotViaMeta(te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord);
this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F);
GL11.glPopMatrix();
GL11.glPopMatrix();
GL11.glPushMatrix();
TileentityPedistalEntity tileAltar = (TileentityPedistalEntity) te;
if (tileAltar.getStackInSlot(0) != null)
{
float scaleFactor = getGhostItemScaleFactor(tileAltar.getStackInSlot(0));
EntityItem ghostEntityItem = new EntityItem(tileAltar.getWorldObj());
ghostEntityItem.hoverStart = 0.0F;
ghostEntityItem.setEntityItemStack(tileAltar.getStackInSlot(0));
float displacement = 0.2F;
if (ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock)
{
GL11.glTranslatef((float) x + 0.5F, (float) y + displacement + 0.7F, (float) z + 0.5F);
} else
{
GL11.glTranslatef((float) x + 0.5F, (float) y + displacement + 10.4f / 16.0f, (float) z + 0.5F - 0.0625f * 2f);
}
GL11.glScalef(scaleFactor, scaleFactor, scaleFactor);
if (!(ghostEntityItem.getEntityItem().getItem() instanceof ItemBlock))
{
GL11.glRotatef(90f, 1.0f, 0.0f, 0.0F);
}
customRenderItem.doRender(ghostEntityItem, 0, 0, 0, 0, 0);
}
GL11.glPopMatrix();
}
private float getGhostItemScaleFactor(ItemStack itemStack)
{
float scaleFactor = 1.5F;
if (itemStack != null)
{
if (itemStack.getItem() instanceof ItemBlock)
{
switch (customRenderItem.getMiniBlockCount(itemStack, (byte) 1))
{
case 1:
return 0.90F * scaleFactor;
case 2:
return 0.90F * scaleFactor;
case 3:
return 0.90F * scaleFactor;
case 4:
return 0.90F * scaleFactor;
case 5:
return 0.80F * scaleFactor;
default:
return 0.90F * scaleFactor;
}
} else
{
switch (customRenderItem.getMiniItemCount(itemStack, (byte) 1))
{
case 1:
return 0.65F * scaleFactor;
case 2:
return 0.65F * scaleFactor;
case 3:
return 0.65F * scaleFactor;
case 4:
return 0.65F * scaleFactor;
default:
return 0.65F * scaleFactor;
}
}
}
return scaleFactor;
}
private float getXDisplacementForSlot(int slot)
{
switch (slot)
{
case 0:
return 0.0f;
case 1:
return -0.375f;
case 2:
return -0.125f;
case 3:
return 0.3125f;
case 4:
return 0.3125f;
case 5:
return -0.125f;
default:
return 0.0f;
}
}
private float getYDisplacementForSlot(int slot)
{
switch (slot)
{
case 0:
return 0.4f;
case 1:
return -0.35f;
case 6:
return 0.4f;
default:
return -0.35f;
}
}
private float getZDisplacementForSlot(int slot)
{
switch (slot)
{
case 0:
return 0.0f;
case 1:
return 0.0f;
case 2:
return 0.375f;
case 3:
return 0.25f;
case 4:
return -0.25f;
case 5:
return -0.375f;
default:
return 0.0f;
}
}
private void translateGhostItemByOrientation(ItemStack ghostItemStack, double x, double y, double z, ForgeDirection forgeDirection)
{
if (ghostItemStack != null)
{
if (ghostItemStack.getItem() instanceof ItemBlock)
{
switch (forgeDirection)
{
case DOWN:
{
GL11.glTranslatef((float) x + 0.5F, (float) y + 2.7F, (float) z + 0.5F);
return;
}
case UP:
{
GL11.glTranslatef((float) x + 0.5F, (float) y + 0.25F, (float) z + 0.5F);
return;
}
case NORTH:
{
GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.7F);
return;
}
case SOUTH:
{
GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.3F);
return;
}
case EAST:
{
GL11.glTranslatef((float) x + 0.3F, (float) y + 0.5F, (float) z + 0.5F);
return;
}
case WEST:
{
GL11.glTranslatef((float) x + 0.70F, (float) y + 0.5F, (float) z + 0.5F);
return;
}
case UNKNOWN:
{
return;
}
default:
{
return;
}
}
} else
{
switch (forgeDirection)
{
case DOWN:
{
GL11.glTranslatef((float) x + 0.5F, (float) y + 0.6F, (float) z + 0.5F);
return;
}
case UP:
{
GL11.glTranslatef((float) x + 0.5F, (float) y + 0.20F, (float) z + 0.5F);
return;
}
case NORTH:
{
GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.7F);
return;
}
case SOUTH:
{
GL11.glTranslatef((float) x + 0.5F, (float) y + 0.4F, (float) z + 0.3F);
return;
}
case EAST:
{
GL11.glTranslatef((float) x + 0.3F, (float) y + 0.4F, (float) z + 0.5F);
return;
}
case WEST:
{
GL11.glTranslatef((float) x + 0.70F, (float) y + 0.4F, (float) z + 0.5F);
return;
}
case UNKNOWN:
{
return;
}
default:
{
return;
}
}
}
crash log:
[16:38:47] [Client thread/FATAL]: Reported exception thrown!
net.minecraft.util.ReportedException: Rendering Block Entity
at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntityAt(TileEntityRendererDispatcher.java:148) ~[TileEntityRendererDispatcher.class:?]
at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntity(TileEntityRendererDispatcher.java:126) ~[TileEntityRendererDispatcher.class:?]
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:539) ~[RenderGlobal.class:?]
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300) ~[EntityRenderer.class:?]
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1087) ~[EntityRenderer.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1057) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:951) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_71]
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/:?]
Caused by: java.lang.NullPointerException
at net.minecraft.client.renderer.entity.RenderItem.getEntityTexture(RenderItem.java:245) ~[RenderItem.class:?]
at net.minecraft.client.renderer.entity.RenderItem.getEntityTexture(RenderItem.java:772) ~[RenderItem.class:?]
at net.minecraft.client.renderer.entity.Render.bindEntityTexture(Render.java:55) ~[Render.class:?]
at net.minecraft.client.renderer.entity.RenderItem.doRender(RenderItem.java:65) ~[RenderItem.class:?]
at com.baublelicious.blocks.TileentityPedistalRenderer.renderTileEntityAt(TileentityPedistalRenderer.java:86) ~[TileentityPedistalRenderer.class:?]
at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntityAt(TileEntityRendererDispatcher.java:141) ~[TileEntityRendererDispatcher.class:?]
... 15 more
[16:38:47] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: ---- Minecraft Crash Report ----
// Hi. I'm Minecraft, and I'm a crashaholic.
Time: 31-12-14 16:38
Description: Rendering Block Entity
java.lang.NullPointerException: Rendering Block Entity
at net.minecraft.client.renderer.entity.RenderItem.getEntityTexture(RenderItem.java:245)
at net.minecraft.client.renderer.entity.RenderItem.getEntityTexture(RenderItem.java:772)
at net.minecraft.client.renderer.entity.Render.bindEntityTexture(Render.java:55)
at net.minecraft.client.renderer.entity.RenderItem.doRender(RenderItem.java:65)
at com.baublelicious.blocks.TileentityPedistalRenderer.renderTileEntityAt(TileentityPedistalRenderer.java:86)
at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntityAt(TileEntityRendererDispatcher.java:141)
at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntity(TileEntityRendererDispatcher.java:126)
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:539)
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300)
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1087)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1057)
at net.minecraft.client.Minecraft.run(Minecraft.java:951)
at net.minecraft.client.main.Main.main(Main.java:164)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:78)
at GradleStart.main(GradleStart.java:45)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at net.minecraft.client.renderer.entity.RenderItem.getEntityTexture(RenderItem.java:245)
at net.minecraft.client.renderer.entity.RenderItem.getEntityTexture(RenderItem.java:772)
at net.minecraft.client.renderer.entity.Render.bindEntityTexture(Render.java:55)
at net.minecraft.client.renderer.entity.RenderItem.doRender(RenderItem.java:65)
at com.baublelicious.blocks.TileentityPedistalRenderer.renderTileEntityAt(TileentityPedistalRenderer.java:86)
-- Block Entity Details --
Details:
Name: TileentityPedistal // com.baublelicious.blocks.TileentityPedistalEntity
Block type: ID #205 (tile.PedistalBlock // com.baublelicious.blocks.TileentityPedistalBlock)
Block data value: 1 / 0x1 / 0b0001
Block location: World: (1435,4,-290), Chunk: (at 11,0,14 in 89,-19; contains blocks 1424,0,-304 to 1439,255,-289), Region: (2,-1; contains chunks 64,-32 to 95,-1, blocks 1024,0,-512 to 1535,255,-1)
Actual block type: ID #205 (tile.PedistalBlock // com.baublelicious.blocks.TileentityPedistalBlock)
Actual block data value: 1 / 0x1 / 0b0001
Stacktrace:
at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntityAt(TileEntityRendererDispatcher.java:141)
at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntity(TileEntityRendererDispatcher.java:126)
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:539)
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300)