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-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-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
slider = new ElementSlider ( this , 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-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-04-03 06:39:52 +02:00
fontRendererObj . drawString ( String . format ( " %s: " , StatCollector . translateToLocal ( Messages . ENERGY_VALUE ) ) , 8 , 140 , Integer . parseInt ( Colors . PURE_WHITE , 16 ) ) ; // TODO Localize
2015-03-25 23:20:57 +01:00
fontRendererObj . drawString ( String . format ( " %s " , energyValueDecimalFormat . format ( tileEntityTransmutationTablet . getStoredEnergyValue ( ) . getEnergyValue ( ) ) ) , 8 , 150 , Integer . parseInt ( Colors . PURE_WHITE , 16 ) ) ;
2015-03-11 21:34:37 +01:00
}
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
}