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.TileEntityCarpenterMF; import minefantasy.mf2.api.helpers.TextureHelperMF; import minefantasy.mf2.container.ContainerCarpenterMF; 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 GuiCarpenterMF extends GuiContainer { private TileEntityCarpenterMF tile; private int regularXSize = 176; public GuiCarpenterMF(InventoryPlayer user, TileEntityCarpenterMF tile) { super(new ContainerCarpenterMF(user, tile)); this.xSize = 195; this.ySize = 240; 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() ? "Carpenter Bench Crafting" : knowsCraft ? StatCollector.translateToLocal(tile.getResultName()) : "????"; this.fontRendererObj.drawString(s, 10, 8, 0); int xPoint = (this.width - this.xSize) / 2; 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, -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.carpenter") + ", " + (tile.getCarpenterTierNeeded() > -1 ? StatCollector.translateToLocal("attribute.mfcrafttier.name") + " " + tile.getCarpenterTierNeeded() : StatCollector.translateToLocal("attribute.nomfcrafttier.name")); this.fontRendererObj.drawStringWithShadow(s2, regularXSize-fontRendererObj.getStringWidth(s2)+18, -12, 16777215); } } } @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/carpenter.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, yPoint+21, 0, 240, progressWidth, 3); } if(tile.doesPlayerKnowCraft(mc.thePlayer) && !tile.resName.equalsIgnoreCase("")) { GuiHelper.renderToolIcon(this, "carpenter", tile.getCarpenterTierNeeded(), xPoint+regularXSize, yPoint, true); if(tile.getToolNeeded() != null) { GuiHelper.renderToolIcon(this, tile.getToolNeeded(), tile.getToolTierNeeded(), xPoint-20, yPoint, isToolSufficient()); } } } 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); } } }