Package erogenousbeef.bigreactors.gui.controls

Source Code of erogenousbeef.bigreactors.gui.controls.BeefGuiLabel

package erogenousbeef.bigreactors.gui.controls;

import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.texture.TextureManager;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import erogenousbeef.bigreactors.client.gui.BeefGuiBase;
import erogenousbeef.bigreactors.gui.BeefGuiControlBase;
import erogenousbeef.bigreactors.gui.IBeefTooltipControl;

@SideOnly(Side.CLIENT)
public class BeefGuiLabel extends BeefGuiControlBase implements IBeefTooltipControl {

  protected int xMax;  // If >0, wrap text at this pixel level. Does not split words.
  protected String labelText;
  protected String labelTooltip;
  protected boolean dropShadow;
  protected int color;
 
  public String getLabelText() { return labelText; }
  public String getLabelTooltip() { return labelTooltip; }

  public void setLabelText(String newText) {
    if(newText.equals(labelText)) { return; }
    labelText = newText;
    recalculateSize();
  }

  public void setLabelTooltip(String newTooltip) { labelTooltip = newTooltip; }
  public void setDropShadow(boolean shadow) { dropShadow = shadow; }
  public void setColor(int color) { this.color = color; }
 
  // If set to 0 or less, disables wrapping.
  public void setWordWrapLength(int pixels) { xMax = pixels; }
 
  public BeefGuiLabel(BeefGuiBase container, String text, int x, int y) {
    super(container, x, y, 0, 0);
    this.labelText = text;
    recalculateSize();
  }

  private void recalculateSize() {
    FontRenderer fontRenderer = guiContainer.getFontRenderer();
    if(xMax > 0) {
      this.width = fontRenderer.splitStringWidth(labelText, xMax);
      int totalWidth = fontRenderer.getStringWidth(labelText);
      this.height = fontRenderer.FONT_HEIGHT * Math.max(1, (totalWidth / width));   
    }
    else {
      this.width = fontRenderer.getStringWidth(labelText);
      this.height = fontRenderer.FONT_HEIGHT;
    }
  }
 
  @Override
  public void drawBackground(TextureManager renderEngine, int mouseX, int mouseY) {
  }
 
  @Override
  public void drawForeground(TextureManager renderEngine, int mouseX, int mouseY) {
    FontRenderer fontRenderer = guiContainer.getFontRenderer();
    if(xMax > 0) {
      fontRenderer.drawSplitString(labelText, relativeX, relativeY, color, xMax);
    }
    else {
      fontRenderer.drawString(labelText, relativeX, relativeY, color, dropShadow);
    }
  }
  @Override
  public String[] getTooltip() {
    if(labelTooltip == null || labelTooltip.isEmpty()) { return null; }
    return new String[] { labelTooltip };
  }
 
  @Override
  /**
   * Check if the mouse is over this control.
   * @param mouseX Screen-relative mouse X coordinate.
   * @param mouseY Screen-relative mouse Y coordinate.
   * @return True if the mouse is over this control, false otherwise.
   */
  public boolean isMouseOver(int mouseX, int mouseY) {
    if(mouseX < absoluteX || mouseX > absoluteX+width || mouseY < absoluteY || mouseY > absoluteY+height) { return false; }
    return true;
  }
 
}
TOP

Related Classes of erogenousbeef.bigreactors.gui.controls.BeefGuiLabel

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.