package com.bioxx.tfc2.gui;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.SoundHandler;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.VertexBuffer;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import com.bioxx.tfc2.Core;
import com.bioxx.tfc2.Reference;
import com.bioxx.tfc2.TFCItems;
import com.bioxx.tfc2.api.types.StoneType;
import com.bioxx.tfc2.core.PlayerInfo;
import com.bioxx.tfc2.core.PlayerManagerTFC;
import com.bioxx.tfc2.core.TFC_Sounds;
public class GuiKnappingButton extends GuiButton
{
boolean highlight = true;
public GuiKnappingButton(int index, int xPos, int yPos, int width, int height)
{
super(index, xPos, yPos, width, height, "");
}
@Override
public void drawButton(Minecraft par1Minecraft, int xPos, int yPos)
{
if (this.visible)
{
this.hovered = xPos >= this.xPosition && yPos >= this.yPosition && xPos < this.xPosition + this.width && yPos < this.yPosition + this.height;
PlayerInfo pi = PlayerManagerTFC.getInstance().getClientPlayer();
GL11.glScalef(0.5f, 0.5f, 1f);
GL11.glTranslatef(xPosition, yPosition, 0);
if (pi.specialCraftingType != null)
{
if(pi.specialCraftingType.getItem() == TFCItems.LooseRock)
{
Core.bindTexture(new ResourceLocation(Reference.ModID, "textures/blocks/rocks/" + StoneType.getStoneTypeFromMeta(pi.specialCraftingType.getItemDamage()).name() +" Raw.png"));
//Same as drawTexturedModalRect except we need to set the UV ourselves
drawLocal();
}
else
{
Minecraft.getMinecraft().getRenderItem().renderItemAndEffectIntoGUI(pi.specialCraftingType, xPosition, yPosition);
}
}
if (!this.enabled && pi.specialCraftingTypeAlternate != null)
{
if(pi.specialCraftingType.getItem() == TFCItems.LooseRock)
{
Core.bindTexture(new ResourceLocation(Reference.ModID, "textures/blocks/rocks/" + StoneType.getStoneTypeFromMeta(pi.specialCraftingTypeAlternate.getItemDamage()).name() +" Raw.png"));
GL11.glColor4f(1f, 1f, 1f, 0.5f);
//Same as drawTexturedModalRect except we need to set the UV ourselves
drawLocal();
}
else
{
Minecraft.getMinecraft().getRenderItem().renderItemAndEffectIntoGUI(pi.specialCraftingTypeAlternate, xPosition, yPosition);
}
}
if(pi.shouldDrawKnappingHighlight && highlight)
{
Core.bindTexture(GuiKnapping.texture);
GL11.glColor4f(1f, 1f, 1f, 0.2f);
GlStateManager.enableBlend();
this.drawTexturedModalRect(this.xPosition, this.yPosition, 0, 239, 16, 16);
GlStateManager.disableBlend();
}
GL11.glTranslatef(-xPosition, -yPosition, 0);
GL11.glScalef(2f, 2f, 1);
GL11.glColor4f(1f, 1f, 1f, 1f);
this.mouseDragged(par1Minecraft, this.xPosition, this.yPosition);
}
}
protected void drawLocal()
{
float f = 0.00390625F;
float f1 = 0.00390625F;
Tessellator tessellator = Tessellator.getInstance();
VertexBuffer vertexBuffer = tessellator.getBuffer();
vertexBuffer.begin(7, DefaultVertexFormats.POSITION_TEX);
vertexBuffer.pos(xPosition + 0, yPosition + 16, this.zLevel).tex(0, 1).endVertex();
vertexBuffer.pos(xPosition + 16, yPosition + 16, this.zLevel).tex(1, 1).endVertex();
vertexBuffer.pos(xPosition + 16, yPosition + 0, this.zLevel).tex(1, 0).endVertex();
vertexBuffer.pos(xPosition + 0, yPosition + 0, this.zLevel).tex(0, 0).endVertex();
tessellator.draw();
}
@Override
public void playPressSound(SoundHandler paramSoundHandler)
{
paramSoundHandler.playSound(net.minecraft.client.audio.PositionedSoundRecord.getMasterRecord(TFC_Sounds.KNAPPING, 1.0F));
}
public void highlight(boolean b)
{
highlight = b;
}
}