Package cofh.lib.gui.element

Source Code of cofh.lib.gui.element.ElementBase

package cofh.lib.gui.element;

import cofh.lib.gui.GuiBase;

import java.util.List;

import net.minecraft.client.gui.FontRenderer;
import net.minecraft.util.ResourceLocation;

/**
* Base class for a modular GUI element. Has self-contained rendering methods and a link back to the {@link GuiBase} it is a part of.
*
* @author King Lemming
*
*/
public abstract class ElementBase {

  protected GuiBase gui;
  protected ResourceLocation texture;

  protected int posX;
  protected int posY;

  protected int sizeX;
  protected int sizeY;

  protected int texW = 256;
  protected int texH = 256;

  protected String name;

  private boolean visible = true;
  private boolean enabled = true;

  public ElementBase(GuiBase gui, int posX, int posY) {

    this.gui = gui;
    this.posX = posX;
    this.posY = posY;
  }

  public ElementBase(GuiBase gui, int posX, int posY, int width, int height) {

    this.gui = gui;
    this.posX = posX;
    this.posY = posY;
    this.sizeX = width;
    this.sizeY = height;
  }

  public ElementBase setName(String name) {

    this.name = name;
    return this;
  }

  public ElementBase setPosition(int posX, int posY) {

    this.posX = posX;
    this.posY = posY;
    return this;
  }

  public ElementBase setSize(int sizeX, int sizeY) {

    this.sizeX = sizeX;
    this.sizeY = sizeY;
    return this;
  }

  public ElementBase setTexture(String texture, int texW, int texH) {

    this.texture = new ResourceLocation(texture);
    this.texW = texW;
    this.texH = texH;
    return this;
  }

  public final ElementBase setVisible(boolean visible) {

    this.visible = visible;
    return this;
  }

  public boolean isVisible() {

    return visible;
  }

  public final ElementBase setEnabled(boolean enabled) {

    this.enabled = enabled;
    return this;
  }

  public boolean isEnabled() {

    return enabled;
  }

  public void update(int mouseX, int mouseY) {

    update();
  }

  public void update() {

  }

  public abstract void drawBackground(int mouseX, int mouseY, float gameTicks);

  public abstract void drawForeground(int mouseX, int mouseY);

  public void addTooltip(List<String> list) {

  }

  public void drawModalRect(int x, int y, int width, int height, int color) {

    gui.drawSizedModalRect(x, y, width, height, color);
  }

  public void drawTexturedModalRect(int x, int y, int u, int v, int width, int height) {

    gui.drawSizedTexturedModalRect(x, y, u, v, width, height, texW, texH);
  }

  public void drawCenteredString(FontRenderer fontRenderer, String text, int x, int y, int color) {

    fontRenderer.drawStringWithShadow(text, x - fontRenderer.getStringWidth(text) / 2, y, color);
  }

  public boolean onMousePressed(int mouseX, int mouseY, int mouseButton) {

    return false;
  }

  public void onMouseReleased(int mouseX, int mouseY) {

    return;
  }

  public boolean onMouseWheel(int mouseX, int mouseY, int movement) {

    return false;
  }

  public boolean onKeyTyped(char characterTyped, int keyPressed) {

    return false;
  }

  public boolean intersectsWith(int mouseX, int mouseY) {

    if (mouseX >= this.posX && mouseX <= this.posX + this.sizeX && mouseY >= this.posY && mouseY <= this.posY + this.sizeY) {
      return true;
    }
    return false;
  }

  public final String getName() {

    return name;
  }

  public final GuiBase getContainerScreen() {

    return gui;
  }

  public final FontRenderer getFontRenderer() {

    return gui.getFontRenderer();
  }

  /**
   * This method is relative to the GUI's y coordinate
   */
  public final int getPosY() {

    return posY;
  }

  /**
   * This method is relative to the GUI's x coordinate
   */
  public final int getPosX() {

    return posX;
  }

  public final int getHeight() {

    return sizeY;
  }

  public final int getWidth() {

    return sizeX;
  }

}
TOP

Related Classes of cofh.lib.gui.element.ElementBase

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.