For external storage on interface: make sure we override our handler supplier so we don't get network items as well (which leads to unstable behavior)
This commit is contained in:
@@ -204,10 +204,14 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
||||
return exportItems;
|
||||
}
|
||||
|
||||
public IItemHandler getItems() {
|
||||
public IItemHandler getItemsOrNetworkItems() {
|
||||
return (itemsNetwork != null && exportSpecimenItems.isEmpty()) ? itemsNetwork : items;
|
||||
}
|
||||
|
||||
public IItemHandler getItems() {
|
||||
return items;
|
||||
}
|
||||
|
||||
public IItemHandler getUpgrades() {
|
||||
return upgrades;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileInterface;
|
||||
import com.raoulvdberge.refinedstorage.tile.config.IFilterable;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
|
||||
@@ -24,7 +25,14 @@ public class StorageItemItemHandler extends StorageItemExternal {
|
||||
public StorageItemItemHandler(NetworkNodeExternalStorage externalStorage, Supplier<IItemHandler> handlerSupplier) {
|
||||
this.externalStorage = externalStorage;
|
||||
this.handlerSupplier = handlerSupplier;
|
||||
this.connectedToInterface = externalStorage.getFacingTile() instanceof TileInterface;
|
||||
|
||||
TileEntity tile = externalStorage.getFacingTile();
|
||||
|
||||
if (tile instanceof TileInterface) {
|
||||
// Make sure we override our handler supplier so we don't get network items as well (which leads to unstable behavior)
|
||||
this.handlerSupplier = ((TileInterface) tile).getNode()::getItems;
|
||||
this.connectedToInterface = true;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isConnectedToInterface() {
|
||||
|
||||
@@ -22,7 +22,7 @@ public class TileInterface extends TileNode<NetworkNodeInterface> {
|
||||
@Override
|
||||
public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) {
|
||||
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||
return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(getNode().getItems());
|
||||
return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(getNode().getItemsOrNetworkItems());
|
||||
}
|
||||
|
||||
return super.getCapability(capability, facing);
|
||||
|
||||
Reference in New Issue
Block a user