package micdoodle8.mods.galacticraft.api.client.tabs; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.client.FMLClientHandler; public abstract class AbstractTab extends GuiButton { ResourceLocation texture = new ResourceLocation("textures/gui/container/creative_inventory/tabs.png"); ItemStack renderStack; public int potionOffsetLast; protected RenderItem itemRender; public AbstractTab(int id, int posX, int posY, ItemStack renderStack) { super(id, posX, posY, 28, 32, ""); this.renderStack = renderStack; this.itemRender = FMLClientHandler.instance().getClient().getRenderItem(); } @Override public void drawButton(Minecraft mc, int mouseX, int mouseY) { int newPotionOffset = TabRegistry.getPotionOffsetNEI(); if (newPotionOffset != this.potionOffsetLast) { this.xPosition += newPotionOffset - this.potionOffsetLast; this.potionOffsetLast = newPotionOffset; } if (this.visible) { GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); int yTexPos = this.enabled ? 3 : 32; int ySize = this.enabled ? 25 : 32; int xOffset = this.id == 2 ? 0 : 1; int yPos = this.yPosition + (this.enabled ? 3 : 0); mc.renderEngine.bindTexture(this.texture); this.drawTexturedModalRect(this.xPosition, yPos, xOffset * 28, yTexPos, 28, ySize); RenderHelper.enableGUIStandardItemLighting(); this.zLevel = 100.0F; this.itemRender.zLevel = 100.0F; GlStateManager.enableLighting(); GlStateManager.enableRescaleNormal(); this.itemRender.renderItemAndEffectIntoGUI(this.renderStack, this.xPosition + 6, this.yPosition + 8); this.itemRender.renderItemOverlayIntoGUI(mc.fontRendererObj, this.renderStack, this.xPosition + 6, this.yPosition + 8, null); GlStateManager.disableLighting(); GlStateManager.enableBlend(); this.itemRender.zLevel = 0.0F; this.zLevel = 0.0F; RenderHelper.disableStandardItemLighting(); } } @Override public boolean mousePressed(Minecraft mc, int mouseX, int mouseY) { boolean inWindow = this.enabled && this.visible && mouseX >= this.xPosition && mouseY >= this.yPosition && mouseX < this.xPosition + this.width && mouseY < this.yPosition + this.height; if (inWindow) { this.onTabClicked(); } return inWindow; } public abstract void onTabClicked(); public abstract boolean shouldAddToList(); }