public class GuiEssenceBag extends GuiContainer { private static final ResourceLocation background = new ResourceLocation("arsmagica2", ResourceManager.GetGuiTexturePath("essenceBagGUI.png")); private static final ResourceLocation extras = new ResourceLocation("arsmagica2", ResourceManager.GetGuiTexturePath("spellBookGui_2.png")); @Override protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { mc.renderEngine.bindTexture(background); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); int l = (width - xSize) / 2; int i1 = (height - ySize) / 2; drawTexturedModalRect(l, i1, 0, 0, xSize, ySize); } public GuiEssenceBag( InventoryPlayer inventoryplayer, ItemStack spellBookStack, InventoryEssenceBag inventorybag) { super(new ContainerEssenceBag(inventoryplayer, spellBookStack, inventorybag)); bagInventory = inventorybag; xSize = 176; ySize = 140; } @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { mc.renderEngine.bindTexture(extras); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); // special slot int index = ((ContainerEssenceBag) this.inventorySlots).specialSlotIndex - 32; int x = 8 + 18 * index; int y = 211; GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.5F); drawTexturedModalRect(x, y, 0, 20, 16, 16); GL11.glDisable(GL11.GL_BLEND); } @Override protected void keyTyped(char par1, int par2) { if (!Character.isDigit(par1)) super.keyTyped(par1, par2); } private InventoryEssenceBag bagInventory; }
@Override public void registerBlockIcons(IIconRegister par1IconRegister) { this.blockIcon = ResourceManager.RegisterTexture("plankWitchwood", par1IconRegister); }
@Override public void registerIcons(IIconRegister par1IconRegister) { this.itemIcon = ResourceManager.RegisterTexture("focus_machinery_charge", par1IconRegister); }
public class AMIngameGUI { private final Minecraft mc; private final RenderItem itemRenderer; private float zLevel; private static final short MANA_BAR_FLASH_SLOT = 4; private final PotionEffectDurationComparator durationComparator = new PotionEffectDurationComparator(); private static final ResourceLocation inv_top = new ResourceLocation("arsmagica2", ResourceManager.GetGuiTexturePath("Inventory_Top.png")); private static final ResourceLocation mc_gui = new ResourceLocation("textures/gui/icons.png"); private static final ResourceLocation spellbook_ui = new ResourceLocation("arsmagica2", ResourceManager.GetGuiTexturePath("spellbook_ui.png")); private static final ResourceLocation inventory = new ResourceLocation("textures/gui/container/inventory.png"); private static final ResourceLocation items = new ResourceLocation("textures/atlas/items.png"); public AMIngameGUI() { mc = Minecraft.getMinecraft(); itemRenderer = new RenderItem(); } public void renderGameOverlay() { ItemStack ci = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); boolean drawAMHud = !AMCore.config.showHudMinimally() || (ci != null && (ci.getItem() == ItemsCommonProxy.spellBook || ci.getItem() == ItemsCommonProxy.spell || ci.getItem() == ItemsCommonProxy.arcaneSpellbook || ci.getItem() instanceof IBoundItem)); ScaledResolution scaledresolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); int i = scaledresolution.getScaledWidth(); int j = scaledresolution.getScaledHeight(); GL11.glPushAttrib(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_TEXTURE_BIT); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); if (drawAMHud) RenderBuffs(i, j); mc.renderEngine.bindTexture(items); if (drawAMHud) RenderContingency(i, j); if (drawAMHud) RenderArsMagicaGUIItems(i, j, mc.fontRenderer); if (drawAMHud) RenderAffinity(i, j); RenderArmorStatus(i, j, mc, mc.fontRenderer); if (drawAMHud) RenderMagicXP(i, j); ItemStack item = mc.thePlayer.getCurrentEquippedItem(); if (item != null && item.getItem() instanceof ItemSpellBook) { RenderSpellBookUI(i, j, mc.fontRenderer, mc.thePlayer.getCurrentEquippedItem()); } GL11.glPopAttrib(); GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glColor4f(1, 1, 1, 1); } private void RenderArsMagicaGUIItems(int i, int j, FontRenderer fontRenderer) { if (ExtendedProperties.For(mc.thePlayer).getMagicLevel() > 0 || mc.thePlayer.capabilities.isCreativeMode) { RenderManaBar(i, j, fontRenderer); } } private void RenderSpellBookUI(int i, int j, FontRenderer fontrenderer, ItemStack bookStack) { mc.renderEngine.bindTexture(spellbook_ui); GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); AMVector2 spellbookVec = getShiftedVector(AMCore.config.getSpellBookPosition(), i, j); int spellUI_x = spellbookVec.iX; int spellUI_y = spellbookVec.iY; int spellUI_width = 148; int spellUI_height = 22; float activeSpellSize = 15f; int bookActiveSlot = ((ItemSpellBook) bookStack.getItem()).GetActiveSlot(bookStack); float x = spellUI_x + bookActiveSlot * 12.9f; float y = spellUI_y; this.zLevel = -5; drawTexturedModalRect_Classic( spellUI_x, spellUI_y, 0, 0, 106, 15, spellUI_width, spellUI_height); ItemStack[] activeScrolls = ((ItemSpellBook) bookStack.getItem()).getActiveScrollInventory(bookStack); mc.renderEngine.bindTexture(items); this.zLevel = 0; for (int n = 0; n < 8; ++n) { float IIconX = spellUI_x + 1.5f + n * 12.9f; ItemStack stackItem = activeScrolls[n]; if (stackItem == null) { continue; } int d = 12; DrawIconAtXY( ((ItemSpellBase) stackItem.getItem()) .getIconFromDamageForRenderPass(stackItem.getItemDamage(), 0), "items", IIconX, spellUI_y + 1.5f, d, d, false); DrawIconAtXY( ((ItemSpellBase) stackItem.getItem()) .getIconFromDamageForRenderPass(stackItem.getItemDamage(), 1), "items", IIconX, spellUI_y + 1.5f, d, d, false); } mc.renderEngine.bindTexture(spellbook_ui); this.zLevel = 1000; drawTexturedModalRect_Classic(x, y, 148, 0, activeSpellSize, activeSpellSize, 20, 20); this.zLevel = 0; mc.renderEngine.bindTexture(mc_gui); } private void RenderManaBar(int i, int j, FontRenderer fontRenderer) { int barWidth = i / 8; AMVector2 fatigue_hud = getShiftedVector(AMCore.config.getBurnoutHudPosition(), i, j); AMVector2 mana_hud = getShiftedVector(AMCore.config.getManaHudPosition(), i, j); float green = 0.5f; float blue = 1.0f; float red = 0.126f; ExtendedProperties props = ExtendedProperties.For(mc.thePlayer); // mana bar float mana = props.getCurrentMana(); float bonusMana = props.getBonusCurrentMana(); float maxMana = props.getMaxMana(); float fatigueBarWidth = barWidth; float fatigue = props.getCurrentFatigue(); float maxFatigue = props.getMaxFatigue(); if (mana + bonusMana > maxMana) mana = maxMana; float progressScaled = (mana / (maxMana + 0.01f)); if (AMCore.config.showHudBars()) { // handle flashing of mana bar float flashTimer = AMGuiHelper.instance.getFlashTimer(MANA_BAR_FLASH_SLOT); if (flashTimer > 0) { green = 0.0f; float redShift = 1.0f - red; float halfFlash = AMGuiHelper.instance.flashDuration / 2; if (flashTimer > halfFlash) { float pct = (flashTimer - halfFlash) / halfFlash; red += redShift - (redShift * pct); } else { float pct = flashTimer / halfFlash; red += (redShift * pct); } GL11.glColor3f(red, green, blue); } else { if (bonusMana > 0) GL11.glColor3f(0.2f, 0.9f, 0.6f); } ItemStack curItem = Minecraft.getMinecraft().thePlayer.getCurrentEquippedItem(); if (curItem != null && (curItem.getItem() == ItemsCommonProxy.spell || curItem.getItem() == ItemsCommonProxy.spellBook || curItem.getItem() == ItemsCommonProxy.arcaneSpellbook)) { ItemStack spellStack = curItem.getItem() == ItemsCommonProxy.spell ? curItem : ((ItemSpellBook) curItem.getItem()).GetActiveItemStack(curItem); if (spellStack != null) { int[] parts = SpellUtils.instance.getShapeGroupParts(spellStack); int sx = mana_hud.iX - 2 * parts.length / 2; int sy = mana_hud.iY - 2 * parts.length / 2; for (int p : parts) { IIcon icon = SpellIconManager.instance.getIcon( SkillManager.instance.getSkillName(SkillManager.instance.getSkill(p))); if (icon != null) { DrawIconAtXY(icon, "items", sx, sy, false); sx += 3; sy += 3; } } } } DrawPartialIconAtXY( AMGuiIcons.manaLevel, progressScaled, 1, mana_hud.iX + 16, mana_hud.iY + 1f, (int) (barWidth * 0.97f), 40, false); DrawIconAtXY( AMGuiIcons.manaBar, "items", mana_hud.iX + 15, mana_hud.iY + 3, barWidth, 50, false); GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); progressScaled = (fatigue / (maxFatigue + 0.01f)); DrawIconAtXY( AMGuiIcons.fatigueIcon, "items", fatigue_hud.iX + barWidth, fatigue_hud.iY, false); DrawPartialIconAtXY( AMGuiIcons.fatigueLevel, progressScaled, 1, fatigue_hud.iX, fatigue_hud.iY + 3f, fatigueBarWidth, 40, false); DrawIconAtXY( AMGuiIcons.fatigueBar, "items", fatigue_hud.iX, fatigue_hud.iY + 4, barWidth, 48, false); green = 0.5f; blue = 1.0f; red = 0.126f; // magic level int manaBarColor = Math.round(red * 255); manaBarColor = (manaBarColor << 8) + Math.round(green * 255); manaBarColor = (manaBarColor << 8) + Math.round(blue * 255); String magicLevel = (new StringBuilder()) .append("") .append(ExtendedProperties.For(mc.thePlayer).getMagicLevel()) .toString(); AMVector2 magicLevelPos = getShiftedVector(AMCore.config.getLevelPosition(), i, j); magicLevelPos.iX -= Minecraft.getMinecraft().fontRenderer.getStringWidth(magicLevel) / 2; fontRenderer.drawStringWithShadow( magicLevel, magicLevelPos.iX, magicLevelPos.iY, manaBarColor); if (flashTimer > 0) { GL11.glColor3f(1.0f, 1.0f, 1.0f); } } if (AMCore.config.getShowNumerics()) { String manaStr = StatCollector.translateToLocal("am2.gui.mana") + ": " + (int) (mana + bonusMana) + "/" + (int) maxMana; String burnoutStr = StatCollector.translateToLocal("am2.gui.burnout") + ": " + (int) props.getCurrentFatigue() + "/" + (int) props.getMaxFatigue(); AMVector2 manaNumericPos = getShiftedVector(AMCore.config.getManaNumericPosition(), i, j); AMVector2 burnoutNumericPos = getShiftedVector(AMCore.config.getBurnoutNumericPosition(), i, j); fontRenderer.drawString( manaStr, manaNumericPos.iX, manaNumericPos.iY, bonusMana > 0 ? 0xeae31c : 0x2080FF); fontRenderer.drawString( burnoutStr, burnoutNumericPos.iX + 25 - fontRenderer.getStringWidth(burnoutStr), burnoutNumericPos.iY, 0xFF2020); } } private ItemStack getSpellFromStack(ItemStack stack) { if (stack.getItem() == ItemsCommonProxy.spell) return stack; else if (stack.getItem() == ItemsCommonProxy.spellBook || stack.getItem() == ItemsCommonProxy.arcaneSpellbook) return ((ItemSpellBook) stack.getItem()).GetActiveItemStack(stack); else return null; } private void RenderArmorStatus(int i, int j, Minecraft mc, FontRenderer fontRenderer) { if (!AMCore.config.showArmorUI()) return; ScaledResolution scaledResolution = new ScaledResolution( Minecraft.getMinecraft(), Minecraft.getMinecraft().displayWidth, Minecraft.getMinecraft().displayHeight); for (int slot = 0; slot < 4; ++slot) { if (ArmorHelper.PlayerHasArmorInSlot(mc.thePlayer, 3 - slot)) { AMVector2 position = getArmorSlotPosition( slot, scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight()); int blackoutTimer = AMGuiHelper.instance.getBlackoutTimer(3 - slot); int blackoutMaxTimer = AMGuiHelper.instance.getBlackoutTimerMax(3 - slot); GL11.glColor3f(1.0f, 1.0f, 1.0f); ItemStack armor = mc.thePlayer.inventory.armorInventory[3 - slot]; float lineweight = 4f; // durability if (armor.isItemDamaged() && armor.getMaxDamage() > 0) { float pct = 1 - (float) armor.getItemDamage() / (float) armor.getMaxDamage(); AMGuiHelper.line2d( position.iX, position.iY + 10, position.iX + 10, position.iY + 10, this.zLevel + 100, lineweight, 0); int color = (int) (255.0f * (1 - pct)) << 16 | (int) (255.0f * pct) << 8; AMGuiHelper.line2d( position.iX, position.iY + 10, position.iX + (10 * pct), position.iY + 10, this.zLevel + 101, lineweight, color); } // cooldown if (blackoutMaxTimer > 0) { float pct = (float) (blackoutMaxTimer - blackoutTimer) / (float) blackoutMaxTimer; AMGuiHelper.line2d( position.iX, position.iY + 11, position.iX + 10, position.iY + 11, this.zLevel + 100, lineweight, 0); AMGuiHelper.line2d( position.iX, position.iY + 11, position.iX + (10 * pct), position.iY + 11, this.zLevel + 101, lineweight, 0xFF0000); } else { AMGuiHelper.line2d( position.iX, position.iY + 11, position.iX + 10, position.iY + 11, this.zLevel + 101, lineweight, 0x0000FF); } IIcon icon = mc.thePlayer.inventory.armorInventory[3 - slot].getIconIndex(); if (icon != null) { AMGuiHelper.DrawIconAtXY(icon, position.iX, position.iY, this.zLevel, 10, 10, true); } else { AMGuiHelper.DrawItemAtXY( mc.thePlayer.inventory.armorInventory[3 - slot], position.iX, position.iY, this.zLevel, 0.63f); } } } GL11.glColor3f(1.0f, 1.0f, 1.0f); } private AMVector2 getArmorSlotPosition(int slot, int screenWidth, int screenHeight) { switch (slot) { case 0: return getShiftedVector(AMCore.config.getArmorPositionHead(), screenWidth, screenHeight); case 1: return getShiftedVector(AMCore.config.getArmorPositionChest(), screenWidth, screenHeight); case 2: return getShiftedVector(AMCore.config.getArmorPositionLegs(), screenWidth, screenHeight); case 3: return getShiftedVector(AMCore.config.getArmorPositionBoots(), screenWidth, screenHeight); } return new AMVector2(0, 0); } public void RenderAffinity(int i, int j) { AMVector2 affinityPos = getShiftedVector(AMCore.config.getAffinityPosition(), i, j); int x = affinityPos.iX; int y = affinityPos.iY; AffinityData ad = AffinityData.For(Minecraft.getMinecraft().thePlayer); for (Affinity affinity : ad.getHighestAffinities()) { if (affinity == null || affinity == Affinity.NONE) continue; GL11.glColor3f(1.0f, 1.0f, 1.0f); AMGuiHelper.instance.DrawIconAtXY( affinity.representItem.getIconFromDamage(affinity.representMeta), x, y, j, 12, 12, true); if (AMCore.config.getShowNumerics()) { String display = String.format( "%.2f%%", AffinityData.For(mc.thePlayer).getAffinityDepth(affinity) * 100); if (x < i / 2) Minecraft.getMinecraft().fontRenderer.drawString(display, x + 14, y + 2, affinity.color); else Minecraft.getMinecraft() .fontRenderer .drawString( display, x - 2 - Minecraft.getMinecraft().fontRenderer.getStringWidth(display), y + 2, affinity.color); } y += 15; } } public void RenderContingency(int i, int j) { AMVector2 contingencyPos = getShiftedVector(AMCore.config.getContingencyPosition(), i, j); IIcon icon = null; ContingencyTypes type = ExtendedProperties.For(Minecraft.getMinecraft().thePlayer).getContingencyType(); switch (type) { case DAMAGE_TAKEN: icon = SpellIconManager.instance.getIcon("Contingency_Damage"); break; case FALL: icon = SpellIconManager.instance.getIcon("Contingency_Fall"); break; case HEALTH_LOW: icon = SpellIconManager.instance.getIcon("Contingency_Health"); break; case ON_FIRE: icon = SpellIconManager.instance.getIcon("Contingency_Fire"); break; case DEATH: icon = SpellIconManager.instance.getIcon("Contingency_Death"); break; case NONE: default: return; } DrawIconAtXY(icon, "items", contingencyPos.iX, contingencyPos.iY, 16, 16, true); GL11.glColor3f(1.0f, 1.0f, 1.0f); } public void RenderBuffs(int i, int j) { if (!AMCore.config.getShowBuffs()) { return; } int barWidth = i / 8; AMVector2 posBuffStart = getShiftedVector(AMCore.config.getPositiveBuffsPosition(), i, j); AMVector2 negBuffStart = getShiftedVector(AMCore.config.getNegativeBuffsPosition(), i, j); int positive_buff_x = posBuffStart.iX; int positive_buff_y = posBuffStart.iY; int negative_buff_x = negBuffStart.iX; int negative_buff_y = negBuffStart.iY; for (PotionEffect pe : getPotionEffectsByTimeRemaining()) { this.mc.renderEngine.bindTexture(inventory); int potionID = pe.getPotionID(); if (potionID < 0 || potionID >= Potion.potionTypes.length) continue; Potion potion = Potion.potionTypes[potionID]; if (potion == null) continue; if (potion.isBadEffect()) { if (potion.hasStatusIcon()) { int l = potion.getStatusIconIndex(); if (pe.getDuration() < 100) { GL11.glColor4f(1.0f, 1.0f, 1.0f, AMGuiHelper.instance.fastFlashAlpha); } else if (pe.getDuration() < 200) { GL11.glColor4f(1.0f, 1.0f, 1.0f, AMGuiHelper.instance.slowFlashAlpha); } this.drawTexturedModalRect_Classic( negative_buff_x, negative_buff_y, 0 + l % 8 * 18, 198 + l / 8 * 18, 10, 10, 18, 18); GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); negative_buff_x -= 12; if (negative_buff_x <= negBuffStart.iX - 48) { negative_buff_x = negBuffStart.iX; negative_buff_y += 12; } } } else { this.mc.renderEngine.bindTexture(inventory); if (potion.hasStatusIcon()) { int l = potion.getStatusIconIndex(); if (pe.getDuration() < 100) { GL11.glColor4f(1.0f, 1.0f, 1.0f, AMGuiHelper.instance.fastFlashAlpha); } else if (pe.getDuration() < 200) { GL11.glColor4f(1.0f, 1.0f, 1.0f, AMGuiHelper.instance.slowFlashAlpha); } this.drawTexturedModalRect_Classic( positive_buff_x, positive_buff_y, 0 + l % 8 * 18, 198 + l / 8 * 18, 10, 10, 18, 18); GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); positive_buff_x += 12; if (positive_buff_x >= posBuffStart.iX + 48) { positive_buff_x = posBuffStart.iX; positive_buff_y += 12; } } } } } public void RenderMagicXP(int i, int j) { ExtendedProperties props = ExtendedProperties.For(Minecraft.getMinecraft().thePlayer); if (props.getMagicLevel() > 0) { AMVector2 position = getShiftedVector(AMCore.config.getXPBarPosition(), i, j); AMVector2 dimensions = new AMVector2(182, 5); Minecraft.getMinecraft().renderEngine.bindTexture(mc_gui); GL11.glColor4f( 0.5f, 0.5f, 1.0f, AMCore.config.showXPAlways() ? 1.0f : AMGuiHelper.instance.getMagicXPBarAlpha()); // base XP bar drawTexturedModalRect_Classic( position.iX, position.iY, 0, 64, dimensions.iX, dimensions.iY, dimensions.iX, dimensions.iY); if (props.getMagicXP() > 0) { float pctXP = props.getMagicXP() / props.getXPToNextLevel(); if (pctXP > 1) pctXP = 1; int width = (int) ((dimensions.iX + 1) * pctXP); drawTexturedModalRect_Classic( position.iX, position.iY, 0, 69, width, dimensions.iY, width, dimensions.iY); } if (AMCore.config.getShowNumerics() && (AMCore.config.showXPAlways() || AMGuiHelper.instance.getMagicXPBarAlpha() > 0)) { String xpStr = StatCollector.translateToLocal("am2.gui.xp") + ": " + +(int) (props.getMagicXP() * 100) + "/" + (int) (props.getXPToNextLevel() * 100); AMVector2 numericPos = getShiftedVector(AMCore.config.getXPNumericPosition(), i, j); Minecraft.getMinecraft() .fontRenderer .drawString(xpStr, numericPos.iX, numericPos.iY, 0x999999); } } } private ArrayList<PotionEffect> getPotionEffectsByTimeRemaining() { Iterator i = mc.thePlayer.getActivePotionEffects().iterator(); ArrayList<PotionEffect> potions = new ArrayList<PotionEffect>(); while (i.hasNext()) potions.add((PotionEffect) i.next()); Collections.sort(potions, durationComparator); return potions; } public void drawTexturedModalRect_Classic( int par1, int par2, int par3, int par4, int par5, int par6) { float var7 = 0.00390625F; float var8 = 0.00390625F; Tessellator var9 = Tessellator.instance; var9.startDrawingQuads(); var9.addVertexWithUV( par1 + 0, par2 + par6, this.zLevel, (par3 + 0) * var7, (par4 + par6) * var8); var9.addVertexWithUV( par1 + par5, par2 + par6, this.zLevel, (par3 + par5) * var7, (par4 + par6) * var8); var9.addVertexWithUV( par1 + par5, par2 + 0, this.zLevel, (par3 + par5) * var7, (par4 + 0) * var8); var9.addVertexWithUV(par1 + 0, par2 + 0, this.zLevel, (par3 + 0) * var7, (par4 + 0) * var8); var9.draw(); } /** * Draw a section of the currently bound texture to the screen. * * @param dst_x The x coordinate on the screen to draw to * @param dst_y The y coordinate on the screen to draw to * @param src_x The x coordinate on the texture to pull from * @param src_y The y coordinate on the texture to pull from * @param dst_width The width on screen to draw * @param dst_height The height on screen to draw * @param src_width The width of the texture section * @param src_height The height of the texture section */ public void drawTexturedModalRect_Classic( float dst_x, float dst_y, float src_x, float src_y, float dst_width, float dst_height, float src_width, float src_height) { float var7 = 0.00390625F; float var8 = 0.00390625F; Tessellator var9 = Tessellator.instance; var9.startDrawingQuads(); var9.addVertexWithUV( dst_x + 0, dst_y + dst_height, this.zLevel, (src_x + 0) * var7, (src_y + src_height) * var8); var9.addVertexWithUV( dst_x + dst_width, dst_y + dst_height, this.zLevel, (src_x + src_width) * var7, (src_y + src_height) * var8); var9.addVertexWithUV( dst_x + dst_width, dst_y + 0, this.zLevel, (src_x + src_width) * var7, (src_y + 0) * var8); var9.addVertexWithUV(dst_x + 0, dst_y + 0, this.zLevel, (src_x + 0) * var7, (src_y + 0) * var8); var9.draw(); } public void drawTexturedModalRect(int par1, int par2, int par3, int par4, int par5, int par6) { float var9 = 0; float var10 = 1; float var11 = 0; float var12 = 1; Tessellator var8 = Tessellator.instance; // GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0F); var8.startDrawingQuads(); var8.setNormal(0.0F, 1.0F, 0.0F); var8.addVertexWithUV(par1 + 0, par2 + par6, this.zLevel, var9, var12); var8.addVertexWithUV(par1 + par5, par2 + par6, this.zLevel, var10, var12); var8.addVertexWithUV(par1 + par5, par2 + 0, this.zLevel, var10, var11); var8.addVertexWithUV(par1 + 0, par2 + 0, this.zLevel, var9, var11); var8.draw(); } private void renderPortalOverlay(float par1, int par2, int par3) {} private void DrawIconAtXY(IIcon icon, String base, float x, float y, boolean semitransparent) { DrawIconAtXY(icon, base, x, y, 16, 16, semitransparent); } private void DrawIconAtXY( IIcon IIcon, String base, float x, float y, int w, int h, boolean semitransparent) { if (IIcon == null) return; Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(x, y + h, this.zLevel, IIcon.getMinU(), IIcon.getMaxV()); tessellator.addVertexWithUV(x + w, y + h, this.zLevel, IIcon.getMaxU(), IIcon.getMaxV()); tessellator.addVertexWithUV(x + w, y, this.zLevel, IIcon.getMaxU(), IIcon.getMinV()); tessellator.addVertexWithUV(x, y, this.zLevel, IIcon.getMinU(), IIcon.getMinV()); tessellator.draw(); } private void DrawPartialIconAtXY( IIcon IIcon, float pct_x, float pct_y, float x, float y, float w, float h, boolean semitransparent) { if (IIcon == null) return; mc.renderEngine.bindTexture(items); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(x, y + (h * pct_y), this.zLevel, IIcon.getMinU(), IIcon.getMaxV()); tessellator.addVertexWithUV( x + (w * pct_x), y + (h * pct_y), this.zLevel, IIcon.getMaxU(), IIcon.getMaxV()); tessellator.addVertexWithUV(x + (w * pct_x), y, this.zLevel, IIcon.getMaxU(), IIcon.getMinV()); tessellator.addVertexWithUV(x, y, this.zLevel, IIcon.getMinU(), IIcon.getMinV()); tessellator.draw(); } private AMVector2 getShiftedVector(AMVector2 configVec, int screenWidth, int screenHeight) { int x = (int) Math.round(configVec.x * screenWidth); int y = (int) Math.round(configVec.y * screenHeight); return new AMVector2(x, y); } class PotionEffectDurationComparator implements Comparator<PotionEffect> { public PotionEffectDurationComparator() {} @Override public int compare(PotionEffect o1, PotionEffect o2) { if (o1.getDuration() < o2.getDuration()) return -1; else if (o1.getDuration() > o2.getDuration()) return 1; else return 0; } } }