diff --git a/src/main/java/refinedstorage/gui/GuiGrid.java b/src/main/java/refinedstorage/gui/GuiGrid.java index dc9c56cb5..8d6b95852 100755 --- a/src/main/java/refinedstorage/gui/GuiGrid.java +++ b/src/main/java/refinedstorage/gui/GuiGrid.java @@ -161,7 +161,7 @@ public class GuiGrid extends GuiBase { public boolean isHoveringOverCreatePattern(int mouseX, int mouseY) { if (grid.getType() == EnumGridType.PATTERN) { - return inBounds(152, 124, 16, 16, mouseX, mouseY) && ((TileGrid) grid).canCreatePattern(); + return inBounds(152, 124, 16, 16, mouseX, mouseY) && ((TileGrid) grid).mayCreatePattern(); } return false; @@ -186,7 +186,7 @@ public class GuiGrid extends GuiBase { ty = 1; } - if (!((TileGrid) grid).canCreatePattern()) { + if (!((TileGrid) grid).mayCreatePattern()) { ty = 2; } diff --git a/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java b/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java index 62be759e4..bdc687005 100755 --- a/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java +++ b/src/main/java/refinedstorage/gui/GuiProcessingPatternEncoder.java @@ -27,7 +27,7 @@ public class GuiProcessingPatternEncoder extends GuiBase { } public boolean isHoveringOverCreatePattern(int mouseX, int mouseY) { - return inBounds(152, 38, 16, 16, mouseX, mouseY) && ppEncoder.canCreatePattern(); + return inBounds(152, 38, 16, 16, mouseX, mouseY) && ppEncoder.mayCreatePattern(); } @Override @@ -42,7 +42,7 @@ public class GuiProcessingPatternEncoder extends GuiBase { ty = 1; } - if (!ppEncoder.canCreatePattern()) { + if (!ppEncoder.mayCreatePattern()) { ty = 2; } diff --git a/src/main/java/refinedstorage/storage/DiskStorage.java b/src/main/java/refinedstorage/storage/DiskStorage.java index a8ff92aac..e5a273031 100755 --- a/src/main/java/refinedstorage/storage/DiskStorage.java +++ b/src/main/java/refinedstorage/storage/DiskStorage.java @@ -21,6 +21,6 @@ public class DiskStorage extends NBTStorage { @Override public boolean mayPush(ItemStack stack) { - return ModeFilter.violatesMode(diskDrive.getInventory(), diskDrive.getModeConfig(), diskDrive.getCompare(), stack) && super.mayPush(stack); + return ModeFilter.respectsMode(diskDrive.getInventory(), diskDrive.getModeConfig(), diskDrive.getCompare(), stack) && super.mayPush(stack); } } diff --git a/src/main/java/refinedstorage/storage/NBTStorage.java b/src/main/java/refinedstorage/storage/NBTStorage.java index 94b890c87..f05379557 100755 --- a/src/main/java/refinedstorage/storage/NBTStorage.java +++ b/src/main/java/refinedstorage/storage/NBTStorage.java @@ -4,6 +4,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import net.minecraftforge.items.ItemHandlerHelper; import java.util.ArrayList; import java.util.List; @@ -110,13 +111,9 @@ public abstract class NBTStorage implements IStorage { tag.setInteger(NBT_STORED, getStored(tag) - quantity); - ItemStack result = group.toStack(); - - result.stackSize = quantity; - markDirty(); - return result; + return ItemHandlerHelper.copyStackWithSize(group.toStack(), quantity); } } diff --git a/src/main/java/refinedstorage/storage/StorageBlockStorage.java b/src/main/java/refinedstorage/storage/StorageBlockStorage.java index 09c16a182..5b6198c1f 100755 --- a/src/main/java/refinedstorage/storage/StorageBlockStorage.java +++ b/src/main/java/refinedstorage/storage/StorageBlockStorage.java @@ -20,6 +20,6 @@ public class StorageBlockStorage extends NBTStorage { @Override public boolean mayPush(ItemStack stack) { - return ModeFilter.violatesMode(storage.getInventory(), storage, storage.getCompare(), stack) && super.mayPush(stack); + return ModeFilter.respectsMode(storage.getInventory(), storage, storage.getCompare(), stack) && super.mayPush(stack); } } diff --git a/src/main/java/refinedstorage/tile/TileConstructor.java b/src/main/java/refinedstorage/tile/TileConstructor.java index a040c05fa..23c4fd8e7 100755 --- a/src/main/java/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/refinedstorage/tile/TileConstructor.java @@ -50,10 +50,10 @@ public class TileConstructor extends TileMachine implements ICompareConfig { SoundType blockSound = block.getStepSound(); worldObj.playSound(null, front, blockSound.getPlaceSound(), SoundCategory.BLOCKS, (blockSound.getVolume() + 1.0F) / 2.0F, blockSound.getPitch() * 0.8F); } else if (RefinedStorageUtils.hasUpgrade(upgradesInventory, ItemUpgrade.TYPE_CRAFTING)) { - ItemStack toCraft = inventory.getStackInSlot(0); + ItemStack craft = inventory.getStackInSlot(0); - if (scheduler.canSchedule(compare, toCraft)) { - scheduler.schedule(controller, compare, toCraft); + if (scheduler.canSchedule(compare, craft)) { + scheduler.schedule(controller, compare, craft); } } } diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index 362b52b16..d8002b76d 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -44,13 +44,16 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr public int energyUsage; @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + public boolean equals(Object other) { + if (this == other) { + return true; + } - ClientSideMachine other = (ClientSideMachine) o; + if (!(other instanceof ClientSideMachine)) { + return false; + } - return energyUsage == other.energyUsage && RefinedStorageUtils.compareStack(stack, other.stack); + return energyUsage == ((ClientSideMachine) other).energyUsage && RefinedStorageUtils.compareStack(stack, ((ClientSideMachine) other).stack); } @Override diff --git a/src/main/java/refinedstorage/tile/TileDestructor.java b/src/main/java/refinedstorage/tile/TileDestructor.java index 6ea8311db..9e473fd51 100755 --- a/src/main/java/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/refinedstorage/tile/TileDestructor.java @@ -45,7 +45,7 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode Block frontBlock = frontBlockState.getBlock(); if (Item.getItemFromBlock(frontBlock) != null && !frontBlock.isAir(frontBlockState, worldObj, front)) { - if (ModeFilter.violatesMode(inventory, this, compare, new ItemStack(frontBlock, 1, frontBlock.getMetaFromState(frontBlockState)))) { + if (ModeFilter.respectsMode(inventory, this, compare, new ItemStack(frontBlock, 1, frontBlock.getMetaFromState(frontBlockState)))) { List drops = frontBlock.getDrops(worldObj, front, frontBlockState, 0); worldObj.playAuxSFXAtEntity(null, 2001, front, Block.getStateId(frontBlockState)); diff --git a/src/main/java/refinedstorage/tile/TileExporter.java b/src/main/java/refinedstorage/tile/TileExporter.java index 8fcfd0814..48ac1650e 100755 --- a/src/main/java/refinedstorage/tile/TileExporter.java +++ b/src/main/java/refinedstorage/tile/TileExporter.java @@ -6,6 +6,7 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorageUtils; import refinedstorage.container.ContainerExporter; import refinedstorage.inventory.InventorySimple; @@ -36,20 +37,15 @@ public class TileExporter extends TileMachine implements ICompareConfig { ItemStack slot = inventory.getStackInSlot(i); if (slot != null) { - ItemStack taking = slot.copy(); - taking.stackSize = 1; - - ItemStack took = controller.take(taking, compare); + ItemStack took = controller.take(ItemHandlerHelper.copyStackWithSize(slot, 1), compare); if (took != null) { scheduler.resetSchedule(); - for (int j = 0; j < handler.getSlots(); ++j) { - if (handler.insertItem(j, took, true) == null) { - handler.insertItem(j, took, false); + if (ItemHandlerHelper.insertItem(handler, took, true) == null) { + ItemHandlerHelper.insertItem(handler, took, false); - return; - } + return; } controller.push(took); diff --git a/src/main/java/refinedstorage/tile/TileExternalStorage.java b/src/main/java/refinedstorage/tile/TileExternalStorage.java index dba59b086..4d064f7aa 100755 --- a/src/main/java/refinedstorage/tile/TileExternalStorage.java +++ b/src/main/java/refinedstorage/tile/TileExternalStorage.java @@ -6,6 +6,7 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemHandlerHelper; import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageUtils; @@ -80,10 +81,8 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider IItemHandler handler = getItemHandler(); if (handler != null) { - for (int i = 0; i < handler.getSlots(); ++i) { - if (handler.insertItem(i, stack, false) == null) { - break; - } + if (ItemHandlerHelper.insertItem(handler, stack, false) == null) { + return; } } } @@ -136,7 +135,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider @Override public boolean mayPush(ItemStack stack) { - if (ModeFilter.violatesMode(inventory, this, compare, stack)) { + if (ModeFilter.respectsMode(inventory, this, compare, stack)) { IDeepStorageUnit storageUnit = getStorageUnit(); if (storageUnit != null) { @@ -149,10 +148,8 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider IItemHandler handler = getItemHandler(); if (handler != null) { - for (int i = 0; i < handler.getSlots(); ++i) { - if (handler.insertItem(i, stack, true) == null) { - return true; - } + if (ItemHandlerHelper.insertItem(handler, stack, false) == null) { + return true; } } } diff --git a/src/main/java/refinedstorage/tile/TileInterface.java b/src/main/java/refinedstorage/tile/TileInterface.java index 766161085..a2f538d0e 100755 --- a/src/main/java/refinedstorage/tile/TileInterface.java +++ b/src/main/java/refinedstorage/tile/TileInterface.java @@ -9,6 +9,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraft.util.text.ITextComponent; +import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorageUtils; import refinedstorage.container.ContainerInterface; import refinedstorage.inventory.InventorySimple; @@ -48,10 +49,7 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided currentSlot++; } else { if (ticks % RefinedStorageUtils.getSpeed(upgradesInventory) == 0) { - ItemStack toPush = slot.copy(); - toPush.stackSize = 1; - - if (controller.push(toPush)) { + if (controller.push(ItemHandlerHelper.copyStackWithSize(slot, 1))) { decrStackSize(currentSlot, 1); } } @@ -82,10 +80,7 @@ public class TileInterface extends TileMachine implements ICompareConfig, ISided int needed = got == null ? wanted.stackSize : wanted.stackSize - got.stackSize; if (needed > 0) { - ItemStack goingToTake = wanted.copy(); - goingToTake.stackSize = needed; - - ItemStack took = controller.take(goingToTake, compare); + ItemStack took = controller.take(ItemHandlerHelper.copyStackWithSize(wanted, needed), compare); if (took != null) { if (got == null) { diff --git a/src/main/java/refinedstorage/tile/autocrafting/TileProcessingPatternEncoder.java b/src/main/java/refinedstorage/tile/autocrafting/TileProcessingPatternEncoder.java index 3d6ad8bea..fb9f032d6 100755 --- a/src/main/java/refinedstorage/tile/autocrafting/TileProcessingPatternEncoder.java +++ b/src/main/java/refinedstorage/tile/autocrafting/TileProcessingPatternEncoder.java @@ -150,7 +150,7 @@ public class TileProcessingPatternEncoder extends TileBase implements ISidedInve } public void onCreatePattern() { - if (canCreatePattern()) { + if (mayCreatePattern()) { ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN); ItemPattern.setProcessing(pattern, true); @@ -171,7 +171,7 @@ public class TileProcessingPatternEncoder extends TileBase implements ISidedInve } } - public boolean canCreatePattern() { + public boolean mayCreatePattern() { int inputsFilled = 0, outputsFilled = 0; for (int i = 0; i < 9; ++i) { diff --git a/src/main/java/refinedstorage/tile/autocrafting/task/ProcessingCraftingTask.java b/src/main/java/refinedstorage/tile/autocrafting/task/ProcessingCraftingTask.java index 9946dbf4d..165f4b31c 100755 --- a/src/main/java/refinedstorage/tile/autocrafting/task/ProcessingCraftingTask.java +++ b/src/main/java/refinedstorage/tile/autocrafting/task/ProcessingCraftingTask.java @@ -4,6 +4,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorageUtils; import refinedstorage.tile.TileController; import refinedstorage.tile.autocrafting.CraftingPattern; @@ -52,17 +53,11 @@ public class ProcessingCraftingTask implements ICraftingTask { ItemStack took = controller.take(input); if (took != null) { - for (int j = 0; j < handler.getSlots(); ++j) { - if (handler.insertItem(j, took, true) == null) { - handler.insertItem(j, took, false); + if (ItemHandlerHelper.insertItem(handler, took, true) == null) { + ItemHandlerHelper.insertItem(handler, took, false); - inserted[i] = true; - - break; - } - } - - if (!inserted[i]) { + inserted[i] = true; + } else { controller.push(took); } } else if (!childTasks[i]) { diff --git a/src/main/java/refinedstorage/tile/config/ModeFilter.java b/src/main/java/refinedstorage/tile/config/ModeFilter.java index eaf624e1d..47787b9be 100755 --- a/src/main/java/refinedstorage/tile/config/ModeFilter.java +++ b/src/main/java/refinedstorage/tile/config/ModeFilter.java @@ -5,7 +5,7 @@ import net.minecraft.item.ItemStack; import refinedstorage.RefinedStorageUtils; public class ModeFilter { - public static boolean violatesMode(IInventory filters, IModeConfig mode, int compare, ItemStack stack) { + public static boolean respectsMode(IInventory filters, IModeConfig mode, int compare, ItemStack stack) { if (mode.isWhitelist()) { int slots = 0; diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index ec5734edd..afed261dd 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -169,7 +169,7 @@ public class TileGrid extends TileMachine implements IGrid { } public void onCreatePattern() { - if (canCreatePattern()) { + if (mayCreatePattern()) { patternsInventory.decrStackSize(0, 1); ItemStack pattern = new ItemStack(RefinedStorageItems.PATTERN); @@ -190,7 +190,7 @@ public class TileGrid extends TileMachine implements IGrid { } } - public boolean canCreatePattern() { + public boolean mayCreatePattern() { return craftingResultInventory.getStackInSlot(0) != null && patternsInventory.getStackInSlot(1) == null && patternsInventory.getStackInSlot(0) != null; }