package gregtech.common.render.items; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.item.ItemStack; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import gregtech.api.enums.ItemList; import gregtech.api.util.AssemblyLineUtils; // borrow form ae2 public class DataStickRenderer implements IItemRenderer { private final RenderItem ri = new RenderItem(); public DataStickRenderer() { MetaGeneratedItemRenderer.registerSpecialRenderer(ItemList.Tool_DataStick, this); } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { final boolean isShiftHeld = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT); final boolean shouldSwitch = item.hasTagCompound() && item.getTagCompound() .hasKey("output"); return type == ItemRenderType.INVENTORY && isShiftHeld && shouldSwitch; } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { final ItemStack is = AssemblyLineUtils.getDataStickOutput(item); final Minecraft mc = Minecraft.getMinecraft(); GL11.glPushAttrib(GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT); RenderHelper.enableGUIStandardItemLighting(); this.ri.renderItemAndEffectIntoGUI(mc.fontRenderer, mc.getTextureManager(), is, 0, 0); RenderHelper.disableStandardItemLighting(); GL11.glPopAttrib(); } }