Added grid API

This commit is contained in:
raoulvdberge
2017-07-17 11:36:33 +02:00
parent 7afcee3775
commit ec59d9afe4
73 changed files with 440 additions and 268 deletions

View File

@@ -1,7 +1,6 @@
package com.raoulvdberge.refinedstorage; package com.raoulvdberge.refinedstorage;
import com.raoulvdberge.refinedstorage.item.*; import com.raoulvdberge.refinedstorage.item.*;
import com.raoulvdberge.refinedstorage.item.filter.ItemFilter;
public final class RSItems { public final class RSItems {
public static final ItemStorageDisk STORAGE_DISK = new ItemStorageDisk(); public static final ItemStorageDisk STORAGE_DISK = new ItemStorageDisk();

View File

@@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry; import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry;
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry; import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridRegistry;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeRegistry; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeRegistry;
@@ -14,7 +15,9 @@ import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry;
import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskBehavior; import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskBehavior;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.api.util.IStackList; import com.raoulvdberge.refinedstorage.api.util.IStackList;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidStack;
@@ -106,6 +109,11 @@ public interface IRSAPI {
@Nonnull @Nonnull
ICraftingMonitorElementList createCraftingMonitorElementList(); ICraftingMonitorElementList createCraftingMonitorElementList();
@Nonnull
IWirelessGridRegistry getWirelessGridRegistry();
void openWirelessGrid(EntityPlayer player, EnumHand hand, int controllerDimension, int id);
/** /**
* Notifies the neighbors of a node that there is a node placed at the given position. * Notifies the neighbors of a node that there is a node placed at the given position.
* *

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.api.network; package com.raoulvdberge.refinedstorage.api.network;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel; import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityManager; import com.raoulvdberge.refinedstorage.api.network.security.ISecurityManager;

View File

@@ -1,4 +1,4 @@
package com.raoulvdberge.refinedstorage.block; package com.raoulvdberge.refinedstorage.api.network.grid;
import net.minecraft.util.IStringSerializable; import net.minecraft.util.IStringSerializable;

View File

@@ -1,17 +1,14 @@
package com.raoulvdberge.refinedstorage.tile.grid; package com.raoulvdberge.refinedstorage.api.network.grid;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryCraftResult; import net.minecraft.inventory.InventoryCraftResult;
import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandlerModifiable;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.List; import java.util.List;
@@ -58,13 +55,11 @@ public interface IGrid {
void onTabSelectionChanged(int tab); void onTabSelectionChanged(int tab);
List<Filter> getFilters(); List<IFilter> getFilters();
List<FilterTab> getTabs(); List<IGridTab> getTabs();
ItemHandlerBase getFilter(); IItemHandlerModifiable getFilter();
TileDataParameter<Integer, ?> getRedstoneModeConfig();
InventoryCrafting getCraftingMatrix(); InventoryCrafting getCraftingMatrix();

View File

@@ -0,0 +1,14 @@
package com.raoulvdberge.refinedstorage.api.network.grid;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import net.minecraft.item.ItemStack;
import java.util.List;
public interface IGridTab {
List<IFilter> getFilters();
String getName();
ItemStack getIcon();
}

View File

@@ -1,4 +1,4 @@
package com.raoulvdberge.refinedstorage.api.network.grid; package com.raoulvdberge.refinedstorage.api.network.grid.handler;
import com.raoulvdberge.refinedstorage.api.IRSAPI; import com.raoulvdberge.refinedstorage.api.IRSAPI;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;

View File

@@ -1,4 +1,4 @@
package com.raoulvdberge.refinedstorage.api.network.grid; package com.raoulvdberge.refinedstorage.api.network.grid.handler;
import com.raoulvdberge.refinedstorage.api.IRSAPI; import com.raoulvdberge.refinedstorage.api.IRSAPI;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;

View File

@@ -0,0 +1,12 @@
package com.raoulvdberge.refinedstorage.api.network.grid.wireless;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.EnumHand;
import javax.annotation.Nonnull;
public interface IWirelessGridFactory {
@Nonnull
IGrid create(EntityPlayer player, EnumHand hand, int controllerDimension);
}

View File

@@ -0,0 +1,10 @@
package com.raoulvdberge.refinedstorage.api.network.grid.wireless;
import javax.annotation.Nullable;
public interface IWirelessGridRegistry {
int add(IWirelessGridFactory factory);
@Nullable
IWirelessGridFactory get(int id);
}

View File

@@ -0,0 +1,13 @@
package com.raoulvdberge.refinedstorage.api.util;
import net.minecraft.item.ItemStack;
public interface IFilter {
ItemStack getStack();
int getCompare();
int getMode();
boolean isModFilter();
}

View File

@@ -1,5 +1,7 @@
package com.raoulvdberge.refinedstorage.apiimpl; package com.raoulvdberge.refinedstorage.apiimpl;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.api.IRSAPI; import com.raoulvdberge.refinedstorage.api.IRSAPI;
import com.raoulvdberge.refinedstorage.api.RSAPIInject; import com.raoulvdberge.refinedstorage.api.RSAPIInject;
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElementList; import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElementList;
@@ -7,6 +9,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry; import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry;
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry; import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridRegistry;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
@@ -23,6 +26,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPrev
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskRegistry; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeManager; import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeManager;
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeRegistry; import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless.WirelessGridRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterChannel; import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterChannel;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry; import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry;
@@ -32,12 +36,14 @@ import com.raoulvdberge.refinedstorage.apiimpl.util.Comparer;
import com.raoulvdberge.refinedstorage.apiimpl.util.StackListFluid; import com.raoulvdberge.refinedstorage.apiimpl.util.StackListFluid;
import com.raoulvdberge.refinedstorage.apiimpl.util.StackListItem; import com.raoulvdberge.refinedstorage.apiimpl.util.StackListItem;
import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.storage.MapStorage; import net.minecraft.world.storage.MapStorage;
@@ -59,6 +65,7 @@ public class API implements IRSAPI {
private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry(); private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry();
private ICraftingPreviewElementRegistry craftingPreviewElementRegistry = new CraftingPreviewElementRegistry(); private ICraftingPreviewElementRegistry craftingPreviewElementRegistry = new CraftingPreviewElementRegistry();
private IReaderWriterHandlerRegistry readerWriterHandlerRegistry = new ReaderWriterHandlerRegistry(); private IReaderWriterHandlerRegistry readerWriterHandlerRegistry = new ReaderWriterHandlerRegistry();
private IWirelessGridRegistry gridRegistry = new WirelessGridRegistry();
public static IRSAPI instance() { public static IRSAPI instance() {
return INSTANCE; return INSTANCE;
@@ -173,6 +180,17 @@ public class API implements IRSAPI {
return new CraftingMonitorElementList(); return new CraftingMonitorElementList();
} }
@Nonnull
@Override
public IWirelessGridRegistry getWirelessGridRegistry() {
return gridRegistry;
}
@Override
public void openWirelessGrid(EntityPlayer player, EnumHand hand, int controllerDimension, int id) {
player.openGui(RS.INSTANCE, RSGui.WIRELESS_GRID, player.getEntityWorld(), hand.ordinal(), controllerDimension, id);
}
@Override @Override
public void discoverNode(World world, BlockPos pos) { public void discoverNode(World world, BlockPos pos) {
for (EnumFacing facing : EnumFacing.VALUES) { for (EnumFacing facing : EnumFacing.VALUES) {

View File

@@ -0,0 +1,34 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.grid;
import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import net.minecraft.item.ItemStack;
import java.util.List;
public class GridTab implements IGridTab {
private List<IFilter> filters;
private String name;
private ItemStack icon;
public GridTab(List<IFilter> filters, String name, ItemStack icon) {
this.filters = filters;
this.name = name;
this.icon = icon;
}
@Override
public List<IFilter> getFilters() {
return filters;
}
@Override
public String getName() {
return name;
}
@Override
public ItemStack getIcon() {
return icon;
}
}

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.grid; package com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;

View File

@@ -1,11 +1,11 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.grid; package com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.api.util.IStackList; import com.raoulvdberge.refinedstorage.api.util.IStackList;

View File

@@ -1,10 +1,10 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.grid; package com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;

View File

@@ -0,0 +1,17 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridFactory;
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.EnumHand;
import javax.annotation.Nonnull;
public class WirelessGridFactoryPortableGrid implements IWirelessGridFactory {
@Nonnull
@Override
public IGrid create(EntityPlayer player, EnumHand hand, int controllerDimension) {
return new PortableGrid(player, player.getHeldItem(hand));
}
}

View File

@@ -0,0 +1,17 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridFactory;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.EnumHand;
import javax.annotation.Nonnull;
public class WirelessGridFactoryWirelessFluidGrid implements IWirelessGridFactory {
@Nonnull
@Override
public IGrid create(EntityPlayer player, EnumHand hand, int controllerDimension) {
return new WirelessFluidGrid(controllerDimension, player.getHeldItem(hand));
}
}

View File

@@ -0,0 +1,17 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridFactory;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.EnumHand;
import javax.annotation.Nonnull;
public class WirelessGridFactoryWirelessGrid implements IWirelessGridFactory {
@Nonnull
@Override
public IGrid create(EntityPlayer player, EnumHand hand, int controllerDimension) {
return new WirelessGrid(controllerDimension, player.getHeldItem(hand));
}
}

View File

@@ -0,0 +1,26 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless;
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridFactory;
import com.raoulvdberge.refinedstorage.api.network.grid.wireless.IWirelessGridRegistry;
import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.Map;
public class WirelessGridRegistry implements IWirelessGridRegistry {
private int lastId = 0;
private Map<Integer, IWirelessGridFactory> factories = new HashMap<>();
@Override
public int add(IWirelessGridFactory factory) {
factories.put(lastId, factory);
return lastId++;
}
@Nullable
@Override
public IWirelessGridFactory get(int id) {
return factories.get(id);
}
}

View File

@@ -1,11 +1,11 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.item; package com.raoulvdberge.refinedstorage.apiimpl.network.item;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid; import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
import com.raoulvdberge.refinedstorage.util.WorldUtils; import com.raoulvdberge.refinedstorage.util.WorldUtils;
@@ -45,7 +45,7 @@ public class NetworkItemWirelessFluidGrid implements INetworkItem {
return false; return false;
} }
player.openGui(RS.INSTANCE, RSGui.WIRELESS_GRID, player.getEntityWorld(), hand.ordinal(), controllerWorld.provider.getDimension(), WirelessFluidGrid.GRID_TYPE); API.instance().openWirelessGrid(player, hand, controllerWorld.provider.getDimension(), WirelessFluidGrid.ID);
network.sendFluidStorageToClient((EntityPlayerMP) player); network.sendFluidStorageToClient((EntityPlayerMP) player);

View File

@@ -1,11 +1,11 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.item; package com.raoulvdberge.refinedstorage.apiimpl.network.item;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid; import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
import com.raoulvdberge.refinedstorage.util.WorldUtils; import com.raoulvdberge.refinedstorage.util.WorldUtils;
@@ -45,7 +45,7 @@ public class NetworkItemWirelessGrid implements INetworkItem {
return false; return false;
} }
player.openGui(RS.INSTANCE, RSGui.WIRELESS_GRID, player.getEntityWorld(), hand.ordinal(), controllerWorld.provider.getDimension(), WirelessGrid.GRID_TYPE); API.instance().openWirelessGrid(player, hand, controllerWorld.provider.getDimension(), WirelessGrid.ID);
network.sendItemStorageToClient((EntityPlayerMP) player); network.sendItemStorageToClient((EntityPlayerMP) player);

View File

@@ -2,9 +2,9 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
@@ -28,7 +28,7 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting
private static final String NBT_VIEW_AUTOMATED = "ViewAutomated"; private static final String NBT_VIEW_AUTOMATED = "ViewAutomated";
private boolean viewAutomated = true; private boolean viewAutomated = true;
private List<Filter> filters = new ArrayList<>(); private List<IFilter> filters = new ArrayList<>();
private ItemHandlerListenerNetworkNode filterListener = new ItemHandlerListenerNetworkNode(this); private ItemHandlerListenerNetworkNode filterListener = new ItemHandlerListenerNetworkNode(this);
private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), slot -> { private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), slot -> {
filterListener.accept(slot); filterListener.accept(slot);
@@ -86,7 +86,7 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting
} }
@Override @Override
public List<Filter> getFilters() { public List<IFilter> getFilters() {
return filters; return filters;
} }

View File

@@ -9,8 +9,8 @@ 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.inventory.ItemHandlerUpgrade; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
import com.raoulvdberge.refinedstorage.item.ItemFilter;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade; import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
import com.raoulvdberge.refinedstorage.item.filter.ItemFilter;
import com.raoulvdberge.refinedstorage.tile.TileExporter; import com.raoulvdberge.refinedstorage.tile.TileExporter;
import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IComparable;
import com.raoulvdberge.refinedstorage.tile.config.IType; import com.raoulvdberge.refinedstorage.tile.config.IType;

View File

@@ -3,21 +3,21 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab;
import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.block.BlockGrid; import com.raoulvdberge.refinedstorage.block.BlockGrid;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic;
import com.raoulvdberge.refinedstorage.item.ItemPattern; import com.raoulvdberge.refinedstorage.item.ItemPattern;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@@ -31,6 +31,7 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable;
import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemHandlerHelper;
import net.minecraftforge.items.wrapper.CombinedInvWrapper; import net.minecraftforge.items.wrapper.CombinedInvWrapper;
import net.minecraftforge.items.wrapper.InvWrapper; import net.minecraftforge.items.wrapper.InvWrapper;
@@ -95,8 +96,8 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
return slot == 0 ? super.insertItem(slot, stack, simulate) : stack; return slot == 0 ? super.insertItem(slot, stack, simulate) : stack;
} }
}; };
private List<Filter> filters = new ArrayList<>(); private List<IFilter> filters = new ArrayList<>();
private List<FilterTab> tabs = new ArrayList<>(); private List<IGridTab> tabs = new ArrayList<>();
private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, new ItemHandlerListenerNetworkNode(this)); private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, new ItemHandlerListenerNetworkNode(this));
private GridType type; private GridType type;
@@ -201,7 +202,18 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
@Override @Override
public String getGuiTitle() { public String getGuiTitle() {
return getType() == GridType.FLUID ? "gui.refinedstorage:fluid_grid" : "gui.refinedstorage:grid"; GridType type = getType();
switch (type) {
case CRAFTING:
return "gui.refinedstorage:crafting_grid";
case PATTERN:
return "gui.refinedstorage:pattern_grid";
case FLUID:
return "gui.refinedstorage:fluid_grid";
default:
return "gui.refinedstorage:grid";
}
} }
public IItemHandler getPatterns() { public IItemHandler getPatterns() {
@@ -209,17 +221,17 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
} }
@Override @Override
public ItemHandlerBase getFilter() { public IItemHandlerModifiable getFilter() {
return filter; return filter;
} }
@Override @Override
public List<Filter> getFilters() { public List<IFilter> getFilters() {
return filters; return filters;
} }
@Override @Override
public List<FilterTab> getTabs() { public List<IGridTab> getTabs() {
return tabs; return tabs;
} }
@@ -246,17 +258,23 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
@Override @Override
public void onRecipeTransfer(EntityPlayer player, ItemStack[][] recipe) { public void onRecipeTransfer(EntityPlayer player, ItemStack[][] recipe) {
if (network != null && getType() == GridType.CRAFTING && !network.getSecurityManager().hasPermission(Permission.EXTRACT, player)) { onRecipeTransfer(this, player, recipe);
}
public static void onRecipeTransfer(IGrid grid, EntityPlayer player, ItemStack[][] recipe) {
INetwork network = grid.getNetwork();
if (network != null && grid.getType() == GridType.CRAFTING && !network.getSecurityManager().hasPermission(Permission.EXTRACT, player)) {
return; return;
} }
// First try to empty the crafting matrix // First try to empty the crafting matrix
for (int i = 0; i < matrix.getSizeInventory(); ++i) { for (int i = 0; i < grid.getCraftingMatrix().getSizeInventory(); ++i) {
ItemStack slot = matrix.getStackInSlot(i); ItemStack slot = grid.getCraftingMatrix().getStackInSlot(i);
if (!slot.isEmpty()) { if (!slot.isEmpty()) {
// Only if we are a crafting grid. Pattern grids can just be emptied. // Only if we are a crafting grid. Pattern grids can just be emptied.
if (getType() == GridType.CRAFTING) { if (grid.getType() == GridType.CRAFTING) {
// If we are connected, try to insert into network. If it fails, stop. // If we are connected, try to insert into network. If it fails, stop.
if (network != null) { if (network != null) {
if (network.insertItem(slot, slot.getCount(), true) != null) { if (network.insertItem(slot, slot.getCount(), true) != null) {
@@ -272,17 +290,17 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
} }
} }
matrix.setInventorySlotContents(i, ItemStack.EMPTY); grid.getCraftingMatrix().setInventorySlotContents(i, ItemStack.EMPTY);
} }
} }
// Now let's fill the matrix // Now let's fill the matrix
for (int i = 0; i < matrix.getSizeInventory(); ++i) { for (int i = 0; i < grid.getCraftingMatrix().getSizeInventory(); ++i) {
if (recipe[i] != null) { if (recipe[i] != null) {
ItemStack[] possibilities = recipe[i]; ItemStack[] possibilities = recipe[i];
// If we are a crafting grid // If we are a crafting grid
if (getType() == GridType.CRAFTING) { if (grid.getType() == GridType.CRAFTING) {
boolean found = false; boolean found = false;
// If we are connected, first try to get the possibilities from the network // If we are connected, first try to get the possibilities from the network
@@ -291,7 +309,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
ItemStack took = network.extractItem(possibility, 1, IComparer.COMPARE_NBT | IComparer.COMPARE_STRIP_NBT | (possibility.getItem().isDamageable() ? 0 : IComparer.COMPARE_DAMAGE), false); ItemStack took = network.extractItem(possibility, 1, IComparer.COMPARE_NBT | IComparer.COMPARE_STRIP_NBT | (possibility.getItem().isDamageable() ? 0 : IComparer.COMPARE_DAMAGE), false);
if (took != null) { if (took != null) {
matrix.setInventorySlotContents(i, StackUtils.nullToEmpty(took)); grid.getCraftingMatrix().setInventorySlotContents(i, StackUtils.nullToEmpty(took));
found = true; found = true;
@@ -305,7 +323,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
for (ItemStack possibility : possibilities) { for (ItemStack possibility : possibilities) {
for (int j = 0; j < player.inventory.getSizeInventory(); ++j) { for (int j = 0; j < player.inventory.getSizeInventory(); ++j) {
if (API.instance().getComparer().isEqual(possibility, player.inventory.getStackInSlot(j), IComparer.COMPARE_NBT | IComparer.COMPARE_STRIP_NBT | (possibility.getItem().isDamageable() ? 0 : IComparer.COMPARE_DAMAGE))) { if (API.instance().getComparer().isEqual(possibility, player.inventory.getStackInSlot(j), IComparer.COMPARE_NBT | IComparer.COMPARE_STRIP_NBT | (possibility.getItem().isDamageable() ? 0 : IComparer.COMPARE_DAMAGE))) {
matrix.setInventorySlotContents(i, ItemHandlerHelper.copyStackWithSize(player.inventory.getStackInSlot(j), 1)); grid.getCraftingMatrix().setInventorySlotContents(i, ItemHandlerHelper.copyStackWithSize(player.inventory.getStackInSlot(j), 1));
player.inventory.decrStackSize(j, 1); player.inventory.decrStackSize(j, 1);
@@ -320,9 +338,9 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
} }
} }
} }
} else if (getType() == GridType.PATTERN) { } else if (grid.getType() == GridType.PATTERN) {
// If we are a pattern grid we can just set the slot // If we are a pattern grid we can just set the slot
matrix.setInventorySlotContents(i, possibilities[0]); grid.getCraftingMatrix().setInventorySlotContents(i, possibilities[0]);
} }
} }
} }
@@ -345,9 +363,17 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
@Override @Override
public void onCrafted(EntityPlayer player) { public void onCrafted(EntityPlayer player) {
NonNullList<ItemStack> remainder = CraftingManager.getRemainingItems(matrix, world); onCrafted(this, world, player);
}
for (int i = 0; i < matrix.getSizeInventory(); ++i) { public static void onCrafted(IGrid grid, World world, EntityPlayer player) {
NonNullList<ItemStack> remainder = CraftingManager.getRemainingItems(grid.getCraftingMatrix(), world);
INetwork network = grid.getNetwork();
InventoryCrafting matrix = grid.getCraftingMatrix();
for (int i = 0; i < grid.getCraftingMatrix().getSizeInventory(); ++i) {
ItemStack slot = matrix.getStackInSlot(i); ItemStack slot = matrix.getStackInSlot(i);
if (i < remainder.size() && !remainder.get(i).isEmpty()) { if (i < remainder.size() && !remainder.get(i).isEmpty()) {
@@ -374,27 +400,33 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
} }
} }
onCraftingMatrixChanged(); grid.onCraftingMatrixChanged();
} }
@Override @Override
public void onCraftedShift(EntityPlayer player) { public void onCraftedShift(EntityPlayer player) {
onCraftedShift(this, player);
}
public static void onCraftedShift(IGrid grid, EntityPlayer player) {
List<ItemStack> craftedItemsList = new ArrayList<>(); List<ItemStack> craftedItemsList = new ArrayList<>();
int craftedItems = 0; int craftedItems = 0;
ItemStack crafted = result.getStackInSlot(0); ItemStack crafted = grid.getCraftingResult().getStackInSlot(0);
while (true) { while (true) {
onCrafted(player); grid.onCrafted(player);
craftedItemsList.add(crafted.copy()); craftedItemsList.add(crafted.copy());
craftedItems += crafted.getCount(); craftedItems += crafted.getCount();
if (!API.instance().getComparer().isEqual(crafted, result.getStackInSlot(0)) || craftedItems + crafted.getCount() > crafted.getMaxStackSize()) { if (!API.instance().getComparer().isEqual(crafted, grid.getCraftingResult().getStackInSlot(0)) || craftedItems + crafted.getCount() > crafted.getMaxStackSize()) {
break; break;
} }
} }
INetwork network = grid.getNetwork();
for (ItemStack craftedItem : craftedItemsList) { for (ItemStack craftedItem : craftedItemsList) {
if (!player.inventory.addItemStackToInventory(craftedItem.copy())) { if (!player.inventory.addItemStackToInventory(craftedItem.copy())) {
ItemStack remainder = network == null ? craftedItem : network.insertItem(craftedItem, craftedItem.getCount(), false); ItemStack remainder = network == null ? craftedItem : network.insertItem(craftedItem, craftedItem.getCount(), false);
@@ -405,7 +437,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
} }
} }
FMLCommonHandler.instance().firePlayerCraftingEvent(player, ItemHandlerHelper.copyStackWithSize(crafted, craftedItems), matrix); FMLCommonHandler.instance().firePlayerCraftingEvent(player, ItemHandlerHelper.copyStackWithSize(crafted, craftedItems), grid.getCraftingMatrix());
} }
public void onCreatePattern() { public void onCreatePattern() {
@@ -531,11 +563,6 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
TileDataManager.setParameter(TileGrid.TAB_SELECTED, tab); TileDataManager.setParameter(TileGrid.TAB_SELECTED, tab);
} }
@Override
public TileDataParameter<Integer, ?> getRedstoneModeConfig() {
return TileGrid.REDSTONE_MODE;
}
@Override @Override
public boolean hasConnectivityState() { public boolean hasConnectivityState() {
return true; return true;

View File

@@ -1,8 +1,9 @@
package com.raoulvdberge.refinedstorage.item.filter; package com.raoulvdberge.refinedstorage.apiimpl.util;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class Filter { public class Filter implements IFilter {
private ItemStack stack; private ItemStack stack;
private int compare; private int compare;
private int mode; private int mode;
@@ -15,18 +16,22 @@ public class Filter {
this.modFilter = modFilter; this.modFilter = modFilter;
} }
@Override
public ItemStack getStack() { public ItemStack getStack() {
return stack; return stack;
} }
@Override
public int getCompare() { public int getCompare() {
return compare; return compare;
} }
@Override
public int getMode() { public int getMode() {
return mode; return mode;
} }
@Override
public boolean isModFilter() { public boolean isModFilter() {
return modFilter; return modFilter;
} }

View File

@@ -1,6 +1,7 @@
package com.raoulvdberge.refinedstorage.block; package com.raoulvdberge.refinedstorage.block;
import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.item.ItemBlockBase; import com.raoulvdberge.refinedstorage.item.ItemBlockBase;
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.properties.PropertyEnum;

View File

@@ -1,15 +1,15 @@
package com.raoulvdberge.refinedstorage.container; package com.raoulvdberge.refinedstorage.container;
import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskProvider; import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskProvider;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.container.slot.*; import com.raoulvdberge.refinedstorage.container.slot.*;
import com.raoulvdberge.refinedstorage.gui.grid.IGridDisplay; import com.raoulvdberge.refinedstorage.gui.grid.IGridDisplay;
import com.raoulvdberge.refinedstorage.tile.TileBase; import com.raoulvdberge.refinedstorage.tile.TileBase;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.container.slot; package com.raoulvdberge.refinedstorage.container.slot;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.SlotCrafting; import net.minecraft.inventory.SlotCrafting;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View File

@@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.gui;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.container.ContainerFilter; import com.raoulvdberge.refinedstorage.container.ContainerFilter;
import com.raoulvdberge.refinedstorage.item.filter.ItemFilter; import com.raoulvdberge.refinedstorage.item.ItemFilter;
import com.raoulvdberge.refinedstorage.network.MessageFilterUpdate; import com.raoulvdberge.refinedstorage.network.MessageFilterUpdate;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.GuiTextField;

View File

@@ -1,6 +1,8 @@
package com.raoulvdberge.refinedstorage.gui; package com.raoulvdberge.refinedstorage.gui;
import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiReaderWriter; import com.raoulvdberge.refinedstorage.apiimpl.network.node.IGuiReaderWriter;
import com.raoulvdberge.refinedstorage.container.*; import com.raoulvdberge.refinedstorage.container.*;
import com.raoulvdberge.refinedstorage.gui.grid.GridDisplayDummy; import com.raoulvdberge.refinedstorage.gui.grid.GridDisplayDummy;
@@ -10,15 +12,10 @@ import com.raoulvdberge.refinedstorage.integration.mcmp.RSMCMPAddon;
import com.raoulvdberge.refinedstorage.tile.*; import com.raoulvdberge.refinedstorage.tile.*;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.WirelessCraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
@@ -160,31 +157,20 @@ public class GuiHandler implements IGuiHandler {
} }
} }
private IGrid getGrid(EntityPlayer player, int hand, int controllerDimension, int type) { private IGrid getGrid(EntityPlayer player, int hand, int controllerDimension, int id) {
ItemStack stack = player.getHeldItem(EnumHand.values()[hand]); return API.instance().getWirelessGridRegistry().get(id).create(player, EnumHand.values()[hand], controllerDimension);
switch (type) {
case WirelessGrid.GRID_TYPE:
return new WirelessGrid(controllerDimension, stack);
case WirelessFluidGrid.GRID_TYPE:
return new WirelessFluidGrid(controllerDimension, stack);
case PortableGrid.GRID_TYPE:
return new PortableGrid(player, stack);
default:
return null;
}
} }
private GuiGrid getGridGui(EntityPlayer player, int hand, int controllerDimension, int type) { private GuiGrid getGridGui(EntityPlayer player, int hand, int controllerDimension, int id) {
IGrid grid = getGrid(player, hand, controllerDimension, type); IGrid grid = getGrid(player, hand, controllerDimension, id);
GuiGrid gui = new GuiGrid(null, grid); GuiGrid gui = new GuiGrid(null, grid);
gui.inventorySlots = new ContainerGrid(grid, gui, null, player); gui.inventorySlots = new ContainerGrid(grid, gui, null, player);
return gui; return gui;
} }
private ContainerGrid getGridContainer(EntityPlayer player, int hand, int controllerDimension, int type) { private ContainerGrid getGridContainer(EntityPlayer player, int hand, int controllerDimension, int id) {
return new ContainerGrid(getGrid(player, hand, controllerDimension, type), new GridDisplayDummy(), null, player); return new ContainerGrid(getGrid(player, hand, controllerDimension, id), new GridDisplayDummy(), null, player);
} }
private WirelessCraftingMonitor getCraftingMonitor(EntityPlayer player, int hand, int controllerDimension) { private WirelessCraftingMonitor getCraftingMonitor(EntityPlayer player, int hand, int controllerDimension) {

View File

@@ -5,9 +5,11 @@ import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimaps; import com.google.common.collect.Multimaps;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSKeyBindings; import com.raoulvdberge.refinedstorage.RSKeyBindings;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.gui.GuiBase; import com.raoulvdberge.refinedstorage.gui.GuiBase;
import com.raoulvdberge.refinedstorage.gui.Scrollbar; import com.raoulvdberge.refinedstorage.gui.Scrollbar;
@@ -22,12 +24,11 @@ import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack;
import com.raoulvdberge.refinedstorage.gui.sidebutton.*; import com.raoulvdberge.refinedstorage.gui.sidebutton.*;
import com.raoulvdberge.refinedstorage.integration.jei.IntegrationJEI; import com.raoulvdberge.refinedstorage.integration.jei.IntegrationJEI;
import com.raoulvdberge.refinedstorage.integration.jei.RSJEIPlugin; import com.raoulvdberge.refinedstorage.integration.jei.RSJEIPlugin;
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
import com.raoulvdberge.refinedstorage.network.*; import com.raoulvdberge.refinedstorage.network.*;
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid;
import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.audio.PositionedSoundRecord;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiScreen;
@@ -124,8 +125,8 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
this.scrollbar = new Scrollbar(174, getTabDelta() + getHeader(), 12, (getVisibleRows() * 18) - 2); this.scrollbar = new Scrollbar(174, getTabDelta() + getHeader(), 12, (getVisibleRows() * 18) - 2);
if (grid.getRedstoneModeConfig() != null) { if (grid instanceof NetworkNodeGrid || grid instanceof TilePortableGrid) {
addSideButton(new SideButtonRedstoneMode(this, grid.getRedstoneModeConfig())); addSideButton(new SideButtonRedstoneMode(this, grid instanceof NetworkNodeGrid ? TileGrid.REDSTONE_MODE : TilePortableGrid.REDSTONE_MODE));
} }
this.konamiOffsetsX = new int[9 * getVisibleRows()]; this.konamiOffsetsX = new int[9 * getVisibleRows()];
@@ -342,7 +343,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
return !grid.getTabs().isEmpty() ? ContainerGrid.TAB_HEIGHT - 4 : 0; return !grid.getTabs().isEmpty() ? ContainerGrid.TAB_HEIGHT - 4 : 0;
} }
private void drawTab(FilterTab tab, boolean foregroundLayer, int x, int y, int mouseX, int mouseY) { private void drawTab(IGridTab tab, boolean foregroundLayer, int x, int y, int mouseX, int mouseY) {
int i = grid.getTabs().indexOf(tab); int i = grid.getTabs().indexOf(tab);
boolean selected = i == grid.getTabSelected(); boolean selected = i == grid.getTabSelected();
@@ -392,7 +393,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
public void drawBackground(int x, int y, int mouseX, int mouseY) { public void drawBackground(int x, int y, int mouseX, int mouseY) {
tabHovering = -1; tabHovering = -1;
for (FilterTab tab : grid.getTabs()) { for (IGridTab tab : grid.getTabs()) {
drawTab(tab, false, x, y, mouseX, mouseY); drawTab(tab, false, x, y, mouseX, mouseY);
} }
@@ -426,7 +427,7 @@ public class GuiGrid extends GuiBase implements IGridDisplay {
drawTexture(x, yy, 0, getHeader() + (18 * 3), screenWidth - (grid.getType() != GridType.FLUID ? 34 : 0), getFooter()); drawTexture(x, yy, 0, getHeader() + (18 * 3), screenWidth - (grid.getType() != GridType.FLUID ? 34 : 0), getFooter());
for (FilterTab tab : grid.getTabs()) { for (IGridTab tab : grid.getTabs()) {
drawTab(tab, true, x, y, mouseX, mouseY); drawTab(tab, true, x, y, mouseX, mouseY);
} }

View File

@@ -1,19 +1,19 @@
package com.raoulvdberge.refinedstorage.gui.grid.filtering; package com.raoulvdberge.refinedstorage.gui.grid.filtering;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.gui.grid.stack.GridStackItem; import com.raoulvdberge.refinedstorage.gui.grid.stack.GridStackItem;
import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack;
import com.raoulvdberge.refinedstorage.item.filter.Filter; import com.raoulvdberge.refinedstorage.item.ItemFilter;
import com.raoulvdberge.refinedstorage.item.filter.ItemFilter;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import java.util.List; import java.util.List;
import java.util.function.Predicate; import java.util.function.Predicate;
public class GridFilterFilter implements Predicate<IGridStack> { public class GridFilterFilter implements Predicate<IGridStack> {
private List<Filter> filters; private List<IFilter> filters;
public GridFilterFilter(List<Filter> filters) { public GridFilterFilter(List<IFilter> filters) {
this.filters = filters; this.filters = filters;
} }
@@ -22,14 +22,14 @@ public class GridFilterFilter implements Predicate<IGridStack> {
return accepts(filters, ((GridStackItem) stack).getStack(), stack.getModId()); return accepts(filters, ((GridStackItem) stack).getStack(), stack.getModId());
} }
public static boolean accepts(List<Filter> filters, ItemStack stack, String stackModId) { public static boolean accepts(List<IFilter> filters, ItemStack stack, String stackModId) {
if (filters.isEmpty()) { if (filters.isEmpty()) {
return true; return true;
} }
int lastMode = ItemFilter.MODE_WHITELIST; int lastMode = ItemFilter.MODE_WHITELIST;
for (Filter filter : filters) { for (IFilter filter : filters) {
lastMode = filter.getMode(); lastMode = filter.getMode();
if (filter.isModFilter()) { if (filter.isModFilter()) {

View File

@@ -1,16 +1,16 @@
package com.raoulvdberge.refinedstorage.gui.grid.filtering; package com.raoulvdberge.refinedstorage.gui.grid.filtering;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.function.Predicate; import java.util.function.Predicate;
public final class GridFilterParser { public final class GridFilterParser {
public static List<Predicate<IGridStack>> getFilters(IGrid grid, String query, List<Filter> filters) { public static List<Predicate<IGridStack>> getFilters(IGrid grid, String query, List<IFilter> filters) {
List<Predicate<IGridStack>> gridFilters = new LinkedList<>(); List<Predicate<IGridStack>> gridFilters = new LinkedList<>();
for (String part : query.toLowerCase().trim().split(" ")) { for (String part : query.toLowerCase().trim().split(" ")) {

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.gui.sidebutton; package com.raoulvdberge.refinedstorage.gui.sidebutton;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.gui.GuiBase; import com.raoulvdberge.refinedstorage.gui.GuiBase;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
public class SideButtonGridSize extends SideButton { public class SideButtonGridSize extends SideButton {

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.gui.sidebutton; package com.raoulvdberge.refinedstorage.gui.sidebutton;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.gui.GuiBase; import com.raoulvdberge.refinedstorage.gui.GuiBase;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
public class SideButtonGridSortingDirection extends SideButton { public class SideButtonGridSortingDirection extends SideButton {

View File

@@ -1,9 +1,9 @@
package com.raoulvdberge.refinedstorage.gui.sidebutton; package com.raoulvdberge.refinedstorage.gui.sidebutton;
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.gui.GuiBase; import com.raoulvdberge.refinedstorage.gui.GuiBase;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
public class SideButtonGridSortingType extends SideButton { public class SideButtonGridSortingType extends SideButton {

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.gui.sidebutton; package com.raoulvdberge.refinedstorage.gui.sidebutton;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.gui.GuiBase; import com.raoulvdberge.refinedstorage.gui.GuiBase;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
public class SideButtonGridViewType extends SideButton { public class SideButtonGridViewType extends SideButton {

View File

@@ -2,7 +2,7 @@ package com.raoulvdberge.refinedstorage.integration.craftingtweaks;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.container.slot.SlotGridCrafting; import com.raoulvdberge.refinedstorage.container.slot.SlotGridCrafting;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;

View File

@@ -1,12 +1,12 @@
package com.raoulvdberge.refinedstorage.integration.jei; package com.raoulvdberge.refinedstorage.integration.jei;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.network.MessageGridProcessingTransfer; import com.raoulvdberge.refinedstorage.network.MessageGridProcessingTransfer;
import com.raoulvdberge.refinedstorage.network.MessageGridTransfer; import com.raoulvdberge.refinedstorage.network.MessageGridTransfer;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import mezz.jei.api.gui.IGuiIngredient; import mezz.jei.api.gui.IGuiIngredient;
import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.gui.IRecipeLayout;
import mezz.jei.api.recipe.transfer.IRecipeTransferError; import mezz.jei.api.recipe.transfer.IRecipeTransferError;

View File

@@ -1,10 +1,12 @@
package com.raoulvdberge.refinedstorage.inventory; package com.raoulvdberge.refinedstorage.inventory;
import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.GridTab;
import com.raoulvdberge.refinedstorage.apiimpl.util.Filter;
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
import com.raoulvdberge.refinedstorage.item.filter.Filter; import com.raoulvdberge.refinedstorage.item.ItemFilter;
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
import com.raoulvdberge.refinedstorage.item.filter.ItemFilter;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@@ -15,10 +17,10 @@ import java.util.List;
import java.util.function.Consumer; import java.util.function.Consumer;
public class ItemHandlerFilter extends ItemHandlerBase { public class ItemHandlerFilter extends ItemHandlerBase {
private List<Filter> filters; private List<IFilter> filters;
private List<FilterTab> tabs; private List<IGridTab> tabs;
public ItemHandlerFilter(List<Filter> filters, List<FilterTab> tabs, @Nullable Consumer<Integer> listener) { public ItemHandlerFilter(List<IFilter> filters, List<IGridTab> tabs, @Nullable Consumer<Integer> listener) {
super(4, listener, new ItemValidatorBasic(RSItems.FILTER)); super(4, listener, new ItemValidatorBasic(RSItems.FILTER));
this.filters = filters; this.filters = filters;
@@ -42,7 +44,7 @@ public class ItemHandlerFilter extends ItemHandlerBase {
ItemHandlerFilterItems items = new ItemHandlerFilterItems(filter); ItemHandlerFilterItems items = new ItemHandlerFilterItems(filter);
List<Filter> filters = new ArrayList<>(); List<IFilter> filters = new ArrayList<>();
for (ItemStack item : items.getFilteredItems()) { for (ItemStack item : items.getFilteredItems()) {
if (!item.isEmpty()) { if (!item.isEmpty()) {
@@ -55,7 +57,7 @@ public class ItemHandlerFilter extends ItemHandlerBase {
if (icon.isEmpty()) { if (icon.isEmpty()) {
this.filters.addAll(filters); this.filters.addAll(filters);
} else { } else {
tabs.add(new FilterTab(filters, ItemFilter.getName(filter), icon)); tabs.add(new GridTab(filters, ItemFilter.getName(filter), icon));
} }
} }
} }

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.inventory; package com.raoulvdberge.refinedstorage.inventory;
import com.raoulvdberge.refinedstorage.item.filter.ItemFilter; import com.raoulvdberge.refinedstorage.item.ItemFilter;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.items.ItemStackHandler;

View File

@@ -10,13 +10,17 @@ public abstract class ItemBase extends Item {
public ItemBase(String name) { public ItemBase(String name) {
this.name = name; this.name = name;
setRegistryName(RS.ID, name); setRegistryName(getDomain(), name);
setCreativeTab(RS.INSTANCE.tab); setCreativeTab(RS.INSTANCE.tab);
} }
protected String getDomain() {
return RS.ID;
}
@Override @Override
public String getUnlocalizedName() { public String getUnlocalizedName() {
return "item." + RS.ID + ":" + name; return "item." + getDomain() + ":" + name;
} }
@Override @Override

View File

@@ -1,8 +1,7 @@
package com.raoulvdberge.refinedstorage.item; package com.raoulvdberge.refinedstorage.item;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.client.util.ITooltipFlag; import net.minecraft.client.util.ITooltipFlag;
@@ -28,7 +27,7 @@ public class ItemBlockPortableGrid extends ItemBlockEnergyItem {
ItemStack stack = player.getHeldItem(hand); ItemStack stack = player.getHeldItem(hand);
if (!world.isRemote) { if (!world.isRemote) {
player.openGui(RS.INSTANCE, RSGui.WIRELESS_GRID, player.getEntityWorld(), hand.ordinal(), 0, PortableGrid.GRID_TYPE); API.instance().openWirelessGrid(player, hand, world.provider.getDimension(), PortableGrid.ID);
} }
return ActionResult.newResult(EnumActionResult.SUCCESS, stack); return ActionResult.newResult(EnumActionResult.SUCCESS, stack);

View File

@@ -1,12 +1,10 @@
package com.raoulvdberge.refinedstorage.item.filter; package com.raoulvdberge.refinedstorage.item;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.api.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilterItems; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilterItems;
import com.raoulvdberge.refinedstorage.item.ItemBase;
import com.raoulvdberge.refinedstorage.item.ItemPattern;
import net.minecraft.client.resources.I18n; import net.minecraft.client.resources.I18n;
import net.minecraft.client.util.ITooltipFlag; import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;

View File

@@ -10,6 +10,10 @@ import net.minecraft.item.ItemStack;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
public class ItemWirelessGrid extends ItemNetworkItem { public class ItemWirelessGrid extends ItemNetworkItem {
public ItemWirelessGrid(String name) {
super(name);
}
public ItemWirelessGrid() { public ItemWirelessGrid() {
super("wireless_grid"); super("wireless_grid");
} }

View File

@@ -1,29 +0,0 @@
package com.raoulvdberge.refinedstorage.item.filter;
import net.minecraft.item.ItemStack;
import java.util.List;
public class FilterTab {
private List<Filter> filters;
private String name;
private ItemStack icon;
public FilterTab(List<Filter> filters, String name, ItemStack icon) {
this.filters = filters;
this.name = name;
this.icon = icon;
}
public List<Filter> getFilters() {
return filters;
}
public String getName() {
return name;
}
public ItemStack getIcon() {
return icon;
}
}

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.container.ContainerFilter; import com.raoulvdberge.refinedstorage.container.ContainerFilter;
import com.raoulvdberge.refinedstorage.item.filter.ItemFilter; import com.raoulvdberge.refinedstorage.item.ItemFilter;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.fml.common.network.ByteBufUtils;

View File

@@ -1,10 +1,10 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;

View File

@@ -1,10 +1,10 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.network; package com.raoulvdberge.refinedstorage.network;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;

View File

@@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSKeyBindings; import com.raoulvdberge.refinedstorage.RSKeyBindings;
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
import com.raoulvdberge.refinedstorage.block.*; import com.raoulvdberge.refinedstorage.block.*;
import com.raoulvdberge.refinedstorage.gui.GuiCraftingPreview; import com.raoulvdberge.refinedstorage.gui.GuiCraftingPreview;

View File

@@ -11,6 +11,9 @@ import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPrev
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskFactory; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskFactory;
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener; import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless.WirelessGridFactoryPortableGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless.WirelessGridFactoryWirelessFluidGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.wireless.WirelessGridFactoryWirelessGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerFluids; import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerFluids;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerItems; import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerItems;
@@ -27,6 +30,9 @@ import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.data.ContainerListener; import com.raoulvdberge.refinedstorage.tile.data.ContainerListener;
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid;
import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid;
import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@@ -214,6 +220,10 @@ public class ProxyCommon {
GameRegistry.addSmelting(Items.QUARTZ, new ItemStack(RSItems.SILICON), 0.5f); GameRegistry.addSmelting(Items.QUARTZ, new ItemStack(RSItems.SILICON), 0.5f);
WirelessGrid.ID = API.instance().getWirelessGridRegistry().add(new WirelessGridFactoryWirelessGrid());
WirelessFluidGrid.ID = API.instance().getWirelessGridRegistry().add(new WirelessGridFactoryWirelessFluidGrid());
PortableGrid.ID = API.instance().getWirelessGridRegistry().add(new WirelessGridFactoryPortableGrid());
CraftingHelper.register(new ResourceLocation(RS.ID + ":enchanted_book"), new IIngredientFactory() { CraftingHelper.register(new ResourceLocation(RS.ID + ":enchanted_book"), new IIngredientFactory() {
@Nonnull @Nonnull
@Override @Override

View File

@@ -6,8 +6,10 @@ import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph; import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
@@ -21,8 +23,8 @@ import com.raoulvdberge.refinedstorage.api.storage.IStorageCache;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingManager;
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeGraph; import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeGraph;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.FluidGridHandler; import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.FluidGridHandler;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.ItemGridHandler; import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.ItemGridHandler;
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemHandler; import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemHandler;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.externalstorage.StorageFluidExternal; import com.raoulvdberge.refinedstorage.apiimpl.network.node.externalstorage.StorageFluidExternal;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.externalstorage.StorageItemExternal; import com.raoulvdberge.refinedstorage.apiimpl.network.node.externalstorage.StorageItemExternal;
@@ -31,7 +33,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheFluid;
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItem; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItem;
import com.raoulvdberge.refinedstorage.block.BlockController; import com.raoulvdberge.refinedstorage.block.BlockController;
import com.raoulvdberge.refinedstorage.block.ControllerType; import com.raoulvdberge.refinedstorage.block.ControllerType;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy;
import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor; import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
@@ -42,7 +43,6 @@ import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable;
import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode;
import com.raoulvdberge.refinedstorage.tile.data.RSSerializers; import com.raoulvdberge.refinedstorage.tile.data.RSSerializers;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
import com.raoulvdberge.refinedstorage.util.WorldUtils; import com.raoulvdberge.refinedstorage.util.WorldUtils;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;

View File

@@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.item.filter.ItemFilter; import com.raoulvdberge.refinedstorage.item.ItemFilter;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.DataSerializers;

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.tile.craftingmonitor; package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
@@ -22,7 +22,7 @@ public interface ICraftingMonitor {
List<ICraftingTask> getTasks(); List<ICraftingTask> getTasks();
List<Filter> getFilters(); List<IFilter> getFilters();
ItemHandlerBase getFilter(); ItemHandlerBase getFilter();

View File

@@ -2,10 +2,10 @@ package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor; import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.network.MessageWirelessCraftingMonitorViewAutomated; import com.raoulvdberge.refinedstorage.network.MessageWirelessCraftingMonitorViewAutomated;
import com.raoulvdberge.refinedstorage.tile.TileController; import com.raoulvdberge.refinedstorage.tile.TileController;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
@@ -28,7 +28,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
private BlockPos controller; private BlockPos controller;
private boolean viewAutomated; private boolean viewAutomated;
private List<Filter> filters = new ArrayList<>(); private List<IFilter> filters = new ArrayList<>();
private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), null) { private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), null) {
@Override @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
@@ -95,7 +95,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor {
} }
@Override @Override
public List<Filter> getFilters() { public List<IFilter> getFilters() {
return filters; return filters;
} }

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.tile.grid; package com.raoulvdberge.refinedstorage.tile.grid;
import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid;
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
import com.raoulvdberge.refinedstorage.tile.TileNode; import com.raoulvdberge.refinedstorage.tile.TileNode;

View File

@@ -2,14 +2,13 @@ package com.raoulvdberge.refinedstorage.tile.grid;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid; import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
import com.raoulvdberge.refinedstorage.network.MessageWirelessFluidGridSettingsUpdate; import com.raoulvdberge.refinedstorage.network.MessageWirelessFluidGridSettingsUpdate;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryCraftResult; import net.minecraft.inventory.InventoryCraftResult;
@@ -19,13 +18,14 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.items.IItemHandlerModifiable;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
public class WirelessFluidGrid implements IGrid { public class WirelessFluidGrid implements IGrid {
public static final int GRID_TYPE = 1; public static int ID;
private ItemStack stack; private ItemStack stack;
@@ -154,22 +154,17 @@ public class WirelessFluidGrid implements IGrid {
} }
@Override @Override
public List<Filter> getFilters() { public List<IFilter> getFilters() {
return Collections.emptyList(); return Collections.emptyList();
} }
@Override @Override
public List<FilterTab> getTabs() { public List<IGridTab> getTabs() {
return Collections.emptyList(); return Collections.emptyList();
} }
@Override @Override
public ItemHandlerBase getFilter() { public IItemHandlerModifiable getFilter() {
return null;
}
@Override
public TileDataParameter<Integer, ?> getRedstoneModeConfig() {
return null; return null;
} }

View File

@@ -2,15 +2,14 @@ package com.raoulvdberge.refinedstorage.tile.grid;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab;
import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid; import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
import com.raoulvdberge.refinedstorage.network.MessageGridSettingsUpdate; import com.raoulvdberge.refinedstorage.network.MessageGridSettingsUpdate;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@@ -22,17 +21,18 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.items.IItemHandlerModifiable;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class WirelessGrid implements IGrid { public class WirelessGrid implements IGrid {
public static final int GRID_TYPE = 0; public static int ID;
private ItemStack stack; protected ItemStack stack;
private int controllerDimension; protected int controllerDimension;
private BlockPos controller; private BlockPos controller;
private int viewType; private int viewType;
@@ -42,8 +42,8 @@ public class WirelessGrid implements IGrid {
private int tabSelected; private int tabSelected;
private int size; private int size;
private List<Filter> filters = new ArrayList<>(); private List<IFilter> filters = new ArrayList<>();
private List<FilterTab> tabs = new ArrayList<>(); private List<IGridTab> tabs = new ArrayList<>();
private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, null) { private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, null) {
@Override @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
@@ -100,7 +100,7 @@ public class WirelessGrid implements IGrid {
@Override @Override
public String getGuiTitle() { public String getGuiTitle() {
return "gui.refinedstorage:wireless_grid"; return "gui.refinedstorage:grid";
} }
@Override @Override
@@ -188,25 +188,20 @@ public class WirelessGrid implements IGrid {
} }
@Override @Override
public List<Filter> getFilters() { public List<IFilter> getFilters() {
return filters; return filters;
} }
@Override @Override
public List<FilterTab> getTabs() { public List<IGridTab> getTabs() {
return tabs; return tabs;
} }
@Override @Override
public ItemHandlerBase getFilter() { public IItemHandlerModifiable getFilter() {
return filter; return filter;
} }
@Override
public TileDataParameter<Integer, ?> getRedstoneModeConfig() {
return null;
}
@Override @Override
public InventoryCrafting getCraftingMatrix() { public InventoryCrafting getCraftingMatrix() {
return null; return null;

View File

@@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.api.storage.IStorageDisk;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandlerModifiable;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.List; import java.util.List;
@@ -23,5 +24,5 @@ public interface IPortableGrid {
ItemHandlerBase getDisk(); ItemHandlerBase getDisk();
ItemHandlerBase getFilter(); IItemHandlerModifiable getFilter();
} }

View File

@@ -2,27 +2,26 @@ package com.raoulvdberge.refinedstorage.tile.grid.portable;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.storage.AccessType; import com.raoulvdberge.refinedstorage.api.storage.AccessType;
import com.raoulvdberge.refinedstorage.api.storage.IStorageDisk; import com.raoulvdberge.refinedstorage.api.storage.IStorageDisk;
import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskProvider; import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskProvider;
import com.raoulvdberge.refinedstorage.api.storage.StorageDiskType; import com.raoulvdberge.refinedstorage.api.storage.StorageDiskType;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.ItemGridHandlerPortable; import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.ItemGridHandlerPortable;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.NetworkNodeDiskDrive; import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.NetworkNodeDiskDrive;
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItemPortable; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItemPortable;
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskItemPortable; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskItemPortable;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter;
import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid; import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid;
import com.raoulvdberge.refinedstorage.item.ItemEnergyItem; import com.raoulvdberge.refinedstorage.item.ItemEnergyItem;
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid; import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
import com.raoulvdberge.refinedstorage.network.MessageGridSettingsUpdate; import com.raoulvdberge.refinedstorage.network.MessageGridSettingsUpdate;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@@ -33,6 +32,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.items.IItemHandlerModifiable;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@@ -41,7 +41,7 @@ import java.util.Collections;
import java.util.List; import java.util.List;
public class PortableGrid implements IGrid, IPortableGrid { public class PortableGrid implements IGrid, IPortableGrid {
public static final int GRID_TYPE = 2; public static int ID;
@Nullable @Nullable
private IStorageDisk<ItemStack> storage; private IStorageDisk<ItemStack> storage;
@@ -57,8 +57,8 @@ public class PortableGrid implements IGrid, IPortableGrid {
private int tabSelected; private int tabSelected;
private int size; private int size;
private List<Filter> filters = new ArrayList<>(); private List<IFilter> filters = new ArrayList<>();
private List<FilterTab> tabs = new ArrayList<>(); private List<IGridTab> tabs = new ArrayList<>();
private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, null) { private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, null) {
@Override @Override
protected void onContentsChanged(int slot) { protected void onContentsChanged(int slot) {
@@ -290,25 +290,20 @@ public class PortableGrid implements IGrid, IPortableGrid {
} }
@Override @Override
public List<Filter> getFilters() { public List<IFilter> getFilters() {
return filters; return filters;
} }
@Override @Override
public List<FilterTab> getTabs() { public List<IGridTab> getTabs() {
return tabs; return tabs;
} }
@Override @Override
public ItemHandlerBase getFilter() { public IItemHandlerModifiable getFilter() {
return filter; return filter;
} }
@Override
public TileDataParameter<Integer, ?> getRedstoneModeConfig() {
return null;
}
@Override @Override
public InventoryCrafting getCraftingMatrix() { public InventoryCrafting getCraftingMatrix() {
return null; return null;

View File

@@ -3,15 +3,18 @@ package com.raoulvdberge.refinedstorage.tile.grid.portable;
import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.GridType;
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
import com.raoulvdberge.refinedstorage.api.network.grid.IGridTab;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.storage.*; import com.raoulvdberge.refinedstorage.api.storage.*;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.ItemGridHandlerPortable; import com.raoulvdberge.refinedstorage.api.util.IFilter;
import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.ItemGridHandlerPortable;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.NetworkNodeDiskDrive; import com.raoulvdberge.refinedstorage.apiimpl.network.node.diskdrive.NetworkNodeDiskDrive;
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItemPortable; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItemPortable;
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskItemPortable; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskItemPortable;
import com.raoulvdberge.refinedstorage.block.BlockPortableGrid; import com.raoulvdberge.refinedstorage.block.BlockPortableGrid;
import com.raoulvdberge.refinedstorage.block.GridType;
import com.raoulvdberge.refinedstorage.block.PortableGridDiskState; import com.raoulvdberge.refinedstorage.block.PortableGridDiskState;
import com.raoulvdberge.refinedstorage.block.PortableGridType; import com.raoulvdberge.refinedstorage.block.PortableGridType;
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
@@ -23,14 +26,11 @@ import com.raoulvdberge.refinedstorage.inventory.ItemHandlerStorage;
import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid; import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid;
import com.raoulvdberge.refinedstorage.item.ItemEnergyItem; import com.raoulvdberge.refinedstorage.item.ItemEnergyItem;
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid; import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
import com.raoulvdberge.refinedstorage.item.filter.Filter;
import com.raoulvdberge.refinedstorage.item.filter.FilterTab;
import com.raoulvdberge.refinedstorage.tile.TileBase; import com.raoulvdberge.refinedstorage.tile.TileBase;
import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable; import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable;
import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode;
import com.raoulvdberge.refinedstorage.tile.data.TileDataManager; import com.raoulvdberge.refinedstorage.tile.data.TileDataManager;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
import com.raoulvdberge.refinedstorage.tile.grid.IGrid;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
import com.raoulvdberge.refinedstorage.util.WorldUtils; import com.raoulvdberge.refinedstorage.util.WorldUtils;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@@ -46,6 +46,7 @@ import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@@ -111,8 +112,8 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
private int tabSelected; private int tabSelected;
private int size; private int size;
private List<Filter> filters = new ArrayList<>(); private List<IFilter> filters = new ArrayList<>();
private List<FilterTab> tabs = new ArrayList<>(); private List<IGridTab> tabs = new ArrayList<>();
private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, new ItemHandlerListenerTile(this)); private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, new ItemHandlerListenerTile(this));
private ItemHandlerBase disk = new ItemHandlerBase(1, new ItemHandlerListenerTile(this), s -> NetworkNodeDiskDrive.VALIDATOR_STORAGE_DISK.test(s) && ((IStorageDiskProvider) s.getItem()).create(s).getType() == StorageDiskType.ITEMS) { private ItemHandlerBase disk = new ItemHandlerBase(1, new ItemHandlerListenerTile(this), s -> NetworkNodeDiskDrive.VALIDATOR_STORAGE_DISK.test(s) && ((IStorageDiskProvider) s.getItem()).create(s).getType() == StorageDiskType.ITEMS) {
@Override @Override
@@ -353,25 +354,20 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid,
} }
@Override @Override
public List<Filter> getFilters() { public List<IFilter> getFilters() {
return filters; return filters;
} }
@Override @Override
public List<FilterTab> getTabs() { public List<IGridTab> getTabs() {
return tabs; return tabs;
} }
@Override @Override
public ItemHandlerBase getFilter() { public IItemHandlerModifiable getFilter() {
return filter; return filter;
} }
@Override
public TileDataParameter<Integer, TilePortableGrid> getRedstoneModeConfig() {
return REDSTONE_MODE;
}
@Override @Override
public InventoryCrafting getCraftingMatrix() { public InventoryCrafting getCraftingMatrix() {
return null; return null;

View File

@@ -6,8 +6,9 @@ gui.refinedstorage:controller.0=Controller
gui.refinedstorage:controller.1=Creative Controller gui.refinedstorage:controller.1=Creative Controller
gui.refinedstorage:grid=Grid gui.refinedstorage:grid=Grid
gui.refinedstorage:grid.craft=Craft gui.refinedstorage:grid.craft=Craft
gui.refinedstorage:crafting_grid=Crafting Grid
gui.refinedstorage:pattern_grid=Pattern Grid
gui.refinedstorage:grid.pattern_create=Create Pattern gui.refinedstorage:grid.pattern_create=Create Pattern
gui.refinedstorage:wireless_grid=Wireless Grid
gui.refinedstorage:fluid_grid=Fluid Grid gui.refinedstorage:fluid_grid=Fluid Grid
gui.refinedstorage:disk_drive=Drive gui.refinedstorage:disk_drive=Drive
gui.refinedstorage:disk_drive.disks=Disks gui.refinedstorage:disk_drive.disks=Disks