Package mffs.base

Source Code of mffs.base.GuiMFFS

package mffs.base;

import calclavia.api.mffs.IBiometricIdentifierLink;
import cpw.mods.fml.common.network.PacketDispatcher;
import mffs.ModularForceFieldSystem;
import mffs.Settings;
import mffs.base.TileMFFS.TilePacketType;
import mffs.gui.button.GuiIcon;
import net.minecraft.block.Block;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiTextField;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import org.lwjgl.input.Keyboard;
import resonant.api.blocks.IBlockFrequency;
import resonant.lib.gui.GuiContainerBase;
import resonant.lib.utility.LanguageUtility;
import universalelectricity.api.vector.Vector2;

public class GuiMFFS extends GuiContainerBase
{
  /**
   * Frequency Text Field
   */
  protected GuiTextField textFieldFrequency;
  protected Vector2 textFieldPos = new Vector2();
  protected IBlockFrequency frequencyTile;

  public GuiMFFS(Container container)
  {
    super(container);
    this.ySize = 217;
  }

  public GuiMFFS(Container container, IBlockFrequency frequencyTile)
  {
    this(container);
    this.frequencyTile = frequencyTile;
  }

  @Override
  public void initGui()
  {
    super.initGui();
    this.buttonList.clear();
    // Redstone config button.
    this.buttonList.add(new GuiIcon(0, this.width / 2 - 82, this.height / 2 - 104, new ItemStack(Block.torchRedstoneIdle), new ItemStack(Block.torchRedstoneActive)));

    Keyboard.enableRepeatEvents(true);

    if (this.frequencyTile != null)
    {
      this.textFieldFrequency = new GuiTextField(this.fontRenderer, this.textFieldPos.intX(), this.textFieldPos.intY(), 50, 12);
      this.textFieldFrequency.setMaxStringLength(Settings.MAX_FREQUENCY_DIGITS);
      this.textFieldFrequency.setText(frequencyTile.getFrequency() + "");
    }
  }

  @Override
  protected void keyTyped(char par1, int par2)
  {
    super.keyTyped(par1, par2);

    if (this.textFieldFrequency != null)
    {
      /**
       * Every time a key is typed, try to reset the frequency.
       */
      this.textFieldFrequency.textboxKeyTyped(par1, par2);

      try
      {
        int newFrequency = Math.max(0, Integer.parseInt(this.textFieldFrequency.getText()));
        this.frequencyTile.setFrequency(newFrequency);
        this.textFieldFrequency.setText(this.frequencyTile.getFrequency() + "");
        PacketDispatcher.sendPacketToServer(ModularForceFieldSystem.PACKET_TILE.getPacket((TileEntity) this.frequencyTile, TilePacketType.FREQUENCY.ordinal(), this.frequencyTile.getFrequency()));
      }
      catch (NumberFormatException e)
      {
      }
    }
  }

  @Override
  protected void actionPerformed(GuiButton guiButton)
  {
    super.actionPerformed(guiButton);

    if (this.frequencyTile != null && guiButton.id == 0)
    {
      PacketDispatcher.sendPacketToServer(ModularForceFieldSystem.PACKET_TILE.getPacket((TileEntity) this.frequencyTile, TilePacketType.TOGGLE_ACTIVATION.ordinal()));
    }
  }

  @Override
  public void updateScreen()
  {
    super.updateScreen();

    if (this.textFieldFrequency != null)
    {
      if (!this.textFieldFrequency.isFocused())
      {
        this.textFieldFrequency.setText(this.frequencyTile.getFrequency() + "");
      }
    }

    if (this.frequencyTile instanceof TileMFFS)
    {
      if (this.buttonList.size() > 0 && this.buttonList.get(0) != null)
      {
        ((GuiIcon) this.buttonList.get(0)).setIndex(((TileMFFS) this.frequencyTile).isRedstoneActive ? 1 : 0);
      }
    }
  }

  @Override
  public void mouseClicked(int x, int y, int par3)
  {
    super.mouseClicked(x, y, par3);

    if (this.textFieldFrequency != null)
    {
      this.textFieldFrequency.mouseClicked(x - this.containerWidth, y - this.containerHeight, par3);
    }
  }

  @Override
  protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
  {
    super.drawGuiContainerForegroundLayer(mouseX, mouseY);

    if (this.textFieldFrequency != null)
    {
      if (this.isPointInRegion(textFieldPos.intX(), textFieldPos.intY(), this.textFieldFrequency.getWidth(), 12, mouseX, mouseY))
      {
        this.tooltip = LanguageUtility.getLocal("gui.frequency.tooltip");
      }
    }
  }

  @Override
  protected void drawGuiContainerBackgroundLayer(float var1, int x, int y)
  {
    super.drawGuiContainerBackgroundLayer(var1, x, y);

    if (this.frequencyTile instanceof IBiometricIdentifierLink)
    {
      this.drawBulb(167, 4, ((IBiometricIdentifierLink) this.frequencyTile).getBiometricIdentifier() != null);
    }
  }
}
TOP

Related Classes of mffs.base.GuiMFFS

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.