Added support for External Storage on Interfaces and other Refined Storage blocks, so you can keep items in stock easier, fixes #1283
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
### 1.4.11
|
### 1.4.11
|
||||||
- Removed debug log configuration option, as it's no longer needed (raoulvdberge)
|
- Removed debug log configuration option, as it's no longer needed (raoulvdberge)
|
||||||
- Fixed bug where storages that are removed remain visible (raoulvdberge)
|
- Fixed bug where storages that are removed remain visible (raoulvdberge)
|
||||||
|
- Added support for External Storage on Interfaces and other Refined Storage blocks, so you can keep items in stock easier (raoulvdberge)
|
||||||
|
|
||||||
### 1.4.10
|
### 1.4.10
|
||||||
- Improved performance of network scanning (raoulvdberge)
|
- Improved performance of network scanning (raoulvdberge)
|
||||||
|
|||||||
@@ -78,14 +78,16 @@ public class ItemGridHandler implements IItemGridHandler {
|
|||||||
if (ItemHandlerHelper.insertItem(playerInventory, took, true).isEmpty()) {
|
if (ItemHandlerHelper.insertItem(playerInventory, took, true).isEmpty()) {
|
||||||
took = network.extractItem(item, size, false);
|
took = network.extractItem(item, size, false);
|
||||||
|
|
||||||
ItemHandlerHelper.insertItem(playerInventory, took, false);
|
if (took != null) { // Safe guard: we never know if the extracted item will suddenly be null (can happen with weird external storage setups)
|
||||||
|
ItemHandlerHelper.insertItem(playerInventory, took, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
took = network.extractItem(item, size, false);
|
took = network.extractItem(item, size, false);
|
||||||
|
|
||||||
if (single && !held.isEmpty()) {
|
if (single && !held.isEmpty()) {
|
||||||
held.grow(1);
|
held.grow(1);
|
||||||
} else {
|
} else if (took != null) { // Safe guard: we never know if the extracted item will suddenly be null (can happen with weird external storage setups)
|
||||||
player.inventory.setItemStack(took);
|
player.inventory.setItemStack(took);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,13 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
|||||||
} else {
|
} else {
|
||||||
exportItems.getStackInSlot(i).grow(result.getCount());
|
exportItems.getStackInSlot(i).grow(result.getCount());
|
||||||
}
|
}
|
||||||
} else if (upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) {
|
}
|
||||||
|
|
||||||
|
// Example: our delta is 5, we extracted 3 items.
|
||||||
|
// That means we still have to autocraft 2 items.
|
||||||
|
delta -= result == null ? 0 : result.getCount();
|
||||||
|
|
||||||
|
if (delta > 0 && upgrades.hasUpgrade(ItemUpgrade.TYPE_CRAFTING)) {
|
||||||
network.getCraftingManager().schedule(wanted, delta, compare);
|
network.getCraftingManager().schedule(wanted, delta, compare);
|
||||||
}
|
}
|
||||||
} else if (delta < 0) {
|
} else if (delta < 0) {
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
|
|||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
|
||||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileExternalStorage;
|
import com.raoulvdberge.refinedstorage.tile.TileExternalStorage;
|
||||||
import com.raoulvdberge.refinedstorage.tile.TileNode;
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.config.*;
|
import com.raoulvdberge.refinedstorage.tile.config.*;
|
||||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
@@ -66,9 +65,6 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP
|
|||||||
super.onConnectedStateChange(network, state);
|
super.onConnectedStateChange(network, state);
|
||||||
|
|
||||||
updateStorage(network);
|
updateStorage(network);
|
||||||
|
|
||||||
network.getItemStorageCache().invalidate();
|
|
||||||
network.getFluidStorageCache().invalidate();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -210,7 +206,7 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP
|
|||||||
}));
|
}));
|
||||||
} else if (IntegrationCyclopsCore.isLoaded() && StorageItemCyclops.isValid(facing, getDirection().getOpposite())) {
|
} else if (IntegrationCyclopsCore.isLoaded() && StorageItemCyclops.isValid(facing, getDirection().getOpposite())) {
|
||||||
itemStorages.add(new StorageItemCyclops(this));
|
itemStorages.add(new StorageItemCyclops(this));
|
||||||
} else if (!(facing instanceof TileNode)) {
|
} else if (facing != null) {
|
||||||
IItemHandler itemHandler = RSUtils.getItemHandler(facing, getDirection().getOpposite());
|
IItemHandler itemHandler = RSUtils.getItemHandler(facing, getDirection().getOpposite());
|
||||||
|
|
||||||
if (itemHandler != null) {
|
if (itemHandler != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user