package minefantasy.mf2.client.gui;
import minefantasy.mf2.MineFantasyII;
import minefantasy.mf2.api.helpers.GuiHelper;
import minefantasy.mf2.api.helpers.ToolHelper;
import minefantasy.mf2.block.tileentity.TileEntityAnvilMF;
import minefantasy.mf2.api.helpers.TextureHelperMF;
import minefantasy.mf2.container.ContainerAnvilMF;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.StatCollector;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class GuiAnvilMF extends GuiContainer
{
private TileEntityAnvilMF tile;
private int regularXSize = 176;
private int xInvOffset = 28;
public GuiAnvilMF(InventoryPlayer user, TileEntityAnvilMF tile)
{
super(new ContainerAnvilMF(user, tile));
this.xSize = 235;
this.ySize = 210;
this.tile = tile;
}
/**
* Draw the foreground layer for the GuiContainer (everything in front of the items)
*/
@Override
protected void drawGuiContainerForegroundLayer(int x, int y)
{
boolean knowsCraft = tile.doesPlayerKnowCraft(mc.thePlayer);
String s = MineFantasyII.isDebug() ? "Anvil Crafting" : knowsCraft ? StatCollector.translateToLocal(tile.getResultName()) : "????";
this.fontRendererObj.drawString(s, 10+xInvOffset, 8, 0);
int xPoint = (this.width - this.xSize) / 2 + 30;
int yPoint = (this.height - this.ySize) / 2;
if(knowsCraft && !tile.resName.equalsIgnoreCase(""))
{
if(tile.getToolNeeded() != null)
{
if(x < xPoint && x > xPoint-20 && y < yPoint+20 && y > yPoint)
{
String s2 = StatCollector.translateToLocal("tooltype."+tile.getToolNeeded()) + ", " + (tile.getToolTierNeeded() > -1 ? StatCollector.translateToLocal("attribute.mfcrafttier.name") + " " + tile.getToolTierNeeded() : StatCollector.translateToLocal("attribute.nomfcrafttier.name"));
this.fontRendererObj.drawStringWithShadow(s2, -18+xInvOffset, -12, isToolSufficient() ? 16777215 : GuiHelper.getColourForRGB(150, 0, 0));
}
}
if(x < xPoint+regularXSize+20 && x > xPoint+regularXSize && y < yPoint+20 && y > yPoint)
{
String s2 = StatCollector.translateToLocal("tooltype.anvil") + ", " + (tile.getAnvilTierNeeded() > -1 ? StatCollector.translateToLocal("attribute.mfcrafttier.name") + " " + tile.getAnvilTierNeeded() : StatCollector.translateToLocal("attribute.nomfcrafttier.name"));
this.fontRendererObj.drawStringWithShadow(s2, regularXSize-fontRendererObj.getStringWidth(s2)+18+xInvOffset, -12, isBlockSufficient() ? 16777215 : GuiHelper.getColourForRGB(150, 0, 0));
}
}
}
@Override
protected void drawGuiContainerBackgroundLayer(float f, int x, int y)
{
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.getTextureManager().bindTexture(TextureHelperMF.getResource("textures/gui/anvil"+tile.getTextureName()+".png"));
int xPoint = (this.width - this.xSize) / 2;
int yPoint = (this.height - this.ySize) / 2;
this.drawTexturedModalRect(xPoint, yPoint, 0, 0, this.xSize, this.ySize);
if(tile.progressMax > 0 && tile.progress > 0)
{
int progressWidth = (int)(160F/tile.progressMax*tile.progress);
this.drawTexturedModalRect(xPoint+8+xInvOffset, yPoint+21, 0, 210, progressWidth, 3);
}
if(tile.doesPlayerKnowCraft(mc.thePlayer) && !tile.resName.equalsIgnoreCase(""))
{
GuiHelper.renderToolIcon(this, "anvil", tile.getAnvilTierNeeded(), xPoint+regularXSize+xInvOffset, yPoint, isBlockSufficient());
if(tile.getToolNeeded() != null)
{
GuiHelper.renderToolIcon(this, tile.getToolNeeded(), tile.getToolTierNeeded(), xPoint-20+xInvOffset, yPoint, isToolSufficient());
}
}
}
private boolean isBlockSufficient()
{
return tile.tier >= tile.getAnvilTierNeeded();
}
private boolean isToolSufficient()
{
if(mc.thePlayer != null)
{
return ToolHelper.isToolSufficient(mc.thePlayer.getHeldItem(), tile.getToolNeeded(), tile.getToolTierNeeded());
}
return false;
}
@Override
public void drawScreen(int x, int y, float f)
{
super.drawScreen(x, y, f);
}
private void renderItem(ItemStack itemstack, int x, int y, int mouseX, int mouseY)
{
itemRender.renderItemAndEffectIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), itemstack, x, y);
itemRender.renderItemOverlayIntoGUI(this.fontRendererObj, this.mc.getTextureManager(), itemstack, x, y);
}
private void renderItemName(ItemStack itemstack, int x, int y, int mouseX, int mouseY)
{
if (this.func_146978_c(x-guiLeft, y-guiTop, 16, 16, mouseX, mouseY))
{
this.renderToolTip(itemstack, mouseX, mouseY);
}
}
}