Exposed pattern inventory for Pattern Grid, fixes #1334
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
# Refined Storage Changelog
|
||||
|
||||
### 1.5.7
|
||||
- Exposed pattern inventory for Pattern Grid (raoulvdberge)
|
||||
|
||||
### 1.5.6
|
||||
- Updated Forge to stable 2387 (raoulvdberge)
|
||||
- Fixed bug where players couldn't place regular blocks next to secured networks (raoulvdberge)
|
||||
|
||||
@@ -35,6 +35,7 @@ import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||
import net.minecraftforge.items.wrapper.InvWrapper;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -87,7 +88,13 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
||||
private InventoryCraftResult result = new InventoryCraftResult();
|
||||
private ItemHandlerBase matrixProcessing = new ItemHandlerBase(9 * 2, new ItemHandlerListenerNetworkNode(this));
|
||||
|
||||
private ItemHandlerBase patterns = new ItemHandlerBase(2, new ItemHandlerListenerNetworkNode(this), new ItemValidatorBasic(RSItems.PATTERN));
|
||||
private ItemHandlerBase patterns = new ItemHandlerBase(2, new ItemHandlerListenerNetworkNode(this), new ItemValidatorBasic(RSItems.PATTERN)) {
|
||||
@Nonnull
|
||||
@Override
|
||||
public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) {
|
||||
return slot == 0 ? super.insertItem(slot, stack, simulate) : stack;
|
||||
}
|
||||
};
|
||||
private List<Filter> filters = new ArrayList<>();
|
||||
private List<FilterTab> tabs = new ArrayList<>();
|
||||
private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, new ItemHandlerListenerNetworkNode(this));
|
||||
|
||||
@@ -66,9 +66,9 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
||||
ItemStack remainder = network.insertItemTracked(slot, size);
|
||||
|
||||
if (remainder == null) {
|
||||
importItems.extractItemInternal(currentSlot, size, false);
|
||||
importItems.extractItem(currentSlot, size, false);
|
||||
} else if (size - remainder.getCount() > 0) {
|
||||
importItems.extractItemInternal(currentSlot, size - remainder.getCount(), false);
|
||||
importItems.extractItem(currentSlot, size - remainder.getCount(), false);
|
||||
|
||||
currentSlot++;
|
||||
}
|
||||
|
||||
@@ -66,9 +66,4 @@ public class ItemHandlerBase extends ItemStackHandler {
|
||||
public boolean isEmpty() {
|
||||
return empty;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public ItemStack extractItemInternal(int slot, int amount, boolean simulate) {
|
||||
return super.extractItem(slot, amount, simulate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.raoulvdberge.refinedstorage.tile.grid;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
|
||||
import com.raoulvdberge.refinedstorage.block.GridType;
|
||||
import com.raoulvdberge.refinedstorage.container.ContainerGrid;
|
||||
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileNode;
|
||||
@@ -9,10 +10,14 @@ import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;
|
||||
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class TileGrid extends TileNode<NetworkNodeGrid> {
|
||||
public static final TileDataParameter<Integer> VIEW_TYPE = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileGrid>() {
|
||||
@@ -197,4 +202,18 @@ public class TileGrid extends TileNode<NetworkNodeGrid> {
|
||||
public String getNodeId() {
|
||||
return NetworkNodeGrid.ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing side) {
|
||||
return (getNode().getType() == GridType.PATTERN && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) || super.hasCapability(capability, side);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing side) {
|
||||
if (getNode().getType() == GridType.PATTERN && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
||||
return CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.cast(getNode().getPatterns());
|
||||
}
|
||||
|
||||
return super.getCapability(capability, side);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user