diff --git a/graphics/alloy-furnace-gui-1.xcf b/graphics/alloy-furnace-gui-1.xcf index 04a7276..b1e253c 100644 Binary files a/graphics/alloy-furnace-gui-1.xcf and b/graphics/alloy-furnace-gui-1.xcf differ diff --git a/src/java/mmm/tech/base/TBAlloyFurnaceGui.java b/src/java/mmm/tech/base/TBAlloyFurnaceGui.java index a64a092..7705b98 100644 --- a/src/java/mmm/tech/base/TBAlloyFurnaceGui.java +++ b/src/java/mmm/tech/base/TBAlloyFurnaceGui.java @@ -3,6 +3,9 @@ package mmm.tech.base; import java.io.IOException; import java.util.ArrayList; +import java.util.List; + +import com.google.common.collect.Lists; import mmm.Mmm; import mmm.materials.MAlloyRecipe; @@ -16,6 +19,7 @@ import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -27,19 +31,22 @@ public class TBAlloyFurnaceGui { @SideOnly( Side.CLIENT ) private static enum Tab { - MAIN( 207 , 0 , 1 ) , - CONFIG( 191 , 0 , 2 ); + MAIN( 191 , 0 , 1 , "container.mmm.alloy_furnace.contents" ) , + RECIPE( 207 , 0 , 2 , "container.mmm.alloy_furnace.recipe" ) , + CONFIG( 223 , 0 , 2 , "gui.mmm.configure" ); public final int iconX; public final int iconY; public final int slotGroup; + public final String tooltip; - private Tab( final int iconX , final int iconY , final int slotGroup ) + private Tab( final int iconX , final int iconY , final int slotGroup , final String tooltip ) { this.iconX = iconX; this.iconY = iconY; this.slotGroup = slotGroup; + this.tooltip = tooltip; } } @@ -84,7 +91,8 @@ public class TBAlloyFurnaceGui private static final ResourceLocation TEXTURES[] = { new ResourceLocation( Mmm.ID , "textures/gui/alloy_furnace_1.png" ) , - new ResourceLocation( Mmm.ID , "textures/gui/alloy_furnace_2.png" ) + new ResourceLocation( Mmm.ID , "textures/gui/alloy_furnace_2.png" ) , + new ResourceLocation( Mmm.ID , "textures/gui/alloy_furnace_3.png" ) , }; private static final TBAlloyFurnaceGui.Tab TABS[] = TBAlloyFurnaceGui.Tab.values( ); @@ -140,7 +148,8 @@ public class TBAlloyFurnaceGui this.bPrevious = new ArrowButton( 1 , 8 + x , 47 + y , false ); this.bNext = new ArrowButton( 2 , 156 + x , 47 + y , true ); - this.bConfirm = new GuiButton( 3 , 24 + x , 84 + y , 128 , 20 , I18n.format( "gui.mmm.select_recipe" ) ); + this.bConfirm = new GuiButton( 3 , 24 + x , 84 + y , 128 , 20 , + I18n.format( "container.mmm.alloy_furnace.select" ) ); this.tfSearch = new GuiTextField( 4 , this.fontRendererObj , 24 + x , 9 + y , 128 , 20 ); this.tfSearch.setTextColor( 0xffffff ); @@ -163,13 +172,22 @@ public class TBAlloyFurnaceGui public void drawScreen( final int mouseX , final int mouseY , final float partialTicks ) { super.drawScreen( mouseX , mouseY , partialTicks ); + + for ( final TBAlloyFurnaceGui.Tab tab : TBAlloyFurnaceGui.Tab.values( ) ) { + if ( this.isInTab( tab , mouseX , mouseY ) ) { + final List< String > list = Lists.< String > newArrayList( ); + list.add( TextFormatting.WHITE + I18n.format( tab.tooltip ) ); + this.drawHoveringText( list , mouseX , mouseY ); + break; + } + } } private void enableConfigButtons( ) { if ( this.bNext != null ) { - final boolean visible = this.selectedTab == Tab.CONFIG; + final boolean visible = this.selectedTab == Tab.RECIPE; this.bNext.visible = this.bPrevious.visible = this.bConfirm.visible = visible; this.tfSearch.setVisible( visible ); @@ -270,27 +288,28 @@ public class TBAlloyFurnaceGui super.mouseClicked( mouseX , mouseY , mouseButton ); for ( final TBAlloyFurnaceGui.Tab tab : TBAlloyFurnaceGui.Tab.values( ) ) { - if ( this.selectedTab == tab ) { - continue; - } - - final int tabOffsetX = tab.ordinal( ) * TBAlloyFurnaceGui.TAB_WIDTH; - final int tabX = this.guiLeft + tabOffsetX + TBAlloyFurnaceGui.TAB_BORDER; - final int tabY = this.guiTop - TBAlloyFurnaceGui.TAB_HEIGHT + TBAlloyFurnaceGui.TAB_BORDER; - - if ( mouseX >= tabX && mouseY >= tabY && mouseX <= tabX + TBAlloyFurnaceGui.TAB_WIDTH - && mouseY <= tabY + TBAlloyFurnaceGui.TAB_HEIGHT ) { + if ( this.selectedTab != tab && this.isInTab( tab , mouseX , mouseY ) ) { this.selectTab( tab ); return; } } - if ( this.selectedTab == Tab.CONFIG ) { + if ( this.selectedTab == Tab.RECIPE ) { this.tfSearch.mouseClicked( mouseX , mouseY , mouseButton ); } } + private boolean isInTab( final TBAlloyFurnaceGui.Tab tab , final int mouseX , final int mouseY ) + { + final int tabOffsetX = tab.ordinal( ) * TBAlloyFurnaceGui.TAB_WIDTH; + final int tabX = this.guiLeft + tabOffsetX + TBAlloyFurnaceGui.TAB_BORDER; + final int tabY = this.guiTop - TBAlloyFurnaceGui.TAB_HEIGHT + TBAlloyFurnaceGui.TAB_BORDER; + return mouseX >= tabX && mouseY >= tabY && mouseX <= tabX + TBAlloyFurnaceGui.TAB_WIDTH + && mouseY <= tabY + TBAlloyFurnaceGui.TAB_HEIGHT; + } + + @Override protected void keyTyped( final char typedChar , final int keyCode ) throws IOException @@ -310,7 +329,7 @@ public class TBAlloyFurnaceGui return; } - MAlloyRecipe selected = this.currentRecipe == -1 ? null : this.recipes.get( this.currentRecipe ); + final MAlloyRecipe selected = this.currentRecipe == -1 ? null : this.recipes.get( this.currentRecipe ); final ArrayList< MAlloyRecipe > fullList = MAlloyRecipe.REGISTRY.getRecipes( ); this.searchString = newText; if ( "".equals( newText ) ) { diff --git a/src/resources/assets/mmm/lang/en_US.lang b/src/resources/assets/mmm/lang/en_US.lang index 4579bba..7f205d2 100644 --- a/src/resources/assets/mmm/lang/en_US.lang +++ b/src/resources/assets/mmm/lang/en_US.lang @@ -1,4 +1,4 @@ -gui.mmm.select_recipe=Select Recipe +gui.mmm.configure=Configure @@ -17,6 +17,9 @@ tile.mmm.materials.ore.cuprite.name=Cuprite Ore item.mmm.tech.base.alloy_furnace.name=Alloy Furnace +container.mmm.alloy_furnace.contents=Furnace Contents +container.mmm.alloy_furnace.recipe=Alloy Selection +container.mmm.alloy_furnace.select=Select Alloy item.mmm.tech.tools.copper.shovel.name=Copper Shovel diff --git a/src/resources/assets/mmm/textures/gui/alloy_furnace_1.png b/src/resources/assets/mmm/textures/gui/alloy_furnace_1.png index 2fded74..377c33e 100644 Binary files a/src/resources/assets/mmm/textures/gui/alloy_furnace_1.png and b/src/resources/assets/mmm/textures/gui/alloy_furnace_1.png differ