diff --git a/src/main/java/refinedstorage/api/network/IGridHandler.java b/src/main/java/refinedstorage/api/network/IGridHandler.java new file mode 100755 index 000000000..ebd6118c7 --- /dev/null +++ b/src/main/java/refinedstorage/api/network/IGridHandler.java @@ -0,0 +1,16 @@ +package refinedstorage.api.network; + +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; + +public interface IGridHandler { + void onPull(ItemStack stack, int flags, EntityPlayerMP player); + + ItemStack onPush(ItemStack stack); + + void onHeldItemPush(boolean single, EntityPlayerMP player); + + void onCraftingRequested(ItemStack stack, int quantity); + + void onCraftingCancelRequested(int id); +} diff --git a/src/main/java/refinedstorage/api/network/INetworkMaster.java b/src/main/java/refinedstorage/api/network/INetworkMaster.java new file mode 100755 index 000000000..c005c305f --- /dev/null +++ b/src/main/java/refinedstorage/api/network/INetworkMaster.java @@ -0,0 +1,80 @@ +package refinedstorage.api.network; + +import cofh.api.energy.EnergyStorage; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import refinedstorage.autocrafting.CraftingPattern; +import refinedstorage.autocrafting.task.ICraftingTask; +import refinedstorage.tile.config.RedstoneMode; + +import java.util.Iterator; +import java.util.List; + +public interface INetworkMaster { + RedstoneMode getRedstoneMode(); + + void setRedstoneMode(RedstoneMode mode); + + World getWorld(); + + void setWorld(World world); + + EnergyStorage getEnergy(); + + int getEnergyUsage(); + + BlockPos getPosition(); + + boolean canRun(); + + void update(); + + Iterator getSlaves(); + + void addSlave(BlockPos slave); + + void removeSlave(BlockPos slave); + + IGridHandler getGridHandler(); + + IWirelessGridHandler getWirelessGridHandler(); + + List getItems(); + + List getCraftingTasks(); + + void addCraftingTask(ICraftingTask task); + + void addCraftingTaskAsLast(ICraftingTask task); + + ICraftingTask createCraftingTask(CraftingPattern pattern); + + void cancelCraftingTask(ICraftingTask task); + + List getPatterns(); + + List getPattern(ItemStack pattern, int flags); + + CraftingPattern getPatternWithBestScore(ItemStack pattern); + + CraftingPattern getPatternWithBestScore(ItemStack pattern, int flags); + + void updateItemsWithClient(); + + void updateItemsWithClient(EntityPlayerMP player); + + ItemStack push(ItemStack stack, int size, boolean simulate); + + ItemStack take(ItemStack stack, int size); + + ItemStack take(ItemStack stack, int size, int flags); + + ItemStack getItem(ItemStack stack, int flags); + + NBTTagCompound writeToNBT(NBTTagCompound tag); + + void readFromNBT(NBTTagCompound tag); +} diff --git a/src/main/java/refinedstorage/api/network/INetworkSlave.java b/src/main/java/refinedstorage/api/network/INetworkSlave.java index fa2ccd7e4..0ff509bab 100755 --- a/src/main/java/refinedstorage/api/network/INetworkSlave.java +++ b/src/main/java/refinedstorage/api/network/INetworkSlave.java @@ -36,18 +36,17 @@ public interface INetworkSlave { /** * Called when a connection is found to the network - * - * @param world The world + * @param world The world * @param network The network we're trying to connect to */ - void connect(World world, NetworkMaster network); + void connect(World world, INetworkMaster network); /** * Called when the slave is loaded from a save file * * @param network The network we have to connected to */ - void forceConnect(NetworkMaster network); + void forceConnect(INetworkMaster network); /** * Called when a connection is lost to the network @@ -69,5 +68,5 @@ public interface INetworkSlave { /** * @return The network */ - NetworkMaster getNetwork(); + INetworkMaster getNetwork(); } diff --git a/src/main/java/refinedstorage/api/network/IWirelessGridHandler.java b/src/main/java/refinedstorage/api/network/IWirelessGridHandler.java new file mode 100755 index 000000000..56d82b0da --- /dev/null +++ b/src/main/java/refinedstorage/api/network/IWirelessGridHandler.java @@ -0,0 +1,16 @@ +package refinedstorage.api.network; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.EnumHand; + +public interface IWirelessGridHandler { + void update(); + + boolean onOpen(EntityPlayer player, EnumHand hand); + + void onClose(EntityPlayer player); + + void drainEnergy(EntityPlayer player, int energy); + + WirelessGridConsumer getConsumer(EntityPlayer player); +} diff --git a/src/main/java/refinedstorage/api/network/NetworkMasterRegistry.java b/src/main/java/refinedstorage/api/network/NetworkMasterRegistry.java deleted file mode 100755 index 0fe579b5e..000000000 --- a/src/main/java/refinedstorage/api/network/NetworkMasterRegistry.java +++ /dev/null @@ -1,42 +0,0 @@ -package refinedstorage.api.network; - -import net.minecraft.util.math.BlockPos; - -import java.util.HashMap; -import java.util.Map; - -public class NetworkMasterRegistry { - public static final Map> NETWORKS = new HashMap>(); - - public static void add(NetworkMaster network, int dimension) { - if (NETWORKS.get(dimension) == null) { - NETWORKS.put(dimension, new HashMap()); - } - - NETWORKS.get(dimension).put(network.getPosition(), network); - } - - public static void remove(BlockPos pos, int dimension) { - if (get(dimension) != null) { - NetworkMaster network = get(dimension).get(pos); - - if (network != null) { - network.onRemoved(); - - get(dimension).remove(pos); - } - } - } - - public static NetworkMaster get(BlockPos pos, int dimension) { - return get(dimension) == null ? null : get(dimension).get(pos); - } - - public static Map get(int dimension) { - return NETWORKS.get(dimension); - } - - public static void clear() { - NETWORKS.clear(); - } -} diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGridConsumer.java b/src/main/java/refinedstorage/api/network/WirelessGridConsumer.java similarity index 94% rename from src/main/java/refinedstorage/tile/grid/WirelessGridConsumer.java rename to src/main/java/refinedstorage/api/network/WirelessGridConsumer.java index d9cad6354..2e0485438 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGridConsumer.java +++ b/src/main/java/refinedstorage/api/network/WirelessGridConsumer.java @@ -1,4 +1,4 @@ -package refinedstorage.tile.grid; +package refinedstorage.api.network; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; diff --git a/src/main/java/refinedstorage/tile/controller/StorageHandler.java b/src/main/java/refinedstorage/apiimpl/network/GridHandler.java similarity index 93% rename from src/main/java/refinedstorage/tile/controller/StorageHandler.java rename to src/main/java/refinedstorage/apiimpl/network/GridHandler.java index c39398e6e..2daa0dda5 100755 --- a/src/main/java/refinedstorage/tile/controller/StorageHandler.java +++ b/src/main/java/refinedstorage/apiimpl/network/GridHandler.java @@ -1,24 +1,25 @@ -package refinedstorage.tile.controller; +package refinedstorage.apiimpl.network; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.InventoryHelper; import net.minecraft.item.ItemStack; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.network.NetworkMaster; +import refinedstorage.api.network.IGridHandler; import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.task.ICraftingTask; import refinedstorage.item.ItemWirelessGrid; import refinedstorage.network.GridPullFlags; -public class StorageHandler { +public class GridHandler implements IGridHandler { public static final int MAX_CRAFTING_PER_REQUEST = 500; private NetworkMaster network; - public StorageHandler(NetworkMaster network) { + public GridHandler(NetworkMaster network) { this.network = network; } + @Override public void onPull(ItemStack stack, int flags, EntityPlayerMP player) { if (player.inventory.getItemStack() != null) { return; @@ -56,10 +57,12 @@ public class StorageHandler { } } + @Override public ItemStack onPush(ItemStack stack) { return network.push(stack, stack.stackSize, false); } + @Override public void onHeldItemPush(boolean single, EntityPlayerMP player) { if (player.inventory.getItemStack() == null) { return; @@ -87,6 +90,7 @@ public class StorageHandler { network.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH); } + @Override public void onCraftingRequested(ItemStack stack, int quantity) { if (quantity <= 0 || quantity > MAX_CRAFTING_PER_REQUEST) { return; @@ -115,6 +119,7 @@ public class StorageHandler { } } + @Override public void onCraftingCancelRequested(int id) { if (id >= 0 && id < network.getCraftingTasks().size()) { network.cancelCraftingTask(network.getCraftingTasks().get(id)); diff --git a/src/main/java/refinedstorage/api/network/NetworkMaster.java b/src/main/java/refinedstorage/apiimpl/network/NetworkMaster.java similarity index 95% rename from src/main/java/refinedstorage/api/network/NetworkMaster.java rename to src/main/java/refinedstorage/apiimpl/network/NetworkMaster.java index 109c66c1c..f24a4c2d3 100755 --- a/src/main/java/refinedstorage/api/network/NetworkMaster.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkMaster.java @@ -1,4 +1,4 @@ -package refinedstorage.api.network; +package refinedstorage.apiimpl.network; import cofh.api.energy.EnergyStorage; import net.minecraft.entity.player.EntityPlayer; @@ -14,6 +14,10 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageUtils; import refinedstorage.api.RefinedStorageCapabilities; +import refinedstorage.api.network.IGridHandler; +import refinedstorage.api.network.INetworkMaster; +import refinedstorage.api.network.INetworkSlave; +import refinedstorage.api.network.IWirelessGridHandler; import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorageProvider; @@ -30,12 +34,10 @@ import refinedstorage.tile.TileCable; import refinedstorage.tile.TileCrafter; import refinedstorage.tile.TileWirelessTransmitter; import refinedstorage.tile.config.RedstoneMode; -import refinedstorage.tile.controller.StorageHandler; -import refinedstorage.tile.controller.WirelessGridHandler; import java.util.*; -public class NetworkMaster { +public class NetworkMaster implements INetworkMaster { public static final int ENERGY_CAPACITY = 32000; public static final String NBT_CRAFTING_TASKS = "CraftingTasks"; @@ -45,7 +47,7 @@ public class NetworkMaster { public static final String NBT_SLAVE_Y = "Y"; public static final String NBT_SLAVE_Z = "Z"; - private StorageHandler storageHandler = new StorageHandler(this); + private GridHandler gridHandler = new GridHandler(this); private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this); private List items = new ArrayList(); @@ -86,7 +88,7 @@ public class NetworkMaster { public NetworkMaster(BlockPos pos, World world) { this.pos = pos; - onAdded(world); + setWorld(world); } public NetworkMaster(BlockPos pos) { @@ -119,6 +121,23 @@ public class NetworkMaster { return world; } + public void setWorld(World world) { + this.world = world; + this.type = (EnumControllerType) world.getBlockState(pos).getValue(BlockController.TYPE); + + for (BlockPos slavePos : slavesToLoad) { + INetworkSlave slave = world.getTileEntity(slavePos).getCapability(RefinedStorageCapabilities.NETWORK_SLAVE_CAPABILITY, null); + + slave.forceConnect(this); + + if (!(slave instanceof TileCable)) { + slaves.add(slavePos); + } + } + + this.slavesToLoad.clear(); + } + public boolean canRun() { return energy.getEnergyStored() > 0 && energy.getEnergyStored() >= energyUsage && redstoneMode.isEnabled(world, pos); } @@ -138,7 +157,7 @@ public class NetworkMaster { if (canRun()) { if (ticks % 20 == 0) { - syncMachines(); + updateSlaves(); } Iterator slaves = getSlaves(); @@ -188,7 +207,7 @@ public class NetworkMaster { } } else if (!slaves.isEmpty()) { disconnectAll(); - syncMachines(); + updateSlaves(); } if (couldRun != canRun()) { @@ -255,11 +274,12 @@ public class NetworkMaster { markDirty(); } - public StorageHandler getStorageHandler() { - return storageHandler; + public IGridHandler getGridHandler() { + return gridHandler; } - public WirelessGridHandler getWirelessGridHandler() { + @Override + public IWirelessGridHandler getWirelessGridHandler() { return wirelessGridHandler; } @@ -277,27 +297,6 @@ public class NetworkMaster { this.slaves.clear(); } - public void onRemoved() { - markDirty(); - } - - public void onAdded(World world) { - this.world = world; - this.type = (EnumControllerType) world.getBlockState(pos).getValue(BlockController.TYPE); - - for (BlockPos slavePos : slavesToLoad) { - INetworkSlave slave = world.getTileEntity(slavePos).getCapability(RefinedStorageCapabilities.NETWORK_SLAVE_CAPABILITY, null); - - slave.forceConnect(this); - - if (!(slave instanceof TileCable)) { - slaves.add(slavePos); - } - } - - this.slavesToLoad.clear(); - } - public List getItems() { return items; } @@ -384,7 +383,7 @@ public class NetworkMaster { return patterns.get(highestPattern); } - private void syncMachines() { + private void updateSlaves() { this.wirelessGridRange = 0; this.energyUsage = 0; this.storages.clear(); @@ -446,11 +445,11 @@ public class NetworkMaster { } }); - syncItems(); - syncItemsWithClients(); + updateItems(); + updateItemsWithClient(); } - private void syncItems() { + private void updateItems() { items.clear(); for (IStorage storage : storages) { @@ -498,15 +497,15 @@ public class NetworkMaster { items.removeAll(combinedItems); } - public void syncItemsWithClients() { + public void updateItemsWithClient() { for (EntityPlayer player : world.playerEntities) { if (player.openContainer.getClass() == ContainerGrid.class && pos.equals(((ContainerGrid) player.openContainer).getGrid().getNetworkPosition())) { - syncItemsWithClient((EntityPlayerMP) player); + updateItemsWithClient((EntityPlayerMP) player); } } } - public void syncItemsWithClient(EntityPlayerMP player) { + public void updateItemsWithClient(EntityPlayerMP player) { RefinedStorage.NETWORK.sendTo(new MessageGridItems(this), player); } @@ -536,8 +535,8 @@ public class NetworkMaster { int sizePushed = remainder != null ? (orginalSize - remainder.stackSize) : orginalSize; if (!simulate && sizePushed > 0) { - syncItems(); - syncItemsWithClients(); + updateItems(); + updateItemsWithClient(); for (int i = 0; i < sizePushed; ++i) { if (!craftingTasks.empty()) { @@ -582,8 +581,8 @@ public class NetworkMaster { } if (newStack != null) { - syncItems(); - syncItemsWithClients(); + updateItems(); + updateItemsWithClient(); } return newStack; diff --git a/src/main/java/refinedstorage/api/network/NetworkMasterEventHandler.java b/src/main/java/refinedstorage/apiimpl/network/NetworkMasterEventHandler.java similarity index 73% rename from src/main/java/refinedstorage/api/network/NetworkMasterEventHandler.java rename to src/main/java/refinedstorage/apiimpl/network/NetworkMasterEventHandler.java index 11b124b16..0ee1566d6 100755 --- a/src/main/java/refinedstorage/api/network/NetworkMasterEventHandler.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkMasterEventHandler.java @@ -1,21 +1,22 @@ -package refinedstorage.api.network; +package refinedstorage.apiimpl.network; import net.minecraft.util.math.BlockPos; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; +import refinedstorage.api.network.INetworkMaster; import java.util.Map; public class NetworkMasterEventHandler { @SubscribeEvent public void onWorldTick(TickEvent.WorldTickEvent e) { - Map networks = NetworkMasterRegistry.get(e.world.provider.getDimension()); + Map networks = NetworkMasterRegistry.get(e.world); if (networks != null) { - for (NetworkMaster network : networks.values()) { + for (INetworkMaster network : networks.values()) { if (network.getWorld() == null) { - network.onAdded(e.world); + network.setWorld(e.world); } network.update(); diff --git a/src/main/java/refinedstorage/apiimpl/network/NetworkMasterRegistry.java b/src/main/java/refinedstorage/apiimpl/network/NetworkMasterRegistry.java new file mode 100755 index 000000000..03c26b1f7 --- /dev/null +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkMasterRegistry.java @@ -0,0 +1,48 @@ +package refinedstorage.apiimpl.network; + +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import refinedstorage.api.network.INetworkMaster; + +import java.util.HashMap; +import java.util.Map; + +public class NetworkMasterRegistry { + public static final Map> NETWORKS = new HashMap>(); + + public static void add(World world, INetworkMaster network) { + add(world.provider.getDimension(), network); + } + + public static void add(int dim, INetworkMaster network) { + if (NETWORKS.get(dim) == null) { + NETWORKS.put(dim, new HashMap()); + } + + NETWORKS.get(dim).put(network.getPosition(), network); + } + + public static void remove(World world, BlockPos pos) { + if (get(world) != null) { + INetworkMaster network = get(world).get(pos); + + if (network != null) { + get(world).remove(pos); + + NetworkMasterSavedData.getOrLoad(world).markDirty(); + } + } + } + + public static INetworkMaster get(World world, BlockPos pos) { + return get(world) == null ? null : get(world).get(pos); + } + + public static Map get(World world) { + return NETWORKS.get(world.provider.getDimension()); + } + + public static void clear() { + NETWORKS.clear(); + } +} diff --git a/src/main/java/refinedstorage/api/network/NetworkMasterSavedData.java b/src/main/java/refinedstorage/apiimpl/network/NetworkMasterSavedData.java similarity index 80% rename from src/main/java/refinedstorage/api/network/NetworkMasterSavedData.java rename to src/main/java/refinedstorage/apiimpl/network/NetworkMasterSavedData.java index c55bb1066..7e598dcc7 100755 --- a/src/main/java/refinedstorage/api/network/NetworkMasterSavedData.java +++ b/src/main/java/refinedstorage/apiimpl/network/NetworkMasterSavedData.java @@ -1,4 +1,4 @@ -package refinedstorage.api.network; +package refinedstorage.apiimpl.network; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -6,6 +6,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraft.world.WorldSavedData; import net.minecraftforge.common.util.Constants; +import refinedstorage.api.network.INetworkMaster; import java.util.Map; @@ -29,11 +30,11 @@ public class NetworkMasterSavedData extends WorldSavedData { for (int i = 0; i < networks.tagCount(); ++i) { NBTTagCompound networkTag = networks.getCompoundTagAt(i); - NetworkMaster network = new NetworkMaster(new BlockPos(networkTag.getInteger(NBT_NETWORK_X), networkTag.getInteger(NBT_NETWORK_Y), networkTag.getInteger(NBT_NETWORK_Z))); + INetworkMaster network = new NetworkMaster(new BlockPos(networkTag.getInteger(NBT_NETWORK_X), networkTag.getInteger(NBT_NETWORK_Y), networkTag.getInteger(NBT_NETWORK_Z))); network.readFromNBT(networkTag.getCompoundTag(NBT_NETWORK_DATA)); - NetworkMasterRegistry.add(network, networkTag.getInteger(NBT_NETWORK_DIM)); + NetworkMasterRegistry.add(networkTag.getInteger(NBT_NETWORK_DIM), network); } } @@ -41,8 +42,8 @@ public class NetworkMasterSavedData extends WorldSavedData { public NBTTagCompound writeToNBT(NBTTagCompound tag) { NBTTagList networks = new NBTTagList(); - for (Map.Entry> entry : NetworkMasterRegistry.NETWORKS.entrySet()) { - for (NetworkMaster network : entry.getValue().values()) { + for (Map.Entry> entry : NetworkMasterRegistry.NETWORKS.entrySet()) { + for (INetworkMaster network : entry.getValue().values()) { NBTTagCompound networkTag = new NBTTagCompound(); networkTag.setInteger(NBT_NETWORK_X, network.getPosition().getX()); diff --git a/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java b/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java similarity index 86% rename from src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java rename to src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java index 4bce7ffd8..b2481cc13 100755 --- a/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java +++ b/src/main/java/refinedstorage/apiimpl/network/WirelessGridHandler.java @@ -1,4 +1,4 @@ -package refinedstorage.tile.controller; +package refinedstorage.apiimpl.network; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -8,15 +8,15 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.network.NetworkMaster; +import refinedstorage.api.network.IWirelessGridHandler; +import refinedstorage.api.network.WirelessGridConsumer; import refinedstorage.item.ItemWirelessGrid; -import refinedstorage.tile.grid.WirelessGridConsumer; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -public class WirelessGridHandler { +public class WirelessGridHandler implements IWirelessGridHandler { private NetworkMaster network; private List consumers = new ArrayList(); @@ -26,6 +26,7 @@ public class WirelessGridHandler { this.network = network; } + @Override public void update() { consumers.removeAll(consumersToRemove); consumersToRemove.clear(); @@ -41,7 +42,8 @@ public class WirelessGridHandler { } } - public boolean handleOpen(EntityPlayer player, EnumHand hand) { + @Override + public boolean onOpen(EntityPlayer player, EnumHand hand) { int distance = (int) Math.sqrt(Math.pow(network.getPosition().getX() - player.posX, 2) + Math.pow(network.getPosition().getY() - player.posY, 2) + Math.pow(network.getPosition().getZ() - player.posZ, 2)); if (distance > network.getWirelessGridRange()) { @@ -52,14 +54,15 @@ public class WirelessGridHandler { player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, player.worldObj, RefinedStorageUtils.getIdFromHand(hand), 0, 0); - network.syncItemsWithClient((EntityPlayerMP) player); + network.updateItemsWithClient((EntityPlayerMP) player); drainEnergy(player, ItemWirelessGrid.USAGE_OPEN); return true; } - public void handleClose(EntityPlayer player) { + @Override + public void onClose(EntityPlayer player) { WirelessGridConsumer consumer = getConsumer(player); if (consumer != null) { @@ -67,6 +70,7 @@ public class WirelessGridHandler { } } + @Override public void drainEnergy(EntityPlayer player, int energy) { WirelessGridConsumer consumer = getConsumer(player); @@ -78,13 +82,14 @@ public class WirelessGridHandler { item.extractEnergy(held, energy, false); if (item.getEnergyStored(held) <= 0) { - handleClose(player); + onClose(player); consumer.getPlayer().closeScreen(); } } } } + @Override public WirelessGridConsumer getConsumer(EntityPlayer player) { Iterator it = consumers.iterator(); @@ -98,8 +103,4 @@ public class WirelessGridHandler { return null; } - - public List getConsumers() { - return consumers; - } } diff --git a/src/main/java/refinedstorage/api/solderer/SoldererRecipeBasic.java b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeBasic.java similarity index 92% rename from src/main/java/refinedstorage/api/solderer/SoldererRecipeBasic.java rename to src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeBasic.java index 5962738fa..f61503463 100755 --- a/src/main/java/refinedstorage/api/solderer/SoldererRecipeBasic.java +++ b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeBasic.java @@ -1,6 +1,7 @@ -package refinedstorage.api.solderer; +package refinedstorage.apiimpl.solderer; import net.minecraft.item.ItemStack; +import refinedstorage.api.solderer.ISoldererRecipe; import javax.annotation.Nonnull; diff --git a/src/main/java/refinedstorage/solderer/SoldererRecipePrintedProcessor.java b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipePrintedProcessor.java similarity index 97% rename from src/main/java/refinedstorage/solderer/SoldererRecipePrintedProcessor.java rename to src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipePrintedProcessor.java index 8a98f1322..6442646f9 100755 --- a/src/main/java/refinedstorage/solderer/SoldererRecipePrintedProcessor.java +++ b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipePrintedProcessor.java @@ -1,4 +1,4 @@ -package refinedstorage.solderer; +package refinedstorage.apiimpl.solderer; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; diff --git a/src/main/java/refinedstorage/solderer/SoldererRecipeProcessor.java b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeProcessor.java similarity index 97% rename from src/main/java/refinedstorage/solderer/SoldererRecipeProcessor.java rename to src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeProcessor.java index 938cffe83..f57559160 100755 --- a/src/main/java/refinedstorage/solderer/SoldererRecipeProcessor.java +++ b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeProcessor.java @@ -1,4 +1,4 @@ -package refinedstorage.solderer; +package refinedstorage.apiimpl.solderer; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; diff --git a/src/main/java/refinedstorage/solderer/SoldererRecipeStorage.java b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeStorage.java similarity index 96% rename from src/main/java/refinedstorage/solderer/SoldererRecipeStorage.java rename to src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeStorage.java index 87e62547d..122b918d9 100755 --- a/src/main/java/refinedstorage/solderer/SoldererRecipeStorage.java +++ b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeStorage.java @@ -1,4 +1,4 @@ -package refinedstorage.solderer; +package refinedstorage.apiimpl.solderer; import net.minecraft.item.ItemStack; import refinedstorage.RefinedStorageBlocks; diff --git a/src/main/java/refinedstorage/solderer/SoldererRecipeUpgrade.java b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeUpgrade.java similarity index 97% rename from src/main/java/refinedstorage/solderer/SoldererRecipeUpgrade.java rename to src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeUpgrade.java index fb655f717..8f8f223ec 100755 --- a/src/main/java/refinedstorage/solderer/SoldererRecipeUpgrade.java +++ b/src/main/java/refinedstorage/apiimpl/solderer/SoldererRecipeUpgrade.java @@ -1,4 +1,4 @@ -package refinedstorage.solderer; +package refinedstorage.apiimpl.solderer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; diff --git a/src/main/java/refinedstorage/autocrafting/CraftingTaskScheduler.java b/src/main/java/refinedstorage/autocrafting/CraftingTaskScheduler.java index 411d5db9d..7651055e2 100755 --- a/src/main/java/refinedstorage/autocrafting/CraftingTaskScheduler.java +++ b/src/main/java/refinedstorage/autocrafting/CraftingTaskScheduler.java @@ -3,7 +3,7 @@ package refinedstorage.autocrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.network.NetworkMaster; +import refinedstorage.api.network.INetworkMaster; public class CraftingTaskScheduler { public static final String NBT_SCHEDULED = "CraftingTaskScheduled"; @@ -14,7 +14,7 @@ public class CraftingTaskScheduler { return scheduledItem == null || !RefinedStorageUtils.compareStack(scheduledItem, item, compare); } - public void schedule(NetworkMaster network, int compare, ItemStack item) { + public void schedule(INetworkMaster network, int compare, ItemStack item) { CraftingPattern pattern = network.getPatternWithBestScore(item, compare); if (pattern != null) { diff --git a/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java b/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java index 9b2494e25..88565e083 100755 --- a/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java +++ b/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java @@ -5,7 +5,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraftforge.common.util.Constants; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.network.NetworkMaster; +import refinedstorage.apiimpl.network.NetworkMaster; import refinedstorage.autocrafting.CraftingPattern; import java.util.ArrayList; diff --git a/src/main/java/refinedstorage/autocrafting/task/ICraftingTask.java b/src/main/java/refinedstorage/autocrafting/task/ICraftingTask.java index 8f2dfcf62..387c83af9 100755 --- a/src/main/java/refinedstorage/autocrafting/task/ICraftingTask.java +++ b/src/main/java/refinedstorage/autocrafting/task/ICraftingTask.java @@ -1,7 +1,7 @@ package refinedstorage.autocrafting.task; import net.minecraft.nbt.NBTTagCompound; -import refinedstorage.api.network.NetworkMaster; +import refinedstorage.apiimpl.network.NetworkMaster; import refinedstorage.autocrafting.CraftingPattern; public interface ICraftingTask { diff --git a/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java b/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java index fb3a74eae..7a20c9dbe 100755 --- a/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java +++ b/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java @@ -5,7 +5,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.network.NetworkMaster; +import refinedstorage.apiimpl.network.NetworkMaster; import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.tile.TileCrafter; diff --git a/src/main/java/refinedstorage/block/BlockController.java b/src/main/java/refinedstorage/block/BlockController.java index c420be9a8..e1c5ba2ff 100755 --- a/src/main/java/refinedstorage/block/BlockController.java +++ b/src/main/java/refinedstorage/block/BlockController.java @@ -21,8 +21,8 @@ import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageGui; -import refinedstorage.api.network.NetworkMaster; -import refinedstorage.api.network.NetworkMasterRegistry; +import refinedstorage.apiimpl.network.NetworkMaster; +import refinedstorage.apiimpl.network.NetworkMasterRegistry; import refinedstorage.item.ItemBlockController; import refinedstorage.tile.controller.TileController; @@ -105,7 +105,7 @@ public class BlockController extends BlockBase { network.getEnergy().receiveEnergy(tag.getInteger(NetworkMaster.NBT_ENERGY), false); } - NetworkMasterRegistry.add(network, world.provider.getDimension()); + NetworkMasterRegistry.add(world, network); } super.onBlockPlacedBy(world, pos, state, player, stack); @@ -114,7 +114,7 @@ public class BlockController extends BlockBase { @Override public void breakBlock(World world, BlockPos pos, IBlockState state) { if (!world.isRemote) { - NetworkMasterRegistry.remove(pos, world.provider.getDimension()); + NetworkMasterRegistry.remove(world, pos); } super.breakBlock(world, pos, state); diff --git a/src/main/java/refinedstorage/container/ContainerGrid.java b/src/main/java/refinedstorage/container/ContainerGrid.java index 133849da0..6bfd9ea7c 100755 --- a/src/main/java/refinedstorage/container/ContainerGrid.java +++ b/src/main/java/refinedstorage/container/ContainerGrid.java @@ -98,8 +98,8 @@ public class ContainerGrid extends ContainerBase { if (slot == craftingResultSlot) { ((TileGrid) grid).onCraftedShift(this, player); - } else if (grid.getStorageHandler() != null && slot != patternResultSlot && !(slot instanceof SlotSpecimenLegacy) && slot.getHasStack()) { - slot.putStack(grid.getStorageHandler().onPush(slot.getStack())); + } else if (grid.getGridHandler() != null && slot != patternResultSlot && !(slot instanceof SlotSpecimenLegacy) && slot.getHasStack()) { + slot.putStack(grid.getGridHandler().onPush(slot.getStack())); detectAndSendChanges(); } diff --git a/src/main/java/refinedstorage/gui/GuiController.java b/src/main/java/refinedstorage/gui/GuiController.java index ecaa845bb..66bf794e2 100755 --- a/src/main/java/refinedstorage/gui/GuiController.java +++ b/src/main/java/refinedstorage/gui/GuiController.java @@ -3,7 +3,7 @@ package refinedstorage.gui; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.RenderHelper; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.network.NetworkMaster; +import refinedstorage.apiimpl.network.NetworkMaster; import refinedstorage.container.ContainerController; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.tile.controller.ClientSlave; diff --git a/src/main/java/refinedstorage/gui/GuiCraftingSettings.java b/src/main/java/refinedstorage/gui/GuiCraftingSettings.java index 190471b7e..77ff1a059 100755 --- a/src/main/java/refinedstorage/gui/GuiCraftingSettings.java +++ b/src/main/java/refinedstorage/gui/GuiCraftingSettings.java @@ -8,9 +8,9 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fml.client.FMLClientHandler; import org.lwjgl.input.Keyboard; import refinedstorage.RefinedStorage; +import refinedstorage.apiimpl.network.GridHandler; import refinedstorage.container.ContainerCraftingSettings; import refinedstorage.network.MessageGridCraftingStart; -import refinedstorage.tile.controller.StorageHandler; import java.io.IOException; @@ -110,7 +110,7 @@ public class GuiCraftingSettings extends GuiBase { int newAmount = Integer.parseInt(incrementButton.displayString); - newAmount = Math.min(Math.max(DEFAULT_AMOUNT, oldAmount + newAmount), StorageHandler.MAX_CRAFTING_PER_REQUEST); + newAmount = Math.min(Math.max(DEFAULT_AMOUNT, oldAmount + newAmount), GridHandler.MAX_CRAFTING_PER_REQUEST); amountField.setText(String.valueOf(newAmount)); @@ -123,7 +123,7 @@ public class GuiCraftingSettings extends GuiBase { private void startRequest() { Integer quantity = Ints.tryParse(amountField.getText()); - if (quantity != null && quantity > 0 && quantity <= StorageHandler.MAX_CRAFTING_PER_REQUEST) { + if (quantity != null && quantity > 0 && quantity <= GridHandler.MAX_CRAFTING_PER_REQUEST) { RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingStart(stack, quantity)); close(); diff --git a/src/main/java/refinedstorage/item/ItemBlockController.java b/src/main/java/refinedstorage/item/ItemBlockController.java index 6841e9614..3bf90eb76 100755 --- a/src/main/java/refinedstorage/item/ItemBlockController.java +++ b/src/main/java/refinedstorage/item/ItemBlockController.java @@ -6,7 +6,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import refinedstorage.RefinedStorageBlocks; -import refinedstorage.api.network.NetworkMaster; +import refinedstorage.apiimpl.network.NetworkMaster; import refinedstorage.block.EnumControllerType; import java.util.List; diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index c3060edf5..be5ac2197 100755 --- a/src/main/java/refinedstorage/item/ItemWirelessGrid.java +++ b/src/main/java/refinedstorage/item/ItemWirelessGrid.java @@ -16,8 +16,8 @@ import net.minecraft.util.text.TextComponentTranslation; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; -import refinedstorage.api.network.NetworkMaster; -import refinedstorage.api.network.NetworkMasterRegistry; +import refinedstorage.api.network.INetworkMaster; +import refinedstorage.apiimpl.network.NetworkMasterRegistry; import refinedstorage.tile.grid.TileGrid; import java.util.List; @@ -134,10 +134,10 @@ public class ItemWirelessGrid extends ItemEnergyContainer { @Override public ActionResult onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { if (!world.isRemote && hasValidNBT(stack) && getDimensionId(stack) == player.dimension) { - NetworkMaster network = NetworkMasterRegistry.get(new BlockPos(getX(stack), getY(stack), getZ(stack)), player.worldObj.provider.getDimension()); + INetworkMaster network = NetworkMasterRegistry.get(player.worldObj, new BlockPos(getX(stack), getY(stack), getZ(stack))); if (network != null) { - if (network.getWirelessGridHandler().handleOpen(player, hand)) { + if (network.getWirelessGridHandler().onOpen(player, hand)) { return new ActionResult(EnumActionResult.SUCCESS, stack); } else { player.addChatComponentMessage(new TextComponentTranslation("misc.refinedstorage:wireless_grid.out_of_range")); diff --git a/src/main/java/refinedstorage/network/MessageCraftingMonitorCancel.java b/src/main/java/refinedstorage/network/MessageCraftingMonitorCancel.java index 1691f6967..eb93f2ce0 100755 --- a/src/main/java/refinedstorage/network/MessageCraftingMonitorCancel.java +++ b/src/main/java/refinedstorage/network/MessageCraftingMonitorCancel.java @@ -47,7 +47,7 @@ public class MessageCraftingMonitorCancel extends MessageHandlerPlayerToServer implements IMessage { private ItemStack stack; @@ -38,7 +38,7 @@ public class MessageGridCraftingStart extends MessageHandlerPlayerToServer implements IMessage { private boolean single; @@ -32,7 +32,7 @@ public class MessageGridHeldPush extends MessageHandlerPlayerToServer implements IMessage { private ItemStack stack; @@ -38,7 +38,7 @@ public class MessageGridPull extends MessageHandlerPlayerToServer visited = new HashSet(); @@ -43,7 +43,7 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain } @Override - public void connect(World world, NetworkMaster network) { + public void connect(World world, INetworkMaster network) { if (network.canRun()) { this.network = network; this.connected = true; @@ -61,7 +61,7 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain } @Override - public void forceConnect(NetworkMaster network) { + public void forceConnect(INetworkMaster network) { this.network = network; this.connected = true; } @@ -91,7 +91,7 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain if (network == null) { if (controller != null) { // For backwards compatibility - NetworkMaster network = NetworkMasterRegistry.get(controller.getPos(), world.provider.getDimension()); + INetworkMaster network = NetworkMasterRegistry.get(world, controller.getPos()); if (network != null) { connect(world, network); @@ -134,7 +134,8 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain return null; } - public NetworkMaster getNetwork() { + @Override + public INetworkMaster getNetwork() { return network; } diff --git a/src/main/java/refinedstorage/tile/controller/ClientSlave.java b/src/main/java/refinedstorage/tile/controller/ClientSlave.java index 3819d5270..92879ef6b 100755 --- a/src/main/java/refinedstorage/tile/controller/ClientSlave.java +++ b/src/main/java/refinedstorage/tile/controller/ClientSlave.java @@ -3,7 +3,7 @@ package refinedstorage.tile.controller; import net.minecraft.item.ItemStack; import refinedstorage.RefinedStorageUtils; -public class ClientSlave { +public final class ClientSlave { public ItemStack stack; public int amount; public int energyUsage; diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index 3de81e3d8..70d425abc 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -9,9 +9,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.common.network.ByteBufUtils; import refinedstorage.RefinedStorageBlocks; +import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.INetworkSlave; -import refinedstorage.api.network.NetworkMaster; -import refinedstorage.api.network.NetworkMasterRegistry; +import refinedstorage.apiimpl.network.NetworkMaster; +import refinedstorage.apiimpl.network.NetworkMasterRegistry; import refinedstorage.block.BlockController; import refinedstorage.block.EnumControllerType; import refinedstorage.container.ContainerController; @@ -25,7 +26,7 @@ import java.util.Iterator; import java.util.List; public class TileController extends TileBase implements IEnergyReceiver, ISynchronizedContainer, IRedstoneModeConfig { - private NetworkMaster network; + private INetworkMaster network; // Only used client side private List clientSlaves = new ArrayList(); @@ -34,9 +35,9 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr private EnumControllerType type; private RedstoneMode redstoneMode; - public NetworkMaster getNetwork() { + public INetworkMaster getNetwork() { if (network == null) { - network = NetworkMasterRegistry.get(pos, worldObj.provider.getDimension()); + network = NetworkMasterRegistry.get(worldObj, pos); } return network; diff --git a/src/main/java/refinedstorage/tile/grid/IGrid.java b/src/main/java/refinedstorage/tile/grid/IGrid.java index 7714ddc79..620189ca7 100755 --- a/src/main/java/refinedstorage/tile/grid/IGrid.java +++ b/src/main/java/refinedstorage/tile/grid/IGrid.java @@ -2,9 +2,9 @@ package refinedstorage.tile.grid; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; +import refinedstorage.api.network.IGridHandler; import refinedstorage.block.EnumGridType; import refinedstorage.tile.config.IRedstoneModeConfig; -import refinedstorage.tile.controller.StorageHandler; import java.util.List; @@ -17,7 +17,7 @@ public interface IGrid { BlockPos getNetworkPosition(); - StorageHandler getStorageHandler(); + IGridHandler getGridHandler(); int getSortingType(); diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index 8ab398c88..1d6e9fa2a 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -14,6 +14,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageUtils; +import refinedstorage.api.network.IGridHandler; import refinedstorage.block.BlockGrid; import refinedstorage.block.EnumGridType; import refinedstorage.container.ContainerGrid; @@ -23,7 +24,6 @@ import refinedstorage.item.ItemPattern; import refinedstorage.network.MessageGridSettingsUpdate; import refinedstorage.tile.TileSlave; import refinedstorage.tile.config.IRedstoneModeConfig; -import refinedstorage.tile.controller.StorageHandler; import java.util.ArrayList; import java.util.List; @@ -112,13 +112,13 @@ public class TileGrid extends TileSlave implements IGrid { public void onGridOpened(EntityPlayer player) { if (isConnected()) { - network.syncItemsWithClient((EntityPlayerMP) player); + network.updateItemsWithClient((EntityPlayerMP) player); } } @Override - public StorageHandler getStorageHandler() { - return isConnected() ? network.getStorageHandler() : null; + public IGridHandler getGridHandler() { + return isConnected() ? network.getGridHandler() : null; } public InventoryCrafting getMatrix() { diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java index 5240785d8..16acfcfc8 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -7,13 +7,13 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.network.NetworkMaster; -import refinedstorage.api.network.NetworkMasterRegistry; +import refinedstorage.api.network.IGridHandler; +import refinedstorage.api.network.INetworkMaster; +import refinedstorage.apiimpl.network.NetworkMasterRegistry; import refinedstorage.block.EnumGridType; import refinedstorage.item.ItemWirelessGrid; import refinedstorage.network.MessageWirelessGridSettingsUpdate; import refinedstorage.tile.config.IRedstoneModeConfig; -import refinedstorage.tile.controller.StorageHandler; import java.util.ArrayList; import java.util.List; @@ -59,21 +59,21 @@ public class WirelessGrid implements IGrid { } @Override - public StorageHandler getStorageHandler() { - NetworkMaster network = NetworkMasterRegistry.get(controllerPos, world.provider.getDimension()); + public IGridHandler getGridHandler() { + INetworkMaster network = NetworkMasterRegistry.get(world, controllerPos); if (network != null) { - return network.getStorageHandler(); + return network.getGridHandler(); } return null; } public void onClose(EntityPlayer player) { - NetworkMaster network = NetworkMasterRegistry.get(controllerPos, world.provider.getDimension()); + INetworkMaster network = NetworkMasterRegistry.get(world, controllerPos); if (network != null) { - network.getWirelessGridHandler().handleClose(player); + network.getWirelessGridHandler().onClose(player); } }