2015-03-11 21:34:37 +01:00
|
|
|
package com.pahimar.ee3.client.gui.inventory;
|
|
|
|
|
2015-03-24 00:10:46 +01:00
|
|
|
import com.pahimar.ee3.client.gui.element.ElementSearchField;
|
2015-04-03 06:39:52 +02:00
|
|
|
import com.pahimar.ee3.client.gui.element.ElementStatefulButton;
|
2015-03-11 21:34:37 +01:00
|
|
|
import com.pahimar.ee3.inventory.ContainerTransmutationTablet;
|
2015-04-02 07:26:01 +02:00
|
|
|
import com.pahimar.ee3.network.PacketHandler;
|
2015-04-03 06:39:52 +02:00
|
|
|
import com.pahimar.ee3.network.message.MessageGuiElementClicked;
|
2015-04-02 07:26:01 +02:00
|
|
|
import com.pahimar.ee3.network.message.MessageSliderElementUpdated;
|
2015-03-19 02:52:53 +01:00
|
|
|
import com.pahimar.ee3.reference.Colors;
|
2015-04-03 06:39:52 +02:00
|
|
|
import com.pahimar.ee3.reference.Messages;
|
2015-03-11 21:34:37 +01:00
|
|
|
import com.pahimar.ee3.reference.Textures;
|
2015-03-19 02:52:53 +01:00
|
|
|
import com.pahimar.ee3.tileentity.TileEntityTransmutationTablet;
|
2015-04-05 15:57:46 +02:00
|
|
|
import com.pahimar.ee3.util.LogHelper;
|
2015-03-11 21:34:37 +01:00
|
|
|
import com.pahimar.repackage.cofh.lib.gui.GuiBase;
|
2015-03-19 02:52:53 +01:00
|
|
|
import com.pahimar.repackage.cofh.lib.gui.GuiColor;
|
|
|
|
import com.pahimar.repackage.cofh.lib.gui.element.ElementSlider;
|
|
|
|
import com.pahimar.repackage.cofh.lib.gui.element.ElementTextField;
|
2015-04-03 06:39:52 +02:00
|
|
|
import com.pahimar.repackage.cofh.lib.render.RenderHelper;
|
2015-03-11 21:34:37 +01:00
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
import net.minecraft.entity.player.InventoryPlayer;
|
2015-04-03 06:39:52 +02:00
|
|
|
import net.minecraft.util.StatCollector;
|
2015-03-11 21:34:37 +01:00
|
|
|
|
2015-03-25 23:20:57 +01:00
|
|
|
import java.text.DecimalFormat;
|
|
|
|
|
2015-03-11 21:34:37 +01:00
|
|
|
@SideOnly(Side.CLIENT)
|
|
|
|
public class GuiTransmutationTablet extends GuiBase
|
|
|
|
{
|
2015-03-19 02:52:53 +01:00
|
|
|
private TileEntityTransmutationTablet tileEntityTransmutationTablet;
|
|
|
|
|
|
|
|
private ElementTextField searchTextField;
|
2015-04-03 06:39:52 +02:00
|
|
|
private ElementStatefulButton sortOrderButton;
|
2015-03-19 02:52:53 +01:00
|
|
|
private ElementSlider slider;
|
2015-04-05 15:57:46 +02:00
|
|
|
protected int tickCount;
|
2015-03-19 02:52:53 +01:00
|
|
|
|
2015-03-25 23:20:57 +01:00
|
|
|
private static DecimalFormat energyValueDecimalFormat = new DecimalFormat("###,###,###,###,###.###");
|
|
|
|
|
2015-04-03 06:39:52 +02:00
|
|
|
private static final int LEFT_MOUSEBUTTON = 0;
|
|
|
|
private static final int RIGHT_MOUSEBUTTON = 1;
|
|
|
|
|
|
|
|
private static final int SORT_BY_DISPLAY_NAME = 0;
|
|
|
|
private static final int SORT_BY_ENERGY_VALUE = 1;
|
|
|
|
private static final int SORT_BY_ID = 2;
|
|
|
|
|
2015-03-19 02:52:53 +01:00
|
|
|
public GuiTransmutationTablet(InventoryPlayer inventoryPlayer, TileEntityTransmutationTablet tileEntityTransmutationTablet)
|
2015-03-11 21:34:37 +01:00
|
|
|
{
|
2015-03-19 02:52:53 +01:00
|
|
|
super(new ContainerTransmutationTablet(inventoryPlayer, tileEntityTransmutationTablet), Textures.Gui.TRANSMUTATION_TABLET);
|
|
|
|
this.tileEntityTransmutationTablet = tileEntityTransmutationTablet;
|
2015-03-11 21:34:37 +01:00
|
|
|
xSize = 256;
|
|
|
|
ySize = 256;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void initGui()
|
|
|
|
{
|
|
|
|
super.initGui();
|
|
|
|
|
|
|
|
this.drawTitle = false;
|
|
|
|
this.drawInventory = false;
|
2015-03-19 02:52:53 +01:00
|
|
|
|
2015-03-25 23:20:57 +01:00
|
|
|
searchTextField = new ElementSearchField(this, 173, 18, "searchField", 78, 10);
|
2015-03-19 02:52:53 +01:00
|
|
|
searchTextField.backgroundColor = new GuiColor(0, 0, 0, 0).getColor();
|
|
|
|
searchTextField.borderColor = new GuiColor(0, 0, 0, 0).getColor();
|
|
|
|
|
2015-04-03 06:39:52 +02:00
|
|
|
sortOrderButton = new ElementStatefulButton(this, 151, 36, "sortOrder", 0, 0, 18, 0, 36, 0, 18, 18, 54, 18, Textures.Gui.Elements.BUTTON_SORT_ORDER)
|
|
|
|
{
|
|
|
|
@Override
|
|
|
|
public void drawBackground(int mouseX, int mouseY, float gameTicks)
|
|
|
|
{
|
|
|
|
|
|
|
|
RenderHelper.bindTexture(texture);
|
|
|
|
if (isEnabled())
|
|
|
|
{
|
|
|
|
if (getState() == SORT_BY_DISPLAY_NAME)
|
|
|
|
{
|
|
|
|
drawTexturedModalRect(posX, posY, 36, 0, sizeX, sizeY);
|
|
|
|
}
|
|
|
|
else if (getState() == SORT_BY_ENERGY_VALUE)
|
|
|
|
{
|
|
|
|
drawTexturedModalRect(posX, posY, 0, 0, sizeX, sizeY);
|
|
|
|
}
|
|
|
|
else if (getState() == SORT_BY_ID)
|
|
|
|
{
|
|
|
|
drawTexturedModalRect(posX, posY, 18, 0, sizeX, sizeY);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
setTooltipByState();
|
2015-04-02 07:26:01 +02:00
|
|
|
|
2015-04-06 04:07:31 +02:00
|
|
|
slider = new ElementSlider(this, "scrollBar", 239, 36, 12, 201, 187, 0)
|
2015-03-19 02:52:53 +01:00
|
|
|
{
|
|
|
|
@Override
|
|
|
|
protected void dragSlider(int x, int y)
|
|
|
|
{
|
|
|
|
if (y > _value)
|
|
|
|
{
|
|
|
|
setValue(_value + 1);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
setValue(_value - 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-04-05 15:57:46 +02:00
|
|
|
@Override
|
|
|
|
public boolean onMouseWheel(int mouseX, int mouseY, int movement)
|
|
|
|
{
|
|
|
|
PacketHandler.INSTANCE.sendToServer(new MessageSliderElementUpdated(this));
|
|
|
|
LogHelper.info(tickCount);
|
|
|
|
return super.onMouseWheel(mouseX, mouseY, movement);
|
|
|
|
}
|
|
|
|
|
2015-04-02 07:26:01 +02:00
|
|
|
@Override
|
|
|
|
public void onStopDragging()
|
|
|
|
{
|
|
|
|
PacketHandler.INSTANCE.sendToServer(new MessageSliderElementUpdated(this));
|
|
|
|
}
|
|
|
|
|
2015-03-19 02:52:53 +01:00
|
|
|
@Override
|
|
|
|
public int getSliderY()
|
|
|
|
{
|
|
|
|
return _value;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
slider.backgroundColor = new GuiColor(0, 0, 0, 0).getColor();
|
|
|
|
slider.borderColor = new GuiColor(0, 0, 0, 0).getColor();
|
|
|
|
slider.setSliderSize(12, 15);
|
|
|
|
|
2015-04-02 07:26:01 +02:00
|
|
|
addElement(sortOrderButton);
|
2015-03-19 02:52:53 +01:00
|
|
|
addElement(searchTextField);
|
|
|
|
addElement(slider);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected void drawGuiContainerForegroundLayer(int x, int y)
|
|
|
|
{
|
|
|
|
super.drawGuiContainerForegroundLayer(x, y);
|
2015-05-02 20:07:01 +02:00
|
|
|
fontRendererObj.drawString(String.format("%s:", StatCollector.translateToLocal(Messages.ENERGY_VALUE)), 10, 142, Integer.parseInt(Colors.PURE_WHITE, 16));
|
|
|
|
fontRendererObj.drawString(String.format("%s", energyValueDecimalFormat.format(tileEntityTransmutationTablet.getAvailableEnergyValue().getValue())), 10, 152, Integer.parseInt(Colors.PURE_WHITE, 16));
|
2015-03-11 21:34:37 +01:00
|
|
|
}
|
2015-04-03 06:39:52 +02:00
|
|
|
|
2015-04-05 15:57:46 +02:00
|
|
|
@Override
|
|
|
|
public void updateScreen()
|
|
|
|
{
|
|
|
|
super.updateScreen();
|
|
|
|
tickCount++;
|
|
|
|
}
|
|
|
|
|
2015-04-03 06:39:52 +02:00
|
|
|
@Override
|
|
|
|
public void handleElementButtonClick(String buttonName, int mouseButton)
|
|
|
|
{
|
|
|
|
if (buttonName.equals("sortOrder"))
|
|
|
|
{
|
|
|
|
PacketHandler.INSTANCE.sendToServer(new MessageGuiElementClicked(buttonName, mouseButton));
|
|
|
|
|
|
|
|
if (mouseButton == LEFT_MOUSEBUTTON)
|
|
|
|
{
|
|
|
|
if (sortOrderButton.getState() == SORT_BY_DISPLAY_NAME)
|
|
|
|
{
|
|
|
|
sortOrderButton.setState(SORT_BY_ENERGY_VALUE);
|
|
|
|
}
|
|
|
|
else if (sortOrderButton.getState() == SORT_BY_ENERGY_VALUE)
|
|
|
|
{
|
|
|
|
sortOrderButton.setState(SORT_BY_ID);
|
|
|
|
}
|
|
|
|
else if (sortOrderButton.getState() == SORT_BY_ID)
|
|
|
|
{
|
|
|
|
sortOrderButton.setState(SORT_BY_DISPLAY_NAME);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (mouseButton == RIGHT_MOUSEBUTTON)
|
|
|
|
{
|
|
|
|
if (sortOrderButton.getState() == SORT_BY_DISPLAY_NAME)
|
|
|
|
{
|
|
|
|
sortOrderButton.setState(SORT_BY_ID);
|
|
|
|
}
|
|
|
|
else if (sortOrderButton.getState() == SORT_BY_ENERGY_VALUE)
|
|
|
|
{
|
|
|
|
sortOrderButton.setState(SORT_BY_DISPLAY_NAME);
|
|
|
|
}
|
|
|
|
else if (sortOrderButton.getState() == SORT_BY_ID)
|
|
|
|
{
|
|
|
|
sortOrderButton.setState(SORT_BY_ENERGY_VALUE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
setTooltipByState();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private void setTooltipByState()
|
|
|
|
{
|
|
|
|
sortOrderButton.clearToolTip();
|
|
|
|
if (sortOrderButton.getState() == SORT_BY_DISPLAY_NAME)
|
|
|
|
{
|
|
|
|
sortOrderButton.setToolTip(Messages.Tooltips.SORT_BY_DISPLAY_NAME);
|
|
|
|
}
|
|
|
|
else if (sortOrderButton.getState() == SORT_BY_ENERGY_VALUE)
|
|
|
|
{
|
|
|
|
sortOrderButton.setToolTip(Messages.Tooltips.SORT_BY_ENERGY_VALUE);
|
|
|
|
}
|
|
|
|
else if (sortOrderButton.getState() == SORT_BY_ID)
|
|
|
|
{
|
|
|
|
sortOrderButton.setToolTip(Messages.Tooltips.SORT_BY_ID);
|
|
|
|
}
|
|
|
|
}
|
2015-03-11 21:34:37 +01:00
|
|
|
}
|