diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java b/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java index f03e75216..bf39133fa 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java @@ -1,7 +1,6 @@ package com.raoulvdberge.refinedstorage; import com.raoulvdberge.refinedstorage.item.*; -import com.raoulvdberge.refinedstorage.item.filter.ItemFilter; public final class RSItems { public static final ItemStorageDisk STORAGE_DISK = new ItemStorageDisk(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java b/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java index e448add9e..68f99cc70 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/IRSAPI.java @@ -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.registry.ICraftingTaskRegistry; 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.INetworkNodeManager; 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.util.IComparer; import com.raoulvdberge.refinedstorage.api.util.IStackList; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fluids.FluidStack; @@ -106,6 +109,11 @@ public interface IRSAPI { @Nonnull 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. * diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetwork.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetwork.java index f59cbad49..706814bde 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetwork.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/INetwork.java @@ -1,8 +1,8 @@ package com.raoulvdberge.refinedstorage.api.network; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; -import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; -import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; +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.readerwriter.IReaderWriterChannel; import com.raoulvdberge.refinedstorage.api.network.security.ISecurityManager; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/GridType.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/GridType.java similarity index 90% rename from src/main/java/com/raoulvdberge/refinedstorage/block/GridType.java rename to src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/GridType.java index 65a3446ef..3de628a43 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/GridType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/GridType.java @@ -1,4 +1,4 @@ -package com.raoulvdberge.refinedstorage.block; +package com.raoulvdberge.refinedstorage.api.network.grid; import net.minecraft.util.IStringSerializable; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/IGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGrid.java old mode 100755 new mode 100644 similarity index 69% rename from src/main/java/com/raoulvdberge/refinedstorage/tile/grid/IGrid.java rename to src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGrid.java index 80559a282..0b57689cf --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/IGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGrid.java @@ -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.grid.IFluidGridHandler; -import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler; -import com.raoulvdberge.refinedstorage.block.GridType; -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 com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler; +import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler; +import com.raoulvdberge.refinedstorage.api.util.IFilter; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.InventoryCraftResult; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; +import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; import java.util.List; @@ -58,13 +55,11 @@ public interface IGrid { void onTabSelectionChanged(int tab); - List getFilters(); + List getFilters(); - List getTabs(); + List getTabs(); - ItemHandlerBase getFilter(); - - TileDataParameter getRedstoneModeConfig(); + IItemHandlerModifiable getFilter(); InventoryCrafting getCraftingMatrix(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGridTab.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGridTab.java new file mode 100644 index 000000000..2d2e56e23 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IGridTab.java @@ -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 getFilters(); + + String getName(); + + ItemStack getIcon(); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IFluidGridHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/handler/IFluidGridHandler.java old mode 100755 new mode 100644 similarity index 95% rename from src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IFluidGridHandler.java rename to src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/handler/IFluidGridHandler.java index 09ee5e156..328f50533 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IFluidGridHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/handler/IFluidGridHandler.java @@ -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 net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IItemGridHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/handler/IItemGridHandler.java old mode 100755 new mode 100644 similarity index 97% rename from src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IItemGridHandler.java rename to src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/handler/IItemGridHandler.java index b9c18538a..e0fce94d8 --- a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/IItemGridHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/handler/IItemGridHandler.java @@ -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 net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/wireless/IWirelessGridFactory.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/wireless/IWirelessGridFactory.java new file mode 100644 index 000000000..8226cf76d --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/wireless/IWirelessGridFactory.java @@ -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); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/wireless/IWirelessGridRegistry.java b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/wireless/IWirelessGridRegistry.java new file mode 100644 index 000000000..31e00e71c --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/network/grid/wireless/IWirelessGridRegistry.java @@ -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); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/api/util/IFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/api/util/IFilter.java new file mode 100644 index 000000000..c6580501b --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/api/util/IFilter.java @@ -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(); +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java index 5a56365ca..86f528b38 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/API.java @@ -1,5 +1,7 @@ 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.RSAPIInject; 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.registry.ICraftingTaskRegistry; 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.INetworkNodeManager; 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.network.NetworkNodeManager; 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.readerwriter.ReaderWriterChannel; 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.StackListItem; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.storage.MapStorage; @@ -59,6 +65,7 @@ public class API implements IRSAPI { private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry(); private ICraftingPreviewElementRegistry craftingPreviewElementRegistry = new CraftingPreviewElementRegistry(); private IReaderWriterHandlerRegistry readerWriterHandlerRegistry = new ReaderWriterHandlerRegistry(); + private IWirelessGridRegistry gridRegistry = new WirelessGridRegistry(); public static IRSAPI instance() { return INSTANCE; @@ -173,6 +180,17 @@ public class API implements IRSAPI { 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 public void discoverNode(World world, BlockPos pos) { for (EnumFacing facing : EnumFacing.VALUES) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridTab.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridTab.java new file mode 100644 index 000000000..6e7816d69 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/GridTab.java @@ -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 filters; + private String name; + private ItemStack icon; + + public GridTab(List filters, String name, ItemStack icon) { + this.filters = filters; + this.name = name; + this.icon = icon; + } + + @Override + public List getFilters() { + return filters; + } + + @Override + public String getName() { + return name; + } + + @Override + public ItemStack getIcon() { + return icon; + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/FluidGridHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java old mode 100755 new mode 100644 similarity index 96% rename from src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/FluidGridHandler.java rename to src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java index 0fa5a925f..b27f0ad08 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/FluidGridHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/FluidGridHandler.java @@ -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.grid.IFluidGridHandler; +import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler; import com.raoulvdberge.refinedstorage.api.network.security.Permission; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.util.StackUtils; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java old mode 100755 new mode 100644 similarity index 98% rename from src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandler.java rename to src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java index 858c83990..86f971400 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandler.java @@ -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.api.autocrafting.ICraftingManager; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; 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.security.Permission; import com.raoulvdberge.refinedstorage.api.util.IStackList; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandlerPortable.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java similarity index 96% rename from src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandlerPortable.java rename to src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java index 59ec4324f..0755d3a88 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/ItemGridHandlerPortable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/handler/ItemGridHandlerPortable.java @@ -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.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.apiimpl.API; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.IPortableGrid; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridFactoryPortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridFactoryPortableGrid.java new file mode 100644 index 000000000..f3ffbb00f --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridFactoryPortableGrid.java @@ -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)); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridFactoryWirelessFluidGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridFactoryWirelessFluidGrid.java new file mode 100644 index 000000000..da045a302 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridFactoryWirelessFluidGrid.java @@ -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)); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridFactoryWirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridFactoryWirelessGrid.java new file mode 100644 index 000000000..5d4504828 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridFactoryWirelessGrid.java @@ -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)); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridRegistry.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridRegistry.java new file mode 100644 index 000000000..c7c242990 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/grid/wireless/WirelessGridRegistry.java @@ -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 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); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java index 24e7261cf..4049ce48b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessFluidGrid.java @@ -1,11 +1,11 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; import com.raoulvdberge.refinedstorage.api.network.security.Permission; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid; import com.raoulvdberge.refinedstorage.util.WorldUtils; @@ -45,7 +45,7 @@ public class NetworkItemWirelessFluidGrid implements INetworkItem { 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); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java index cf4aaf804..a91636f19 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/item/NetworkItemWirelessGrid.java @@ -1,11 +1,11 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.item; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; import com.raoulvdberge.refinedstorage.api.network.security.Permission; +import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid; import com.raoulvdberge.refinedstorage.util.WorldUtils; @@ -45,7 +45,7 @@ public class NetworkItemWirelessGrid implements INetworkItem { 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); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java index 08f95c65b..975c7162a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java @@ -2,9 +2,9 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node; import com.raoulvdberge.refinedstorage.RS; 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.ItemHandlerListenerNetworkNode; -import com.raoulvdberge.refinedstorage.item.filter.Filter; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor; import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor; 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 boolean viewAutomated = true; - private List filters = new ArrayList<>(); + private List filters = new ArrayList<>(); private ItemHandlerListenerNetworkNode filterListener = new ItemHandlerListenerNetworkNode(this); private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), slot -> { filterListener.accept(slot); @@ -86,7 +86,7 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting } @Override - public List getFilters() { + public List getFilters() { return filters; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java index 9119233fc..5d2e61f99 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeExporter.java @@ -9,8 +9,8 @@ import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade; +import com.raoulvdberge.refinedstorage.item.ItemFilter; import com.raoulvdberge.refinedstorage.item.ItemUpgrade; -import com.raoulvdberge.refinedstorage.item.filter.ItemFilter; import com.raoulvdberge.refinedstorage.tile.TileExporter; import com.raoulvdberge.refinedstorage.tile.config.IComparable; import com.raoulvdberge.refinedstorage.tile.config.IType; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java index 83f19fc48..65a58aab5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeGrid.java @@ -3,21 +3,21 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSBlocks; 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.util.IComparer; +import com.raoulvdberge.refinedstorage.api.util.IFilter; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.block.BlockGrid; -import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.inventory.ItemValidatorBasic; 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.TileDataParameter; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.entity.player.EntityPlayer; @@ -31,6 +31,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.wrapper.CombinedInvWrapper; 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; } }; - private List filters = new ArrayList<>(); - private List tabs = new ArrayList<>(); + private List filters = new ArrayList<>(); + private List tabs = new ArrayList<>(); private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, new ItemHandlerListenerNetworkNode(this)); private GridType type; @@ -201,7 +202,18 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { @Override 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() { @@ -209,17 +221,17 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { } @Override - public ItemHandlerBase getFilter() { + public IItemHandlerModifiable getFilter() { return filter; } @Override - public List getFilters() { + public List getFilters() { return filters; } @Override - public List getTabs() { + public List getTabs() { return tabs; } @@ -246,17 +258,23 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { @Override 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; } // First try to empty the crafting matrix - for (int i = 0; i < matrix.getSizeInventory(); ++i) { - ItemStack slot = matrix.getStackInSlot(i); + for (int i = 0; i < grid.getCraftingMatrix().getSizeInventory(); ++i) { + ItemStack slot = grid.getCraftingMatrix().getStackInSlot(i); if (!slot.isEmpty()) { // 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 (network != 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 - for (int i = 0; i < matrix.getSizeInventory(); ++i) { + for (int i = 0; i < grid.getCraftingMatrix().getSizeInventory(); ++i) { if (recipe[i] != null) { ItemStack[] possibilities = recipe[i]; // If we are a crafting grid - if (getType() == GridType.CRAFTING) { + if (grid.getType() == GridType.CRAFTING) { boolean found = false; // 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); if (took != null) { - matrix.setInventorySlotContents(i, StackUtils.nullToEmpty(took)); + grid.getCraftingMatrix().setInventorySlotContents(i, StackUtils.nullToEmpty(took)); found = true; @@ -305,7 +323,7 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { for (ItemStack possibility : possibilities) { 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))) { - 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); @@ -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 - matrix.setInventorySlotContents(i, possibilities[0]); + grid.getCraftingMatrix().setInventorySlotContents(i, possibilities[0]); } } } @@ -345,9 +363,17 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { @Override public void onCrafted(EntityPlayer player) { - NonNullList 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 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); if (i < remainder.size() && !remainder.get(i).isEmpty()) { @@ -374,27 +400,33 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { } } - onCraftingMatrixChanged(); + grid.onCraftingMatrixChanged(); } @Override public void onCraftedShift(EntityPlayer player) { + onCraftedShift(this, player); + } + + public static void onCraftedShift(IGrid grid, EntityPlayer player) { List craftedItemsList = new ArrayList<>(); int craftedItems = 0; - ItemStack crafted = result.getStackInSlot(0); + ItemStack crafted = grid.getCraftingResult().getStackInSlot(0); while (true) { - onCrafted(player); + grid.onCrafted(player); craftedItemsList.add(crafted.copy()); 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; } } + INetwork network = grid.getNetwork(); + for (ItemStack craftedItem : craftedItemsList) { if (!player.inventory.addItemStackToInventory(craftedItem.copy())) { 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() { @@ -531,11 +563,6 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid { TileDataManager.setParameter(TileGrid.TAB_SELECTED, tab); } - @Override - public TileDataParameter getRedstoneModeConfig() { - return TileGrid.REDSTONE_MODE; - } - @Override public boolean hasConnectivityState() { return true; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/filter/Filter.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Filter.java similarity index 74% rename from src/main/java/com/raoulvdberge/refinedstorage/item/filter/Filter.java rename to src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Filter.java index a6eb75b8a..cdebe4ddf 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/filter/Filter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/util/Filter.java @@ -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; -public class Filter { +public class Filter implements IFilter { private ItemStack stack; private int compare; private int mode; @@ -15,18 +16,22 @@ public class Filter { this.modFilter = modFilter; } + @Override public ItemStack getStack() { return stack; } + @Override public int getCompare() { return compare; } + @Override public int getMode() { return mode; } + @Override public boolean isModFilter() { return modFilter; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java index 5e5f6c8f4..440ab4ddc 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/BlockGrid.java @@ -1,6 +1,7 @@ package com.raoulvdberge.refinedstorage.block; import com.raoulvdberge.refinedstorage.RSGui; +import com.raoulvdberge.refinedstorage.api.network.grid.GridType; import com.raoulvdberge.refinedstorage.item.ItemBlockBase; import com.raoulvdberge.refinedstorage.tile.grid.TileGrid; import net.minecraft.block.properties.PropertyEnum; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java index c65fcce0b..1e9c0c1b0 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/ContainerGrid.java @@ -1,15 +1,15 @@ package com.raoulvdberge.refinedstorage.container; import com.raoulvdberge.refinedstorage.RSItems; -import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; -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.handler.IFluidGridHandler; +import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskProvider; import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeGrid; -import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.container.slot.*; import com.raoulvdberge.refinedstorage.gui.grid.IGridDisplay; 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.portable.IPortableGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotGridCraftingResult.java b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotGridCraftingResult.java index 5c4502162..8ab19cfdd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotGridCraftingResult.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/container/slot/SlotGridCraftingResult.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.container.slot; +import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.SlotCrafting; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFilter.java index 106611e8d..ca251070a 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiFilter.java @@ -3,7 +3,7 @@ package com.raoulvdberge.refinedstorage.gui; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.api.util.IComparer; 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 net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiTextField; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java index b73105b61..3d3f66058 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiHandler.java @@ -1,6 +1,8 @@ package com.raoulvdberge.refinedstorage.gui; 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.container.*; 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.craftingmonitor.TileCraftingMonitor; 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.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 net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumHand; 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) { - ItemStack stack = player.getHeldItem(EnumHand.values()[hand]); - - 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 IGrid getGrid(EntityPlayer player, int hand, int controllerDimension, int id) { + return API.instance().getWirelessGridRegistry().get(id).create(player, EnumHand.values()[hand], controllerDimension); } - private GuiGrid getGridGui(EntityPlayer player, int hand, int controllerDimension, int type) { - IGrid grid = getGrid(player, hand, controllerDimension, type); + private GuiGrid getGridGui(EntityPlayer player, int hand, int controllerDimension, int id) { + IGrid grid = getGrid(player, hand, controllerDimension, id); GuiGrid gui = new GuiGrid(null, grid); gui.inventorySlots = new ContainerGrid(grid, gui, null, player); return gui; } - private ContainerGrid getGridContainer(EntityPlayer player, int hand, int controllerDimension, int type) { - return new ContainerGrid(getGrid(player, hand, controllerDimension, type), new GridDisplayDummy(), null, player); + private ContainerGrid getGridContainer(EntityPlayer player, int hand, int controllerDimension, int id) { + return new ContainerGrid(getGrid(player, hand, controllerDimension, id), new GridDisplayDummy(), null, player); } private WirelessCraftingMonitor getCraftingMonitor(EntityPlayer player, int hand, int controllerDimension) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java index ba48cd511..2ca081a30 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/GuiGrid.java @@ -5,9 +5,11 @@ import com.google.common.collect.ListMultimap; import com.google.common.collect.Multimaps; import com.raoulvdberge.refinedstorage.RS; 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.block.GridType; import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.gui.GuiBase; 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.integration.jei.IntegrationJEI; import com.raoulvdberge.refinedstorage.integration.jei.RSJEIPlugin; -import com.raoulvdberge.refinedstorage.item.filter.FilterTab; import com.raoulvdberge.refinedstorage.network.*; 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.portable.IPortableGrid; +import com.raoulvdberge.refinedstorage.tile.grid.portable.TilePortableGrid; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.GuiButton; 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); - if (grid.getRedstoneModeConfig() != null) { - addSideButton(new SideButtonRedstoneMode(this, grid.getRedstoneModeConfig())); + if (grid instanceof NetworkNodeGrid || grid instanceof TilePortableGrid) { + addSideButton(new SideButtonRedstoneMode(this, grid instanceof NetworkNodeGrid ? TileGrid.REDSTONE_MODE : TilePortableGrid.REDSTONE_MODE)); } 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; } - 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); 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) { tabHovering = -1; - for (FilterTab tab : grid.getTabs()) { + for (IGridTab tab : grid.getTabs()) { 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()); - for (FilterTab tab : grid.getTabs()) { + for (IGridTab tab : grid.getTabs()) { drawTab(tab, true, x, y, mouseX, mouseY); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilter.java index 1a1370e96..1916c81c2 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterFilter.java @@ -1,19 +1,19 @@ package com.raoulvdberge.refinedstorage.gui.grid.filtering; +import com.raoulvdberge.refinedstorage.api.util.IFilter; import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.gui.grid.stack.GridStackItem; import com.raoulvdberge.refinedstorage.gui.grid.stack.IGridStack; -import com.raoulvdberge.refinedstorage.item.filter.Filter; -import com.raoulvdberge.refinedstorage.item.filter.ItemFilter; +import com.raoulvdberge.refinedstorage.item.ItemFilter; import net.minecraft.item.ItemStack; import java.util.List; import java.util.function.Predicate; public class GridFilterFilter implements Predicate { - private List filters; + private List filters; - public GridFilterFilter(List filters) { + public GridFilterFilter(List filters) { this.filters = filters; } @@ -22,14 +22,14 @@ public class GridFilterFilter implements Predicate { return accepts(filters, ((GridStackItem) stack).getStack(), stack.getModId()); } - public static boolean accepts(List filters, ItemStack stack, String stackModId) { + public static boolean accepts(List filters, ItemStack stack, String stackModId) { if (filters.isEmpty()) { return true; } int lastMode = ItemFilter.MODE_WHITELIST; - for (Filter filter : filters) { + for (IFilter filter : filters) { lastMode = filter.getMode(); if (filter.isModFilter()) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterParser.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterParser.java index d25451433..9d0d81997 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterParser.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/grid/filtering/GridFilterParser.java @@ -1,16 +1,16 @@ 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.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.List; import java.util.function.Predicate; public final class GridFilterParser { - public static List> getFilters(IGrid grid, String query, List filters) { + public static List> getFilters(IGrid grid, String query, List filters) { List> gridFilters = new LinkedList<>(); for (String part : query.toLowerCase().trim().split(" ")) { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSize.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSize.java index 1afc508bf..170147849 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSize.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSize.java @@ -1,8 +1,8 @@ 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.gui.GuiBase; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import net.minecraft.util.text.TextFormatting; public class SideButtonGridSize extends SideButton { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java index fc5e6a71b..08ede7feb 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSortingDirection.java @@ -1,8 +1,8 @@ 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.gui.GuiBase; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import net.minecraft.util.text.TextFormatting; public class SideButtonGridSortingDirection extends SideButton { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java index 90329aa51..e73ef5d4e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridSortingType.java @@ -1,9 +1,9 @@ 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.block.GridType; import com.raoulvdberge.refinedstorage.gui.GuiBase; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import net.minecraft.util.text.TextFormatting; public class SideButtonGridSortingType extends SideButton { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridViewType.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridViewType.java index f3764de7f..c68b85a87 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridViewType.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/sidebutton/SideButtonGridViewType.java @@ -1,8 +1,8 @@ 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.gui.GuiBase; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import net.minecraft.util.text.TextFormatting; public class SideButtonGridViewType extends SideButton { diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/IntegrationCraftingTweaks.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/IntegrationCraftingTweaks.java index f36062a71..948465ab4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/IntegrationCraftingTweaks.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/craftingtweaks/IntegrationCraftingTweaks.java @@ -2,7 +2,7 @@ package com.raoulvdberge.refinedstorage.integration.craftingtweaks; import com.google.common.base.Function; 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.slot.SlotGridCrafting; import net.minecraft.nbt.NBTTagCompound; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeTransferHandlerGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeTransferHandlerGrid.java index 005e99bb6..5b457240b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeTransferHandlerGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/jei/RecipeTransferHandlerGrid.java @@ -1,12 +1,12 @@ package com.raoulvdberge.refinedstorage.integration.jei; 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.block.GridType; import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.network.MessageGridProcessingTransfer; import com.raoulvdberge.refinedstorage.network.MessageGridTransfer; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import mezz.jei.api.gui.IGuiIngredient; import mezz.jei.api.gui.IRecipeLayout; import mezz.jei.api.recipe.transfer.IRecipeTransferError; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFilter.java index 8d4a733a6..4c2f6707b 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFilter.java @@ -1,10 +1,12 @@ package com.raoulvdberge.refinedstorage.inventory; 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.item.filter.Filter; -import com.raoulvdberge.refinedstorage.item.filter.FilterTab; -import com.raoulvdberge.refinedstorage.item.filter.ItemFilter; +import com.raoulvdberge.refinedstorage.item.ItemFilter; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.relauncher.Side; @@ -15,10 +17,10 @@ import java.util.List; import java.util.function.Consumer; public class ItemHandlerFilter extends ItemHandlerBase { - private List filters; - private List tabs; + private List filters; + private List tabs; - public ItemHandlerFilter(List filters, List tabs, @Nullable Consumer listener) { + public ItemHandlerFilter(List filters, List tabs, @Nullable Consumer listener) { super(4, listener, new ItemValidatorBasic(RSItems.FILTER)); this.filters = filters; @@ -42,7 +44,7 @@ public class ItemHandlerFilter extends ItemHandlerBase { ItemHandlerFilterItems items = new ItemHandlerFilterItems(filter); - List filters = new ArrayList<>(); + List filters = new ArrayList<>(); for (ItemStack item : items.getFilteredItems()) { if (!item.isEmpty()) { @@ -55,7 +57,7 @@ public class ItemHandlerFilter extends ItemHandlerBase { if (icon.isEmpty()) { this.filters.addAll(filters); } else { - tabs.add(new FilterTab(filters, ItemFilter.getName(filter), icon)); + tabs.add(new GridTab(filters, ItemFilter.getName(filter), icon)); } } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFilterIcon.java b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFilterIcon.java index e8c126dfb..0414808d8 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFilterIcon.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/inventory/ItemHandlerFilterIcon.java @@ -1,6 +1,6 @@ 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.minecraftforge.items.ItemStackHandler; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBase.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBase.java index 72182cff5..25fcbb2c1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBase.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBase.java @@ -10,13 +10,17 @@ public abstract class ItemBase extends Item { public ItemBase(String name) { this.name = name; - setRegistryName(RS.ID, name); + setRegistryName(getDomain(), name); setCreativeTab(RS.INSTANCE.tab); } + protected String getDomain() { + return RS.ID; + } + @Override public String getUnlocalizedName() { - return "item." + RS.ID + ":" + name; + return "item." + getDomain() + ":" + name; } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockPortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockPortableGrid.java index 7a8122d05..19a730b11 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockPortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemBlockPortableGrid.java @@ -1,8 +1,7 @@ package com.raoulvdberge.refinedstorage.item; -import com.raoulvdberge.refinedstorage.RS; 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 net.minecraft.client.resources.I18n; import net.minecraft.client.util.ITooltipFlag; @@ -28,7 +27,7 @@ public class ItemBlockPortableGrid extends ItemBlockEnergyItem { ItemStack stack = player.getHeldItem(hand); 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); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/filter/ItemFilter.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFilter.java similarity index 97% rename from src/main/java/com/raoulvdberge/refinedstorage/item/filter/ItemFilter.java rename to src/main/java/com/raoulvdberge/refinedstorage/item/ItemFilter.java index 7b08772cd..baaca8d2c 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/filter/ItemFilter.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemFilter.java @@ -1,12 +1,10 @@ -package com.raoulvdberge.refinedstorage.item.filter; +package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSGui; import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.api.util.IComparer; 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.util.ITooltipFlag; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessGrid.java index d95d885af..1baa040ab 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemWirelessGrid.java @@ -10,6 +10,10 @@ import net.minecraft.item.ItemStack; import javax.annotation.Nonnull; public class ItemWirelessGrid extends ItemNetworkItem { + public ItemWirelessGrid(String name) { + super(name); + } + public ItemWirelessGrid() { super("wireless_grid"); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/filter/FilterTab.java b/src/main/java/com/raoulvdberge/refinedstorage/item/filter/FilterTab.java deleted file mode 100644 index 4c1df1b12..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/filter/FilterTab.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.raoulvdberge.refinedstorage.item.filter; - -import net.minecraft.item.ItemStack; - -import java.util.List; - -public class FilterTab { - private List filters; - private String name; - private ItemStack icon; - - public FilterTab(List filters, String name, ItemStack icon) { - this.filters = filters; - this.name = name; - this.icon = icon; - } - - public List getFilters() { - return filters; - } - - public String getName() { - return name; - } - - public ItemStack getIcon() { - return icon; - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageFilterUpdate.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageFilterUpdate.java index 9922ea9cc..2f7407158 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageFilterUpdate.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageFilterUpdate.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.network; 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 net.minecraft.entity.player.EntityPlayerMP; import net.minecraftforge.fml.common.network.ByteBufUtils; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridClear.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridClear.java index 46eb8144c..e516514aa 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridClear.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridClear.java @@ -1,10 +1,10 @@ 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.apiimpl.network.node.NetworkNodeGrid; -import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import com.raoulvdberge.refinedstorage.util.StackUtils; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingPreview.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingPreview.java index bcbff6be9..6151ae4b1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingPreview.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingPreview.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.network; +import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingStart.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingStart.java index 3287a3659..95f4c6671 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingStart.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridCraftingStart.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.network; +import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidInsertHeld.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidInsertHeld.java index 51b568ae4..bf423a6eb 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidInsertHeld.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidInsertHeld.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.network; +import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidPull.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidPull.java index 81d39e141..b2cbd493c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidPull.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridFluidPull.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.network; +import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemInsertHeld.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemInsertHeld.java index c4f5e4cfb..30fbc3c54 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemInsertHeld.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemInsertHeld.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.network; +import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemPull.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemPull.java index 894ba3353..64dfab683 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemPull.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridItemPull.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.network; +import com.raoulvdberge.refinedstorage.api.network.grid.IGrid; import com.raoulvdberge.refinedstorage.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridPatternCreate.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridPatternCreate.java index 35ce9abf8..bcd4c9931 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridPatternCreate.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridPatternCreate.java @@ -1,6 +1,6 @@ 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 io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridProcessingTransfer.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridProcessingTransfer.java index e9f1ab8dd..277489fd6 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridProcessingTransfer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridProcessingTransfer.java @@ -1,10 +1,10 @@ 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.block.GridType; import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import com.raoulvdberge.refinedstorage.util.StackUtils; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridSettingsUpdate.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridSettingsUpdate.java index 0a846b934..1776af485 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridSettingsUpdate.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridSettingsUpdate.java @@ -1,8 +1,8 @@ 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.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessGrid; import com.raoulvdberge.refinedstorage.tile.grid.portable.PortableGrid; import io.netty.buffer.ByteBuf; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridTransfer.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridTransfer.java index 32882f9da..e6c8953b0 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridTransfer.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageGridTransfer.java @@ -1,8 +1,8 @@ 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.tile.grid.IGrid; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageWirelessFluidGridSettingsUpdate.java b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageWirelessFluidGridSettingsUpdate.java index 0faef4e6d..219387db7 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/network/MessageWirelessFluidGridSettingsUpdate.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/network/MessageWirelessFluidGridSettingsUpdate.java @@ -1,8 +1,8 @@ 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.container.ContainerGrid; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import com.raoulvdberge.refinedstorage.tile.grid.WirelessFluidGrid; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java index bee517bfc..697a7a86e 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyClient.java @@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.RSKeyBindings; +import com.raoulvdberge.refinedstorage.api.network.grid.GridType; import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern; import com.raoulvdberge.refinedstorage.block.*; import com.raoulvdberge.refinedstorage.gui.GuiCraftingPreview; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java index 1481ffa11..fa1e9a1d4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java @@ -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.registry.CraftingTaskFactory; 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.readerwriter.ReaderWriterHandlerFluids; 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.TileDataManager; 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.util.StackUtils; import net.minecraft.block.Block; @@ -214,6 +220,10 @@ public class ProxyCommon { 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() { @Nonnull @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index 51f8625ad..a8139f762 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -6,8 +6,10 @@ import com.raoulvdberge.refinedstorage.RSBlocks; import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager; import com.raoulvdberge.refinedstorage.api.network.INetwork; import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph; -import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler; -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.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.node.INetworkNode; 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.autocrafting.CraftingManager; import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeGraph; -import com.raoulvdberge.refinedstorage.apiimpl.network.grid.FluidGridHandler; -import com.raoulvdberge.refinedstorage.apiimpl.network.grid.ItemGridHandler; +import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.FluidGridHandler; +import com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler.ItemGridHandler; 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.StorageItemExternal; @@ -31,7 +33,6 @@ import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheFluid; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItem; import com.raoulvdberge.refinedstorage.block.BlockController; import com.raoulvdberge.refinedstorage.block.ControllerType; -import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.capability.CapabilityNetworkNodeProxy; import com.raoulvdberge.refinedstorage.container.ContainerCraftingMonitor; 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.data.RSSerializers; 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.WorldUtils; import net.minecraft.block.state.IBlockState; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java index af28f6aa4..6651d5277 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/config/IFilterable.java @@ -4,7 +4,7 @@ import com.raoulvdberge.refinedstorage.RSItems; import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy; import com.raoulvdberge.refinedstorage.apiimpl.API; 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 net.minecraft.item.ItemStack; import net.minecraft.network.datasync.DataSerializers; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java index f3e9f25e6..eda8b02f1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/ICraftingMonitor.java @@ -1,8 +1,8 @@ package com.raoulvdberge.refinedstorage.tile.craftingmonitor; 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.item.filter.Filter; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.math.BlockPos; @@ -22,7 +22,7 @@ public interface ICraftingMonitor { List getTasks(); - List getFilters(); + List getFilters(); ItemHandlerBase getFilter(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java index bb3a7906b..85e4b6af2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/craftingmonitor/WirelessCraftingMonitor.java @@ -2,10 +2,10 @@ package com.raoulvdberge.refinedstorage.tile.craftingmonitor; import com.raoulvdberge.refinedstorage.RS; 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.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor; -import com.raoulvdberge.refinedstorage.item.filter.Filter; import com.raoulvdberge.refinedstorage.network.MessageWirelessCraftingMonitorViewAutomated; import com.raoulvdberge.refinedstorage.tile.TileController; import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter; @@ -28,7 +28,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { private BlockPos controller; private boolean viewAutomated; - private List filters = new ArrayList<>(); + private List filters = new ArrayList<>(); private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), null) { @Override protected void onContentsChanged(int slot) { @@ -95,7 +95,7 @@ public class WirelessCraftingMonitor implements ICraftingMonitor { } @Override - public List getFilters() { + public List getFilters() { return filters; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java index d44167972..d0f9a0fe5 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/TileGrid.java @@ -1,7 +1,7 @@ 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.block.GridType; import com.raoulvdberge.refinedstorage.container.ContainerGrid; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.tile.TileNode; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java index 130628138..6d4faa5bd 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessFluidGrid.java @@ -2,14 +2,13 @@ package com.raoulvdberge.refinedstorage.tile.grid; import com.raoulvdberge.refinedstorage.RS; 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.inventory.ItemHandlerBase; 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.tile.data.TileDataParameter; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.InventoryCraftResult; @@ -19,13 +18,14 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; +import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; import java.util.Collections; import java.util.List; public class WirelessFluidGrid implements IGrid { - public static final int GRID_TYPE = 1; + public static int ID; private ItemStack stack; @@ -154,22 +154,17 @@ public class WirelessFluidGrid implements IGrid { } @Override - public List getFilters() { + public List getFilters() { return Collections.emptyList(); } @Override - public List getTabs() { + public List getTabs() { return Collections.emptyList(); } @Override - public ItemHandlerBase getFilter() { - return null; - } - - @Override - public TileDataParameter getRedstoneModeConfig() { + public IItemHandlerModifiable getFilter() { return null; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java index a1b117132..520ed463b 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/WirelessGrid.java @@ -2,15 +2,14 @@ package com.raoulvdberge.refinedstorage.tile.grid; import com.raoulvdberge.refinedstorage.RS; 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.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter; 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.tile.data.TileDataParameter; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; @@ -22,17 +21,18 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; +import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; 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 int viewType; @@ -42,8 +42,8 @@ public class WirelessGrid implements IGrid { private int tabSelected; private int size; - private List filters = new ArrayList<>(); - private List tabs = new ArrayList<>(); + private List filters = new ArrayList<>(); + private List tabs = new ArrayList<>(); private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, null) { @Override protected void onContentsChanged(int slot) { @@ -100,7 +100,7 @@ public class WirelessGrid implements IGrid { @Override public String getGuiTitle() { - return "gui.refinedstorage:wireless_grid"; + return "gui.refinedstorage:grid"; } @Override @@ -188,25 +188,20 @@ public class WirelessGrid implements IGrid { } @Override - public List getFilters() { + public List getFilters() { return filters; } @Override - public List getTabs() { + public List getTabs() { return tabs; } @Override - public ItemHandlerBase getFilter() { + public IItemHandlerModifiable getFilter() { return filter; } - @Override - public TileDataParameter getRedstoneModeConfig() { - return null; - } - @Override public InventoryCrafting getCraftingMatrix() { return null; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/IPortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/IPortableGrid.java index 3903b8cab..1ee2925c1 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/IPortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/IPortableGrid.java @@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.api.storage.IStorageDisk; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nullable; import java.util.List; @@ -23,5 +24,5 @@ public interface IPortableGrid { ItemHandlerBase getDisk(); - ItemHandlerBase getFilter(); + IItemHandlerModifiable getFilter(); } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java index 93d6dcbe3..970319400 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/PortableGrid.java @@ -2,27 +2,26 @@ package com.raoulvdberge.refinedstorage.tile.grid.portable; import com.raoulvdberge.refinedstorage.RS; 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.IStorageDisk; import com.raoulvdberge.refinedstorage.api.storage.IStorageDiskProvider; 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.storage.StorageCacheItemPortable; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskItemPortable; -import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBase; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.item.ItemBlockPortableGrid; import com.raoulvdberge.refinedstorage.item.ItemEnergyItem; 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.tile.data.TileDataParameter; -import com.raoulvdberge.refinedstorage.tile.grid.IGrid; import com.raoulvdberge.refinedstorage.util.StackUtils; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; @@ -33,6 +32,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -41,7 +41,7 @@ import java.util.Collections; import java.util.List; public class PortableGrid implements IGrid, IPortableGrid { - public static final int GRID_TYPE = 2; + public static int ID; @Nullable private IStorageDisk storage; @@ -57,8 +57,8 @@ public class PortableGrid implements IGrid, IPortableGrid { private int tabSelected; private int size; - private List filters = new ArrayList<>(); - private List tabs = new ArrayList<>(); + private List filters = new ArrayList<>(); + private List tabs = new ArrayList<>(); private ItemHandlerFilter filter = new ItemHandlerFilter(filters, tabs, null) { @Override protected void onContentsChanged(int slot) { @@ -290,25 +290,20 @@ public class PortableGrid implements IGrid, IPortableGrid { } @Override - public List getFilters() { + public List getFilters() { return filters; } @Override - public List getTabs() { + public List getTabs() { return tabs; } @Override - public ItemHandlerBase getFilter() { + public IItemHandlerModifiable getFilter() { return filter; } - @Override - public TileDataParameter getRedstoneModeConfig() { - return null; - } - @Override public InventoryCrafting getCraftingMatrix() { return null; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java index 34f7c1246..69ae23545 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/grid/portable/TilePortableGrid.java @@ -3,15 +3,18 @@ package com.raoulvdberge.refinedstorage.tile.grid.portable; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSBlocks; 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.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.diskdrive.NetworkNodeDiskDrive; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageCacheItemPortable; import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageDiskItemPortable; import com.raoulvdberge.refinedstorage.block.BlockPortableGrid; -import com.raoulvdberge.refinedstorage.block.GridType; import com.raoulvdberge.refinedstorage.block.PortableGridDiskState; import com.raoulvdberge.refinedstorage.block.PortableGridType; 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.ItemEnergyItem; 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.config.IRedstoneConfigurable; import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode; 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.util.StackUtils; import com.raoulvdberge.refinedstorage.util.WorldUtils; import net.minecraft.client.Minecraft; @@ -46,6 +46,7 @@ import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.items.CapabilityItemHandler; +import net.minecraftforge.items.IItemHandlerModifiable; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -111,8 +112,8 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, private int tabSelected; private int size; - private List filters = new ArrayList<>(); - private List tabs = new ArrayList<>(); + private List filters = new ArrayList<>(); + private List tabs = new ArrayList<>(); 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) { @Override @@ -353,25 +354,20 @@ public class TilePortableGrid extends TileBase implements IGrid, IPortableGrid, } @Override - public List getFilters() { + public List getFilters() { return filters; } @Override - public List getTabs() { + public List getTabs() { return tabs; } @Override - public ItemHandlerBase getFilter() { + public IItemHandlerModifiable getFilter() { return filter; } - @Override - public TileDataParameter getRedstoneModeConfig() { - return REDSTONE_MODE; - } - @Override public InventoryCrafting getCraftingMatrix() { return null; diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.lang b/src/main/resources/assets/refinedstorage/lang/en_us.lang index 78fca8627..8814fac18 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_us.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_us.lang @@ -6,8 +6,9 @@ gui.refinedstorage:controller.0=Controller gui.refinedstorage:controller.1=Creative Controller gui.refinedstorage:grid=Grid 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:wireless_grid=Wireless Grid gui.refinedstorage:fluid_grid=Fluid Grid gui.refinedstorage:disk_drive=Drive gui.refinedstorage:disk_drive.disks=Disks