Package crazypants.enderio.machine.transceiver.gui

Source Code of crazypants.enderio.machine.transceiver.gui.GeneralTab

package crazypants.enderio.machine.transceiver.gui;

import java.awt.Color;
import java.awt.Point;
import java.awt.Rectangle;
import java.util.List;

import org.lwjgl.opengl.GL11;

import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiButton;
import crazypants.enderio.config.Config;
import crazypants.enderio.gui.ITabPanel;
import crazypants.enderio.gui.IconEIO;
import crazypants.enderio.machine.power.PowerDisplayUtil;
import crazypants.gui.GuiToolTip;
import crazypants.render.ColorUtil;
import crazypants.render.RenderUtil;

public class GeneralTab implements ITabPanel {

  private static final int SEND_BAR_OFFSET = 13;
  ContainerTransceiver container;
  GuiTransceiver parent;
  GuiToolTip sendPowerBarTT;
 
  public GeneralTab(GuiTransceiver guiTransceiver) {
    parent = guiTransceiver;   
    container = parent.container;
   
    sendPowerBarTT = new GuiToolTip(new Rectangle(parent.getPowerX() + SEND_BAR_OFFSET, parent.getPowerY(), parent.getPowerWidth(), parent.getPowerHeight()), "") {
      @Override
      protected void updateText() {       
        text.clear();
        if(parent.renderPowerBar()) {
          updateSendPowerBarTooltip(text);
        }
      }     
    };   
    parent.addToolTip(sendPowerBarTT);
  }

  @Override
  public void onGuiInit(int x, int y, int width, int height) {
    container.setPlayerInventory(true);
  }

  @Override
  public void deactivate() {  
    container.setPlayerInventory(false);
  }

  @Override
  public IconEIO getIcon() {
    return IconEIO.IO_CONFIG_UP;
  }

  @Override
  public void render(float par1, int par2, int par3) {
    int top = parent.getGuiTop();
    int left = parent.getGuiLeft();
   
    GL11.glColor3f(1, 1, 1);
   
    //Inventory
    RenderUtil.bindTexture("enderio:textures/gui/transceiver.png");
    Point invRoot = container.getPlayerInventoryOffset();
    parent.drawTexturedModalRect(left + invRoot.x - 1, top + invRoot.y - 1, 24, 180, 162, 76)
   
    invRoot = container.getItemInventoryOffset();
    parent.drawTexturedModalRect(left + invRoot.x - 1, top + invRoot.y - 1, 24, 180, 72, 36);
    parent.drawTexturedModalRect(left + invRoot.x - 1 + (18 * 4) + container.getItemBufferSpacing(), top + invRoot.y - 1, 24, 180, 72, 36);
           
    FontRenderer fr = parent.getFontRenderer();
    String sendTxt = "Send";   
    int x = left + invRoot.x + 36 - fr.getStringWidth(sendTxt)/2;
    int y = top + invRoot.y - fr.FONT_HEIGHT - 3;
    fr.drawString(sendTxt, x, y, ColorUtil.getRGB(Color.BLACK));
    String recText = "Receive";
    x = left + invRoot.x + 72 + container.getItemBufferSpacing() + 36 - fr.getStringWidth(recText)/2;
    fr.drawString(recText, x, y, ColorUtil.getRGB(Color.BLACK));
   
    //Highlights
    parent.renderSlotHighlights();   
   
    //Power   
    RenderUtil.bindTexture("enderio:textures/gui/transceiver.png");
    GL11.glColor3f(1, 1, 1);
   
    x = left + parent.getPowerX() - 1;
    y = top + parent.getPowerY() - 1;
    int maxHeight = parent.getPowerHeight();
   
    parent.drawTexturedModalRect(x, y, 233, 196, 12, maxHeight + 2);
    parent.drawTexturedModalRect(x + SEND_BAR_OFFSET, y, 233, 196, 12, maxHeight + 2);
   
    int totalPixelHeight = parent.transceiver.getEnergyStoredScaled(maxHeight * 2);
    int fillHeight = Math.min(totalPixelHeight,maxHeight);
   
    int fillY = y + 1 + parent.getPowerHeight() - fillHeight;
    x += 1;
    parent.drawTexturedModalRect(x, fillY, parent.getPowerU(), parent.getPowerV(), parent.getPowerWidth(), fillHeight);
   
    fillHeight = Math.max(0, totalPixelHeight - maxHeight);
    fillY = y + 1 + parent.getPowerHeight() - fillHeight;
    parent.drawTexturedModalRect(x + SEND_BAR_OFFSET, fillY, parent.getPowerU() - 25, parent.getPowerV(), parent.getPowerWidth(), fillHeight);
   
  }

  public void updatePowerBarTooltip(List<String> text) {
    text.add("Local Buffer");
    text.add("Upkeep: " + PowerDisplayUtil.formatPowerPerTick(parent.getPowerOutputValue()));   
    int maxEnergy = parent.transceiver.getCapacitor().getMaxEnergyStored()/2;
    int energyStored = Math.min(parent.transceiver.getEnergyStored(), maxEnergy);      
    text.add(PowerDisplayUtil.formatStoredPower(energyStored, maxEnergy));   
  }
 
  private void updateSendPowerBarTooltip(List<String> text) {
    text.add("Send/Recieve Buffer");
    text.add("Max IO: " + PowerDisplayUtil.formatPowerPerTick(Config.transceiverMaxIoRF));
    int maxEnergy = parent.transceiver.getCapacitor().getMaxEnergyStored()/2;
    int energyStored = Math.max(0, parent.transceiver.getEnergyStored() - maxEnergy);
    text.add(PowerDisplayUtil.formatStoredPower(energyStored, maxEnergy));   
  }
 
 
  @Override
  public void actionPerformed(GuiButton guiButton) {   
  }

  @Override
  public void mouseClicked(int x, int y, int par3) {   
  }
 
  @Override
  public void updateScreen() {  
  }

  @Override
  public void keyTyped(char par1, int par2) {   
  }



}
TOP

Related Classes of crazypants.enderio.machine.transceiver.gui.GeneralTab

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.