Alloy furnace GUI works
This commit is contained in:
parent
8a68416361
commit
ef65afe909
5 changed files with 41 additions and 14 deletions
|
@ -8,6 +8,7 @@ import mmm.materials.MAlloyRecipesRegistry;
|
|||
import mmm.utils.UContainers;
|
||||
import mmm.utils.UInventoryDisplay;
|
||||
import mmm.utils.UInventoryGrid;
|
||||
import mmm.utils.URegistry;
|
||||
import mmm.utils.slots.USDisplay;
|
||||
import mmm.utils.slots.USFuel;
|
||||
import mmm.utils.slots.USOutput;
|
||||
|
@ -98,8 +99,11 @@ public class TBAlloyFurnaceContainer
|
|||
this.recipe.setInventorySlotContents( i , recipe.inputs[ i ] );
|
||||
}
|
||||
this.recipe.setInventorySlotContents( 6 , recipe.output );
|
||||
|
||||
// XXX confirm
|
||||
|
||||
if ( confirm ) {
|
||||
this.tileEntity.currentRecipe = index;
|
||||
URegistry.network.sendToAll( new TBAlloyFurnaceMessage( position , index , true ) );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -98,6 +98,7 @@ public class TBAlloyFurnaceGui
|
|||
private final TBAlloyFurnaceContainer container;
|
||||
private ArrowButton bPrevious;
|
||||
private ArrowButton bNext;
|
||||
private GuiButton bConfirm;
|
||||
private TBAlloyFurnaceGui.Tab selectedTab = Tab.MAIN;
|
||||
private int currentRecipe = 0;
|
||||
|
||||
|
@ -115,7 +116,7 @@ public class TBAlloyFurnaceGui
|
|||
}
|
||||
}
|
||||
|
||||
this.setRecipe( 0 );
|
||||
this.setRecipe( tileEntity.currentRecipe );
|
||||
}
|
||||
|
||||
|
||||
|
@ -129,10 +130,14 @@ public class TBAlloyFurnaceGui
|
|||
|
||||
this.bPrevious = new ArrowButton( 1 , 8 + x , 47 + y , false );
|
||||
this.bNext = new ArrowButton( 2 , 156 + x , 47 + y , true );
|
||||
this.bPrevious.visible = this.bNext.visible = false;
|
||||
this.bConfirm = new GuiButton( 3 , 24 + x , 84 + y , 128 , 20 , "Select recipe" ); // XXX
|
||||
// I18n
|
||||
this.bPrevious.visible = this.bNext.visible = this.bConfirm.visible = false;
|
||||
|
||||
this.buttonList.add( this.bNext );
|
||||
this.buttonList.add( this.bPrevious );
|
||||
this.buttonList.add( this.bConfirm );
|
||||
|
||||
this.enableConfigButtons( );
|
||||
}
|
||||
|
||||
|
@ -140,8 +145,12 @@ public class TBAlloyFurnaceGui
|
|||
private void enableConfigButtons( )
|
||||
{
|
||||
if ( this.bNext != null ) {
|
||||
boolean visible = ( this.selectedTab == Tab.CONFIG );
|
||||
this.bNext.visible = this.bPrevious.visible = this.bConfirm.visible = visible;
|
||||
|
||||
this.bNext.enabled = this.currentRecipe < MAlloyRecipesRegistry.INSTANCE.getSortedRecipes( ).size( ) - 1;
|
||||
this.bPrevious.enabled = this.currentRecipe > 0;
|
||||
this.bConfirm.enabled = ( this.currentRecipe != this.container.tileEntity.currentRecipe );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -214,7 +223,13 @@ public class TBAlloyFurnaceGui
|
|||
this.setRecipe( this.currentRecipe + 1 );
|
||||
} else if ( button == this.bPrevious ) {
|
||||
this.setRecipe( this.currentRecipe - 1 );
|
||||
} else if ( button == this.bConfirm ) {
|
||||
URegistry.network.sendToServer(
|
||||
new TBAlloyFurnaceMessage( this.container.tileEntity.getPos( ) , this.currentRecipe , true ) );
|
||||
this.container.tileEntity.currentRecipe = this.currentRecipe;
|
||||
}
|
||||
|
||||
this.enableConfigButtons( );
|
||||
}
|
||||
|
||||
|
||||
|
@ -245,12 +260,6 @@ public class TBAlloyFurnaceGui
|
|||
.hideGroup( this.selectedTab.slotGroup ) //
|
||||
.showGroup( tab.slotGroup );
|
||||
this.selectedTab = tab;
|
||||
|
||||
this.bNext.visible = tab == Tab.CONFIG;
|
||||
this.bPrevious.visible = tab == Tab.CONFIG;
|
||||
if ( tab == Tab.CONFIG ) {
|
||||
this.bNext.enabled = this.currentRecipe < MAlloyRecipesRegistry.INSTANCE.getSortedRecipes( ).size( ) - 1;
|
||||
this.bPrevious.enabled = this.currentRecipe > 0;
|
||||
}
|
||||
this.enableConfigButtons( );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,9 @@ import mmm.utils.I_UMessage;
|
|||
import net.minecraft.client.entity.EntityPlayerSP;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
|
@ -58,7 +60,14 @@ public class TBAlloyFurnaceMessage
|
|||
@SideOnly( Side.CLIENT )
|
||||
public void handleOnClient( final EntityPlayerSP player )
|
||||
{
|
||||
// TODO Auto-generated method stub
|
||||
World world = player.getEntityWorld( );
|
||||
TileEntity te = world.getTileEntity( this.blockPos );
|
||||
if ( ! ( te instanceof TBAlloyFurnaceTileEntity ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
TBAlloyFurnaceTileEntity afte = (TBAlloyFurnaceTileEntity) te;
|
||||
afte.currentRecipe = this.selectedIndex;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ public class TBAlloyFurnaceTileEntity
|
|||
public final UInventoryGrid input;
|
||||
public final UInventoryGrid fuel;
|
||||
public final UInventoryGrid output;
|
||||
public int currentRecipe; // XXX That's a terrible idea
|
||||
|
||||
|
||||
public TBAlloyFurnaceTileEntity( )
|
||||
|
@ -22,26 +23,29 @@ public class TBAlloyFurnaceTileEntity
|
|||
this.input = new UInventoryGrid( "Input" , 3 , 5 );
|
||||
this.fuel = new UInventoryGrid( "Fuel" , 2 , 2 );
|
||||
this.output = new UInventoryGrid( "Output" , 2 , 5 );
|
||||
this.currentRecipe = 0;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void readFromNBT( NBTTagCompound compound )
|
||||
public void readFromNBT( final NBTTagCompound compound )
|
||||
{
|
||||
super.readFromNBT( compound );
|
||||
this.input.deserializeNBT( compound.getTagList( "Input" , NBT.TAG_COMPOUND ) );
|
||||
this.fuel.deserializeNBT( compound.getTagList( "Fuel" , NBT.TAG_COMPOUND ) );
|
||||
this.output.deserializeNBT( compound.getTagList( "Output" , NBT.TAG_COMPOUND ) );
|
||||
this.currentRecipe = compound.getInteger( "Recipe" );
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public NBTTagCompound writeToNBT( NBTTagCompound compound )
|
||||
public NBTTagCompound writeToNBT( final NBTTagCompound compound )
|
||||
{
|
||||
super.writeToNBT( compound );
|
||||
compound.setTag( "Input" , this.input.serializeNBT( ) );
|
||||
compound.setTag( "Fuel" , this.fuel.serializeNBT( ) );
|
||||
compound.setTag( "Output" , this.output.serializeNBT( ) );
|
||||
compound.setInteger( "Recipe" , this.currentRecipe );
|
||||
return compound;
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ public class TechBase
|
|||
GameRegistry.registerTileEntity( TBAlloyFurnaceTileEntity.class , "mmm:tech/base/alloy_furnace" );
|
||||
NetworkRegistry.INSTANCE.registerGuiHandler( Mmm.get( ) , new TBAlloyFurnaceGuiHandler( ) );
|
||||
URegistry.addServerMessage( TBAlloyFurnaceMessage.class );
|
||||
URegistry.addClientMessage( TBAlloyFurnaceMessage.class );
|
||||
|
||||
// FIXME test, remove this later
|
||||
MAlloyRecipesRegistry.INSTANCE.addRecipe( 200 , 0.05f , Items.COOKED_CHICKEN , Items.COOKED_BEEF ,
|
||||
|
|
Reference in a new issue