From 6ee1f7dba007b91c87b9a3ade879f5e15c0ee2b8 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 22 May 2016 15:26:05 +0200 Subject: [PATCH] Bugfixes --- .../refinedstorage/container/ContainerCrafter.java | 4 ++-- .../refinedstorage/container/ContainerSolderer.java | 2 +- .../java/refinedstorage/tile/TileDestructor.java | 2 +- .../refinedstorage/tile/TileExternalStorage.java | 4 +--- src/main/java/refinedstorage/tile/TileImporter.java | 1 + .../refinedstorage/tile/TileWirelessTransmitter.java | 4 +++- .../tile/autocrafting/TileCrafter.java | 3 ++- .../refinedstorage/tile/solderer/TileSolderer.java | 12 +++++++++++- 8 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/refinedstorage/container/ContainerCrafter.java b/src/main/java/refinedstorage/container/ContainerCrafter.java index f16e30b82..be6c7a579 100755 --- a/src/main/java/refinedstorage/container/ContainerCrafter.java +++ b/src/main/java/refinedstorage/container/ContainerCrafter.java @@ -10,12 +10,12 @@ public class ContainerCrafter extends ContainerStorage { public ContainerCrafter(EntityPlayer player, TileCrafter crafter) { super(player); - for (int i = 0; i < 6; ++i) { + for (int i = 0; i < TileCrafter.PATTERN_SLOTS; ++i) { addSlotToContainer(new SlotItemHandler(crafter.getPatterns(), i, 8, 19 + (i * 18))); } for (int i = 0; i < 4; ++i) { - addSlotToContainer(new SlotItemHandler(crafter.getUpgrades(), 6 + i, 187, 6 + (i * 18))); + addSlotToContainer(new SlotItemHandler(crafter.getUpgrades(), i, 187, 6 + (i * 18))); } addPlayerInventory(8, 144); diff --git a/src/main/java/refinedstorage/container/ContainerSolderer.java b/src/main/java/refinedstorage/container/ContainerSolderer.java index 2b550fa9a..e08e0cbac 100755 --- a/src/main/java/refinedstorage/container/ContainerSolderer.java +++ b/src/main/java/refinedstorage/container/ContainerSolderer.java @@ -23,7 +23,7 @@ public class ContainerSolderer extends ContainerBase { addSlotToContainer(new SlotOutput(solderer.getItems(), 3, 134, 38)); for (int i = 0; i < 4; ++i) { - addSlotToContainer(new SlotItemHandler(solderer.getUpgrades(), 4 + i, 187, 6 + (i * 18))); + addSlotToContainer(new SlotItemHandler(solderer.getUpgrades(), i, 187, 6 + (i * 18))); } addPlayerInventory(8, 95); diff --git a/src/main/java/refinedstorage/tile/TileDestructor.java b/src/main/java/refinedstorage/tile/TileDestructor.java index 3924437ad..a3602536b 100755 --- a/src/main/java/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/refinedstorage/tile/TileDestructor.java @@ -59,7 +59,7 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode // We check if the controller isn't null here because // when a destructor faces a storage network block and removes it // it will essentially remove this block from the network without knowing. - if (controller != null && !controller.push(drop)) { + if (controller == null || !controller.push(drop)) { InventoryHelper.spawnItemStack(worldObj, front.getX(), front.getY(), front.getZ(), drop); } } diff --git a/src/main/java/refinedstorage/tile/TileExternalStorage.java b/src/main/java/refinedstorage/tile/TileExternalStorage.java index 06067f101..7f4ce18ee 100755 --- a/src/main/java/refinedstorage/tile/TileExternalStorage.java +++ b/src/main/java/refinedstorage/tile/TileExternalStorage.java @@ -140,9 +140,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider IItemHandler handler = getItemHandler(); if (handler != null) { - if (ItemHandlerHelper.insertItem(handler, stack, false) == null) { - return true; - } + return ItemHandlerHelper.insertItem(handler, stack, true) == null; } } } diff --git a/src/main/java/refinedstorage/tile/TileImporter.java b/src/main/java/refinedstorage/tile/TileImporter.java index 336858462..7ff7f0c27 100755 --- a/src/main/java/refinedstorage/tile/TileImporter.java +++ b/src/main/java/refinedstorage/tile/TileImporter.java @@ -53,6 +53,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo } else if (ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) { ItemStack result = handler.extractItem(currentSlot, 1, true); + // @TODO: Sometimes this pushes twice if (result != null && controller.push(result)) { handler.extractItem(currentSlot, 1, false); } diff --git a/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java b/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java index 5624c789d..eae00d6af 100755 --- a/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java +++ b/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java @@ -3,15 +3,17 @@ package refinedstorage.tile; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.items.IItemHandler; +import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageUtils; import refinedstorage.container.ContainerWirelessTransmitter; import refinedstorage.inventory.SimpleItemHandler; +import refinedstorage.inventory.SimpleItemValidator; import refinedstorage.item.ItemUpgrade; public class TileWirelessTransmitter extends TileMachine { public static final int RANGE_PER_UPGRADE = 8; - private SimpleItemHandler upgrades = new SimpleItemHandler(4, this); + private SimpleItemHandler upgrades = new SimpleItemHandler(4, this, new SimpleItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_RANGE)); @Override public int getEnergyUsage() { diff --git a/src/main/java/refinedstorage/tile/autocrafting/TileCrafter.java b/src/main/java/refinedstorage/tile/autocrafting/TileCrafter.java index 6d096633c..57b3d269e 100755 --- a/src/main/java/refinedstorage/tile/autocrafting/TileCrafter.java +++ b/src/main/java/refinedstorage/tile/autocrafting/TileCrafter.java @@ -10,6 +10,7 @@ import refinedstorage.RefinedStorageUtils; import refinedstorage.container.ContainerCrafter; import refinedstorage.inventory.IItemValidator; import refinedstorage.inventory.SimpleItemHandler; +import refinedstorage.inventory.SimpleItemValidator; import refinedstorage.item.ItemPattern; import refinedstorage.item.ItemUpgrade; import refinedstorage.tile.TileMachine; @@ -23,7 +24,7 @@ public class TileCrafter extends TileMachine { } }); - private SimpleItemHandler upgrades = new SimpleItemHandler(4, this); + private SimpleItemHandler upgrades = new SimpleItemHandler(4, this, new SimpleItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_SPEED)); public static final int PATTERN_SLOTS = 6; diff --git a/src/main/java/refinedstorage/tile/solderer/TileSolderer.java b/src/main/java/refinedstorage/tile/solderer/TileSolderer.java index f4ca656ef..00f5c8707 100755 --- a/src/main/java/refinedstorage/tile/solderer/TileSolderer.java +++ b/src/main/java/refinedstorage/tile/solderer/TileSolderer.java @@ -175,6 +175,16 @@ public class TileSolderer extends TileMachine { @Override public IItemHandler getDroppedItems() { - return items; + SimpleItemHandler dummy = new SimpleItemHandler(4 + 4); + + for (int i = 0; i < 4; ++i) { + dummy.setStackInSlot(i, items.getStackInSlot(i)); + } + + for (int i = 0; i < 4; ++i) { + dummy.setStackInSlot(4 + i, upgrades.getStackInSlot(i)); + } + + return dummy; } }