Package com.kaijin.AdvPowerMan

Source Code of com.kaijin.AdvPowerMan.GuiStorageMonitor

/*******************************************************************************
* 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.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.IInventory;
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 GuiStorageMonitor extends GuiContainer
{
  IInventory playerInventory;
  public TEStorageMonitor tile;
  private CButton buttons[] = new CButton[8];

  private int xLoc;
  private int yLoc;

  private static final String DISPLAYSTRINGS[] = {"-10", "-1", "+1", "+10"};
  private static final int HORIZONTALOFFSETS[] = {-57, -33, 25, 49};
  private static final int RED = 0xFF5555;
  private static final int GREEN = 0x55FF55;
  private static final int REDGLOW = Utils.multiplyColorComponents(RED, 0.16F);
  private static final int GREENGLOW = Utils.multiplyColorComponents(GREEN, 0.16F);

  public GuiStorageMonitor(InventoryPlayer player, TEStorageMonitor tileentity)
  {
    super(new ContainerStorageMonitor(player, tileentity));
    tile = tileentity;
    xSize = 176; // The X size of the GUI window in pixels.
    ySize = 190; // The Y size of the GUI window in pixels.

    //Button definition - mouse over CButton for details
    for (int i = 0; i < buttons.length; i++)
    {
      //16777120 old highlight color code, saved here for reference
      buttons[i] = new CButton(i, 0, 0, 24, 13, 1, 192, 1, 207, DISPLAYSTRINGS[i % 4], 4210752, 0xFFFFAF, Info.GUI_TEX_STORAGE_MONITOR);
    }
  }

  @Override
  public void initGui()
  {
    super.initGui(); // Don't forget this or MC will crash

    // Upper left corner of GUI panel
    xLoc = (width - xSize) / 2; // Half the difference between screen width and GUI width
    yLoc = (height - ySize) / 2; // Half the difference between screen height and GUI height

    // Reposition buttons
    for (int i = 0; i < 8; i++)
    {
      buttons[i].xPosition = width / 2 + HORIZONTALOFFSETS[i % 4];
      buttons[i].yPosition = yLoc + 60 + 29 * (i / 4);
    }
  }

  @Override
  protected void drawGuiContainerBackgroundLayer(float var1, int mouseX, int mouseY)
  {
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    mc.renderEngine.func_110577_a(new ResourceLocation(Info.TITLE_PACKED.toLowerCase(), Info.GUI_TEX_STORAGE_MONITOR));

    // Draw GUI background
    drawTexturedModalRect(xLoc, yLoc, 0, 0, xSize, ySize);

    // Draw energy meter
    if (tile.energyStored > 0)
    {
      // Which color energy meter should be used?
      final int offset = tile.isPowering ? 12 : 0;

      // Make each box light up all at once like a LED instead of gradually using barLength = this.tile.gaugeEnergyScaled(66);
      int barLength = 5 * tile.gaugeEnergyScaled(13);
      if (barLength > 0) barLength++;

      drawTexturedModalRect(xLoc + 10, yLoc + 100 - barLength, 176 + offset, 66 - barLength, 12, barLength);
    }

    // Draw title text
    Utils.drawCenteredText(fontRenderer, I18n.func_135053_a(tile.getInvName()), xLoc + 96, yLoc + 12, 4210752);

    if (tile.energyCapacity <= 0)
    {
      // Error message: No card or storage unit not found
      Utils.drawCenteredGlowingText(fontRenderer, I18n.func_135053_a(Info.KEY_MONITOR_INVALID), xLoc + 96, yLoc + 35, RED, REDGLOW);
    }
    else
    {
      // Draw right-aligned current energy number
      Utils.drawRightAlignedGlowingText(fontRenderer, Integer.toString(tile.energyStored), xLoc + 90, yLoc + 35, GREEN, GREENGLOW);

      // Draw separator and left-aligned max energy number
      Utils.drawGlowingText(fontRenderer, " / " + Integer.toString(tile.energyCapacity), xLoc + 90, yLoc + 35, GREEN, GREENGLOW);

      // Test strings
      //Utils.drawCenteredGlowingText(fontRenderer, " / ", xLoc + 96, yLoc + 35, 0x55FF55, glowFactor);
      //Utils.drawRightAlignedGlowingText(fontRenderer, "123456789", xLoc + 90, yLoc + 35, 0x55FF55, 0.15F);
      //Utils.drawGlowingText(fontRenderer, " / 123456789", xLoc + 90, yLoc + 35, 0x55FF55, 0.15F);
    }

    // Draw control section labels and readouts
    Utils.drawCenteredText(fontRenderer, I18n.func_135053_a(Info.KEY_MONITOR_UPPER), xLoc + 96, yLoc + 49, 0xB00000);
    Utils.drawRightAlignedGlowingText(fontRenderer, Integer.toString(tile.upperBoundary) + "%", xLoc + 109, yLoc + 63, GREEN, GREENGLOW);
   
    Utils.drawCenteredText(fontRenderer, I18n.func_135053_a(Info.KEY_MONITOR_LOWER), xLoc + 96, yLoc + 78, 0xB00000);
    Utils.drawRightAlignedGlowingText(fontRenderer, Integer.toString(tile.lowerBoundary) + "%", xLoc + 109, yLoc + 92, GREEN, GREENGLOW);

    for (CButton button : /* Who's got the */ buttons)
    {
      // Draw ALL of the things?! :o
      button.drawButton(mc, mouseX, mouseY);
    }
  }

  @Override
  protected void mouseClicked(int par1, int par2, int par3)
  {
    if (par3 == 0) // On a left click,
    {
      for (CButton b : buttons) // For each item in buttons,
      {
        if (b.enabled && b.mousePressed(this.mc, par1, par2)) // if it's enabled and was under the pointer,
        {
          mc.sndManager.playSoundFX("random.click", 1.0F, 1.0F); // provide audio feedback,
          tile.sendGuiButton(b.id); // and inform the server of the button click.
        }
      }
    }
    super.mouseClicked(par1, par2, par3); // Finally, do all that other normal stuff.
  }
}
TOP

Related Classes of com.kaijin.AdvPowerMan.GuiStorageMonitor

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.