diff --git a/CHANGELOG.md b/CHANGELOG.md index c0a1b0a7f..d491779f9 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ ### 0.9.4 - Little fixes in German translation (ThexXTURBOXx) - Fixed mod not working without JEI (raoulvdberge) +- Reverted network changes that caused buggy behavior (raoulvdberge) +- Reduced explosion radius when multiple controllers are connected to the same network (raoulvdberge) ### 0.9.3 - Updated German translation for Fluid Storage (0blu) diff --git a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java index 28c007df1..2b2c68efd 100755 --- a/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkNodeGraph.java @@ -53,7 +53,7 @@ public class NetworkNodeGraph implements INetworkNodeGraph { TileEntity tile = world.getTileEntity(currentPos); if (tile instanceof TileController && !controller.getPos().equals(currentPos)) { - world.createExplosion(null, currentPos.getX(), currentPos.getY(), currentPos.getZ(), 3.5f, true); + world.createExplosion(null, currentPos.getX(), currentPos.getY(), currentPos.getZ(), 1.5f, true); } if (!(tile instanceof INetworkNode)) { diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 950ee2eef..a7957d803 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -9,6 +9,7 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.oredict.OreDictionary; @@ -65,7 +66,7 @@ public class CommonProxy { RefinedStorage.INSTANCE.network.registerMessage(MessageProcessingPatternEncoderClear.class, MessageProcessingPatternEncoderClear.class, id++, Side.SERVER); RefinedStorage.INSTANCE.network.registerMessage(MessageGridFilterUpdate.class, MessageGridFilterUpdate.class, id++, Side.SERVER); - net.minecraftforge.fml.common.network.NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler()); + NetworkRegistry.INSTANCE.registerGuiHandler(RefinedStorage.INSTANCE, new GuiHandler()); MinecraftForge.EVENT_BUS.register(new ContainerListener()); diff --git a/src/main/java/refinedstorage/tile/TileConstructor.java b/src/main/java/refinedstorage/tile/TileConstructor.java index 62e6021e2..d66a2ff0a 100755 --- a/src/main/java/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/refinedstorage/tile/TileConstructor.java @@ -76,7 +76,7 @@ public class TileConstructor extends TileMultipartNode implements IComparable, I BlockPos front = pos.offset(getDirection()); if (worldObj.isAirBlock(front) && block.getBlock().canPlaceBlockAt(worldObj, front)) { - ItemStack took = getNetwork().extractItem(itemFilters.getStackInSlot(0), 1, compare); + ItemStack took = network.extractItem(itemFilters.getStackInSlot(0), 1, compare); if (took != null) { scheduler.resetSchedule(); @@ -88,7 +88,7 @@ public class TileConstructor extends TileMultipartNode implements IComparable, I ItemStack craft = itemFilters.getStackInSlot(0); if (scheduler.canSchedule(compare, craft)) { - scheduler.schedule(getNetwork(), compare, craft); + scheduler.schedule(network, compare, craft); } } } @@ -101,7 +101,7 @@ public class TileConstructor extends TileMultipartNode implements IComparable, I Block block = stack.getFluid().getBlock(); if (worldObj.isAirBlock(front) && block.canPlaceBlockAt(worldObj, front)) { - FluidStack took = getNetwork().extractFluid(stack, Fluid.BUCKET_VOLUME, compare); + FluidStack took = network.extractFluid(stack, Fluid.BUCKET_VOLUME, compare); if (took != null) { IBlockState state = block.getDefaultState(); diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index e1b1a49c0..1e418805e 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -360,8 +360,6 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR super.onChunkUnload(); energyEU.onChunkUnload(); - - onDestroyed(); } public void onDestroyed() { diff --git a/src/main/java/refinedstorage/tile/TileCrafter.java b/src/main/java/refinedstorage/tile/TileCrafter.java index 7f251fae8..d216b472f 100755 --- a/src/main/java/refinedstorage/tile/TileCrafter.java +++ b/src/main/java/refinedstorage/tile/TileCrafter.java @@ -21,8 +21,8 @@ public class TileCrafter extends TileNode implements ICraftingPatternContainer { protected void onContentsChanged(int slot) { super.onContentsChanged(slot); - if (getNetwork() != null) { - getNetwork().rebuildPatterns(); + if (network != null) { + network.rebuildPatterns(); } } }; diff --git a/src/main/java/refinedstorage/tile/TileCraftingMonitor.java b/src/main/java/refinedstorage/tile/TileCraftingMonitor.java index 87bf2420a..dde22e5f7 100755 --- a/src/main/java/refinedstorage/tile/TileCraftingMonitor.java +++ b/src/main/java/refinedstorage/tile/TileCraftingMonitor.java @@ -15,7 +15,7 @@ public class TileCraftingMonitor extends TileNode { @Override public List getValue(TileCraftingMonitor tile) { if (tile.isConnected()) { - List tasks = tile.getNetwork().getCraftingTasks().stream().map(t -> new ClientCraftingTask( + List tasks = tile.network.getCraftingTasks().stream().map(t -> new ClientCraftingTask( t.getInfo(), t.getPattern().getOutputs() )).collect(Collectors.toList()); diff --git a/src/main/java/refinedstorage/tile/TileDestructor.java b/src/main/java/refinedstorage/tile/TileDestructor.java index c279d5a64..5c99e96d0 100755 --- a/src/main/java/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/refinedstorage/tile/TileDestructor.java @@ -85,10 +85,10 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF for (ItemStack drop : drops) { // We check if the controller isn't null here because when a destructor faces a node and removes it // it will essentially remove this block itself from the network without knowing - if (getNetwork() == null) { + if (network == null) { InventoryHelper.spawnItemStack(worldObj, front.getX(), front.getY(), front.getZ(), drop); } else { - ItemStack remainder = getNetwork().insertItem(drop, drop.stackSize, false); + ItemStack remainder = network.insertItem(drop, drop.stackSize, false); if (remainder != null) { InventoryHelper.spawnItemStack(worldObj, front.getX(), front.getY(), front.getZ(), remainder); @@ -113,10 +113,10 @@ public class TileDestructor extends TileMultipartNode implements IComparable, IF if (handler != null) { FluidStack stack = handler.drain(Fluid.BUCKET_VOLUME, false); - if (stack != null && IFilterable.canTakeFluids(fluidFilters, mode, compare, stack) && getNetwork().insertFluid(stack, stack.amount, true) == null) { + if (stack != null && IFilterable.canTakeFluids(fluidFilters, mode, compare, stack) && network.insertFluid(stack, stack.amount, true) == null) { FluidStack drained = handler.drain(Fluid.BUCKET_VOLUME, true); - getNetwork().insertFluid(drained, drained.amount, false); + network.insertFluid(drained, drained.amount, false); } } } diff --git a/src/main/java/refinedstorage/tile/TileDetector.java b/src/main/java/refinedstorage/tile/TileDetector.java index 063d0647b..b7b903b5c 100755 --- a/src/main/java/refinedstorage/tile/TileDetector.java +++ b/src/main/java/refinedstorage/tile/TileDetector.java @@ -106,7 +106,7 @@ public class TileDetector extends TileNode implements IComparable, IType { ItemStack slot = itemFilters.getStackInSlot(0); if (slot != null) { - ItemStack stack = getNetwork().getItemStorage().get(slot, compare); + ItemStack stack = network.getItemStorage().get(slot, compare); powered = isPowered(stack == null ? null : stack.stackSize); } else { @@ -116,7 +116,7 @@ public class TileDetector extends TileNode implements IComparable, IType { FluidStack slot = fluidFilters.getFluids()[0]; if (slot != null) { - FluidStack stack = getNetwork().getFluidStorage().get(slot, compare); + FluidStack stack = network.getFluidStorage().get(slot, compare); powered = isPowered(stack == null ? null : stack.amount); } else { diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index c132a126b..45d9c084a 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -114,9 +114,9 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl } } - if (getNetwork() != null) { - getNetwork().getItemStorage().rebuild(); - getNetwork().getFluidStorage().rebuild(); + if (network != null) { + network.getItemStorage().rebuild(); + network.getFluidStorage().rebuild(); } } } diff --git a/src/main/java/refinedstorage/tile/TileExporter.java b/src/main/java/refinedstorage/tile/TileExporter.java index 4743283a7..3e4079b6d 100755 --- a/src/main/java/refinedstorage/tile/TileExporter.java +++ b/src/main/java/refinedstorage/tile/TileExporter.java @@ -66,7 +66,7 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp ItemStack slot = itemFilters.getStackInSlot(i); if (slot != null) { - ItemStack took = getNetwork().extractItem(slot, size, compare); + ItemStack took = network.extractItem(slot, size, compare); if (took != null) { scheduler.resetSchedule(); @@ -74,11 +74,11 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp ItemStack remainder = ItemHandlerHelper.insertItem(handler, took, false); if (remainder != null) { - getNetwork().insertItem(remainder, remainder.stackSize, false); + network.insertItem(remainder, remainder.stackSize, false); } } else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) { if (scheduler.canSchedule(compare, slot)) { - scheduler.schedule(getNetwork(), compare, slot); + scheduler.schedule(network, compare, slot); } } } @@ -90,13 +90,13 @@ public class TileExporter extends TileMultipartNode implements IComparable, ITyp if (handler != null) { for (FluidStack stack : fluidFilters.getFluids()) { if (stack != null) { - FluidStack took = getNetwork().extractFluid(stack, Fluid.BUCKET_VOLUME, compare); + FluidStack took = network.extractFluid(stack, Fluid.BUCKET_VOLUME, compare); if (took != null) { int remainder = Fluid.BUCKET_VOLUME - handler.fill(took, true); if (remainder > 0) { - getNetwork().insertFluid(took, remainder, false); + network.insertFluid(took, remainder, false); } } } diff --git a/src/main/java/refinedstorage/tile/TileFluidInterface.java b/src/main/java/refinedstorage/tile/TileFluidInterface.java index 8607921af..dd3e13930 100755 --- a/src/main/java/refinedstorage/tile/TileFluidInterface.java +++ b/src/main/java/refinedstorage/tile/TileFluidInterface.java @@ -103,7 +103,7 @@ public class TileFluidInterface extends TileNode implements IComparable { FluidStack drained = tankIn.drainInternal(Fluid.BUCKET_VOLUME, true); if (drained != null) { - FluidStack remainder = getNetwork().insertFluid(drained, drained.amount, false); + FluidStack remainder = network.insertFluid(drained, drained.amount, false); if (remainder != null) { tankIn.fillInternal(remainder, true); @@ -116,16 +116,16 @@ public class TileFluidInterface extends TileNode implements IComparable { FluidStack remainder = tankOut.drainInternal(Fluid.BUCKET_VOLUME, true); if (remainder != null) { - getNetwork().insertFluid(remainder, remainder.amount, false); + network.insertFluid(remainder, remainder.amount, false); } } else if (stack != null) { - FluidStack result = getNetwork().extractFluid(stack, Fluid.BUCKET_VOLUME, compare); + FluidStack result = network.extractFluid(stack, Fluid.BUCKET_VOLUME, compare); if (result != null) { int remainder = Fluid.BUCKET_VOLUME - tankOut.fillInternal(result, true); if (remainder > 0) { - getNetwork().insertFluid(stack, remainder, false); + network.insertFluid(stack, remainder, false); } } } diff --git a/src/main/java/refinedstorage/tile/TileFluidStorage.java b/src/main/java/refinedstorage/tile/TileFluidStorage.java index 55958c4da..cedf6479b 100755 --- a/src/main/java/refinedstorage/tile/TileFluidStorage.java +++ b/src/main/java/refinedstorage/tile/TileFluidStorage.java @@ -93,8 +93,8 @@ public class TileFluidStorage extends TileNode implements IFluidStorageProvider, if (storage == null && storageTag != null) { storage = new FluidStorage(); - if (getNetwork() != null) { - getNetwork().getFluidStorage().rebuild(); + if (network != null) { + network.getFluidStorage().rebuild(); } } } diff --git a/src/main/java/refinedstorage/tile/TileImporter.java b/src/main/java/refinedstorage/tile/TileImporter.java index 81e4118a3..ccfb54f0d 100755 --- a/src/main/java/refinedstorage/tile/TileImporter.java +++ b/src/main/java/refinedstorage/tile/TileImporter.java @@ -79,8 +79,8 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil ItemStack result = handler.extractItem(currentSlot, quantity, true); - if (result != null && getNetwork().insertItem(result, result.stackSize, true) == null) { - getNetwork().insertItem(result, result.stackSize, false); + if (result != null && network.insertItem(result, result.stackSize, true) == null) { + network.insertItem(result, result.stackSize, false); handler.extractItem(currentSlot, quantity, false); } else { @@ -94,10 +94,10 @@ public class TileImporter extends TileMultipartNode implements IComparable, IFil if (handler != null) { FluidStack stack = handler.drain(Fluid.BUCKET_VOLUME, false); - if (stack != null && IFilterable.canTakeFluids(fluidFilters, mode, compare, stack) && getNetwork().insertFluid(stack, stack.amount, true) == null) { + if (stack != null && IFilterable.canTakeFluids(fluidFilters, mode, compare, stack) && network.insertFluid(stack, stack.amount, true) == null) { FluidStack drain = handler.drain(Fluid.BUCKET_VOLUME, true); - getNetwork().insertFluid(drain, drain.amount, false); + network.insertFluid(drain, drain.amount, false); } } } diff --git a/src/main/java/refinedstorage/tile/TileInterface.java b/src/main/java/refinedstorage/tile/TileInterface.java index 62b0acbf3..438ab6d75 100755 --- a/src/main/java/refinedstorage/tile/TileInterface.java +++ b/src/main/java/refinedstorage/tile/TileInterface.java @@ -50,7 +50,7 @@ public class TileInterface extends TileNode implements IComparable { } else if (ticks % upgrades.getSpeed() == 0) { int size = Math.min(slot.stackSize, upgrades.hasUpgrade(ItemUpgrade.TYPE_STACK) ? 64 : 1); - ItemStack remainder = getNetwork().insertItem(slot, size, false); + ItemStack remainder = network.insertItem(slot, size, false); if (remainder == null) { importItems.extractItem(currentSlot, size, false); @@ -65,13 +65,13 @@ public class TileInterface extends TileNode implements IComparable { if (wanted == null) { if (got != null) { - exportItems.setStackInSlot(i, getNetwork().insertItem(got, got.stackSize, false)); + exportItems.setStackInSlot(i, network.insertItem(got, got.stackSize, false)); } } else { int delta = got == null ? wanted.stackSize : (wanted.stackSize - got.stackSize); if (delta > 0) { - ItemStack result = getNetwork().extractItem(wanted, delta, compare); + ItemStack result = network.extractItem(wanted, delta, compare); if (result != null) { if (got == null) { @@ -81,7 +81,7 @@ public class TileInterface extends TileNode implements IComparable { } } } else if (delta < 0) { - ItemStack remainder = getNetwork().insertItem(got, Math.abs(delta), false); + ItemStack remainder = network.insertItem(got, Math.abs(delta), false); if (remainder == null) { exportItems.extractItem(i, Math.abs(delta), false); diff --git a/src/main/java/refinedstorage/tile/TileMultipartNode.java b/src/main/java/refinedstorage/tile/TileMultipartNode.java index 9a26c8183..5232494db 100755 --- a/src/main/java/refinedstorage/tile/TileMultipartNode.java +++ b/src/main/java/refinedstorage/tile/TileMultipartNode.java @@ -70,8 +70,8 @@ public abstract class TileMultipartNode extends TileNode implements IMicroblockC public void onMicroblocksChanged() { markDirty(); - if (getNetwork() != null) { - NetworkUtils.rebuildGraph(getNetwork()); + if (network != null) { + NetworkUtils.rebuildGraph(network); } else if (worldObj != null) { RefinedStorageBlocks.CABLE.attemptConnect(worldObj, pos); } diff --git a/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java b/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java index a074c403d..607d45196 100755 --- a/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java +++ b/src/main/java/refinedstorage/tile/TileNetworkTransmitter.java @@ -44,8 +44,8 @@ public class TileNetworkTransmitter extends TileNode { protected void onContentsChanged(int slot) { super.onContentsChanged(slot); - if (getNetwork() != null) { - NetworkUtils.rebuildGraph(getNetwork()); + if (network != null) { + NetworkUtils.rebuildGraph(network); } } }; @@ -64,8 +64,8 @@ public class TileNetworkTransmitter extends TileNode { receiverDimension = ItemNetworkCard.getDimension(card); } - if (getNetwork() != null) { - NetworkUtils.rebuildGraph(getNetwork()); + if (network != null) { + NetworkUtils.rebuildGraph(network); } } }; diff --git a/src/main/java/refinedstorage/tile/TileNode.java b/src/main/java/refinedstorage/tile/TileNode.java index a9c474af1..905b128e8 100755 --- a/src/main/java/refinedstorage/tile/TileNode.java +++ b/src/main/java/refinedstorage/tile/TileNode.java @@ -19,8 +19,9 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto private RedstoneMode redstoneMode = RedstoneMode.IGNORE; private boolean active; private boolean update; - private boolean connected; - private INetworkMaster network; + + protected boolean connected; + protected INetworkMaster network; protected boolean rebuildOnUpdateChange; @@ -40,13 +41,13 @@ public abstract class TileNode extends TileBase implements INetworkNode, IRedsto @Override public void update() { if (!worldObj.isRemote) { - if (update != canUpdate() && getNetwork() != null) { + if (update != canUpdate() && network != null) { update = canUpdate(); - onConnectionChange(getNetwork(), update); + onConnectionChange(network, update); if (rebuildOnUpdateChange) { - NetworkUtils.rebuildGraph(getNetwork()); + NetworkUtils.rebuildGraph(network); } } diff --git a/src/main/java/refinedstorage/tile/TileStorage.java b/src/main/java/refinedstorage/tile/TileStorage.java index 6cccf3031..5e07fa8bd 100755 --- a/src/main/java/refinedstorage/tile/TileStorage.java +++ b/src/main/java/refinedstorage/tile/TileStorage.java @@ -93,8 +93,8 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor if (storage == null && storageTag != null) { storage = new ItemStorage(); - if (getNetwork() != null) { - getNetwork().getItemStorage().rebuild(); + if (network != null) { + network.getItemStorage().rebuild(); } } } diff --git a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java index 2ce06d91a..84a13a4bd 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java +++ b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java @@ -123,7 +123,7 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora @Override public void update() { - if (!worldObj.isRemote && getNetwork() != null) { + if (!worldObj.isRemote && network != null) { boolean itemChangeDetected = false, fluidChangeDetected = false; for (ItemStorageExternal storage : itemStorages) { @@ -139,17 +139,17 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora } if (itemChangeDetected) { - getNetwork().getItemStorage().rebuild(); + network.getItemStorage().rebuild(); } if (fluidChangeDetected) { - getNetwork().getFluidStorage().rebuild(); + network.getFluidStorage().rebuild(); } if (getFacingTile() instanceof IDrawerGroup && lastDrawerCount != ((IDrawerGroup) getFacingTile()).getDrawerCount()) { lastDrawerCount = ((IDrawerGroup) getFacingTile()).getDrawerCount(); - updateStorage(getNetwork()); + updateStorage(network); } } diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index cc9e42955..78cdd10cb 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -188,27 +188,27 @@ public class TileGrid extends TileNode implements IGrid { @Override public BlockPos getNetworkPosition() { - return getNetwork() != null ? getNetwork().getPosition() : null; + return network != null ? network.getPosition() : null; } public void onGridOpened(EntityPlayer player) { if (isConnected()) { if (getType() == EnumGridType.FLUID) { - getNetwork().sendFluidStorageToClient((EntityPlayerMP) player); + network.sendFluidStorageToClient((EntityPlayerMP) player); } else { - getNetwork().sendItemStorageToClient((EntityPlayerMP) player); + network.sendItemStorageToClient((EntityPlayerMP) player); } } } @Override public IItemGridHandler getItemHandler() { - return getNetwork() != null ? getNetwork().getItemGridHandler() : null; + return network != null ? network.getItemGridHandler() : null; } @Override public IFluidGridHandler getFluidHandler() { - return getNetwork() != null ? getNetwork().getFluidGridHandler() : null; + return network != null ? network.getFluidGridHandler() : null; } @Override @@ -263,7 +263,7 @@ public class TileGrid extends TileNode implements IGrid { } else { if (slot != null) { if (slot.stackSize == 1 && isConnected()) { - matrix.setInventorySlotContents(i, NetworkUtils.extractItem(getNetwork(), slot, 1)); + matrix.setInventorySlotContents(i, NetworkUtils.extractItem(network, slot, 1)); } else { matrix.decrStackSize(i, 1); } @@ -340,10 +340,10 @@ public class TileGrid extends TileNode implements IGrid { if (slot != null) { if (getType() == EnumGridType.CRAFTING) { - if (getNetwork().insertItem(slot, slot.stackSize, true) != null) { + if (network.insertItem(slot, slot.stackSize, true) != null) { return; } else { - getNetwork().insertItem(slot, slot.stackSize, false); + network.insertItem(slot, slot.stackSize, false); } } @@ -357,7 +357,7 @@ public class TileGrid extends TileNode implements IGrid { if (getType() == EnumGridType.CRAFTING) { for (ItemStack possibility : possibilities) { - ItemStack took = NetworkUtils.extractItem(getNetwork(), possibility, 1); + ItemStack took = NetworkUtils.extractItem(network, possibility, 1); if (took != null) { matrix.setInventorySlotContents(i, took);