diff --git a/src/main/java/refinedstorage/api/RefinedStorageCapabilities.java b/src/main/java/refinedstorage/api/RefinedStorageCapabilities.java index 84018800d..3ab7a9e52 100755 --- a/src/main/java/refinedstorage/api/RefinedStorageCapabilities.java +++ b/src/main/java/refinedstorage/api/RefinedStorageCapabilities.java @@ -2,9 +2,9 @@ package refinedstorage.api; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.CapabilityInject; -import refinedstorage.api.storage.IStorageProvider; +import refinedstorage.api.storagenet.INetworkSlave; public final class RefinedStorageCapabilities { - @CapabilityInject(IStorageProvider.class) - public static final Capability STORAGE_PROVIDER_CAPABILITY = null; + @CapabilityInject(INetworkSlave.class) + public static final Capability NETWORK_SLAVE_CAPABILITY = null; } diff --git a/src/main/java/refinedstorage/api/storagenet/INetworkSlave.java b/src/main/java/refinedstorage/api/storagenet/INetworkSlave.java new file mode 100755 index 000000000..35b28c615 --- /dev/null +++ b/src/main/java/refinedstorage/api/storagenet/INetworkSlave.java @@ -0,0 +1,73 @@ +package refinedstorage.api.storagenet; + +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +/** + * Represents a slave or machine in the storage network. + */ +public interface INetworkSlave { + /** + * Called every server tick. + */ + void updateSlave(); + + /** + * @return The energy usage of this slave + */ + int getEnergyUsage(); + + /** + * @return If this slave can send connectivity updates and can trigger block updates + */ + boolean canSendConnectivityUpdate(); + + /** + * @return The position of this slave in the world + */ + BlockPos getPosition(); + + /** + * Called when the neighbor of this slave is changed. Typically used to recalculate the network (if there is still a connection) + * + * @param world The world + */ + void onNeighborChanged(World world); + + /** + * Called when a connection is found to the storage network + * + * @param world The world + * @param network The network we're trying to connect to + */ + void connect(World world, NetworkMaster network); + + /** + * Called when the slave is loaded from a save file + * + * @param network The network we have to connected to + */ + void forceConnect(NetworkMaster network); + + /** + * Called when a connection is lost to the stoarge network + * + * @param world The world + */ + void disconnect(World world); + + /** + * @return If we are connected + */ + boolean isConnected(); + + /** + * @return If this slave can be updated. Typically returns false when redstone mode doesn't allow it. + */ + boolean canUpdate(); + + /** + * @return The network + */ + NetworkMaster getNetwork(); +} diff --git a/src/main/java/refinedstorage/api/storagenet/StorageNetwork.java b/src/main/java/refinedstorage/api/storagenet/NetworkMaster.java similarity index 86% rename from src/main/java/refinedstorage/api/storagenet/StorageNetwork.java rename to src/main/java/refinedstorage/api/storagenet/NetworkMaster.java index ef7d7ae5b..c840ee55a 100755 --- a/src/main/java/refinedstorage/api/storagenet/StorageNetwork.java +++ b/src/main/java/refinedstorage/api/storagenet/NetworkMaster.java @@ -17,6 +17,7 @@ import refinedstorage.RefinedStorageUtils; import refinedstorage.api.RefinedStorageCapabilities; import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.IStorage; +import refinedstorage.api.storage.IStorageProvider; import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.task.BasicCraftingTask; import refinedstorage.autocrafting.task.ICraftingTask; @@ -27,7 +28,6 @@ import refinedstorage.container.ContainerGrid; import refinedstorage.item.ItemPattern; import refinedstorage.network.MessageGridItems; import refinedstorage.tile.TileCrafter; -import refinedstorage.tile.TileMachine; import refinedstorage.tile.TileWirelessTransmitter; import refinedstorage.tile.config.RedstoneMode; import refinedstorage.tile.controller.StorageHandler; @@ -35,7 +35,7 @@ import refinedstorage.tile.controller.WirelessGridHandler; import java.util.*; -public class StorageNetwork { +public class NetworkMaster { public static final int ENERGY_CAPACITY = 32000; public static final String NBT_CRAFTING_TASKS = "CraftingTasks"; @@ -50,10 +50,10 @@ public class StorageNetwork { private List storages = new ArrayList(); - private List machines = new ArrayList(); - private List machinesToAdd = new ArrayList(); - private List machinesToLoad = new ArrayList(); - private List machinesToRemove = new ArrayList(); + private List slaves = new ArrayList(); + private List slavesToAdd = new ArrayList(); + private List slavesToLoad = new ArrayList(); + private List slavesToRemove = new ArrayList(); private List patterns = new ArrayList(); @@ -78,13 +78,13 @@ public class StorageNetwork { private RedstoneMode redstoneMode = RedstoneMode.IGNORE; - public StorageNetwork(BlockPos pos, World world) { + public NetworkMaster(BlockPos pos, World world) { this.pos = pos; onAdded(world); } - public StorageNetwork(BlockPos pos) { + public NetworkMaster(BlockPos pos) { this.pos = pos; } @@ -119,16 +119,23 @@ public class StorageNetwork { } public void update() { - for (TileMachine machine : machinesToAdd) { - if (!machines.contains(machine)) { - machines.add(machine); + for (INetworkSlave slave : slavesToAdd) { + slaves.add(slave); + } + slavesToAdd.clear(); + + for (INetworkSlave slave : slavesToRemove) { + Iterator otherSlave = slaves.iterator(); + + while (otherSlave.hasNext()) { + if (otherSlave.next().getPosition().equals(slave.getPosition())) { + otherSlave.remove(); + + break; + } } } - - machinesToAdd.clear(); - - machines.removeAll(machinesToRemove); - machinesToRemove.clear(); + slavesToRemove.clear(); int lastEnergy = energy.getEnergyStored(); @@ -137,8 +144,11 @@ public class StorageNetwork { syncMachines(); } - // @todo: If the chunk unloads, and we come back to the chunk - // the machine tile will be reset to a new tile instance and nothing will work + for (INetworkSlave slave : slaves) { + if (slave.canUpdate()) { + slave.updateSlave(); + } + } for (ICraftingTask taskToCancel : craftingTasksToCancel) { taskToCancel.onCancelled(this); @@ -166,7 +176,7 @@ public class StorageNetwork { craftingTasks.pop(); } } - } else if (!machines.isEmpty()) { + } else if (!slaves.isEmpty()) { disconnectAll(); syncMachines(); } @@ -202,18 +212,18 @@ public class StorageNetwork { ticks++; } - public List getMachines() { - return machines; + public List getSlaves() { + return slaves; } - public void addMachine(TileMachine machine) { - machinesToAdd.add(machine); + public void addSlave(INetworkSlave slave) { + slavesToAdd.add(slave); markDirty(); } - public void removeMachine(TileMachine machine) { - machinesToRemove.add(machine); + public void removeMachine(INetworkSlave slave) { + slavesToRemove.add(slave); markDirty(); } @@ -231,11 +241,11 @@ public class StorageNetwork { } public void disconnectAll() { - for (TileMachine machine : machines) { - machine.onDisconnected(world); + for (INetworkSlave slave : slaves) { + slave.disconnect(world); } - machines.clear(); + slaves.clear(); } public void onRemoved() { @@ -246,13 +256,15 @@ public class StorageNetwork { this.world = world; this.type = (EnumControllerType) world.getBlockState(pos).getValue(BlockController.TYPE); - for (BlockPos machine : machinesToLoad) { - TileEntity tile = world.getTileEntity(machine); + for (BlockPos slavePos : slavesToLoad) { + TileEntity tile = world.getTileEntity(slavePos); - if (tile instanceof TileMachine) { - ((TileMachine) tile).forceConnect(this); + if (tile.hasCapability(RefinedStorageCapabilities.NETWORK_SLAVE_CAPABILITY, null)) { + INetworkSlave slave = tile.getCapability(RefinedStorageCapabilities.NETWORK_SLAVE_CAPABILITY, null); - machines.add((TileMachine) tile); + slave.forceConnect(this); + + slaves.add(slave); } } } @@ -349,21 +361,21 @@ public class StorageNetwork { this.storages.clear(); this.patterns.clear(); - for (TileMachine machine : machines) { - if (!machine.canUpdate()) { + for (INetworkSlave slave : slaves) { + if (!slave.canUpdate()) { continue; } - if (machine instanceof TileWirelessTransmitter) { - this.wirelessGridRange += ((TileWirelessTransmitter) machine).getRange(); + if (slave instanceof TileWirelessTransmitter) { + this.wirelessGridRange += ((TileWirelessTransmitter) slave).getRange(); } - if (machine.hasCapability(RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY, null)) { - machine.getCapability(RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY, null).provide(storages); + if (slave instanceof IStorageProvider) { + ((IStorageProvider) slave).provide(storages); } - if (machine instanceof TileCrafter) { - TileCrafter crafter = (TileCrafter) machine; + if (slave instanceof TileCrafter) { + TileCrafter crafter = (TileCrafter) slave; for (int i = 0; i < crafter.getPatterns().getSlots(); ++i) { ItemStack pattern = crafter.getPatterns().getStackInSlot(i); @@ -374,7 +386,7 @@ public class StorageNetwork { } } - this.energyUsage += machine.getEnergyUsage(); + this.energyUsage += slave.getEnergyUsage(); } Collections.sort(storages, new Comparator() { @@ -589,7 +601,7 @@ public class StorageNetwork { for (int i = 0; i < machinesTag.tagCount(); ++i) { NBTTagCompound coords = machinesTag.getCompoundTagAt(i); - machinesToLoad.add(new BlockPos(coords.getInteger("X"), coords.getInteger("Y"), coords.getInteger("Z"))); + slavesToLoad.add(new BlockPos(coords.getInteger("X"), coords.getInteger("Y"), coords.getInteger("Z"))); } } } @@ -610,11 +622,11 @@ public class StorageNetwork { tag.setTag(NBT_CRAFTING_TASKS, list); NBTTagList machinesTag = new NBTTagList(); - for (TileMachine machine : machines) { + for (INetworkSlave slave : slaves) { NBTTagCompound coords = new NBTTagCompound(); - coords.setInteger("X", machine.getPos().getX()); - coords.setInteger("Y", machine.getPos().getY()); - coords.setInteger("Z", machine.getPos().getZ()); + coords.setInteger("X", slave.getPosition().getX()); + coords.setInteger("Y", slave.getPosition().getY()); + coords.setInteger("Z", slave.getPosition().getZ()); machinesTag.appendTag(coords); } tag.setTag("Machines", machinesTag); @@ -623,6 +635,6 @@ public class StorageNetwork { } public void markDirty() { - StorageNetworkSavedData.get(world).markDirty(); + NetworkMasterSavedData.get(world).markDirty(); } } diff --git a/src/main/java/refinedstorage/api/storagenet/StorageNetworkEventHandler.java b/src/main/java/refinedstorage/api/storagenet/NetworkMasterEventHandler.java similarity index 70% rename from src/main/java/refinedstorage/api/storagenet/StorageNetworkEventHandler.java rename to src/main/java/refinedstorage/api/storagenet/NetworkMasterEventHandler.java index b512cd0f8..9e0f1e584 100755 --- a/src/main/java/refinedstorage/api/storagenet/StorageNetworkEventHandler.java +++ b/src/main/java/refinedstorage/api/storagenet/NetworkMasterEventHandler.java @@ -7,13 +7,13 @@ import net.minecraftforge.fml.common.gameevent.TickEvent; import java.util.Map; -public class StorageNetworkEventHandler { +public class NetworkMasterEventHandler { @SubscribeEvent public void onWorldTick(TickEvent.WorldTickEvent e) { - Map networks = StorageNetworkRegistry.get(e.world.provider.getDimension()); + Map networks = NetworkMasterRegistry.get(e.world.provider.getDimension()); if (networks != null) { - for (StorageNetwork network : networks.values()) { + for (NetworkMaster network : networks.values()) { if (network.getWorld() == null) { network.onAdded(e.world); } @@ -25,6 +25,6 @@ public class StorageNetworkEventHandler { @SubscribeEvent public void onWorldLoad(WorldEvent.Load e) { - StorageNetworkSavedData.get(e.getWorld()); + NetworkMasterSavedData.get(e.getWorld()); } } diff --git a/src/main/java/refinedstorage/api/storagenet/StorageNetworkRegistry.java b/src/main/java/refinedstorage/api/storagenet/NetworkMasterRegistry.java similarity index 56% rename from src/main/java/refinedstorage/api/storagenet/StorageNetworkRegistry.java rename to src/main/java/refinedstorage/api/storagenet/NetworkMasterRegistry.java index 0d9627cd5..b9ebf0c42 100755 --- a/src/main/java/refinedstorage/api/storagenet/StorageNetworkRegistry.java +++ b/src/main/java/refinedstorage/api/storagenet/NetworkMasterRegistry.java @@ -5,12 +5,12 @@ import net.minecraft.util.math.BlockPos; import java.util.HashMap; import java.util.Map; -public class StorageNetworkRegistry { - public static final Map> NETWORKS = new HashMap>(); +public class NetworkMasterRegistry { + public static final Map> NETWORKS = new HashMap>(); - public static void add(StorageNetwork network, int dimension) { + public static void add(NetworkMaster network, int dimension) { if (NETWORKS.get(dimension) == null) { - NETWORKS.put(dimension, new HashMap()); + NETWORKS.put(dimension, new HashMap()); } NETWORKS.get(dimension).put(network.getPos(), network); @@ -23,11 +23,11 @@ public class StorageNetworkRegistry { } } - public static StorageNetwork get(BlockPos pos, int dimension) { + public static NetworkMaster get(BlockPos pos, int dimension) { return get(dimension) == null ? null : get(dimension).get(pos); } - public static Map get(int dimension) { + public static Map get(int dimension) { return NETWORKS.get(dimension); } } diff --git a/src/main/java/refinedstorage/api/storagenet/StorageNetworkSavedData.java b/src/main/java/refinedstorage/api/storagenet/NetworkMasterSavedData.java similarity index 70% rename from src/main/java/refinedstorage/api/storagenet/StorageNetworkSavedData.java rename to src/main/java/refinedstorage/api/storagenet/NetworkMasterSavedData.java index ac9666890..317b1ef98 100755 --- a/src/main/java/refinedstorage/api/storagenet/StorageNetworkSavedData.java +++ b/src/main/java/refinedstorage/api/storagenet/NetworkMasterSavedData.java @@ -9,10 +9,10 @@ import net.minecraftforge.common.util.Constants; import java.util.Map; -public class StorageNetworkSavedData extends WorldSavedData { +public class NetworkMasterSavedData extends WorldSavedData { public static final String NBT_STORAGE_NETWORKS = "StorageNetworks"; - public StorageNetworkSavedData(String name) { + public NetworkMasterSavedData(String name) { super(name); } @@ -25,10 +25,10 @@ public class StorageNetworkSavedData extends WorldSavedData { BlockPos pos = new BlockPos(networkTag.getInteger("X"), networkTag.getInteger("Y"), networkTag.getInteger("Z")); - StorageNetwork network = new StorageNetwork(pos); + NetworkMaster network = new NetworkMaster(pos); network.readFromNBT(networkTag.getCompoundTag("Data")); - StorageNetworkRegistry.add(network, networkTag.getInteger("Dim")); + NetworkMasterRegistry.add(network, networkTag.getInteger("Dim")); } } @@ -36,8 +36,8 @@ public class StorageNetworkSavedData extends WorldSavedData { public NBTTagCompound writeToNBT(NBTTagCompound tag) { NBTTagList networks = new NBTTagList(); - for (Map.Entry> entry : StorageNetworkRegistry.NETWORKS.entrySet()) { - for (StorageNetwork network : entry.getValue().values()) { + for (Map.Entry> entry : NetworkMasterRegistry.NETWORKS.entrySet()) { + for (NetworkMaster network : entry.getValue().values()) { NBTTagCompound networkTag = new NBTTagCompound(); networkTag.setInteger("X", network.getPos().getX()); networkTag.setInteger("Y", network.getPos().getY()); @@ -53,11 +53,11 @@ public class StorageNetworkSavedData extends WorldSavedData { return tag; } - public static StorageNetworkSavedData get(World world) { - StorageNetworkSavedData instance = (StorageNetworkSavedData) world.getMapStorage().getOrLoadData(StorageNetworkSavedData.class, "RSStorageNetworks"); + public static NetworkMasterSavedData get(World world) { + NetworkMasterSavedData instance = (NetworkMasterSavedData) world.getMapStorage().getOrLoadData(NetworkMasterSavedData.class, "RSStorageNetworks"); if (instance == null) { - instance = new StorageNetworkSavedData("RSStorageNetworks"); + instance = new NetworkMasterSavedData("RSStorageNetworks"); world.getMapStorage().setData("RSStorageNetworks", instance); } diff --git a/src/main/java/refinedstorage/autocrafting/CraftingTaskScheduler.java b/src/main/java/refinedstorage/autocrafting/CraftingTaskScheduler.java index 8741478cc..2d2b6c40e 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.storagenet.StorageNetwork; +import refinedstorage.api.storagenet.NetworkMaster; public class CraftingTaskScheduler { public static String NBT_SCHEDULED = "CraftingTaskScheduled"; @@ -14,13 +14,13 @@ public class CraftingTaskScheduler { return scheduledItem == null || !RefinedStorageUtils.compareStack(scheduledItem, item, compare); } - public void schedule(StorageNetwork network, int compare, ItemStack item) { - CraftingPattern pattern = network.getPatternWithBestScore(item, compare); + public void schedule(NetworkMaster master, int compare, ItemStack item) { + CraftingPattern pattern = master.getPatternWithBestScore(item, compare); if (pattern != null) { scheduledItem = item; - network.addCraftingTask(network.createCraftingTask(pattern)); + master.addCraftingTask(master.createCraftingTask(pattern)); } } diff --git a/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java b/src/main/java/refinedstorage/autocrafting/task/BasicCraftingTask.java index 6ad2b8e25..7ee6d481c 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.storagenet.StorageNetwork; +import refinedstorage.api.storagenet.NetworkMaster; import refinedstorage.autocrafting.CraftingPattern; import java.util.ArrayList; @@ -50,7 +50,7 @@ public class BasicCraftingTask implements ICraftingTask { return pattern; } - public boolean update(StorageNetwork network) { + public boolean update(NetworkMaster master) { this.updatedOnce = true; boolean done = true; @@ -63,17 +63,17 @@ public class BasicCraftingTask implements ICraftingTask { if (!satisfied[i]) { done = false; - ItemStack took = network.take(input, 1); + ItemStack took = master.take(input, 1); if (took != null) { itemsTook.add(took); satisfied[i] = true; } else if (!childTasks[i]) { - CraftingPattern pattern = network.getPatternWithBestScore(input); + CraftingPattern pattern = master.getPatternWithBestScore(input); if (pattern != null) { - network.addCraftingTask(network.createCraftingTask(pattern)); + master.addCraftingTask(master.createCraftingTask(pattern)); childTasks[i] = true; } @@ -90,23 +90,23 @@ public class BasicCraftingTask implements ICraftingTask { // @todo: handle no space @Override - public void onDone(StorageNetwork network) { + public void onDone(NetworkMaster master) { for (ItemStack output : pattern.getOutputs()) { - network.push(output, output.stackSize, false); + master.push(output, output.stackSize, false); } if (pattern.getByproducts() != null) { for (ItemStack byproduct : pattern.getByproducts()) { - network.push(byproduct, byproduct.stackSize, false); + master.push(byproduct, byproduct.stackSize, false); } } } // @todo: handle no space @Override - public void onCancelled(StorageNetwork network) { + public void onCancelled(NetworkMaster master) { for (ItemStack took : itemsTook) { - network.push(took, took.stackSize, false); + master.push(took, took.stackSize, false); } } diff --git a/src/main/java/refinedstorage/autocrafting/task/ICraftingTask.java b/src/main/java/refinedstorage/autocrafting/task/ICraftingTask.java index 05496adba..a8e9e32d8 100755 --- a/src/main/java/refinedstorage/autocrafting/task/ICraftingTask.java +++ b/src/main/java/refinedstorage/autocrafting/task/ICraftingTask.java @@ -1,17 +1,17 @@ package refinedstorage.autocrafting.task; import net.minecraft.nbt.NBTTagCompound; -import refinedstorage.api.storagenet.StorageNetwork; +import refinedstorage.api.storagenet.NetworkMaster; import refinedstorage.autocrafting.CraftingPattern; public interface ICraftingTask { CraftingPattern getPattern(); - boolean update(StorageNetwork network); + boolean update(NetworkMaster master); - void onDone(StorageNetwork network); + void onDone(NetworkMaster master); - void onCancelled(StorageNetwork network); + void onCancelled(NetworkMaster master); void writeToNBT(NBTTagCompound tag); diff --git a/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java b/src/main/java/refinedstorage/autocrafting/task/ProcessingCraftingTask.java index 02ab9699a..7d3b070cc 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.storagenet.StorageNetwork; +import refinedstorage.api.storagenet.NetworkMaster; import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.tile.TileCrafter; @@ -42,17 +42,17 @@ public class ProcessingCraftingTask implements ICraftingTask { } @Override - public boolean update(StorageNetwork network) { + public boolean update(NetworkMaster master) { this.updatedOnce = true; - TileCrafter crafter = pattern.getCrafter(network.getWorld()); + TileCrafter crafter = pattern.getCrafter(master.getWorld()); IItemHandler handler = RefinedStorageUtils.getItemHandler(crafter.getFacingTile(), crafter.getDirection().getOpposite()); if (handler != null) { for (int i = 0; i < inserted.length; ++i) { if (!inserted[i]) { ItemStack input = pattern.getInputs()[i]; - ItemStack took = network.take(input, 1); + ItemStack took = master.take(input, 1); if (took != null) { if (ItemHandlerHelper.insertItem(handler, took, true) == null) { @@ -60,15 +60,15 @@ public class ProcessingCraftingTask implements ICraftingTask { inserted[i] = true; } else { - network.push(took, took.stackSize, false); + master.push(took, took.stackSize, false); } } else if (!childTasks[i]) { - CraftingPattern pattern = network.getPatternWithBestScore(input); + CraftingPattern pattern = master.getPatternWithBestScore(input); if (pattern != null) { childTasks[i] = true; - network.addCraftingTask(network.createCraftingTask(pattern)); + master.addCraftingTask(master.createCraftingTask(pattern)); break; } @@ -101,12 +101,12 @@ public class ProcessingCraftingTask implements ICraftingTask { } @Override - public void onDone(StorageNetwork network) { + public void onDone(NetworkMaster master) { // NO OP } @Override - public void onCancelled(StorageNetwork network) { + public void onCancelled(NetworkMaster master) { // NO OP } diff --git a/src/main/java/refinedstorage/block/BlockCable.java b/src/main/java/refinedstorage/block/BlockCable.java index 3eb6c737f..e8b58c412 100755 --- a/src/main/java/refinedstorage/block/BlockCable.java +++ b/src/main/java/refinedstorage/block/BlockCable.java @@ -11,9 +11,9 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import refinedstorage.RefinedStorageBlocks; import refinedstorage.tile.TileCable; -import refinedstorage.tile.TileMachine; +import refinedstorage.tile.TileSlave; -public class BlockCable extends BlockMachine { +public class BlockCable extends BlockSlave { public static final AxisAlignedBB CABLE_AABB = new AxisAlignedBB(4 * (1F / 16F), 4 * (1F / 16F), 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F)); public static final PropertyBool NORTH = PropertyBool.create("north"); @@ -57,7 +57,7 @@ public class BlockCable extends BlockMachine { } public static boolean hasConnectionWith(IBlockAccess world, BlockPos pos) { - return world.getBlockState(pos).getBlock() == RefinedStorageBlocks.CONTROLLER || world.getTileEntity(pos) instanceof TileMachine; + return world.getBlockState(pos).getBlock() == RefinedStorageBlocks.CONTROLLER || world.getTileEntity(pos) instanceof TileSlave; } @Override diff --git a/src/main/java/refinedstorage/block/BlockConstructor.java b/src/main/java/refinedstorage/block/BlockConstructor.java index 93fc9c188..60ecd25a8 100755 --- a/src/main/java/refinedstorage/block/BlockConstructor.java +++ b/src/main/java/refinedstorage/block/BlockConstructor.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileConstructor; -public class BlockConstructor extends BlockMachine { +public class BlockConstructor extends BlockSlave { public BlockConstructor() { super("constructor"); } diff --git a/src/main/java/refinedstorage/block/BlockController.java b/src/main/java/refinedstorage/block/BlockController.java index 2c8f48e89..b47b8e110 100755 --- a/src/main/java/refinedstorage/block/BlockController.java +++ b/src/main/java/refinedstorage/block/BlockController.java @@ -20,8 +20,8 @@ import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageGui; -import refinedstorage.api.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; +import refinedstorage.api.storagenet.NetworkMaster; +import refinedstorage.api.storagenet.NetworkMasterRegistry; import refinedstorage.item.ItemBlockController; import refinedstorage.tile.controller.TileController; @@ -67,7 +67,7 @@ public class BlockController extends BlockBase { TileController controller = (TileController) world.getTileEntity(pos); return super.getActualState(state, world, pos) - .withProperty(ENERGY, (int) Math.ceil((float) controller.getEnergy() / (float) StorageNetwork.ENERGY_CAPACITY * 8f)); + .withProperty(ENERGY, (int) Math.ceil((float) controller.getEnergy() / (float) NetworkMaster.ENERGY_CAPACITY * 8f)); } @Override @@ -92,15 +92,15 @@ public class BlockController extends BlockBase { @Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) { if (!world.isRemote) { - StorageNetwork network = new StorageNetwork(pos, world); + NetworkMaster master = new NetworkMaster(pos, world); NBTTagCompound tag = stack.getTagCompound(); - if (tag != null && tag.hasKey(StorageNetwork.NBT_ENERGY)) { - network.getEnergy().receiveEnergy(tag.getInteger(StorageNetwork.NBT_ENERGY), false); + if (tag != null && tag.hasKey(NetworkMaster.NBT_ENERGY)) { + master.getEnergy().receiveEnergy(tag.getInteger(NetworkMaster.NBT_ENERGY), false); } - StorageNetworkRegistry.add(network, world.provider.getDimension()); + NetworkMasterRegistry.add(master, world.provider.getDimension()); } super.onBlockPlacedBy(world, pos, state, player, stack); @@ -109,7 +109,7 @@ public class BlockController extends BlockBase { @Override public void breakBlock(World world, BlockPos pos, IBlockState state) { if (!world.isRemote) { - StorageNetworkRegistry.remove(pos, world.provider.getDimension()); + NetworkMasterRegistry.remove(pos, world.provider.getDimension()); } super.breakBlock(world, pos, state); @@ -122,7 +122,7 @@ public class BlockController extends BlockBase { ItemStack stack = new ItemStack(RefinedStorageBlocks.CONTROLLER, 1, RefinedStorageBlocks.CONTROLLER.getMetaFromState(state)); NBTTagCompound tag = new NBTTagCompound(); - tag.setInteger(StorageNetwork.NBT_ENERGY, ((TileController) world.getTileEntity(pos)).getEnergyStored(null)); + tag.setInteger(NetworkMaster.NBT_ENERGY, ((TileController) world.getTileEntity(pos)).getEnergyStored(null)); stack.setTagCompound(tag); drops.add(stack); diff --git a/src/main/java/refinedstorage/block/BlockCrafter.java b/src/main/java/refinedstorage/block/BlockCrafter.java index 52ecd181d..d9eab3300 100755 --- a/src/main/java/refinedstorage/block/BlockCrafter.java +++ b/src/main/java/refinedstorage/block/BlockCrafter.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileCrafter; -public class BlockCrafter extends BlockMachine { +public class BlockCrafter extends BlockSlave { public BlockCrafter() { super("crafter"); } diff --git a/src/main/java/refinedstorage/block/BlockCraftingMonitor.java b/src/main/java/refinedstorage/block/BlockCraftingMonitor.java index d722900e1..eb25aaf26 100755 --- a/src/main/java/refinedstorage/block/BlockCraftingMonitor.java +++ b/src/main/java/refinedstorage/block/BlockCraftingMonitor.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileCraftingMonitor; -public class BlockCraftingMonitor extends BlockMachine { +public class BlockCraftingMonitor extends BlockSlave { public BlockCraftingMonitor() { super("crafting_monitor"); } diff --git a/src/main/java/refinedstorage/block/BlockDestructor.java b/src/main/java/refinedstorage/block/BlockDestructor.java index 182b2a8de..196e6c20e 100755 --- a/src/main/java/refinedstorage/block/BlockDestructor.java +++ b/src/main/java/refinedstorage/block/BlockDestructor.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileDestructor; -public class BlockDestructor extends BlockMachine { +public class BlockDestructor extends BlockSlave { public BlockDestructor() { super("destructor"); } diff --git a/src/main/java/refinedstorage/block/BlockDetector.java b/src/main/java/refinedstorage/block/BlockDetector.java index 527f789d6..8e312dd19 100755 --- a/src/main/java/refinedstorage/block/BlockDetector.java +++ b/src/main/java/refinedstorage/block/BlockDetector.java @@ -16,7 +16,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileDetector; -public class BlockDetector extends BlockMachine { +public class BlockDetector extends BlockSlave { public static final PropertyBool POWERED = PropertyBool.create("powered"); public BlockDetector() { diff --git a/src/main/java/refinedstorage/block/BlockDiskDrive.java b/src/main/java/refinedstorage/block/BlockDiskDrive.java index 39f435ded..790c4b205 100755 --- a/src/main/java/refinedstorage/block/BlockDiskDrive.java +++ b/src/main/java/refinedstorage/block/BlockDiskDrive.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileDiskDrive; -public class BlockDiskDrive extends BlockMachine { +public class BlockDiskDrive extends BlockSlave { public BlockDiskDrive() { super("disk_drive"); } diff --git a/src/main/java/refinedstorage/block/BlockExporter.java b/src/main/java/refinedstorage/block/BlockExporter.java index 8dcd637ce..4f1aba475 100755 --- a/src/main/java/refinedstorage/block/BlockExporter.java +++ b/src/main/java/refinedstorage/block/BlockExporter.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileExporter; -public class BlockExporter extends BlockMachine { +public class BlockExporter extends BlockSlave { public BlockExporter() { super("exporter"); } diff --git a/src/main/java/refinedstorage/block/BlockExternalStorage.java b/src/main/java/refinedstorage/block/BlockExternalStorage.java index 904df49d9..94b2692dd 100755 --- a/src/main/java/refinedstorage/block/BlockExternalStorage.java +++ b/src/main/java/refinedstorage/block/BlockExternalStorage.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.externalstorage.TileExternalStorage; -public class BlockExternalStorage extends BlockMachine { +public class BlockExternalStorage extends BlockSlave { public BlockExternalStorage() { super("external_storage"); } diff --git a/src/main/java/refinedstorage/block/BlockGrid.java b/src/main/java/refinedstorage/block/BlockGrid.java index 0719ae99b..07ba2250d 100755 --- a/src/main/java/refinedstorage/block/BlockGrid.java +++ b/src/main/java/refinedstorage/block/BlockGrid.java @@ -20,7 +20,7 @@ import refinedstorage.tile.grid.TileGrid; import java.util.List; -public class BlockGrid extends BlockMachine { +public class BlockGrid extends BlockSlave { public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumGridType.class); public BlockGrid() { diff --git a/src/main/java/refinedstorage/block/BlockImporter.java b/src/main/java/refinedstorage/block/BlockImporter.java index 42078dfd2..71bf4f77a 100755 --- a/src/main/java/refinedstorage/block/BlockImporter.java +++ b/src/main/java/refinedstorage/block/BlockImporter.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileImporter; -public class BlockImporter extends BlockMachine { +public class BlockImporter extends BlockSlave { public BlockImporter() { super("importer"); } diff --git a/src/main/java/refinedstorage/block/BlockInterface.java b/src/main/java/refinedstorage/block/BlockInterface.java index cc5bf74ad..c66c5cec2 100755 --- a/src/main/java/refinedstorage/block/BlockInterface.java +++ b/src/main/java/refinedstorage/block/BlockInterface.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileInterface; -public class BlockInterface extends BlockMachine { +public class BlockInterface extends BlockSlave { public BlockInterface() { super("interface"); } diff --git a/src/main/java/refinedstorage/block/BlockRelay.java b/src/main/java/refinedstorage/block/BlockRelay.java index 186da3ad8..b99d4ecb2 100755 --- a/src/main/java/refinedstorage/block/BlockRelay.java +++ b/src/main/java/refinedstorage/block/BlockRelay.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileRelay; -public class BlockRelay extends BlockMachine { +public class BlockRelay extends BlockSlave { public BlockRelay() { super("relay"); } diff --git a/src/main/java/refinedstorage/block/BlockMachine.java b/src/main/java/refinedstorage/block/BlockSlave.java similarity index 68% rename from src/main/java/refinedstorage/block/BlockMachine.java rename to src/main/java/refinedstorage/block/BlockSlave.java index 10e92847d..a0adb8742 100755 --- a/src/main/java/refinedstorage/block/BlockMachine.java +++ b/src/main/java/refinedstorage/block/BlockSlave.java @@ -10,16 +10,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import refinedstorage.tile.TileMachine; -import refinedstorage.tile.controller.ControllerSearcher; -import refinedstorage.tile.controller.TileController; +import refinedstorage.tile.TileSlave; -import java.util.HashSet; - -public abstract class BlockMachine extends BlockBase { +public abstract class BlockSlave extends BlockBase { public static final PropertyBool CONNECTED = PropertyBool.create("connected"); - public BlockMachine(String name) { + public BlockSlave(String name) { super(name); } @@ -39,7 +35,7 @@ public abstract class BlockMachine extends BlockBase { @Override public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) { return super.getActualState(state, world, pos) - .withProperty(CONNECTED, ((TileMachine) world.getTileEntity(pos)).isConnected()); + .withProperty(CONNECTED, ((TileSlave) world.getTileEntity(pos)).isConnected()); } @Override @@ -47,21 +43,17 @@ public abstract class BlockMachine extends BlockBase { super.onBlockPlacedBy(world, pos, state, player, stack); if (!world.isRemote) { - TileController controller = ControllerSearcher.search(world, pos, new HashSet()); - - if (controller != null) { - ((TileMachine) world.getTileEntity(pos)).onConnected(world, controller); - } + ((TileSlave) world.getTileEntity(pos)).onNeighborChanged(world); } } @Override public void breakBlock(World world, BlockPos pos, IBlockState state) { if (!world.isRemote) { - TileMachine machine = (TileMachine) world.getTileEntity(pos); + TileSlave machine = (TileSlave) world.getTileEntity(pos); if (machine.isConnected()) { - machine.onDisconnected(world); + machine.disconnect(world); } } @@ -73,7 +65,7 @@ public abstract class BlockMachine extends BlockBase { super.neighborChanged(state, world, pos, block); if (!world.isRemote) { - ((TileMachine) world.getTileEntity(pos)).searchController(world); + ((TileSlave) world.getTileEntity(pos)).onNeighborChanged(world); } } } diff --git a/src/main/java/refinedstorage/block/BlockSolderer.java b/src/main/java/refinedstorage/block/BlockSolderer.java index 96b498cb8..2e0f5f0b1 100755 --- a/src/main/java/refinedstorage/block/BlockSolderer.java +++ b/src/main/java/refinedstorage/block/BlockSolderer.java @@ -16,7 +16,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileSolderer; -public class BlockSolderer extends BlockMachine { +public class BlockSolderer extends BlockSlave { public static final PropertyBool WORKING = PropertyBool.create("working"); public BlockSolderer() { diff --git a/src/main/java/refinedstorage/block/BlockStorage.java b/src/main/java/refinedstorage/block/BlockStorage.java index 3815f23cf..afff028e0 100755 --- a/src/main/java/refinedstorage/block/BlockStorage.java +++ b/src/main/java/refinedstorage/block/BlockStorage.java @@ -25,7 +25,7 @@ import refinedstorage.tile.TileStorage; import java.util.ArrayList; import java.util.List; -public class BlockStorage extends BlockMachine { +public class BlockStorage extends BlockSlave { public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumStorageType.class); public BlockStorage() { diff --git a/src/main/java/refinedstorage/block/BlockWirelessTransmitter.java b/src/main/java/refinedstorage/block/BlockWirelessTransmitter.java index 04461bfe5..e641824f9 100755 --- a/src/main/java/refinedstorage/block/BlockWirelessTransmitter.java +++ b/src/main/java/refinedstorage/block/BlockWirelessTransmitter.java @@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.tile.TileWirelessTransmitter; -public class BlockWirelessTransmitter extends BlockMachine { +public class BlockWirelessTransmitter extends BlockSlave { public BlockWirelessTransmitter() { super("wireless_transmitter"); } diff --git a/src/main/java/refinedstorage/gui/GuiController.java b/src/main/java/refinedstorage/gui/GuiController.java index b5d00ceb5..981c20f45 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.storagenet.StorageNetwork; +import refinedstorage.api.storagenet.NetworkMaster; import refinedstorage.container.ContainerController; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.tile.controller.ClientMachine; @@ -46,7 +46,7 @@ public class GuiController extends GuiBase { drawTexture(x, y, 0, 0, width, height); - int barHeightNew = (int) ((float) controller.getEnergy() / (float) StorageNetwork.ENERGY_CAPACITY * (float) barHeight); + int barHeightNew = (int) ((float) controller.getEnergy() / (float) NetworkMaster.ENERGY_CAPACITY * (float) barHeight); drawTexture(x + barX, y + barY + barHeight - barHeightNew, 178, barHeight - barHeightNew, barWidth, barHeightNew); } @@ -103,7 +103,7 @@ public class GuiController extends GuiBase { } if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) { - drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergy(), StorageNetwork.ENERGY_CAPACITY)); + drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergy(), NetworkMaster.ENERGY_CAPACITY)); } } diff --git a/src/main/java/refinedstorage/item/ItemBlockController.java b/src/main/java/refinedstorage/item/ItemBlockController.java index 5417f6751..44d1246e4 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.storagenet.StorageNetwork; +import refinedstorage.api.storagenet.NetworkMaster; import refinedstorage.block.EnumControllerType; import java.util.List; @@ -21,11 +21,11 @@ public class ItemBlockController extends ItemBlockBase { if (stack.getMetadata() != EnumControllerType.CREATIVE.getId()) { int energyStored = 0; - if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(StorageNetwork.NBT_ENERGY)) { - energyStored = stack.getTagCompound().getInteger(StorageNetwork.NBT_ENERGY); + if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(NetworkMaster.NBT_ENERGY)) { + energyStored = stack.getTagCompound().getInteger(NetworkMaster.NBT_ENERGY); } - list.add(I18n.format("misc.refinedstorage:energy_stored", energyStored, StorageNetwork.ENERGY_CAPACITY)); + list.add(I18n.format("misc.refinedstorage:energy_stored", energyStored, NetworkMaster.ENERGY_CAPACITY)); } } @@ -43,7 +43,7 @@ public class ItemBlockController extends ItemBlockBase { tag = new NBTTagCompound(); } - tag.setInteger(StorageNetwork.NBT_ENERGY, stack.getMetadata() == EnumControllerType.CREATIVE.getId() ? StorageNetwork.ENERGY_CAPACITY : 0); + tag.setInteger(NetworkMaster.NBT_ENERGY, stack.getMetadata() == EnumControllerType.CREATIVE.getId() ? NetworkMaster.ENERGY_CAPACITY : 0); return stack; } diff --git a/src/main/java/refinedstorage/item/ItemWirelessGrid.java b/src/main/java/refinedstorage/item/ItemWirelessGrid.java index dafc0bd2b..7c31ddf6a 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.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; +import refinedstorage.api.storagenet.NetworkMaster; +import refinedstorage.api.storagenet.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) { - StorageNetwork network = StorageNetworkRegistry.get(new BlockPos(getX(stack), getY(stack), getZ(stack)), player.worldObj.provider.getDimension()); + NetworkMaster master = NetworkMasterRegistry.get(new BlockPos(getX(stack), getY(stack), getZ(stack)), player.worldObj.provider.getDimension()); - if (network != null) { - if (network.getWirelessGridHandler().handleOpen(player, hand)) { + if (master != null) { + if (master.getWirelessGridHandler().handleOpen(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/MessageGridCraftingStart.java b/src/main/java/refinedstorage/network/MessageGridCraftingStart.java index 8c0163a79..22a5bb78c 100755 --- a/src/main/java/refinedstorage/network/MessageGridCraftingStart.java +++ b/src/main/java/refinedstorage/network/MessageGridCraftingStart.java @@ -4,8 +4,8 @@ import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import refinedstorage.api.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; +import refinedstorage.api.storagenet.NetworkMaster; +import refinedstorage.api.storagenet.NetworkMasterRegistry; public class MessageGridCraftingStart extends MessageHandlerPlayerToServer implements IMessage { private int x; @@ -45,7 +45,7 @@ public class MessageGridCraftingStart extends MessageHandlerPlayerToServer { - private StorageNetwork network; + private NetworkMaster network; private List items = new ArrayList(); public MessageGridItems() { } - public MessageGridItems(StorageNetwork network) { + public MessageGridItems(NetworkMaster network) { this.network = network; } diff --git a/src/main/java/refinedstorage/network/MessageWirelessGridCraftingStart.java b/src/main/java/refinedstorage/network/MessageWirelessGridCraftingStart.java index 4b6e6e8d7..420b520d6 100755 --- a/src/main/java/refinedstorage/network/MessageWirelessGridCraftingStart.java +++ b/src/main/java/refinedstorage/network/MessageWirelessGridCraftingStart.java @@ -4,8 +4,8 @@ import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import refinedstorage.api.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; +import refinedstorage.api.storagenet.NetworkMaster; +import refinedstorage.api.storagenet.NetworkMasterRegistry; public class MessageWirelessGridCraftingStart extends MessageHandlerPlayerToServer implements IMessage { private int controllerX; @@ -45,7 +45,7 @@ public class MessageWirelessGridCraftingStart extends MessageHandlerPlayerToServ @Override public void handle(MessageWirelessGridCraftingStart message, EntityPlayerMP player) { - StorageNetwork network = StorageNetworkRegistry.get(new BlockPos(message.controllerX, message.controllerY, message.controllerZ), player.worldObj.provider.getDimension()); + NetworkMaster network = NetworkMasterRegistry.get(new BlockPos(message.controllerX, message.controllerY, message.controllerZ), player.worldObj.provider.getDimension()); if (network != null && network.canRun()) { network.getStorageHandler().onCraftingRequested(message.id, message.quantity); diff --git a/src/main/java/refinedstorage/network/MessageWirelessGridHeldItemPush.java b/src/main/java/refinedstorage/network/MessageWirelessGridHeldItemPush.java index 2a40c7752..74ad659ea 100755 --- a/src/main/java/refinedstorage/network/MessageWirelessGridHeldItemPush.java +++ b/src/main/java/refinedstorage/network/MessageWirelessGridHeldItemPush.java @@ -4,8 +4,8 @@ import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import refinedstorage.api.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; +import refinedstorage.api.storagenet.NetworkMaster; +import refinedstorage.api.storagenet.NetworkMasterRegistry; public class MessageWirelessGridHeldItemPush extends MessageHandlerPlayerToServer implements IMessage { private int controllerX; @@ -41,7 +41,7 @@ public class MessageWirelessGridHeldItemPush extends MessageHandlerPlayerToServe @Override public void handle(MessageWirelessGridHeldItemPush message, EntityPlayerMP player) { - StorageNetwork network = StorageNetworkRegistry.get(new BlockPos(message.controllerX, message.controllerY, message.controllerZ), player.worldObj.provider.getDimension()); + NetworkMaster network = NetworkMasterRegistry.get(new BlockPos(message.controllerX, message.controllerY, message.controllerZ), player.worldObj.provider.getDimension()); if (network != null && network.canRun()) { network.getStorageHandler().onHeldItemPush(message.one, player); diff --git a/src/main/java/refinedstorage/network/MessageWirelessGridStoragePull.java b/src/main/java/refinedstorage/network/MessageWirelessGridStoragePull.java index 39fba3f6c..0282b7255 100755 --- a/src/main/java/refinedstorage/network/MessageWirelessGridStoragePull.java +++ b/src/main/java/refinedstorage/network/MessageWirelessGridStoragePull.java @@ -4,8 +4,8 @@ import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import refinedstorage.api.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; +import refinedstorage.api.storagenet.NetworkMaster; +import refinedstorage.api.storagenet.NetworkMasterRegistry; public class MessageWirelessGridStoragePull extends MessageHandlerPlayerToServer implements IMessage { private int controllerX; @@ -45,7 +45,7 @@ public class MessageWirelessGridStoragePull extends MessageHandlerPlayerToServer @Override public void handle(MessageWirelessGridStoragePull message, EntityPlayerMP player) { - StorageNetwork network = StorageNetworkRegistry.get(new BlockPos(message.controllerX, message.controllerY, message.controllerZ), player.worldObj.provider.getDimension()); + NetworkMaster network = NetworkMasterRegistry.get(new BlockPos(message.controllerX, message.controllerY, message.controllerZ), player.worldObj.provider.getDimension()); if (network != null && network.canRun()) { network.getStorageHandler().onPull(message.id, message.flags, player); diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index 987621ee3..a31f8ee0c 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -20,7 +20,7 @@ import refinedstorage.RefinedStorageItems; import refinedstorage.api.solderer.SoldererRecipeBasic; import refinedstorage.api.solderer.SoldererRegistry; import refinedstorage.api.storage.NBTStorage; -import refinedstorage.api.storagenet.StorageNetworkEventHandler; +import refinedstorage.api.storagenet.NetworkMasterEventHandler; import refinedstorage.block.BlockBase; import refinedstorage.block.EnumControllerType; import refinedstorage.block.EnumGridType; @@ -485,7 +485,7 @@ public class CommonProxy { } public void init(FMLInitializationEvent e) { - MinecraftForge.EVENT_BUS.register(new StorageNetworkEventHandler()); + MinecraftForge.EVENT_BUS.register(new NetworkMasterEventHandler()); } public void postInit(FMLPostInitializationEvent e) { diff --git a/src/main/java/refinedstorage/tile/TileCable.java b/src/main/java/refinedstorage/tile/TileCable.java index 687d84ba0..b0e708eab 100755 --- a/src/main/java/refinedstorage/tile/TileCable.java +++ b/src/main/java/refinedstorage/tile/TileCable.java @@ -2,22 +2,23 @@ package refinedstorage.tile; import net.minecraft.inventory.Container; -public class TileCable extends TileMachine { +public class TileCable extends TileSlave { @Override public int getEnergyUsage() { return 0; } @Override - public void updateMachine() { + public void updateSlave() { + } + + @Override + public boolean canSendConnectivityUpdate() { + return false; } @Override public Class getContainer() { return null; } - - public boolean canSendConnectivityData() { - return false; - } } diff --git a/src/main/java/refinedstorage/tile/TileConstructor.java b/src/main/java/refinedstorage/tile/TileConstructor.java index 2b8940793..54983302e 100755 --- a/src/main/java/refinedstorage/tile/TileConstructor.java +++ b/src/main/java/refinedstorage/tile/TileConstructor.java @@ -22,7 +22,7 @@ import refinedstorage.inventory.BasicItemValidator; import refinedstorage.item.ItemUpgrade; import refinedstorage.tile.config.ICompareConfig; -public class TileConstructor extends TileMachine implements ICompareConfig { +public class TileConstructor extends TileSlave implements ICompareConfig { public static final String NBT_COMPARE = "Compare"; public static final int BASE_SPEED = 20; @@ -53,7 +53,7 @@ public class TileConstructor extends TileMachine implements ICompareConfig { } @Override - public void updateMachine() { + public void updateSlave() { if (block != null && ticks % RefinedStorageUtils.getSpeed(upgrades, BASE_SPEED, 4) == 0) { BlockPos front = pos.offset(getDirection()); diff --git a/src/main/java/refinedstorage/tile/TileCrafter.java b/src/main/java/refinedstorage/tile/TileCrafter.java index 215ad2b1c..67e84dd12 100755 --- a/src/main/java/refinedstorage/tile/TileCrafter.java +++ b/src/main/java/refinedstorage/tile/TileCrafter.java @@ -19,7 +19,7 @@ import refinedstorage.inventory.IItemValidator; import refinedstorage.item.ItemPattern; import refinedstorage.item.ItemUpgrade; -public class TileCrafter extends TileMachine { +public class TileCrafter extends TileSlave { private BasicItemHandler patterns = new BasicItemHandler(9, this, new IItemValidator() { @Override public boolean valid(ItemStack stack) { @@ -35,7 +35,7 @@ public class TileCrafter extends TileMachine { } @Override - public void updateMachine() { + public void updateSlave() { } @Override @@ -44,14 +44,14 @@ public class TileCrafter extends TileMachine { } @Override - public void onDisconnected(World world) { + public void disconnect(World world) { for (ICraftingTask task : network.getCraftingTasks()) { if (task.getPattern().getCrafter(worldObj) == this) { network.cancelCraftingTask(task); } } - super.onDisconnected(world); + super.disconnect(world); } @Override diff --git a/src/main/java/refinedstorage/tile/TileCraftingMonitor.java b/src/main/java/refinedstorage/tile/TileCraftingMonitor.java index 8b3a340a8..98a4ce940 100755 --- a/src/main/java/refinedstorage/tile/TileCraftingMonitor.java +++ b/src/main/java/refinedstorage/tile/TileCraftingMonitor.java @@ -11,7 +11,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class TileCraftingMonitor extends TileMachine { +public class TileCraftingMonitor extends TileSlave { private List tasks = new ArrayList(); @Override @@ -20,7 +20,7 @@ public class TileCraftingMonitor extends TileMachine { } @Override - public void updateMachine() { + public void updateSlave() { } @Override diff --git a/src/main/java/refinedstorage/tile/TileDestructor.java b/src/main/java/refinedstorage/tile/TileDestructor.java index aeea68440..0a83765c8 100755 --- a/src/main/java/refinedstorage/tile/TileDestructor.java +++ b/src/main/java/refinedstorage/tile/TileDestructor.java @@ -25,7 +25,7 @@ import refinedstorage.tile.config.ModeFilter; import java.util.List; -public class TileDestructor extends TileMachine implements ICompareConfig, IModeConfig { +public class TileDestructor extends TileSlave implements ICompareConfig, IModeConfig { public static final String NBT_COMPARE = "Compare"; public static final String NBT_MODE = "Mode"; @@ -47,7 +47,7 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode } @Override - public void updateMachine() { + public void updateSlave() { if (ticks % RefinedStorageUtils.getSpeed(upgrades, BASE_SPEED, 4) == 0) { BlockPos front = pos.offset(getDirection()); diff --git a/src/main/java/refinedstorage/tile/TileDetector.java b/src/main/java/refinedstorage/tile/TileDetector.java index 5d8c5cb71..df2ac0389 100755 --- a/src/main/java/refinedstorage/tile/TileDetector.java +++ b/src/main/java/refinedstorage/tile/TileDetector.java @@ -13,7 +13,7 @@ import refinedstorage.inventory.BasicItemHandler; import refinedstorage.tile.config.ICompareConfig; import refinedstorage.tile.config.RedstoneMode; -public class TileDetector extends TileMachine implements ICompareConfig { +public class TileDetector extends TileSlave implements ICompareConfig { public static final int SPEED = 5; public static final int MODE_UNDER = 0; @@ -34,10 +34,10 @@ public class TileDetector extends TileMachine implements ICompareConfig { private boolean powered = false; @Override - public void onDisconnected(World world) { - super.onDisconnected(world); - + public void disconnect(World world) { powered = false; + + super.disconnect(world); } @Override @@ -46,7 +46,7 @@ public class TileDetector extends TileMachine implements ICompareConfig { } @Override - public void updateMachine() { + public void updateSlave() { if (ticks % SPEED == 0) { ItemStack slot = filter.getStackInSlot(0); diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index 23f19699d..c52198c8d 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -12,7 +12,6 @@ import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.RefinedStorageCapabilities; import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorageProvider; import refinedstorage.api.storage.NBTStorage; @@ -25,7 +24,7 @@ import refinedstorage.tile.config.*; import java.util.List; -public class TileDiskDrive extends TileMachine implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig { +public class TileDiskDrive extends TileSlave implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig { public class Storage extends NBTStorage { public Storage(ItemStack disk) { super(disk.getTagCompound(), EnumStorageType.getById(disk.getItemDamage()).getCapacity(), TileDiskDrive.this); @@ -86,7 +85,7 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto } @Override - public void updateMachine() { + public void updateSlave() { } @Override @@ -269,8 +268,6 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto public T getCapability(Capability capability, EnumFacing facing) { if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { return (T) disks; - } else if (capability == RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY) { - return (T) this; } return super.getCapability(capability, facing); @@ -278,6 +275,6 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto @Override public boolean hasCapability(Capability capability, EnumFacing facing) { - return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || capability == RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY || super.hasCapability(capability, facing); + return capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing); } } diff --git a/src/main/java/refinedstorage/tile/TileExporter.java b/src/main/java/refinedstorage/tile/TileExporter.java index 9e5db5c51..c9de04f7e 100755 --- a/src/main/java/refinedstorage/tile/TileExporter.java +++ b/src/main/java/refinedstorage/tile/TileExporter.java @@ -18,7 +18,7 @@ import refinedstorage.inventory.BasicItemValidator; import refinedstorage.item.ItemUpgrade; import refinedstorage.tile.config.ICompareConfig; -public class TileExporter extends TileMachine implements ICompareConfig { +public class TileExporter extends TileSlave implements ICompareConfig { public static final String NBT_COMPARE = "Compare"; private BasicItemHandler filters = new BasicItemHandler(9, this); @@ -40,7 +40,7 @@ public class TileExporter extends TileMachine implements ICompareConfig { } @Override - public void updateMachine() { + public void updateSlave() { IItemHandler handler = RefinedStorageUtils.getItemHandler(getFacingTile(), getDirection().getOpposite()); if (handler != null && ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) { diff --git a/src/main/java/refinedstorage/tile/TileImporter.java b/src/main/java/refinedstorage/tile/TileImporter.java index 0c1db934b..9fac415e4 100755 --- a/src/main/java/refinedstorage/tile/TileImporter.java +++ b/src/main/java/refinedstorage/tile/TileImporter.java @@ -19,7 +19,7 @@ import refinedstorage.tile.config.IModeConfig; import refinedstorage.tile.config.ModeConstants; import refinedstorage.tile.config.ModeFilter; -public class TileImporter extends TileMachine implements ICompareConfig, IModeConfig { +public class TileImporter extends TileSlave implements ICompareConfig, IModeConfig { public static final String NBT_COMPARE = "Compare"; public static final String NBT_MODE = "Mode"; @@ -42,7 +42,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo } @Override - public void updateMachine() { + public void updateSlave() { IItemHandler handler = RefinedStorageUtils.getItemHandler(getFacingTile(), getDirection().getOpposite()); if (getFacingTile() instanceof TileDiskDrive || handler == null) { diff --git a/src/main/java/refinedstorage/tile/TileInterface.java b/src/main/java/refinedstorage/tile/TileInterface.java index 97fcffcf1..a1193403a 100755 --- a/src/main/java/refinedstorage/tile/TileInterface.java +++ b/src/main/java/refinedstorage/tile/TileInterface.java @@ -17,7 +17,7 @@ import refinedstorage.inventory.BasicItemValidator; import refinedstorage.item.ItemUpgrade; import refinedstorage.tile.config.ICompareConfig; -public class TileInterface extends TileMachine implements ICompareConfig { +public class TileInterface extends TileSlave implements ICompareConfig { public static final String NBT_COMPARE = "Compare"; private BasicItemHandler importItems = new BasicItemHandler(9, this); @@ -40,7 +40,7 @@ public class TileInterface extends TileMachine implements ICompareConfig { } @Override - public void updateMachine() { + public void updateSlave() { if (currentSlot >= importItems.getSlots()) { currentSlot = 0; } diff --git a/src/main/java/refinedstorage/tile/TileRelay.java b/src/main/java/refinedstorage/tile/TileRelay.java index aa2b7222b..205401e3a 100755 --- a/src/main/java/refinedstorage/tile/TileRelay.java +++ b/src/main/java/refinedstorage/tile/TileRelay.java @@ -5,7 +5,7 @@ import refinedstorage.RefinedStorageBlocks; import refinedstorage.container.ContainerRelay; import refinedstorage.tile.config.RedstoneMode; -public class TileRelay extends TileMachine { +public class TileRelay extends TileSlave { private boolean couldUpdate; public TileRelay() { @@ -18,7 +18,7 @@ public class TileRelay extends TileMachine { } @Override - public void updateMachine() { + public void updateSlave() { } public void update() { diff --git a/src/main/java/refinedstorage/tile/TileMachine.java b/src/main/java/refinedstorage/tile/TileSlave.java similarity index 68% rename from src/main/java/refinedstorage/tile/TileMachine.java rename to src/main/java/refinedstorage/tile/TileSlave.java index 4b66e07c3..50608f268 100755 --- a/src/main/java/refinedstorage/tile/TileMachine.java +++ b/src/main/java/refinedstorage/tile/TileSlave.java @@ -3,10 +3,12 @@ package refinedstorage.tile; import io.netty.buffer.ByteBuf; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; +import refinedstorage.api.storagenet.INetworkSlave; +import refinedstorage.api.storagenet.NetworkMaster; +import refinedstorage.api.storagenet.NetworkMasterRegistry; import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.RedstoneMode; import refinedstorage.tile.controller.ControllerSearcher; @@ -15,34 +17,18 @@ import refinedstorage.tile.controller.TileController; import java.util.HashSet; import java.util.Set; -public abstract class TileMachine extends TileBase implements ISynchronizedContainer, IRedstoneModeConfig { +public abstract class TileSlave extends TileBase implements ISynchronizedContainer, IRedstoneModeConfig, INetworkSlave { public static final String NBT_CONNECTED = "Connected"; protected boolean connected; protected boolean wasConnected; protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; - protected StorageNetwork network; + protected NetworkMaster network; private Block block; private Set visited = new HashSet(); - public void searchController(World world) { - visited.clear(); - - TileController newController = ControllerSearcher.search(world, pos, visited); - - if (network == null) { - if (newController != null) { - onConnected(world, newController); - } - } else { - if (newController == null) { - onDisconnected(world); - } - } - } - @Override public void update() { if (!worldObj.isRemote) { @@ -50,59 +36,50 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta block = worldObj.getBlockState(pos).getBlock(); } - if (wasConnected != isActive() && canSendConnectivityData()) { + if (wasConnected != isActive() && canSendConnectivityUpdate()) { wasConnected = isActive(); RefinedStorageUtils.updateBlock(worldObj, pos); } - - if (isActive()) { - updateMachine(); - } } super.update(); } - public boolean canSendConnectivityData() { + @Override + public boolean canSendConnectivityUpdate() { return true; } + @Override public boolean canUpdate() { return redstoneMode.isEnabled(worldObj, pos); } public boolean isActive() { - return connected && canUpdate(); + return isConnected() && canUpdate(); } - public void onConnected(World world, TileController controller) { - if (tryConnect(controller) && block != null) { + @Override + public void connect(World world, NetworkMaster network) { + if (block != null && this.network.canRun()) { + this.network = network; + this.connected = true; + + this.network.addSlave(this); + world.notifyNeighborsOfStateChange(pos, block); } } - private boolean tryConnect(TileController controller) { - StorageNetwork network = StorageNetworkRegistry.get(controller.getPos(), worldObj.provider.getDimension()); - - if (!network.canRun()) { - return false; - } - - this.network = network; - this.connected = true; - - network.addMachine(this); - - return true; - } - - public void forceConnect(StorageNetwork network) { + @Override + public void forceConnect(NetworkMaster network) { this.network = network; this.connected = true; } - public void onDisconnected(World world) { + @Override + public void disconnect(World world) { this.connected = false; if (this.network != null) { @@ -113,10 +90,33 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta world.notifyNeighborsOfStateChange(pos, block); } - public StorageNetwork getNetwork() { + @Override + public void onNeighborChanged(World world) { + visited.clear(); + + TileController controller = ControllerSearcher.search(world, pos, visited); + + if (network == null) { + if (controller != null) { + connect(world, NetworkMasterRegistry.get(controller.getPos(), world.provider.getDimension())); + } + } else { + if (controller == null) { + disconnect(world); + } + } + } + + public NetworkMaster getNetwork() { return network; } + @Override + public BlockPos getPosition() { + return pos; + } + + @Override public boolean isConnected() { return connected; } @@ -179,21 +179,17 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta connected = tag.getBoolean(NBT_CONNECTED); } - public abstract int getEnergyUsage(); - - public abstract void updateMachine(); - @Override public boolean equals(Object other) { if (other == this) { return true; } - if (!(other instanceof TileMachine)) { + if (!(other instanceof TileSlave)) { return false; } - return ((TileMachine) other).getPos().equals(pos); + return ((TileSlave) other).getPos().equals(pos); } @Override diff --git a/src/main/java/refinedstorage/tile/TileSolderer.java b/src/main/java/refinedstorage/tile/TileSolderer.java index b561a2522..aa48d5b38 100755 --- a/src/main/java/refinedstorage/tile/TileSolderer.java +++ b/src/main/java/refinedstorage/tile/TileSolderer.java @@ -19,7 +19,7 @@ import refinedstorage.inventory.BasicItemValidator; import refinedstorage.inventory.SoldererItemHandler; import refinedstorage.item.ItemUpgrade; -public class TileSolderer extends TileMachine { +public class TileSolderer extends TileSlave { public static final String NBT_WORKING = "Working"; public static final String NBT_PROGRESS = "Progress"; @@ -39,7 +39,7 @@ public class TileSolderer extends TileMachine { } @Override - public void updateMachine() { + public void updateSlave() { boolean wasWorking = working; if (items.getStackInSlot(1) == null && items.getStackInSlot(2) == null && items.getStackInSlot(3) == null) { @@ -91,10 +91,10 @@ public class TileSolderer extends TileMachine { } @Override - public void onDisconnected(World world) { - super.onDisconnected(world); - + public void disconnect(World world) { stop(); + + super.disconnect(world); } public void stop() { diff --git a/src/main/java/refinedstorage/tile/TileStorage.java b/src/main/java/refinedstorage/tile/TileStorage.java index 8c41df589..9fda79af6 100755 --- a/src/main/java/refinedstorage/tile/TileStorage.java +++ b/src/main/java/refinedstorage/tile/TileStorage.java @@ -4,14 +4,11 @@ import io.netty.buffer.ByteBuf; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemHandlerHelper; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.RefinedStorageCapabilities; import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorageProvider; import refinedstorage.api.storage.NBTStorage; @@ -24,7 +21,7 @@ import refinedstorage.tile.config.*; import java.util.List; -public class TileStorage extends TileMachine implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig { +public class TileStorage extends TileSlave implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig { class Storage extends NBTStorage { public Storage() { super(TileStorage.this.getStorageTag(), TileStorage.this.getCapacity(), TileStorage.this); @@ -69,7 +66,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora } @Override - public void updateMachine() { + public void updateSlave() { } @Override @@ -240,18 +237,4 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora public int getCapacity() { return getType().getCapacity(); } - - @Override - public T getCapability(Capability capability, EnumFacing facing) { - if (capability == RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY) { - return (T) this; - } - - return super.getCapability(capability, facing); - } - - @Override - public boolean hasCapability(Capability capability, EnumFacing facing) { - return capability == RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY || super.hasCapability(capability, facing); - } } diff --git a/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java b/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java index 996dbe462..58dba1d3c 100755 --- a/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java +++ b/src/main/java/refinedstorage/tile/TileWirelessTransmitter.java @@ -13,7 +13,7 @@ import refinedstorage.inventory.BasicItemHandler; import refinedstorage.inventory.BasicItemValidator; import refinedstorage.item.ItemUpgrade; -public class TileWirelessTransmitter extends TileMachine { +public class TileWirelessTransmitter extends TileSlave { public static final int RANGE_PER_UPGRADE = 8; private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_RANGE)); @@ -24,7 +24,7 @@ public class TileWirelessTransmitter extends TileMachine { } @Override - public void updateMachine() { + public void updateSlave() { } @Override diff --git a/src/main/java/refinedstorage/tile/controller/ControllerSearcher.java b/src/main/java/refinedstorage/tile/controller/ControllerSearcher.java index ff7b8a3f8..041a76e57 100755 --- a/src/main/java/refinedstorage/tile/controller/ControllerSearcher.java +++ b/src/main/java/refinedstorage/tile/controller/ControllerSearcher.java @@ -4,8 +4,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -import refinedstorage.tile.TileMachine; import refinedstorage.tile.TileRelay; +import refinedstorage.tile.TileSlave; import java.util.Set; @@ -21,7 +21,7 @@ public final class ControllerSearcher { if (tile instanceof TileController) { return (TileController) tile; - } else if (tile instanceof TileMachine) { + } else if (tile instanceof TileSlave) { if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).canUpdate()) { return null; } diff --git a/src/main/java/refinedstorage/tile/controller/StorageHandler.java b/src/main/java/refinedstorage/tile/controller/StorageHandler.java index cfdac7d8f..a48c72953 100755 --- a/src/main/java/refinedstorage/tile/controller/StorageHandler.java +++ b/src/main/java/refinedstorage/tile/controller/StorageHandler.java @@ -4,7 +4,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.InventoryHelper; import net.minecraft.item.ItemStack; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.storagenet.StorageNetwork; +import refinedstorage.api.storagenet.NetworkMaster; import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.task.ICraftingTask; import refinedstorage.item.ItemWirelessGrid; @@ -13,10 +13,10 @@ import refinedstorage.network.GridPullFlags; public class StorageHandler { public static final int MAX_CRAFTING_PER_REQUEST = 500; - private StorageNetwork network; + private NetworkMaster master; - public StorageHandler(StorageNetwork network) { - this.network = network; + public StorageHandler(NetworkMaster master) { + this.master = master; } public void onPull(int id, int flags, EntityPlayerMP player) { @@ -24,11 +24,11 @@ public class StorageHandler { return; } - if (id < 0 || id > network.getItems().size() - 1) { + if (id < 0 || id > master.getItems().size() - 1) { return; } - ItemStack stack = network.getItems().get(id); + ItemStack stack = master.getItems().get(id); int size = 64; @@ -46,7 +46,7 @@ public class StorageHandler { size = Math.min(size, stack.getItem().getItemStackLimit(stack)); - ItemStack took = network.take(stack, size); + ItemStack took = master.take(stack, size); if (took != null) { if (GridPullFlags.isPullingWithShift(flags)) { @@ -58,7 +58,7 @@ public class StorageHandler { player.updateHeldItem(); } - network.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PULL); + master.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PULL); } } @@ -71,8 +71,8 @@ public class StorageHandler { int size = one ? 1 : stack.stackSize; if (one) { - if (network.push(stack, size, true) == null) { - network.push(stack, size, false); + if (master.push(stack, size, true) == null) { + master.push(stack, size, false); stack.stackSize -= size; @@ -81,21 +81,21 @@ public class StorageHandler { } } } else { - player.inventory.setItemStack(network.push(stack, size, false)); + player.inventory.setItemStack(master.push(stack, size, false)); } player.updateHeldItem(); - network.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH); + master.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH); } public void onCraftingRequested(int id, int quantity) { - if (id >= 0 && id < network.getItems().size() && quantity > 0 && quantity <= MAX_CRAFTING_PER_REQUEST) { - ItemStack requested = network.getItems().get(id); + if (id >= 0 && id < master.getItems().size() && quantity > 0 && quantity <= MAX_CRAFTING_PER_REQUEST) { + ItemStack requested = master.getItems().get(id); int quantityPerRequest = 0; - CraftingPattern pattern = network.getPatternWithBestScore(requested); + CraftingPattern pattern = master.getPatternWithBestScore(requested); if (pattern != null) { for (ItemStack output : pattern.getOutputs()) { @@ -109,7 +109,7 @@ public class StorageHandler { } while (quantity > 0) { - network.addCraftingTaskAsLast(network.createCraftingTask(pattern)); + master.addCraftingTaskAsLast(master.createCraftingTask(pattern)); quantity -= quantityPerRequest; } @@ -118,11 +118,11 @@ public class StorageHandler { } public void onCraftingCancelRequested(int id) { - if (id >= 0 && id < network.getCraftingTasks().size()) { - network.cancelCraftingTask(network.getCraftingTasks().get(id)); + if (id >= 0 && id < master.getCraftingTasks().size()) { + master.cancelCraftingTask(master.getCraftingTasks().get(id)); } else if (id == -1) { - for (ICraftingTask task : network.getCraftingTasks()) { - network.cancelCraftingTask(task); + for (ICraftingTask task : master.getCraftingTasks()) { + master.cancelCraftingTask(task); } } } diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index 9ea889859..e5bee3839 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -9,14 +9,14 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraftforge.fml.common.network.ByteBufUtils; import refinedstorage.RefinedStorageBlocks; -import refinedstorage.api.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; +import refinedstorage.api.storagenet.INetworkSlave; +import refinedstorage.api.storagenet.NetworkMaster; +import refinedstorage.api.storagenet.NetworkMasterRegistry; import refinedstorage.block.BlockController; import refinedstorage.block.EnumControllerType; import refinedstorage.container.ContainerController; import refinedstorage.tile.ISynchronizedContainer; import refinedstorage.tile.TileBase; -import refinedstorage.tile.TileMachine; import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.RedstoneMode; @@ -24,7 +24,7 @@ import java.util.ArrayList; import java.util.List; public class TileController extends TileBase implements IEnergyReceiver, ISynchronizedContainer, IRedstoneModeConfig { - private StorageNetwork network; + private NetworkMaster network; // Only used client side private List clientMachines = new ArrayList(); @@ -33,9 +33,9 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr private EnumControllerType type; private RedstoneMode redstoneMode; - public StorageNetwork getNetwork() { + public NetworkMaster getNetwork() { if (network == null) { - network = StorageNetworkRegistry.get(pos, worldObj.provider.getDimension()); + network = NetworkMasterRegistry.get(pos, worldObj.provider.getDimension()); } return network; @@ -45,14 +45,14 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr public NBTTagCompound writeUpdate(NBTTagCompound tag) { super.writeUpdate(tag); - tag.setInteger(StorageNetwork.NBT_ENERGY, getNetwork() != null ? getNetwork().getEnergy().getEnergyStored() : 0); + tag.setInteger(NetworkMaster.NBT_ENERGY, getNetwork() != null ? getNetwork().getEnergy().getEnergyStored() : 0); return tag; } @Override public void readUpdate(NBTTagCompound tag) { - energy = tag.getInteger(StorageNetwork.NBT_ENERGY); + energy = tag.getInteger(NetworkMaster.NBT_ENERGY); super.readUpdate(tag); } @@ -69,7 +69,7 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr public int getEnergyScaled(int i) { float stored = worldObj.isRemote ? energy : getNetwork().getEnergy().getEnergyStored(); - float max = StorageNetwork.ENERGY_CAPACITY; + float max = NetworkMaster.ENERGY_CAPACITY; return (int) (stored / max * (float) i); } @@ -145,9 +145,9 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr List m = new ArrayList(); - for (TileMachine machine : getNetwork().getMachines()) { + for (INetworkSlave machine : getNetwork().getSlaves()) { if (machine.canUpdate()) { - IBlockState state = worldObj.getBlockState(machine.getPos()); + IBlockState state = worldObj.getBlockState(machine.getPosition()); ClientMachine clientMachine = new ClientMachine(); diff --git a/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java b/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java index 557b61dab..57bdb372e 100755 --- a/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java +++ b/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java @@ -8,7 +8,7 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.storagenet.StorageNetwork; +import refinedstorage.api.storagenet.NetworkMaster; import refinedstorage.item.ItemWirelessGrid; import refinedstorage.tile.grid.WirelessGridConsumer; @@ -17,13 +17,13 @@ import java.util.Iterator; import java.util.List; public class WirelessGridHandler { - private StorageNetwork network; + private NetworkMaster network; private List consumers = new ArrayList(); private List consumersToRemove = new ArrayList(); - public WirelessGridHandler(StorageNetwork network) { - this.network = network; + public WirelessGridHandler(NetworkMaster master) { + this.network = master; } public void update() { diff --git a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java index 5fdec1d2f..cf16c3ca4 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java +++ b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java @@ -6,20 +6,17 @@ import io.netty.buffer.ByteBuf; import net.minecraft.inventory.Container; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.items.IItemHandler; import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.RefinedStorageCapabilities; import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorageProvider; import refinedstorage.container.ContainerStorage; import refinedstorage.inventory.BasicItemHandler; import refinedstorage.network.MessagePriorityUpdate; import refinedstorage.tile.IStorageGui; -import refinedstorage.tile.TileMachine; +import refinedstorage.tile.TileSlave; import refinedstorage.tile.config.ICompareConfig; import refinedstorage.tile.config.IModeConfig; import refinedstorage.tile.config.IRedstoneModeConfig; @@ -27,7 +24,7 @@ import refinedstorage.tile.config.ModeConstants; import java.util.List; -public class TileExternalStorage extends TileMachine implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig { +public class TileExternalStorage extends TileSlave implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig { public static final String NBT_PRIORITY = "Priority"; public static final String NBT_COMPARE = "Compare"; public static final String NBT_MODE = "Mode"; @@ -48,7 +45,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider } @Override - public void updateMachine() { + public void updateSlave() { } @Override @@ -240,18 +237,4 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider public IItemHandler getFilters() { return filters; } - - @Override - public T getCapability(Capability capability, EnumFacing facing) { - if (capability == RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY) { - return (T) this; - } - - return super.getCapability(capability, facing); - } - - @Override - public boolean hasCapability(Capability capability, EnumFacing facing) { - return capability == RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY || super.hasCapability(capability, facing); - } } diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index 7db1ca641..6ffac506f 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -25,13 +25,13 @@ import refinedstorage.network.MessageGridHeldItemPush; import refinedstorage.network.MessageGridSettingsUpdate; import refinedstorage.network.MessageGridStoragePull; import refinedstorage.tile.ClientItem; -import refinedstorage.tile.TileMachine; +import refinedstorage.tile.TileSlave; import refinedstorage.tile.config.IRedstoneModeConfig; import java.util.ArrayList; import java.util.List; -public class TileGrid extends TileMachine implements IGrid { +public class TileGrid extends TileSlave implements IGrid { public static final String NBT_SORTING_DIRECTION = "SortingDirection"; public static final String NBT_SORTING_TYPE = "SortingType"; public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; @@ -86,7 +86,7 @@ public class TileGrid extends TileMachine implements IGrid { } @Override - public void updateMachine() { + public void updateSlave() { } public EnumGridType getType() { diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java index 7ca2afbff..615868b0b 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -7,8 +7,8 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageUtils; -import refinedstorage.api.storagenet.StorageNetwork; -import refinedstorage.api.storagenet.StorageNetworkRegistry; +import refinedstorage.api.storagenet.NetworkMaster; +import refinedstorage.api.storagenet.NetworkMasterRegistry; import refinedstorage.block.EnumGridType; import refinedstorage.item.ItemWirelessGrid; import refinedstorage.network.MessageWirelessGridCraftingStart; @@ -63,7 +63,7 @@ public class WirelessGrid implements IGrid { @Override public ItemStack onItemPush(EntityPlayer player, ItemStack stack) { - StorageNetwork network = StorageNetworkRegistry.get(controllerPos, player.worldObj.provider.getDimension()); + NetworkMaster network = NetworkMasterRegistry.get(controllerPos, player.worldObj.provider.getDimension()); if (network != null && network.canRun()) { network.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH); @@ -85,7 +85,7 @@ public class WirelessGrid implements IGrid { } public void onClose(EntityPlayer player) { - StorageNetwork network = StorageNetworkRegistry.get(controllerPos, player.worldObj.provider.getDimension()); + NetworkMaster network = NetworkMasterRegistry.get(controllerPos, player.worldObj.provider.getDimension()); if (network != null) { network.getWirelessGridHandler().handleClose(player);