Mekanism-tilera-Edition/common/mekanism/induction/client/gui/GuiMultimeter.java

115 lines
3.6 KiB
Java
Raw Normal View History

/**
*
*/
package mekanism.induction.client.gui;
import java.util.ArrayList;
import mekanism.api.Object3D;
import mekanism.common.PacketHandler;
import mekanism.common.PacketHandler.Transmission;
import mekanism.common.network.PacketTileEntity;
2013-11-23 02:58:49 +01:00
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
2013-11-16 17:05:04 +01:00
import mekanism.induction.common.inventory.container.ContainerMultimeter;
import mekanism.induction.common.tileentity.TileEntityMultimeter;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiTextField;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* Multimeter GUI
*
* @author Calclavia
*
*/
@SideOnly(Side.CLIENT)
public class GuiMultimeter extends GuiContainer
{
TileEntityMultimeter tileEntity;
private int containerWidth;
private int containerHeight;
private GuiTextField textFieldLimit;
2013-11-18 20:50:59 +01:00
public GuiMultimeter(InventoryPlayer inventoryPlayer, TileEntityMultimeter tile)
{
2013-11-18 20:50:59 +01:00
super(new ContainerMultimeter(inventoryPlayer, tile));
tileEntity = tile;
ySize = 217;
}
@Override
public void initGui()
{
super.initGui();
2013-11-18 20:50:59 +01:00
buttonList.add(new GuiButton(0, width / 2 + 20, height / 2 - 30, 50, 20, "Toggle"));
textFieldLimit = new GuiTextField(fontRenderer, 35, 82, 65, 12);
textFieldLimit.setMaxStringLength(8);
textFieldLimit.setText("" + tileEntity.getLimit());
}
@Override
protected void keyTyped(char par1, int par2)
{
super.keyTyped(par1, par2);
2013-11-18 20:50:59 +01:00
textFieldLimit.textboxKeyTyped(par1, par2);
ArrayList data = new ArrayList();
data.add((byte)3);
data.add(Float.parseFloat(textFieldLimit.getText()));
2013-11-20 13:20:32 +01:00
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data));
}
@Override
protected void mouseClicked(int par1, int par2, int par3)
{
super.mouseClicked(par1, par2, par3);
2013-11-18 20:50:59 +01:00
textFieldLimit.mouseClicked(par1 - containerWidth, par2 - containerHeight, par3);
}
@Override
protected void drawGuiContainerForegroundLayer(int par1, int par2)
{
2013-11-18 20:50:59 +01:00
String s = tileEntity.getBlockType().getLocalizedName();
fontRenderer.drawString(s, xSize / 2 - fontRenderer.getStringWidth(s) / 2, 15, 4210752);
fontRenderer.drawString("Average Energy: " + Math.round(tileEntity.getAverageDetectedEnergy()) + " J", 35, 25, 4210752);
fontRenderer.drawString("Energy: " + Math.round(tileEntity.getDetectedEnergy()) + " J", 35, 35, 4210752);
fontRenderer.drawString("Output Redstone If... ", 35, 54, 4210752);
fontRenderer.drawString(tileEntity.getMode().display, 35, 65, 4210752);
fontRenderer.drawString("KiloJoules", 35, 100, 4210752);
textFieldLimit.drawTextBox();
}
@Override
protected void drawGuiContainerBackgroundLayer(float f, int x, int y)
{
2013-11-18 20:50:59 +01:00
containerWidth = (width - xSize) / 2;
containerHeight = (height - ySize) / 2;
2013-11-23 02:58:49 +01:00
mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiMultimeter.png"));
GL11.glColor4f(1, 1, 1, 1);
2013-11-18 20:50:59 +01:00
drawTexturedModalRect(containerWidth, containerHeight, 0, 0, xSize, ySize);
2013-11-18 20:50:59 +01:00
int length = Math.min((int) (tileEntity.getDetectedEnergy() / tileEntity.getPeak()) * 115, 115);
drawTexturedModalRect(containerWidth + 14, containerHeight + 126 - length, 176, 115 - length, 6, length);
}
@Override
protected void actionPerformed(GuiButton button)
{
ArrayList data = new ArrayList();
data.add((byte)2);
PacketHandler.sendPacket(Transmission.SERVER, new PacketTileEntity().setParams(Object3D.get(tileEntity), data));
}
}