Added button for recipes, fixed syncing with tanks

This commit is contained in:
modmuss50 2015-05-03 14:31:19 +01:00
parent 26b60d2896
commit 39492fadbd
4 changed files with 54 additions and 45 deletions

View file

@ -1,6 +1,7 @@
package techreborn.client.gui;
import codechicken.nei.recipe.GuiUsageRecipe;
import codechicken.nei.recipe.GuiRecipe;
import codechicken.nei.recipe.IRecipeHandler;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
@ -10,6 +11,7 @@ import net.minecraft.util.StatCollector;
import techreborn.client.container.ContainerBlastFurnace;
import techreborn.tiles.TileBlastFurnace;
public class GuiBlastFurnace extends GuiContainer {
private static final ResourceLocation texture = new ResourceLocation(
@ -24,10 +26,19 @@ public class GuiBlastFurnace extends GuiContainer {
this.xSize = 176;
this.ySize = 167;
blastfurnace = tileblastfurnace;
this.buttonList.add(new GuiButton(0, 0, 0, 20, 20, "R"));
}
@Override
@Override
public void initGui() {
this.buttonList.clear();
int k = (this.width - this.xSize) / 2;
int l = (this.height - this.ySize) / 2;
this.buttonList.add(new GuiButton(0, k + 4, l + 4, 20, 20, "R"));
super.initGui();
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_,
int p_146976_2_, int p_146976_3_)
{
@ -35,24 +46,17 @@ public class GuiBlastFurnace extends GuiContainer {
int k = (this.width - this.xSize) / 2;
int l = (this.height - this.ySize) / 2;
this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
}
protected void drawGuiContainerForegroundLayer(int p_146979_1_,
int p_146979_2_)
{
super.drawGuiContainerForegroundLayer(p_146979_1_, p_146979_2_);
this.fontRendererObj.drawString(StatCollector.translateToLocal("tile.techreborn.blastfurnace.name"), 60, 6, 4210752);
this.fontRendererObj.drawString(blastfurnace.getHeat() + " heat", 75, 20, 4210752);
this.fontRendererObj.drawString(
I18n.format("container.inventory", new Object[0]), 8,
this.ySize - 96 + 2, 4210752);
}
@Override
protected void actionPerformed(GuiButton button) {
super.actionPerformed(button);
if(button.id == 0){
//GuiUsageRecipe.openRecipeGui(rect.outputId, rect.results);
}
}
}

View file

@ -117,7 +117,6 @@ public class BlastFurnaceRecipeHandler extends TemplateRecipeHandler {
+ centrifugeRecipie.centrifugeRecipie.getTickTime() / 20
+ " seconds", 14, 114, -1);
}
}
@Override
@ -130,7 +129,7 @@ public class BlastFurnaceRecipeHandler extends TemplateRecipeHandler {
public void loadTransferRects()
{
this.transferRects.add(new TemplateRecipeHandler.RecipeTransferRect(
new Rectangle(75, 22, 15, 13), "tr.blast", new Object[0]));
new Rectangle(0, 0, 20, 20), "tr.blast", new Object[0]));
}
public void loadCraftingRecipes(String outputId, Object... results)

View file

@ -22,13 +22,14 @@ public class NEIConfig implements IConfigureNEI {
{
return ModInfo.MOD_VERSION;
}
public static BlastFurnaceRecipeHandler blastFurnaceRecipeHandle;
@Override
public void loadConfig() {
CentrifugeRecipeHandler centrifugeRecipeHandler = new CentrifugeRecipeHandler();
ShapedRollingMachineHandler shapedRollingMachineHandler = new ShapedRollingMachineHandler();
ShapelessRollingMachineHandler shapelessRollingMachineHandler = new ShapelessRollingMachineHandler();
BlastFurnaceRecipeHandler blastFurnaceRecipeHandler = new BlastFurnaceRecipeHandler();
NEIConfig.blastFurnaceRecipeHandle = new BlastFurnaceRecipeHandler();
API.registerRecipeHandler(centrifugeRecipeHandler);
API.registerUsageHandler(centrifugeRecipeHandler);
@ -39,7 +40,7 @@ public class NEIConfig implements IConfigureNEI {
API.registerUsageHandler(shapelessRollingMachineHandler);
API.registerRecipeHandler(shapelessRollingMachineHandler);
API.registerUsageHandler(blastFurnaceRecipeHandler);
API.registerRecipeHandler(blastFurnaceRecipeHandler);
API.registerUsageHandler(NEIConfig.blastFurnaceRecipeHandle);
API.registerRecipeHandler(NEIConfig.blastFurnaceRecipeHandle);
}
}

View file

@ -53,37 +53,40 @@ public class TileQuantumTank extends TileMachineBase implements IFluidHandler,
inventory.writeToNBT(tagCompound);
}
public Packet getDescriptionPacket()
{
NBTTagCompound nbtTag = new NBTTagCompound();
writeToNBT(nbtTag);
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord,
this.zCoord, 1, nbtTag);
}
public Packet getDescriptionPacket()
{
NBTTagCompound nbtTag = new NBTTagCompound();
writeToNBT(nbtTag);
return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord,
this.zCoord, 1, nbtTag);
}
@Override
public void onDataPacket(NetworkManager net,
S35PacketUpdateTileEntity packet)
{
worldObj.markBlockRangeForRenderUpdate(xCoord, yCoord, zCoord, xCoord,
yCoord, zCoord);
readFromNBT(packet.func_148857_g());
}
@Override
public void onDataPacket(NetworkManager net,
S35PacketUpdateTileEntity packet)
{
worldObj.markBlockRangeForRenderUpdate(xCoord, yCoord, zCoord, xCoord,
yCoord, zCoord);
readFromNBT(packet.func_148857_g());
}
@Override
public void updateEntity()
{
super.updateEntity();
FluidUtils.drainContainers(this, inventory, 0, 1);
FluidUtils.fillContainers(this, inventory, 0, 1, tank.getFluidType());
if (tank.getFluidType() != null && getStackInSlot(2) == null)
{
inventory.setInventorySlotContents(2, new ItemStack(tank
.getFluidType().getBlock()));
} else if (tank.getFluidType() == null && getStackInSlot(2) != null)
{
setInventorySlotContents(2, null);
}
if(!worldObj.isRemote){
FluidUtils.drainContainers(this, inventory, 0, 1);
FluidUtils.fillContainers(this, inventory, 0, 1, tank.getFluidType());
if (tank.getFluidType() != null && getStackInSlot(2) == null)
{
inventory.setInventorySlotContents(2, new ItemStack(tank
.getFluidType().getBlock()));
} else if (tank.getFluidType() == null && getStackInSlot(2) != null)
{
setInventorySlotContents(2, null);
}
syncWithAll();
}
}
// IFluidHandler
@ -138,9 +141,10 @@ public class TileQuantumTank extends TileMachineBase implements IFluidHandler,
}
@Override
public ItemStack decrStackSize(int slotId, int count)
{
return inventory.decrStackSize(slotId, count);
public ItemStack decrStackSize(int slotId, int count) {
ItemStack stack = inventory.decrStackSize(slotId, count);
syncWithAll();
return stack;
}
@Override
@ -153,6 +157,7 @@ public class TileQuantumTank extends TileMachineBase implements IFluidHandler,
public void setInventorySlotContents(int slot, ItemStack stack)
{
inventory.setInventorySlotContents(slot, stack);
syncWithAll();
}
@Override