Fix #435 & Little bit more

This commit is contained in:
InusualZ
2016-10-09 08:53:19 -04:00
parent 40e5433413
commit 4379f536ee
2 changed files with 22 additions and 9 deletions

View File

@@ -43,4 +43,8 @@ public class ItemHandlerBasic extends ItemStackHandler {
tile.markDirty(); tile.markDirty();
} }
} }
public ItemStack extractItemInternal(int slot, int amount, boolean simulate) {
return super.extractItem(slot, amount, simulate);
}
} }

View File

@@ -20,9 +20,21 @@ public class TileInterface extends TileNode implements IComparable {
private static final String NBT_COMPARE = "Compare"; private static final String NBT_COMPARE = "Compare";
private ItemHandlerBasic importItems = new ItemHandlerBasic(9, this); private ItemHandlerBasic importItems = new ItemHandlerBasic(9, this) {
@Override
public ItemStack extractItem(int slot, int amount, boolean simulate) {
return null;
}
};
private ItemHandlerBasic exportSpecimenItems = new ItemHandlerBasic(9, this); private ItemHandlerBasic exportSpecimenItems = new ItemHandlerBasic(9, this);
private ItemHandlerBasic exportItems = new ItemHandlerBasic(9, this); private ItemHandlerBasic exportItems = new ItemHandlerBasic(9, this) {
@Override
public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) {
return stack;
}
};
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING); private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, this, ItemUpgrade.TYPE_SPEED, ItemUpgrade.TYPE_STACK, ItemUpgrade.TYPE_CRAFTING);
private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE; private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;
@@ -54,9 +66,10 @@ public class TileInterface extends TileNode implements IComparable {
ItemStack remainder = network.insertItem(slot, size, false); ItemStack remainder = network.insertItem(slot, size, false);
if (remainder == null) { if (remainder == null) {
importItems.extractItem(currentSlot, size, false); importItems.extractItemInternal(currentSlot, size, false);
} else { } else {
importItems.extractItem(currentSlot, size - remainder.stackSize, false); importItems.extractItemInternal(currentSlot, size - remainder.stackSize, false);
currentSlot++;
} }
} }
@@ -165,11 +178,7 @@ public class TileInterface extends TileNode implements IComparable {
@Override @Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) { public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
if (facing == EnumFacing.DOWN) { return facing == EnumFacing.DOWN ? (T) exportItems : (T) importItems;
return (T) exportItems;
} else {
return (T) importItems;
}
} }
return super.getCapability(capability, facing); return super.getCapability(capability, facing);