package net.tropicraft.client.tileentity; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.tileentity.TileEntity; import net.tropicraft.block.tileentity.TileEntitySifter; import org.lwjgl.opengl.GL11; public class TileEntitySifterRenderer extends TileEntitySpecialRenderer { private Entity item; public TileEntitySifterRenderer() { } @Override public void renderTileEntityAt(TileEntity var1, double var2, double var4, double var6, float var8) { renderSifter((TileEntitySifter)var1, var2, var4, var6, var8); } public void renderSifter(TileEntitySifter sifter, double x, double y, double z, float rotation) { GL11.glPushMatrix(); GL11.glTranslatef((float)x + 0.5F, (float)y, (float)z + 0.5F); if(item == null && sifter.isSifting()) { item = (EntityItem)(new EntityItem(sifter.getWorldObj())); ((EntityItem)item).setEntityItemStack(sifter.siftItem.copy()); } if(item != null) { item.setWorld(sifter.getWorldObj()); //allows entity to be placed into world //f1=size of object inside spawner float f1 = 0.4375F; GL11.glTranslatef(0.0F, 0.7F, 0.0F); //height of thing inside spawner GL11.glScalef(f1*3, f1*3, f1*3); //size of thing inside spawner, scaled GL11.glRotatef((float)(sifter.yaw2 + (sifter.yaw - sifter.yaw2) * (double)rotation) * 10.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-20F, 1.0F, 0.0F, 0.0F); GL11.glTranslatef(0.0F, -0.4F, 0.0F); //other height of thing inside spawner item.setLocationAndAngles(x, y, z, 0.0F, 0.0F); if(sifter.isSifting()) RenderManager.instance.renderEntityWithPosYaw(item, 0, 0, 0, 0.0F, rotation); else item = null; } GL11.glPopMatrix(); } }