diff options
| author | Foghrye4 <foghrye4@gmail.com> | 2017-04-05 20:41:13 +0300 |
|---|---|---|
| committer | Foghrye4 <foghrye4@gmail.com> | 2017-04-05 20:41:13 +0300 |
| commit | 5b9935f737c226847e668bde0185adbc6a5a8b7b (patch) | |
| tree | 980cdbadd8635bcd48aa67966c7cceef4677ca64 /ihl/processing/chemistry/DosingPumpGui.java | |
| parent | cd9b5adda974ad9a5e5732fe645571907313b38d (diff) | |
some experiments
Diffstat (limited to 'ihl/processing/chemistry/DosingPumpGui.java')
| -rw-r--r-- | ihl/processing/chemistry/DosingPumpGui.java | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/ihl/processing/chemistry/DosingPumpGui.java b/ihl/processing/chemistry/DosingPumpGui.java new file mode 100644 index 0000000..090bdec --- /dev/null +++ b/ihl/processing/chemistry/DosingPumpGui.java @@ -0,0 +1,101 @@ +package ihl.processing.chemistry;
+
+import cpw.mods.fml.relauncher.Side;
+
+import cpw.mods.fml.relauncher.SideOnly;
+import ic2.core.IC2;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.GuiTextField;
+import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.util.StatCollector;
+
+import java.awt.event.KeyEvent;
+
+import org.lwjgl.opengl.GL11;
+
+import ihl.ClientProxy;
+import ihl.IHLMod;
+import ihl.utils.IHLRenderUtils;
+import ihl.utils.IHLUtils;
+
+@SideOnly(Side.CLIENT)
+public class DosingPumpGui extends GuiContainer {
+ private static final ResourceLocation background = new ResourceLocation("ihl", "textures/gui/GUIDosingPump.png");
+ private DosingPumpContainer container;
+ private GuiTextField setpointTextField;
+ private final static int TANK_HEIGHT = 58;
+
+ public DosingPumpGui(DosingPumpContainer container1) {
+ // the container is instanciated and passed to the superclass for
+ // handling
+ super(container1);
+ this.container = container1;
+ setpointTextField = new GuiTextField(Minecraft.getMinecraft().fontRenderer, 106, 34, 62, 16);
+ setpointTextField.setText(Integer.toString(this.container.tileEntity.fluidAmountSetpoint));
+ setpointTextField.setFocused(true);
+ }
+
+ @Override
+ protected void drawGuiContainerForegroundLayer(int par1, int par2) {
+ int xOffset = (this.width - xSize) / 2;
+ int yOffset = (this.height - ySize) / 2;
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+ this.mc.renderEngine.bindTexture(background);
+ int i1;
+ if (this.container.tileEntity.getEnergy() > 0D) {
+ GL11.glEnable(GL11.GL_BLEND);
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ i1 = Math.min(this.container.tileEntity.getGUIEnergy(12), 12);
+ this.drawTexturedModalRect(12, 15 + 12 - i1, 179, 12 - i1, 14, i1 + 2);
+ }
+ i1 = TANK_HEIGHT - this.container.tileEntity.fluidAmountSetpoint * TANK_HEIGHT
+ / this.container.tileEntity.getFluidTank().getCapacity();
+ this.drawTexturedModalRect(78, 6 + i1, 176, 14, 25, 7);
+ if (this.container.tileEntity.getTankAmount() > 0) {
+ IHLRenderUtils.instance.renderIHLFluidTank(this.container.tileEntity.getFluidTank(), 82, 10, 94,
+ 67, zLevel, par1, par2, xOffset, yOffset);
+ }
+ setpointTextField.drawTextBox();
+ IHLRenderUtils.instance.drawTooltip(par1,par2,9,11,xOffset,yOffset,StatCollector.translateToLocal("ihl.dosingPump.tip"));
+ }
+
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) {
+ // draw your Gui here, only thing you need to change is the path
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+ this.mc.renderEngine.bindTexture(background);
+ int x = (width - xSize) / 2;
+ int y = (height - ySize) / 2;
+ this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
+ }
+
+ @Override
+ protected void keyTyped(char characterTyped, int keyIndex) {
+ super.keyTyped(characterTyped, keyIndex);
+ this.setpointTextField.textboxKeyTyped(characterTyped, keyIndex);
+ // 28 - enter; 156 - numpad enter
+ if (keyIndex == KeyEvent.VK_ACCEPT || keyIndex == KeyEvent.VK_ENTER || keyIndex == 28 || keyIndex == 156) {
+ int fluidAmountSetpoint = (short) Math.max(1,
+ Math.min(this.container.tileEntity.getFluidTank().getCapacity(),
+ IHLUtils.parseIntSafe(this.setpointTextField.getText(), 100)));
+ this.setpointTextField.setText(Integer.toString(fluidAmountSetpoint));
+ this.setpointTextField.setFocused(false);
+ ((ClientProxy)IHLMod.proxy).sendIntegerFieldValueFromClientToServer(fluidAmountSetpoint, "fluidAmountSetpoint", this.container.tileEntity);
+ }
+ }
+ @Override
+ public void mouseClicked(int mouseX, int mouseY, int mouseButton) {
+ super.mouseClicked(mouseX, mouseY, mouseButton);
+ int x = (width - xSize) / 2;
+ int y = (height - ySize) / 2;
+ if (mouseX >= x + setpointTextField.xPosition &&
+ mouseX <= x + setpointTextField.xPosition + setpointTextField.width &&
+ mouseY >= y + setpointTextField.yPosition &&
+ mouseY <= y + setpointTextField.yPosition + setpointTextField.height) {
+ setpointTextField.setFocused(true);
+ }
+ }
+
+
+}
\ No newline at end of file |
