package minefantasy.client;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.SideOnly;
import minefantasy.api.IMFCrafter;
import cpw.mods.fml.relauncher.Side;
import minefantasy.block.tileentity.TileEntityAnvil;
import minefantasy.system.cfg;
import minefantasy.system.data_minefantasy;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumMovingObjectType;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
@SideOnly(Side.CLIENT)
public class MineFantasyHUD extends Gui
{
private static Minecraft mc = Minecraft.getMinecraft();
public void renderGameOverlay(float partialTicks, int mouseX, int mouseY)
{
if(cfg.disableHUD) return;
GL11.glColor3f(255, 255, 255);
int[] coords = getClickedBlock(partialTicks, mouseX, mouseY);
if(coords == null)return;
int x = coords[0];
int y = coords[1];
int z = coords[2];
EntityPlayer player = mc.thePlayer;
World world = player.worldObj;
TileEntity tile = world.getBlockTileEntity(x, y, z);
if(tile != null && tile instanceof IMFCrafter)
{
this.renderCraftMetre(world, player, (IMFCrafter)tile);
}
if(cfg.advancedAnvil && tile != null && tile instanceof TileEntityAnvil)
{
this.renderAnvil(world, player, (TileEntityAnvil)tile);
}
}
/*
* DEFAULT GRID W:427 H:240
*/
private void renderCraftMetre(World world, EntityPlayer player, IMFCrafter tile)
{
if(!tile.shouldRenderCraftMetre())
{
return;
}
GL11.glPushMatrix();
ScaledResolution scaledresolution = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight);
int width = scaledresolution.getScaledWidth();
int height = scaledresolution.getScaledHeight();
bindTexture(data_minefantasy.image("/gui/craftMetre.png"));
int xPos = width/2 + cfg.craftMetreX-48;
int yPos = height - cfg.craftMetreY;
this.drawTexturedModalRect(xPos, yPos, 0, 0, 96, 16);
this.drawTexturedModalRect(xPos+4, yPos+4, 0, 17, tile.getProgressBar(88), 9);
String s = tile.getResultName();
mc.fontRenderer.drawString(s, xPos + 48 - (mc.fontRenderer.getStringWidth(s) / 2), yPos+5, 0);
GL11.glColor3f(1.0F, 1.0F, 1.0F);
GL11.glPopMatrix();
}
private void renderAnvil(World world, EntityPlayer player, TileEntityAnvil anvil)
{
if(!anvil.shouldRenderCraftMetre())
{
return;
}
GL11.glPushMatrix();
ScaledResolution scaledresolution = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight);
int width = scaledresolution.getScaledWidth();
int height = scaledresolution.getScaledHeight();
bindTexture(data_minefantasy.image("/gui/craftMetre.png"));
int xPos = width/2 + cfg.craftMetreX - 48;
int yPos = height - cfg.craftMetreY + 16;
if(anvil.canCraft())
{
this.drawTexturedModalRect(xPos, yPos, 0, 34, 96, 10);
int quality = anvil.getQualityPosScaled(anvil.quality, 88);
int max = anvil.getQualityPosScaled(anvil.getQualityPeak(), 88);
this.drawTexturedModalRect(xPos + 4 + quality, yPos, 5, 45, 5, 11);
this.drawTexturedModalRect(xPos +4 + max, yPos, 10, 45, 5, 5);
this.drawTexturedModalRect(xPos +1, yPos-7, 0, 45, 5, 12);
}
GL11.glPopMatrix();
}
public int[] getClickedBlock(float ticks, int mouseX, int mouseY)
{
if (mc.objectMouseOver != null && mc.objectMouseOver.typeOfHit == EnumMovingObjectType.TILE)
{
int j = mc.objectMouseOver.blockX;
int k = mc.objectMouseOver.blockY;
int l = mc.objectMouseOver.blockZ;
return new int[]{j, k, l};
}
return null;
}
public void bindTexture(String image)
{
mc.renderEngine.bindTexture(TextureHelperMF.getResource(image));
}
}