package minefantasy.client; /** * * @author Anonymous Productions * * Sources are provided for educational reasons. * though small bits of code, or methods can be used in your own creations. */ import minefantasy.item.I2HWeapon; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiInventory; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.util.Icon; import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import cpw.mods.fml.client.FMLClientHandler; public class MF_DaggerRenderer implements IItemRenderer { private Minecraft mc; private RenderItem itemRenderer; @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { return type.equals(ItemRenderType.EQUIPPED) || type.equals(ItemRenderType.EQUIPPED_FIRST_PERSON); } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return false; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { boolean isSneak = false; if(data.length >= 2 && data[1] instanceof EntityLivingBase) { isSneak = ((EntityLivingBase)data[1]).isSneaking(); } GL11.glPushMatrix(); if (mc == null) { mc = FMLClientHandler.instance().getClient(); itemRenderer = new RenderItem(); } this.mc.renderEngine.bindTexture(TextureMap.locationItemsTexture); Tessellator tessellator = Tessellator.instance; if (type == ItemRenderType.EQUIPPED) { if(isSneak) { GL11.glRotatef(180, 0, 0, 1); GL11.glTranslatef(-1.5F, -0.5F, 0); } Icon icon = item.getIconIndex(); RenderManager.instance.itemRenderer.renderItemIn2D(tessellator, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 1F/16F); if (item != null && item.hasEffect(0)) { TextureHelperMF.renderEnchantmentEffects(tessellator); } } else if (type == ItemRenderType.EQUIPPED_FIRST_PERSON) { if(isSneak) { GL11.glRotatef(-90, 0, 0, 1); GL11.glTranslatef(-1.0F, 0.0F, 0); } Icon icon = item.getIconIndex(); RenderManager.instance.itemRenderer.renderItemIn2D(tessellator, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 1F/16F); if (item != null && item.hasEffect(0)) { TextureHelperMF.renderEnchantmentEffects(tessellator); } } GL11.glPopMatrix(); } }