From 166f9a924f4a63395309adab24f726b3c1be1e4a Mon Sep 17 00:00:00 2001 From: al132 Date: Sun, 17 Jul 2016 20:06:47 -0500 Subject: [PATCH] Fixed Output of extractor (#679) * Add CraftTweaker support for the Compressor * Fix Extractor insertion and extraction * Oops --- .../java/techreborn/client/GuiHandler.java | 2 +- .../client/container/ContainerExtractor.java | 89 ++++++++++--------- .../techreborn/client/gui/GuiExtractor.java | 11 +-- .../techreborn/client/gui/GuiGrinder.java | 2 +- .../techreborn/tiles/teir1/TileExtractor.java | 35 +++----- 5 files changed, 69 insertions(+), 70 deletions(-) diff --git a/src/main/java/techreborn/client/GuiHandler.java b/src/main/java/techreborn/client/GuiHandler.java index c5e20c032..7904262be 100644 --- a/src/main/java/techreborn/client/GuiHandler.java +++ b/src/main/java/techreborn/client/GuiHandler.java @@ -168,7 +168,7 @@ public class GuiHandler implements IGuiHandler return new ContainerGenerator((TileGenerator) world.getTileEntity(new BlockPos(x, y, z)), player); } else if (ID == extractorID) { - return new ContainerExtractor((TileExtractor) world.getTileEntity(new BlockPos(x, y, z)), player); + container = new ContainerExtractor(); } else if (ID == compressorID) { return new ContainerCompressor((TileCompressor) world.getTileEntity(new BlockPos(x, y, z)), player); diff --git a/src/main/java/techreborn/client/container/ContainerExtractor.java b/src/main/java/techreborn/client/container/ContainerExtractor.java index f6385573d..74ad03583 100644 --- a/src/main/java/techreborn/client/container/ContainerExtractor.java +++ b/src/main/java/techreborn/client/container/ContainerExtractor.java @@ -1,34 +1,48 @@ package techreborn.client.container; +import java.util.List; + +import javax.annotation.Nullable; + import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.EnumFacing; +import reborncore.api.tile.IContainerLayout; import reborncore.client.gui.BaseSlot; +import reborncore.client.gui.SlotInput; import reborncore.client.gui.SlotOutput; import techreborn.api.gui.SlotUpgrade; import techreborn.tiles.teir1.TileExtractor; -public class ContainerExtractor extends ContainerCrafting +public class ContainerExtractor extends ContainerCrafting implements IContainerLayout { public int connectionStatus; EntityPlayer player; - TileExtractor tile; + TileExtractor tileExtractor; - public ContainerExtractor(TileExtractor tileGrinder, EntityPlayer player) + + @Override + public boolean canInteractWith(EntityPlayer p_75145_1_) { - super(tileGrinder.crafter); - tile = tileGrinder; - this.player = player; + return true; + } + + @Override + public void addInventorySlots() { // input - this.addSlotToContainer(new BaseSlot(tileGrinder.inventory, 0, 56, 34)); - this.addSlotToContainer(new SlotOutput(tileGrinder.inventory, 1, 116, 34)); + this.addSlotToContainer(new SlotInput(tileExtractor.inventory, 0, 56, 34)); + this.addSlotToContainer(new SlotOutput(tileExtractor.inventory, 1, 116, 34)); // upgrades - this.addSlotToContainer(new SlotUpgrade(tileGrinder.inventory, 2, 152, 8)); - this.addSlotToContainer(new SlotUpgrade(tileGrinder.inventory, 3, 152, 26)); - this.addSlotToContainer(new SlotUpgrade(tileGrinder.inventory, 4, 152, 44)); - this.addSlotToContainer(new SlotUpgrade(tileGrinder.inventory, 5, 152, 62)); + this.addSlotToContainer(new SlotUpgrade(tileExtractor.inventory, 2, 152, 8)); + this.addSlotToContainer(new SlotUpgrade(tileExtractor.inventory, 3, 152, 26)); + this.addSlotToContainer(new SlotUpgrade(tileExtractor.inventory, 4, 152, 44)); + this.addSlotToContainer(new SlotUpgrade(tileExtractor.inventory, 5, 152, 62)); + } + @Override + public void addPlayerSlots() { int i; for (i = 0; i < 3; ++i) @@ -46,35 +60,30 @@ public class ContainerExtractor extends ContainerCrafting } @Override - public boolean canInteractWith(EntityPlayer p_75145_1_) - { - return true; + public void setTile(TileExtractor tile) { + this.tileExtractor = tile; + setCrafter(tile.crafter); } - // @Override - // public void addListener(IContainerListener crafting) { - // super.addListener(crafting); - // crafting.sendProgressBarUpdate(this, 0, (int) tile.getProgressScaled(0)); - // crafting.sendProgressBarUpdate(this, 2, (int) tile.getEnergy()); - // } - // - // @SideOnly(Side.CLIENT) - // @Override - // public void updateProgressBar(int id, int value) { - // if (id == 0) { - // this.progress = value; - // } - // else if (id == 2) { - // this.energy = value; - // } - // this.tile.setEnergy(energy); - // } + @Override + public TileExtractor getTile() { + return tileExtractor; + } - // @SideOnly(Side.CLIENT) - // @Override - // public void updateProgressBar(int id, int value) { - // if (id == 10) { - // this.connectionStatus = value; - // } - // } + @Override + public void setPlayer(EntityPlayer player) { + this.player = player; + + } + + @Override + public EntityPlayer getPlayer() { + return player; + } + + @Nullable + @Override + public List getSlotsForSide(EnumFacing facing) { + return null; + } } diff --git a/src/main/java/techreborn/client/gui/GuiExtractor.java b/src/main/java/techreborn/client/gui/GuiExtractor.java index 1fab87035..310407473 100644 --- a/src/main/java/techreborn/client/gui/GuiExtractor.java +++ b/src/main/java/techreborn/client/gui/GuiExtractor.java @@ -5,6 +5,7 @@ import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.translation.I18n; +import reborncore.common.container.RebornContainer; import techreborn.client.container.ContainerExtractor; import techreborn.tiles.teir1.TileExtractor; @@ -14,15 +15,15 @@ public class GuiExtractor extends GuiContainer public static final ResourceLocation texture = new ResourceLocation("techreborn", "textures/gui/compressor.png"); TileExtractor extractor; - ContainerExtractor containerGrinder; + ContainerExtractor containerExtractor; - public GuiExtractor(EntityPlayer player, TileExtractor tilegrinder) + public GuiExtractor(EntityPlayer player, TileExtractor tileExtractor) { - super(new ContainerExtractor(tilegrinder, player)); + super(RebornContainer.createContainer(ContainerExtractor.class, tileExtractor, player)); this.xSize = 176; this.ySize = 167; - extractor = tilegrinder; - containerGrinder = (ContainerExtractor) this.inventorySlots; + this.extractor = tileExtractor; + containerExtractor = (ContainerExtractor) this.inventorySlots; } @Override diff --git a/src/main/java/techreborn/client/gui/GuiGrinder.java b/src/main/java/techreborn/client/gui/GuiGrinder.java index 717f619fb..0e4dbadd5 100644 --- a/src/main/java/techreborn/client/gui/GuiGrinder.java +++ b/src/main/java/techreborn/client/gui/GuiGrinder.java @@ -22,7 +22,7 @@ public class GuiGrinder extends GuiContainer super(RebornContainer.createContainer(ContainerGrinder.class, tilegrinder, player)); this.xSize = 176; this.ySize = 167; - grinder = tilegrinder; + this.grinder = tilegrinder; containerGrinder = (ContainerGrinder) this.inventorySlots; } diff --git a/src/main/java/techreborn/tiles/teir1/TileExtractor.java b/src/main/java/techreborn/tiles/teir1/TileExtractor.java index d7e9976af..cfa374b95 100644 --- a/src/main/java/techreborn/tiles/teir1/TileExtractor.java +++ b/src/main/java/techreborn/tiles/teir1/TileExtractor.java @@ -1,6 +1,8 @@ package techreborn.tiles.teir1; -import reborncore.common.IWrenchable;import reborncore.common.IWrenchable; +import reborncore.common.IWrenchable; +import reborncore.common.container.RebornContainer; +import reborncore.common.IWrenchable; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -8,14 +10,17 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import reborncore.api.power.EnumPowerTier; import reborncore.api.recipe.IRecipeCrafterProvider; +import reborncore.api.tile.IContainerProvider; import reborncore.api.tile.IInventoryProvider; import reborncore.common.powerSystem.TilePowerAcceptor; import reborncore.common.recipes.RecipeCrafter; import reborncore.common.util.Inventory; import techreborn.api.Reference; +import techreborn.client.container.ContainerExtractor; +import techreborn.client.container.ContainerGrinder; import techreborn.init.ModBlocks; -public class TileExtractor extends TilePowerAcceptor implements IWrenchable,IInventoryProvider, ISidedInventory, IRecipeCrafterProvider +public class TileExtractor extends TilePowerAcceptor implements IWrenchable,IInventoryProvider, IRecipeCrafterProvider, IContainerProvider { public Inventory inventory = new Inventory(6, "TileExtractor", 64, this); @@ -91,27 +96,6 @@ public class TileExtractor extends TilePowerAcceptor implements IWrenchable,IInv return tagCompound; } - // ISidedInventory - @Override - public int[] getSlotsForFace(EnumFacing side) - { - return side == EnumFacing.DOWN ? new int[] { 0, 1, 2 } : new int[] { 0, 1, 2 }; - } - - @Override - public boolean canInsertItem(int slotIndex, ItemStack itemStack, EnumFacing side) - { - if (slotIndex == 2) - return false; - return isItemValidForSlot(slotIndex, itemStack); - } - - @Override - public boolean canExtractItem(int slotIndex, ItemStack itemStack, EnumFacing side) - { - return slotIndex == 2; - } - public int getProgressScaled(int scale) { if (crafter.currentTickTime != 0) @@ -166,4 +150,9 @@ public class TileExtractor extends TilePowerAcceptor implements IWrenchable,IInv public RecipeCrafter getRecipeCrafter() { return crafter; } + + @Override + public RebornContainer getContainer() { + return RebornContainer.getContainerFromClass(ContainerExtractor.class, this); + } }