mirror of
https://github.com/GTNewHorizons/ForestryMC.git
synced 2026-10-26 14:23:57 +00:00
More progress on inventory rework
This commit is contained in:
1 parent
48d6230ed1
commit
4f48cd5890
2 files changed
+98
-157
No files matched your search
@@ -25,7 +25,7 @@ import forestry.core.interfaces.ILiquidTankContainer;
|
||||
import forestry.core.network.EntityNetData;
|
||||
import forestry.core.network.GuiId;
|
||||
import forestry.core.utils.EnumTankLevel;
|
||||
import forestry.core.inventory.InventoryAdapter;
|
||||
import forestry.core.inventory.TileInventoryAdapter;
|
||||
import forestry.core.utils.LiquidHelper;
|
||||
import forestry.core.utils.StackUtils;
|
||||
import forestry.core.utils.Utils;
|
||||
@@ -87,12 +87,8 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
}
|
||||
|
||||
public static class RecipeManager implements ICraftingProvider {
|
||||
<<<<<<< Updated upstream
|
||||
public static final ArrayList<MachineBottler.Recipe> recipes = new ArrayList<MachineBottler.Recipe>();
|
||||
=======
|
||||
|
||||
public static ArrayList<MachineBottler.Recipe> recipes = new ArrayList<MachineBottler.Recipe>();
|
||||
>>>>>>> Stashed changes
|
||||
public static final ArrayList<MachineBottler.Recipe> recipes = new ArrayList<MachineBottler.Recipe>();
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -151,8 +147,6 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
public final StandardTank resourceTank;
|
||||
private final TankManager tankManager;
|
||||
|
||||
private final InventoryAdapter inventory = new InventoryAdapter(3, "Items");
|
||||
|
||||
private boolean productPending = false;
|
||||
|
||||
private Recipe currentRecipe;
|
||||
@@ -162,6 +156,9 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
|
||||
public MachineBottler() {
|
||||
super(1100, 50, 4000);
|
||||
|
||||
setInternalInventory(new TileInventoryAdapter(this, 3, "Items"));
|
||||
|
||||
setHints(Config.hints.get("bottler"));
|
||||
resourceTank = new StandardTank(Defaults.PROCESSOR_TANK_CAPACITY);
|
||||
tankManager = new TankManager(resourceTank);
|
||||
@@ -187,7 +184,6 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
nbttagcompound.setBoolean("ProductPending", productPending);
|
||||
|
||||
tankManager.writeTanksToNBT(nbttagcompound);
|
||||
inventory.writeToNBT(nbttagcompound);
|
||||
|
||||
NBTTagList nbttaglist = new NBTTagList();
|
||||
ItemStack[] offspring = pendingProducts.toArray(new ItemStack[pendingProducts.size()]);
|
||||
@@ -212,8 +208,6 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
|
||||
tankManager.readTanksFromNBT(nbttagcompound);
|
||||
|
||||
inventory.readFromNBT(nbttagcompound);
|
||||
|
||||
NBTTagList nbttaglist = nbttagcompound.getTagList("PendingProducts", 10);
|
||||
for (int i = 0; i < nbttaglist.tagCount(); i++) {
|
||||
NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i);
|
||||
@@ -227,7 +221,9 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
public void updateServerSide() {
|
||||
if (worldObj.getTotalWorldTime() % 20 * 10 != 0)
|
||||
return;
|
||||
|
||||
|
||||
TileInventoryAdapter inventory = getInternalInventory();
|
||||
|
||||
// Check if we have suitable items waiting in the item slot
|
||||
if (inventory.getStackInSlot(SLOT_CAN) != null) {
|
||||
FluidContainerData container = LiquidHelper.getLiquidContainer(inventory.getStackInSlot(SLOT_CAN));
|
||||
@@ -280,6 +276,7 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
// We are done, add products to queue and remove resources
|
||||
pendingProducts.push(currentRecipe.bottled.copy());
|
||||
|
||||
TileInventoryAdapter inventory = getInternalInventory();
|
||||
inventory.decrStackSize(SLOT_RESOURCE, 1);
|
||||
resourceTank.drain(currentRecipe.input.amount, true);
|
||||
checkRecipe();
|
||||
@@ -291,6 +288,7 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
}
|
||||
|
||||
public void checkRecipe() {
|
||||
TileInventoryAdapter inventory = getInternalInventory();
|
||||
Recipe sameRec = RecipeManager.findMatchingRecipe(resourceTank.getFluid(), inventory.getStackInSlot(SLOT_RESOURCE));
|
||||
|
||||
if (sameRec == null)
|
||||
@@ -328,7 +326,7 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
}
|
||||
|
||||
private boolean addProduct(ItemStack product, boolean all) {
|
||||
return inventory.tryAddStack(product, SLOT_PRODUCT, 1, all);
|
||||
return getInternalInventory().tryAddStack(product, SLOT_PRODUCT, 1, all);
|
||||
}
|
||||
|
||||
// / STATE INFORMATION
|
||||
@@ -339,6 +337,7 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
|
||||
@Override
|
||||
public boolean hasResourcesMin(float percentage) {
|
||||
TileInventoryAdapter inventory = getInternalInventory();
|
||||
if (inventory.getStackInSlot(SLOT_RESOURCE) == null)
|
||||
return false;
|
||||
|
||||
@@ -368,6 +367,7 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
}
|
||||
|
||||
/* SMP GUI */
|
||||
@Override
|
||||
public void getGUINetworkData(int i, int j) {
|
||||
i -= tankManager.maxMessageId() + 1;
|
||||
switch (i) {
|
||||
@@ -380,6 +380,7 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendGUINetworkData(Container container, ICrafting iCrafting) {
|
||||
int i = tankManager.maxMessageId() + 1;
|
||||
iCrafting.sendProgressBarUpdate(container, i, fillingTime);
|
||||
@@ -389,32 +390,32 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
/* IINVENTORY */
|
||||
@Override
|
||||
public int getSizeInventory() {
|
||||
return inventory.getSizeInventory();
|
||||
return getInternalInventory().getSizeInventory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlot(int i) {
|
||||
return inventory.getStackInSlot(i);
|
||||
return getInternalInventory().getStackInSlot(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack decrStackSize(int i, int j) {
|
||||
return inventory.decrStackSize(i, j);
|
||||
return getInternalInventory().decrStackSize(i, j);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInventorySlotContents(int i, ItemStack itemstack) {
|
||||
inventory.setInventorySlotContents(i, itemstack);
|
||||
getInternalInventory().setInventorySlotContents(i, itemstack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlotOnClosing(int slot) {
|
||||
return inventory.getStackInSlotOnClosing(slot);
|
||||
return getInternalInventory().getStackInSlotOnClosing(slot);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInventoryStackLimit() {
|
||||
return inventory.getInventoryStackLimit();
|
||||
return getInternalInventory().getInventoryStackLimit();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -425,20 +426,14 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
public void closeInventory() {
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: just a specialsource workaround
|
||||
*/
|
||||
@Override
|
||||
public boolean isUseableByPlayer(EntityPlayer player) {
|
||||
return super.isUseableByPlayer(player);
|
||||
return getInternalInventory().isUseableByPlayer(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: just a specialsource workaround
|
||||
*/
|
||||
@Override
|
||||
public boolean hasCustomInventoryName() {
|
||||
return super.hasCustomInventoryName();
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -458,43 +453,22 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
}
|
||||
|
||||
|
||||
/* ISIDEDINVENTORY */
|
||||
@Override
|
||||
public boolean canInsertItem(int slotIndex, ItemStack itemstack, int side) {
|
||||
return isItemValidForSlot(slotIndex, itemstack);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int slotIndex, ItemStack itemstack, int side) {
|
||||
return getInternalInventory().canExtractItem(side, itemstack, side) && slotIndex == SLOT_PRODUCT;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side) {
|
||||
return getInternalInventory().getAccessibleSlotsFromSide(side);
|
||||
}
|
||||
|
||||
/* ISIDEDINVENTORY */
|
||||
@Override
|
||||
public InventoryAdapter getInternalInventory() {
|
||||
return inventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canTakeStackFromSide(int slotIndex, ItemStack itemstack, int side) {
|
||||
|
||||
if (!super.canTakeStackFromSide(slotIndex, itemstack, side))
|
||||
return false;
|
||||
|
||||
return slotIndex == SLOT_PRODUCT;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canPutStackFromSide(int slotIndex, ItemStack itemstack, int side) {
|
||||
|
||||
}
|
||||
|
||||
/* ILIQUIDCONTAINER */
|
||||
@Override
|
||||
public TankManager getTankManager() {
|
||||
@@ -506,6 +480,7 @@ public class MachineBottler extends TilePowered implements ISidedInventory, ILiq
|
||||
return tankManager.fill(from, resource, doFill);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
|
||||
return tankManager.drain(from, resource, doDrain);
|
||||
}
|
||||
|
||||
@@ -145,15 +145,15 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
public void addCrating(ItemStack itemStack) {
|
||||
ItemStack uncrated = ((forestry.core.items.ItemCrated) itemStack.getItem()).getContained(itemStack);
|
||||
addRecipe(Defaults.CARPENTER_CRATING_CYCLES, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, Defaults.CARPENTER_CRATING_LIQUID_QUANTITY),
|
||||
ForestryItem.crate.getItemStack(), itemStack, new Object[] { "###", "###", "###", '#', uncrated });
|
||||
addRecipe(null, new ItemStack(uncrated.getItem(), 9, uncrated.getItemDamage()), new Object[] { "#", Character.valueOf('#'), itemStack });
|
||||
ForestryItem.crate.getItemStack(), itemStack, new Object[]{"###", "###", "###", '#', uncrated});
|
||||
addRecipe(null, new ItemStack(uncrated.getItem(), 9, uncrated.getItemDamage()), new Object[]{"#", Character.valueOf('#'), itemStack});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCrating(String toCrate, ItemStack unpack, ItemStack crated) {
|
||||
addRecipe(Defaults.CARPENTER_CRATING_CYCLES, LiquidHelper.getLiquid(Defaults.LIQUID_WATER, Defaults.CARPENTER_CRATING_LIQUID_QUANTITY),
|
||||
ForestryItem.crate.getItemStack(), crated, new Object[] { "###", "###", "###", '#', toCrate });
|
||||
addRecipe(null, new ItemStack(unpack.getItem(), 9, unpack.getItemDamage()), new Object[] { "#", '#', crated });
|
||||
ForestryItem.crate.getItemStack(), crated, new Object[]{"###", "###", "###", '#', toCrate});
|
||||
addRecipe(null, new ItemStack(unpack.getItem(), 9, unpack.getItemDamage()), new Object[]{"#", '#', crated});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -200,7 +200,7 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
HashMap<Object[], Object[]> recipeList = new HashMap<Object[], Object[]>();
|
||||
|
||||
for (Recipe recipe : recipes) {
|
||||
recipeList.put(recipe.internal.getIngredients(), new Object[] { recipe.getCraftingResult() });
|
||||
recipeList.put(recipe.internal.getIngredients(), new Object[]{recipe.getCraftingResult()});
|
||||
}
|
||||
|
||||
return recipeList;
|
||||
@@ -212,7 +212,6 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
public final FilteredTank resourceTank;
|
||||
private final TankManager tankManager;
|
||||
private final TileInventoryAdapter craftingInventory;
|
||||
private final TileInventoryAdapter accessibleInventory;
|
||||
public MachineCarpenter.Recipe currentRecipe;
|
||||
public MachineCarpenter.Recipe lastRecipe;
|
||||
public ContainerCarpenter activeContainer;
|
||||
@@ -222,7 +221,7 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
private ItemStack pendingProduct;
|
||||
|
||||
public ItemStack getBoxStack() {
|
||||
return accessibleInventory.getStackInSlot(SLOT_BOX);
|
||||
return getInternalInventory().getStackInSlot(SLOT_BOX);
|
||||
}
|
||||
|
||||
public MachineCarpenter() {
|
||||
@@ -230,7 +229,8 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
setHints(Config.hints.get("carpenter"));
|
||||
resourceTank = new FilteredTank(Defaults.PROCESSOR_TANK_CAPACITY, RecipeManager.recipeFluids);
|
||||
craftingInventory = new TileInventoryAdapter(this, 10, "CraftItems");
|
||||
accessibleInventory = (TileInventoryAdapter) new TileInventoryAdapter(this, 30, "Items").configureSided(Defaults.FACINGS, SLOT_BOX, 20);
|
||||
setInternalInventory(new TileInventoryAdapter(this, 30, "Items"));
|
||||
getInternalInventory().configureSided(Defaults.FACINGS, SLOT_BOX, 20);
|
||||
|
||||
tankManager = new TankManager(resourceTank);
|
||||
}
|
||||
@@ -256,7 +256,6 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
tankManager.writeTanksToNBT(nbttagcompound);
|
||||
|
||||
craftingInventory.writeToNBT(nbttagcompound);
|
||||
accessibleInventory.writeToNBT(nbttagcompound);
|
||||
|
||||
// Write pending product
|
||||
if (pendingProduct != null) {
|
||||
@@ -295,7 +294,6 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
}
|
||||
|
||||
}
|
||||
accessibleInventory.readFromNBT(nbttagcompound);
|
||||
|
||||
// Load pending product
|
||||
if (nbttagcompound.hasKey("PendingProduct")) {
|
||||
@@ -315,7 +313,7 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
|
||||
public void setCurrentRecipe(MachineCarpenter.Recipe currentRecipe) {
|
||||
this.currentRecipe = currentRecipe;
|
||||
if(currentRecipe != null)
|
||||
if (currentRecipe != null)
|
||||
lastRecipe = currentRecipe;
|
||||
}
|
||||
|
||||
@@ -324,7 +322,7 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
|
||||
if (worldObj.getTotalWorldTime() % 20 * 10 != 0)
|
||||
return;
|
||||
|
||||
TileInventoryAdapter accessibleInventory = getInternalInventory();
|
||||
// Check if we have suitable items waiting in the item slot
|
||||
if (accessibleInventory.getStackInSlot(SLOT_CAN_INPUT) != null) {
|
||||
FluidContainerData container = LiquidHelper.getLiquidContainer(accessibleInventory.getStackInSlot(SLOT_CAN_INPUT));
|
||||
@@ -416,6 +414,7 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
if (resourceTank.getFluidAmount() < currentRecipe.liquid.amount)
|
||||
return false;
|
||||
|
||||
TileInventoryAdapter accessibleInventory = getInternalInventory();
|
||||
// Check whether boxes are available
|
||||
if (currentRecipe.box != null)
|
||||
if (accessibleInventory.getStackInSlot(SLOT_BOX) == null)
|
||||
@@ -439,7 +438,7 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
}
|
||||
// Remove boxes
|
||||
if (recipe.box != null) {
|
||||
ItemStack removed = accessibleInventory.decrStackSize(SLOT_BOX, 1);
|
||||
ItemStack removed = getInternalInventory().decrStackSize(SLOT_BOX, 1);
|
||||
if (removed == null || removed.stackSize == 0)
|
||||
return false;
|
||||
}
|
||||
@@ -448,11 +447,12 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
}
|
||||
|
||||
private boolean removeSets(int count, ItemStack[] set) {
|
||||
EntityPlayer player = Proxies.common.getPlayer(worldObj, owner);
|
||||
return accessibleInventory.removeSets(count, set, SLOT_INVENTORY_1, SLOT_INVENTORY_COUNT, player, true, true, true);
|
||||
EntityPlayer player = Proxies.common.getPlayer(worldObj, getOwnerProfile());
|
||||
return getInternalInventory().removeSets(count, set, SLOT_INVENTORY_1, SLOT_INVENTORY_COUNT, player, true, true, true);
|
||||
}
|
||||
|
||||
private boolean tryAddPending() {
|
||||
TileInventoryAdapter accessibleInventory = getInternalInventory();
|
||||
if (accessibleInventory.getStackInSlot(SLOT_PRODUCT) == null) {
|
||||
accessibleInventory.setInventorySlotContents(SLOT_PRODUCT, pendingProduct.copy());
|
||||
pendingProduct = null;
|
||||
@@ -481,6 +481,7 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
if (currentRecipe == null)
|
||||
return false;
|
||||
|
||||
TileInventoryAdapter accessibleInventory = getInternalInventory();
|
||||
// Stop working if the output slot cannot take more
|
||||
if (accessibleInventory.getStackInSlot(SLOT_PRODUCT) != null
|
||||
&& accessibleInventory.getStackInSlot(SLOT_PRODUCT).getMaxStackSize() - accessibleInventory.getStackInSlot(SLOT_PRODUCT).stackSize < currentRecipe
|
||||
@@ -510,32 +511,32 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
/* IINVENTORY */
|
||||
@Override
|
||||
public int getSizeInventory() {
|
||||
return accessibleInventory.getSizeInventory();
|
||||
return getInternalInventory().getSizeInventory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlot(int i) {
|
||||
return accessibleInventory.getStackInSlot(i);
|
||||
return getInternalInventory().getStackInSlot(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInventorySlotContents(int i, ItemStack itemstack) {
|
||||
accessibleInventory.setInventorySlotContents(i, itemstack);
|
||||
getInternalInventory().setInventorySlotContents(i, itemstack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack decrStackSize(int i, int j) {
|
||||
return accessibleInventory.decrStackSize(i, j);
|
||||
return getInternalInventory().decrStackSize(i, j);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlotOnClosing(int slot) {
|
||||
return accessibleInventory.getStackInSlotOnClosing(slot);
|
||||
return getInternalInventory().getStackInSlotOnClosing(slot);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInventoryStackLimit() {
|
||||
return accessibleInventory.getInventoryStackLimit();
|
||||
return getInternalInventory().getInventoryStackLimit();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -546,102 +547,19 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
public void closeInventory() {
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: just a specialsource workaround
|
||||
*/
|
||||
@Override
|
||||
public boolean isUseableByPlayer(EntityPlayer player) {
|
||||
return super.isUseableByPlayer(player);
|
||||
return getInternalInventory().isUseableByPlayer(player);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: just a specialsource workaround
|
||||
*/
|
||||
@Override
|
||||
public boolean hasCustomInventoryName() {
|
||||
return super.hasCustomInventoryName();
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: just a specialsource workaround
|
||||
*/
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int slotIndex, ItemStack itemstack) {
|
||||
return super.isItemValidForSlot(slotIndex, itemstack);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: just a specialsource workaround
|
||||
*/
|
||||
@Override
|
||||
public boolean canInsertItem(int i, ItemStack itemstack, int j) {
|
||||
return super.canInsertItem(i, itemstack, j);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: just a specialsource workaround
|
||||
*/
|
||||
@Override
|
||||
public boolean canExtractItem(int i, ItemStack itemstack, int j) {
|
||||
return super.canExtractItem(i, itemstack, j);
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO: just a specialsource workaround
|
||||
*/
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side) {
|
||||
return super.getAccessibleSlotsFromSide(side);
|
||||
}
|
||||
|
||||
/* SMP GUI */
|
||||
public void getGUINetworkData(int i, int j) {
|
||||
i -= tankManager.maxMessageId() + 1;
|
||||
switch (i) {
|
||||
case 0:
|
||||
packageTime = j;
|
||||
break;
|
||||
case 1:
|
||||
totalTime = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void sendGUINetworkData(Container container, ICrafting iCrafting) {
|
||||
int i = tankManager.maxMessageId() + 1;
|
||||
iCrafting.sendProgressBarUpdate(container, i, packageTime);
|
||||
iCrafting.sendProgressBarUpdate(container, i + 1, totalTime);
|
||||
}
|
||||
|
||||
/* ISIDEDINVENTORY */
|
||||
@Override
|
||||
public InventoryAdapter getInternalInventory() {
|
||||
return accessibleInventory;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Inaccessible crafting inventory for the craft grid.
|
||||
*/
|
||||
public InventoryAdapter getCraftingInventory() {
|
||||
return craftingInventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canTakeStackFromSide(int slotIndex, ItemStack itemstack, int side) {
|
||||
|
||||
if (!super.canTakeStackFromSide(slotIndex, itemstack, side))
|
||||
return false;
|
||||
|
||||
if (slotIndex == SLOT_PRODUCT)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean canPutStackFromSide(int slotIndex, ItemStack itemstack, int side) {
|
||||
|
||||
if (!super.canPutStackFromSide(slotIndex, itemstack, side))
|
||||
public boolean isItemValidForSlot(int slotIndex, ItemStack itemstack) {
|
||||
if (!getInternalInventory().isItemValidForSlot(slotIndex, itemstack))
|
||||
return false;
|
||||
|
||||
if (slotIndex == SLOT_PRODUCT)
|
||||
@@ -662,7 +580,54 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
return false;
|
||||
}
|
||||
|
||||
// ILIQUIDCONTAINER IMPLEMENTATION
|
||||
/* ISIDEDINVENTORY */
|
||||
@Override
|
||||
public boolean canInsertItem(int slotIndex, ItemStack itemstack, int side) {
|
||||
return isItemValidForSlot(slotIndex, itemstack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int slotIndex, ItemStack itemstack, int side) {
|
||||
if (!getInternalInventory().canExtractItem(slotIndex, itemstack, side))
|
||||
return false;
|
||||
|
||||
return slotIndex == SLOT_PRODUCT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side) {
|
||||
return getInternalInventory().getAccessibleSlotsFromSide(side);
|
||||
}
|
||||
|
||||
/* SMP GUI */
|
||||
@Override
|
||||
public void getGUINetworkData(int i, int j) {
|
||||
i -= tankManager.maxMessageId() + 1;
|
||||
switch (i) {
|
||||
case 0:
|
||||
packageTime = j;
|
||||
break;
|
||||
case 1:
|
||||
totalTime = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendGUINetworkData(Container container, ICrafting iCrafting) {
|
||||
int i = tankManager.maxMessageId() + 1;
|
||||
iCrafting.sendProgressBarUpdate(container, i, packageTime);
|
||||
iCrafting.sendProgressBarUpdate(container, i + 1, totalTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Inaccessible crafting inventory for the craft grid.
|
||||
*/
|
||||
public InventoryAdapter getCraftingInventory() {
|
||||
return craftingInventory;
|
||||
}
|
||||
|
||||
// IFLUIDCONTAINER IMPLEMENTATION
|
||||
@Override
|
||||
public int fill(ForgeDirection direction, FluidStack resource, boolean doFill) {
|
||||
return tankManager.fill(direction, resource, doFill);
|
||||
@@ -673,6 +638,7 @@ public class MachineCarpenter extends TilePowered implements ISidedInventory, IL
|
||||
return tankManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
|
||||
return tankManager.drain(from, resource, doDrain);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user