/*******************************************************************************
* Copyright (c) 2012-2013 Yancarlo Ramsey and CJ Bowman
* Licensed as open source with restrictions. Please see attached LICENSE.txt.
******************************************************************************/
package com.kaijin.AdvPowerMan;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class CButton extends GuiButton
{
/** Path to custom texture for button */
protected String texture;
protected int uLoc;
protected int vLoc;
protected int uHoverLoc;
protected int vHoverLoc;
protected int color;
protected int hoverColor;
protected boolean isHovering;
/** CButton will assume the texture size is equal to the width and height of the button
*
* @param id - ID of button
* @param xLoc - x location of button on screen
* @param yLoc - y location of button on screen
* @param width - width of button
* @param height - height of button
* @param uLoc - x location of start of texture in texture file
* @param vLoc - y location of start of texture in texture file
* @param uHoverLoc - x location of start of texture for mouse over in texture file
* @param vHoverLoc - x location of start of texture for mouse over in texture file
* @param text - text to display on button
* @param color - color for the text
* @param hoverColor - color for the text while hovering
* @param texture - path to texture file
*/
public CButton(int id, int xLoc, int yLoc, int width, int height, int uLoc, int vLoc, int uHoverLoc, int vHoverLoc, String text, int color, int hoverColor, String texture)
{
super(id, xLoc, yLoc, width, height, text);
this.enabled = true;
this.drawButton = true;
this.id = id;
this.xPosition = xLoc;
this.yPosition = yLoc;
this.width = width;
this.height = height;
this.uLoc = uLoc;
this.vLoc = vLoc;
this.uHoverLoc = uHoverLoc;
this.vHoverLoc = vHoverLoc;
this.displayString = text;
this.color = color;
this.hoverColor = hoverColor;
this.texture = texture;
}
/**
* Draws this button to the screen.
*/
@Override
public void drawButton(Minecraft mc, int xLoc, int yLoc)
{
if (drawButton)
{
FontRenderer fr = mc.fontRenderer;
if (texture != null)
{
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mc.renderEngine.func_110577_a(new ResourceLocation(Info.TITLE_PACKED.toLowerCase(), texture));
}
isHovering = xLoc >= xPosition && yLoc >= yPosition && xLoc < xPosition + width && yLoc < yPosition + height;
int hoverState = this.getHoverState(isHovering);
if (hoverState == 2)
{
this.drawTexturedModalRect(xPosition, yPosition, uHoverLoc, vHoverLoc, width, height);
}
else
{
this.drawTexturedModalRect(xPosition, yPosition, uLoc, vLoc, width, height);
}
int defaultColor = color;
int renderColor = defaultColor;
if (!enabled)
{
renderColor = -6250336;
}
else if (isHovering)
{
renderColor = hoverColor;
}
fr.drawString(displayString, xPosition + (width - fr.getStringWidth(displayString)) / 2, yPosition + (height - 7) / 2, renderColor);
}
}
}