Remove TileMachine, introduce INetworkSlave

This commit is contained in:
Raoul Van den Berge
2016-06-20 12:27:57 +02:00
parent 3ee2b98658
commit 390352a936
59 changed files with 385 additions and 348 deletions

View File

@@ -2,9 +2,9 @@ package refinedstorage.api;
import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityInject; import net.minecraftforge.common.capabilities.CapabilityInject;
import refinedstorage.api.storage.IStorageProvider; import refinedstorage.api.storagenet.INetworkSlave;
public final class RefinedStorageCapabilities { public final class RefinedStorageCapabilities {
@CapabilityInject(IStorageProvider.class) @CapabilityInject(INetworkSlave.class)
public static final Capability<IStorageProvider> STORAGE_PROVIDER_CAPABILITY = null; public static final Capability<INetworkSlave> NETWORK_SLAVE_CAPABILITY = null;
} }

View File

@@ -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();
}

View File

@@ -17,6 +17,7 @@ import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.RefinedStorageCapabilities; import refinedstorage.api.RefinedStorageCapabilities;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareFlags;
import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorage;
import refinedstorage.api.storage.IStorageProvider;
import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.CraftingPattern;
import refinedstorage.autocrafting.task.BasicCraftingTask; import refinedstorage.autocrafting.task.BasicCraftingTask;
import refinedstorage.autocrafting.task.ICraftingTask; import refinedstorage.autocrafting.task.ICraftingTask;
@@ -27,7 +28,6 @@ import refinedstorage.container.ContainerGrid;
import refinedstorage.item.ItemPattern; import refinedstorage.item.ItemPattern;
import refinedstorage.network.MessageGridItems; import refinedstorage.network.MessageGridItems;
import refinedstorage.tile.TileCrafter; import refinedstorage.tile.TileCrafter;
import refinedstorage.tile.TileMachine;
import refinedstorage.tile.TileWirelessTransmitter; import refinedstorage.tile.TileWirelessTransmitter;
import refinedstorage.tile.config.RedstoneMode; import refinedstorage.tile.config.RedstoneMode;
import refinedstorage.tile.controller.StorageHandler; import refinedstorage.tile.controller.StorageHandler;
@@ -35,7 +35,7 @@ import refinedstorage.tile.controller.WirelessGridHandler;
import java.util.*; import java.util.*;
public class StorageNetwork { public class NetworkMaster {
public static final int ENERGY_CAPACITY = 32000; public static final int ENERGY_CAPACITY = 32000;
public static final String NBT_CRAFTING_TASKS = "CraftingTasks"; public static final String NBT_CRAFTING_TASKS = "CraftingTasks";
@@ -50,10 +50,10 @@ public class StorageNetwork {
private List<IStorage> storages = new ArrayList<IStorage>(); private List<IStorage> storages = new ArrayList<IStorage>();
private List<TileMachine> machines = new ArrayList<TileMachine>(); private List<INetworkSlave> slaves = new ArrayList<INetworkSlave>();
private List<TileMachine> machinesToAdd = new ArrayList<TileMachine>(); private List<INetworkSlave> slavesToAdd = new ArrayList<INetworkSlave>();
private List<BlockPos> machinesToLoad = new ArrayList<BlockPos>(); private List<BlockPos> slavesToLoad = new ArrayList<BlockPos>();
private List<TileMachine> machinesToRemove = new ArrayList<TileMachine>(); private List<INetworkSlave> slavesToRemove = new ArrayList<INetworkSlave>();
private List<CraftingPattern> patterns = new ArrayList<CraftingPattern>(); private List<CraftingPattern> patterns = new ArrayList<CraftingPattern>();
@@ -78,13 +78,13 @@ public class StorageNetwork {
private RedstoneMode redstoneMode = RedstoneMode.IGNORE; private RedstoneMode redstoneMode = RedstoneMode.IGNORE;
public StorageNetwork(BlockPos pos, World world) { public NetworkMaster(BlockPos pos, World world) {
this.pos = pos; this.pos = pos;
onAdded(world); onAdded(world);
} }
public StorageNetwork(BlockPos pos) { public NetworkMaster(BlockPos pos) {
this.pos = pos; this.pos = pos;
} }
@@ -119,16 +119,23 @@ public class StorageNetwork {
} }
public void update() { public void update() {
for (TileMachine machine : machinesToAdd) { for (INetworkSlave slave : slavesToAdd) {
if (!machines.contains(machine)) { slaves.add(slave);
machines.add(machine); }
slavesToAdd.clear();
for (INetworkSlave slave : slavesToRemove) {
Iterator<INetworkSlave> otherSlave = slaves.iterator();
while (otherSlave.hasNext()) {
if (otherSlave.next().getPosition().equals(slave.getPosition())) {
otherSlave.remove();
break;
}
} }
} }
slavesToRemove.clear();
machinesToAdd.clear();
machines.removeAll(machinesToRemove);
machinesToRemove.clear();
int lastEnergy = energy.getEnergyStored(); int lastEnergy = energy.getEnergyStored();
@@ -137,8 +144,11 @@ public class StorageNetwork {
syncMachines(); syncMachines();
} }
// @todo: If the chunk unloads, and we come back to the chunk for (INetworkSlave slave : slaves) {
// the machine tile will be reset to a new tile instance and nothing will work if (slave.canUpdate()) {
slave.updateSlave();
}
}
for (ICraftingTask taskToCancel : craftingTasksToCancel) { for (ICraftingTask taskToCancel : craftingTasksToCancel) {
taskToCancel.onCancelled(this); taskToCancel.onCancelled(this);
@@ -166,7 +176,7 @@ public class StorageNetwork {
craftingTasks.pop(); craftingTasks.pop();
} }
} }
} else if (!machines.isEmpty()) { } else if (!slaves.isEmpty()) {
disconnectAll(); disconnectAll();
syncMachines(); syncMachines();
} }
@@ -202,18 +212,18 @@ public class StorageNetwork {
ticks++; ticks++;
} }
public List<TileMachine> getMachines() { public List<INetworkSlave> getSlaves() {
return machines; return slaves;
} }
public void addMachine(TileMachine machine) { public void addSlave(INetworkSlave slave) {
machinesToAdd.add(machine); slavesToAdd.add(slave);
markDirty(); markDirty();
} }
public void removeMachine(TileMachine machine) { public void removeMachine(INetworkSlave slave) {
machinesToRemove.add(machine); slavesToRemove.add(slave);
markDirty(); markDirty();
} }
@@ -231,11 +241,11 @@ public class StorageNetwork {
} }
public void disconnectAll() { public void disconnectAll() {
for (TileMachine machine : machines) { for (INetworkSlave slave : slaves) {
machine.onDisconnected(world); slave.disconnect(world);
} }
machines.clear(); slaves.clear();
} }
public void onRemoved() { public void onRemoved() {
@@ -246,13 +256,15 @@ public class StorageNetwork {
this.world = world; this.world = world;
this.type = (EnumControllerType) world.getBlockState(pos).getValue(BlockController.TYPE); this.type = (EnumControllerType) world.getBlockState(pos).getValue(BlockController.TYPE);
for (BlockPos machine : machinesToLoad) { for (BlockPos slavePos : slavesToLoad) {
TileEntity tile = world.getTileEntity(machine); TileEntity tile = world.getTileEntity(slavePos);
if (tile instanceof TileMachine) { if (tile.hasCapability(RefinedStorageCapabilities.NETWORK_SLAVE_CAPABILITY, null)) {
((TileMachine) tile).forceConnect(this); 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.storages.clear();
this.patterns.clear(); this.patterns.clear();
for (TileMachine machine : machines) { for (INetworkSlave slave : slaves) {
if (!machine.canUpdate()) { if (!slave.canUpdate()) {
continue; continue;
} }
if (machine instanceof TileWirelessTransmitter) { if (slave instanceof TileWirelessTransmitter) {
this.wirelessGridRange += ((TileWirelessTransmitter) machine).getRange(); this.wirelessGridRange += ((TileWirelessTransmitter) slave).getRange();
} }
if (machine.hasCapability(RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY, null)) { if (slave instanceof IStorageProvider) {
machine.getCapability(RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY, null).provide(storages); ((IStorageProvider) slave).provide(storages);
} }
if (machine instanceof TileCrafter) { if (slave instanceof TileCrafter) {
TileCrafter crafter = (TileCrafter) machine; TileCrafter crafter = (TileCrafter) slave;
for (int i = 0; i < crafter.getPatterns().getSlots(); ++i) { for (int i = 0; i < crafter.getPatterns().getSlots(); ++i) {
ItemStack pattern = crafter.getPatterns().getStackInSlot(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<IStorage>() { Collections.sort(storages, new Comparator<IStorage>() {
@@ -589,7 +601,7 @@ public class StorageNetwork {
for (int i = 0; i < machinesTag.tagCount(); ++i) { for (int i = 0; i < machinesTag.tagCount(); ++i) {
NBTTagCompound coords = machinesTag.getCompoundTagAt(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); tag.setTag(NBT_CRAFTING_TASKS, list);
NBTTagList machinesTag = new NBTTagList(); NBTTagList machinesTag = new NBTTagList();
for (TileMachine machine : machines) { for (INetworkSlave slave : slaves) {
NBTTagCompound coords = new NBTTagCompound(); NBTTagCompound coords = new NBTTagCompound();
coords.setInteger("X", machine.getPos().getX()); coords.setInteger("X", slave.getPosition().getX());
coords.setInteger("Y", machine.getPos().getY()); coords.setInteger("Y", slave.getPosition().getY());
coords.setInteger("Z", machine.getPos().getZ()); coords.setInteger("Z", slave.getPosition().getZ());
machinesTag.appendTag(coords); machinesTag.appendTag(coords);
} }
tag.setTag("Machines", machinesTag); tag.setTag("Machines", machinesTag);
@@ -623,6 +635,6 @@ public class StorageNetwork {
} }
public void markDirty() { public void markDirty() {
StorageNetworkSavedData.get(world).markDirty(); NetworkMasterSavedData.get(world).markDirty();
} }
} }

View File

@@ -7,13 +7,13 @@ import net.minecraftforge.fml.common.gameevent.TickEvent;
import java.util.Map; import java.util.Map;
public class StorageNetworkEventHandler { public class NetworkMasterEventHandler {
@SubscribeEvent @SubscribeEvent
public void onWorldTick(TickEvent.WorldTickEvent e) { public void onWorldTick(TickEvent.WorldTickEvent e) {
Map<BlockPos, StorageNetwork> networks = StorageNetworkRegistry.get(e.world.provider.getDimension()); Map<BlockPos, NetworkMaster> networks = NetworkMasterRegistry.get(e.world.provider.getDimension());
if (networks != null) { if (networks != null) {
for (StorageNetwork network : networks.values()) { for (NetworkMaster network : networks.values()) {
if (network.getWorld() == null) { if (network.getWorld() == null) {
network.onAdded(e.world); network.onAdded(e.world);
} }
@@ -25,6 +25,6 @@ public class StorageNetworkEventHandler {
@SubscribeEvent @SubscribeEvent
public void onWorldLoad(WorldEvent.Load e) { public void onWorldLoad(WorldEvent.Load e) {
StorageNetworkSavedData.get(e.getWorld()); NetworkMasterSavedData.get(e.getWorld());
} }
} }

View File

@@ -5,12 +5,12 @@ import net.minecraft.util.math.BlockPos;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class StorageNetworkRegistry { public class NetworkMasterRegistry {
public static final Map<Integer, Map<BlockPos, StorageNetwork>> NETWORKS = new HashMap<Integer, Map<BlockPos, StorageNetwork>>(); public static final Map<Integer, Map<BlockPos, NetworkMaster>> NETWORKS = new HashMap<Integer, Map<BlockPos, NetworkMaster>>();
public static void add(StorageNetwork network, int dimension) { public static void add(NetworkMaster network, int dimension) {
if (NETWORKS.get(dimension) == null) { if (NETWORKS.get(dimension) == null) {
NETWORKS.put(dimension, new HashMap<BlockPos, StorageNetwork>()); NETWORKS.put(dimension, new HashMap<BlockPos, NetworkMaster>());
} }
NETWORKS.get(dimension).put(network.getPos(), network); 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); return get(dimension) == null ? null : get(dimension).get(pos);
} }
public static Map<BlockPos, StorageNetwork> get(int dimension) { public static Map<BlockPos, NetworkMaster> get(int dimension) {
return NETWORKS.get(dimension); return NETWORKS.get(dimension);
} }
} }

View File

@@ -9,10 +9,10 @@ import net.minecraftforge.common.util.Constants;
import java.util.Map; import java.util.Map;
public class StorageNetworkSavedData extends WorldSavedData { public class NetworkMasterSavedData extends WorldSavedData {
public static final String NBT_STORAGE_NETWORKS = "StorageNetworks"; public static final String NBT_STORAGE_NETWORKS = "StorageNetworks";
public StorageNetworkSavedData(String name) { public NetworkMasterSavedData(String name) {
super(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")); 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")); 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) { public NBTTagCompound writeToNBT(NBTTagCompound tag) {
NBTTagList networks = new NBTTagList(); NBTTagList networks = new NBTTagList();
for (Map.Entry<Integer, Map<BlockPos, StorageNetwork>> entry : StorageNetworkRegistry.NETWORKS.entrySet()) { for (Map.Entry<Integer, Map<BlockPos, NetworkMaster>> entry : NetworkMasterRegistry.NETWORKS.entrySet()) {
for (StorageNetwork network : entry.getValue().values()) { for (NetworkMaster network : entry.getValue().values()) {
NBTTagCompound networkTag = new NBTTagCompound(); NBTTagCompound networkTag = new NBTTagCompound();
networkTag.setInteger("X", network.getPos().getX()); networkTag.setInteger("X", network.getPos().getX());
networkTag.setInteger("Y", network.getPos().getY()); networkTag.setInteger("Y", network.getPos().getY());
@@ -53,11 +53,11 @@ public class StorageNetworkSavedData extends WorldSavedData {
return tag; return tag;
} }
public static StorageNetworkSavedData get(World world) { public static NetworkMasterSavedData get(World world) {
StorageNetworkSavedData instance = (StorageNetworkSavedData) world.getMapStorage().getOrLoadData(StorageNetworkSavedData.class, "RSStorageNetworks"); NetworkMasterSavedData instance = (NetworkMasterSavedData) world.getMapStorage().getOrLoadData(NetworkMasterSavedData.class, "RSStorageNetworks");
if (instance == null) { if (instance == null) {
instance = new StorageNetworkSavedData("RSStorageNetworks"); instance = new NetworkMasterSavedData("RSStorageNetworks");
world.getMapStorage().setData("RSStorageNetworks", instance); world.getMapStorage().setData("RSStorageNetworks", instance);
} }

View File

@@ -3,7 +3,7 @@ package refinedstorage.autocrafting;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
public class CraftingTaskScheduler { public class CraftingTaskScheduler {
public static String NBT_SCHEDULED = "CraftingTaskScheduled"; public static String NBT_SCHEDULED = "CraftingTaskScheduled";
@@ -14,13 +14,13 @@ public class CraftingTaskScheduler {
return scheduledItem == null || !RefinedStorageUtils.compareStack(scheduledItem, item, compare); return scheduledItem == null || !RefinedStorageUtils.compareStack(scheduledItem, item, compare);
} }
public void schedule(StorageNetwork network, int compare, ItemStack item) { public void schedule(NetworkMaster master, int compare, ItemStack item) {
CraftingPattern pattern = network.getPatternWithBestScore(item, compare); CraftingPattern pattern = master.getPatternWithBestScore(item, compare);
if (pattern != null) { if (pattern != null) {
scheduledItem = item; scheduledItem = item;
network.addCraftingTask(network.createCraftingTask(pattern)); master.addCraftingTask(master.createCraftingTask(pattern));
} }
} }

View File

@@ -5,7 +5,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.CraftingPattern;
import java.util.ArrayList; import java.util.ArrayList;
@@ -50,7 +50,7 @@ public class BasicCraftingTask implements ICraftingTask {
return pattern; return pattern;
} }
public boolean update(StorageNetwork network) { public boolean update(NetworkMaster master) {
this.updatedOnce = true; this.updatedOnce = true;
boolean done = true; boolean done = true;
@@ -63,17 +63,17 @@ public class BasicCraftingTask implements ICraftingTask {
if (!satisfied[i]) { if (!satisfied[i]) {
done = false; done = false;
ItemStack took = network.take(input, 1); ItemStack took = master.take(input, 1);
if (took != null) { if (took != null) {
itemsTook.add(took); itemsTook.add(took);
satisfied[i] = true; satisfied[i] = true;
} else if (!childTasks[i]) { } else if (!childTasks[i]) {
CraftingPattern pattern = network.getPatternWithBestScore(input); CraftingPattern pattern = master.getPatternWithBestScore(input);
if (pattern != null) { if (pattern != null) {
network.addCraftingTask(network.createCraftingTask(pattern)); master.addCraftingTask(master.createCraftingTask(pattern));
childTasks[i] = true; childTasks[i] = true;
} }
@@ -90,23 +90,23 @@ public class BasicCraftingTask implements ICraftingTask {
// @todo: handle no space // @todo: handle no space
@Override @Override
public void onDone(StorageNetwork network) { public void onDone(NetworkMaster master) {
for (ItemStack output : pattern.getOutputs()) { for (ItemStack output : pattern.getOutputs()) {
network.push(output, output.stackSize, false); master.push(output, output.stackSize, false);
} }
if (pattern.getByproducts() != null) { if (pattern.getByproducts() != null) {
for (ItemStack byproduct : pattern.getByproducts()) { for (ItemStack byproduct : pattern.getByproducts()) {
network.push(byproduct, byproduct.stackSize, false); master.push(byproduct, byproduct.stackSize, false);
} }
} }
} }
// @todo: handle no space // @todo: handle no space
@Override @Override
public void onCancelled(StorageNetwork network) { public void onCancelled(NetworkMaster master) {
for (ItemStack took : itemsTook) { for (ItemStack took : itemsTook) {
network.push(took, took.stackSize, false); master.push(took, took.stackSize, false);
} }
} }

View File

@@ -1,17 +1,17 @@
package refinedstorage.autocrafting.task; package refinedstorage.autocrafting.task;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.CraftingPattern;
public interface ICraftingTask { public interface ICraftingTask {
CraftingPattern getPattern(); 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); void writeToNBT(NBTTagCompound tag);

View File

@@ -5,7 +5,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemHandlerHelper;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.CraftingPattern;
import refinedstorage.tile.TileCrafter; import refinedstorage.tile.TileCrafter;
@@ -42,17 +42,17 @@ public class ProcessingCraftingTask implements ICraftingTask {
} }
@Override @Override
public boolean update(StorageNetwork network) { public boolean update(NetworkMaster master) {
this.updatedOnce = true; this.updatedOnce = true;
TileCrafter crafter = pattern.getCrafter(network.getWorld()); TileCrafter crafter = pattern.getCrafter(master.getWorld());
IItemHandler handler = RefinedStorageUtils.getItemHandler(crafter.getFacingTile(), crafter.getDirection().getOpposite()); IItemHandler handler = RefinedStorageUtils.getItemHandler(crafter.getFacingTile(), crafter.getDirection().getOpposite());
if (handler != null) { if (handler != null) {
for (int i = 0; i < inserted.length; ++i) { for (int i = 0; i < inserted.length; ++i) {
if (!inserted[i]) { if (!inserted[i]) {
ItemStack input = pattern.getInputs()[i]; ItemStack input = pattern.getInputs()[i];
ItemStack took = network.take(input, 1); ItemStack took = master.take(input, 1);
if (took != null) { if (took != null) {
if (ItemHandlerHelper.insertItem(handler, took, true) == null) { if (ItemHandlerHelper.insertItem(handler, took, true) == null) {
@@ -60,15 +60,15 @@ public class ProcessingCraftingTask implements ICraftingTask {
inserted[i] = true; inserted[i] = true;
} else { } else {
network.push(took, took.stackSize, false); master.push(took, took.stackSize, false);
} }
} else if (!childTasks[i]) { } else if (!childTasks[i]) {
CraftingPattern pattern = network.getPatternWithBestScore(input); CraftingPattern pattern = master.getPatternWithBestScore(input);
if (pattern != null) { if (pattern != null) {
childTasks[i] = true; childTasks[i] = true;
network.addCraftingTask(network.createCraftingTask(pattern)); master.addCraftingTask(master.createCraftingTask(pattern));
break; break;
} }
@@ -101,12 +101,12 @@ public class ProcessingCraftingTask implements ICraftingTask {
} }
@Override @Override
public void onDone(StorageNetwork network) { public void onDone(NetworkMaster master) {
// NO OP // NO OP
} }
@Override @Override
public void onCancelled(StorageNetwork network) { public void onCancelled(NetworkMaster master) {
// NO OP // NO OP
} }

View File

@@ -11,9 +11,9 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.tile.TileCable; 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 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"); 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) { 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 @Override

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileConstructor; import refinedstorage.tile.TileConstructor;
public class BlockConstructor extends BlockMachine { public class BlockConstructor extends BlockSlave {
public BlockConstructor() { public BlockConstructor() {
super("constructor"); super("constructor");
} }

View File

@@ -20,8 +20,8 @@ import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.api.storagenet.NetworkMasterRegistry;
import refinedstorage.item.ItemBlockController; import refinedstorage.item.ItemBlockController;
import refinedstorage.tile.controller.TileController; import refinedstorage.tile.controller.TileController;
@@ -67,7 +67,7 @@ public class BlockController extends BlockBase {
TileController controller = (TileController) world.getTileEntity(pos); TileController controller = (TileController) world.getTileEntity(pos);
return super.getActualState(state, world, 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 @Override
@@ -92,15 +92,15 @@ public class BlockController extends BlockBase {
@Override @Override
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) { public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) {
if (!world.isRemote) { if (!world.isRemote) {
StorageNetwork network = new StorageNetwork(pos, world); NetworkMaster master = new NetworkMaster(pos, world);
NBTTagCompound tag = stack.getTagCompound(); NBTTagCompound tag = stack.getTagCompound();
if (tag != null && tag.hasKey(StorageNetwork.NBT_ENERGY)) { if (tag != null && tag.hasKey(NetworkMaster.NBT_ENERGY)) {
network.getEnergy().receiveEnergy(tag.getInteger(StorageNetwork.NBT_ENERGY), false); 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); super.onBlockPlacedBy(world, pos, state, player, stack);
@@ -109,7 +109,7 @@ public class BlockController extends BlockBase {
@Override @Override
public void breakBlock(World world, BlockPos pos, IBlockState state) { public void breakBlock(World world, BlockPos pos, IBlockState state) {
if (!world.isRemote) { if (!world.isRemote) {
StorageNetworkRegistry.remove(pos, world.provider.getDimension()); NetworkMasterRegistry.remove(pos, world.provider.getDimension());
} }
super.breakBlock(world, pos, state); 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)); ItemStack stack = new ItemStack(RefinedStorageBlocks.CONTROLLER, 1, RefinedStorageBlocks.CONTROLLER.getMetaFromState(state));
NBTTagCompound tag = new NBTTagCompound(); 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); stack.setTagCompound(tag);
drops.add(stack); drops.add(stack);

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileCrafter; import refinedstorage.tile.TileCrafter;
public class BlockCrafter extends BlockMachine { public class BlockCrafter extends BlockSlave {
public BlockCrafter() { public BlockCrafter() {
super("crafter"); super("crafter");
} }

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileCraftingMonitor; import refinedstorage.tile.TileCraftingMonitor;
public class BlockCraftingMonitor extends BlockMachine { public class BlockCraftingMonitor extends BlockSlave {
public BlockCraftingMonitor() { public BlockCraftingMonitor() {
super("crafting_monitor"); super("crafting_monitor");
} }

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileDestructor; import refinedstorage.tile.TileDestructor;
public class BlockDestructor extends BlockMachine { public class BlockDestructor extends BlockSlave {
public BlockDestructor() { public BlockDestructor() {
super("destructor"); super("destructor");
} }

View File

@@ -16,7 +16,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileDetector; import refinedstorage.tile.TileDetector;
public class BlockDetector extends BlockMachine { public class BlockDetector extends BlockSlave {
public static final PropertyBool POWERED = PropertyBool.create("powered"); public static final PropertyBool POWERED = PropertyBool.create("powered");
public BlockDetector() { public BlockDetector() {

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileDiskDrive; import refinedstorage.tile.TileDiskDrive;
public class BlockDiskDrive extends BlockMachine { public class BlockDiskDrive extends BlockSlave {
public BlockDiskDrive() { public BlockDiskDrive() {
super("disk_drive"); super("disk_drive");
} }

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileExporter; import refinedstorage.tile.TileExporter;
public class BlockExporter extends BlockMachine { public class BlockExporter extends BlockSlave {
public BlockExporter() { public BlockExporter() {
super("exporter"); super("exporter");
} }

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.externalstorage.TileExternalStorage; import refinedstorage.tile.externalstorage.TileExternalStorage;
public class BlockExternalStorage extends BlockMachine { public class BlockExternalStorage extends BlockSlave {
public BlockExternalStorage() { public BlockExternalStorage() {
super("external_storage"); super("external_storage");
} }

View File

@@ -20,7 +20,7 @@ import refinedstorage.tile.grid.TileGrid;
import java.util.List; 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 static final PropertyEnum TYPE = PropertyEnum.create("type", EnumGridType.class);
public BlockGrid() { public BlockGrid() {

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileImporter; import refinedstorage.tile.TileImporter;
public class BlockImporter extends BlockMachine { public class BlockImporter extends BlockSlave {
public BlockImporter() { public BlockImporter() {
super("importer"); super("importer");
} }

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileInterface; import refinedstorage.tile.TileInterface;
public class BlockInterface extends BlockMachine { public class BlockInterface extends BlockSlave {
public BlockInterface() { public BlockInterface() {
super("interface"); super("interface");
} }

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileRelay; import refinedstorage.tile.TileRelay;
public class BlockRelay extends BlockMachine { public class BlockRelay extends BlockSlave {
public BlockRelay() { public BlockRelay() {
super("relay"); super("relay");
} }

View File

@@ -10,16 +10,12 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.tile.TileMachine; import refinedstorage.tile.TileSlave;
import refinedstorage.tile.controller.ControllerSearcher;
import refinedstorage.tile.controller.TileController;
import java.util.HashSet; public abstract class BlockSlave extends BlockBase {
public abstract class BlockMachine extends BlockBase {
public static final PropertyBool CONNECTED = PropertyBool.create("connected"); public static final PropertyBool CONNECTED = PropertyBool.create("connected");
public BlockMachine(String name) { public BlockSlave(String name) {
super(name); super(name);
} }
@@ -39,7 +35,7 @@ public abstract class BlockMachine extends BlockBase {
@Override @Override
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) { public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) {
return super.getActualState(state, world, pos) return super.getActualState(state, world, pos)
.withProperty(CONNECTED, ((TileMachine) world.getTileEntity(pos)).isConnected()); .withProperty(CONNECTED, ((TileSlave) world.getTileEntity(pos)).isConnected());
} }
@Override @Override
@@ -47,21 +43,17 @@ public abstract class BlockMachine extends BlockBase {
super.onBlockPlacedBy(world, pos, state, player, stack); super.onBlockPlacedBy(world, pos, state, player, stack);
if (!world.isRemote) { if (!world.isRemote) {
TileController controller = ControllerSearcher.search(world, pos, new HashSet<String>()); ((TileSlave) world.getTileEntity(pos)).onNeighborChanged(world);
if (controller != null) {
((TileMachine) world.getTileEntity(pos)).onConnected(world, controller);
}
} }
} }
@Override @Override
public void breakBlock(World world, BlockPos pos, IBlockState state) { public void breakBlock(World world, BlockPos pos, IBlockState state) {
if (!world.isRemote) { if (!world.isRemote) {
TileMachine machine = (TileMachine) world.getTileEntity(pos); TileSlave machine = (TileSlave) world.getTileEntity(pos);
if (machine.isConnected()) { 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); super.neighborChanged(state, world, pos, block);
if (!world.isRemote) { if (!world.isRemote) {
((TileMachine) world.getTileEntity(pos)).searchController(world); ((TileSlave) world.getTileEntity(pos)).onNeighborChanged(world);
} }
} }
} }

View File

@@ -16,7 +16,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileSolderer; import refinedstorage.tile.TileSolderer;
public class BlockSolderer extends BlockMachine { public class BlockSolderer extends BlockSlave {
public static final PropertyBool WORKING = PropertyBool.create("working"); public static final PropertyBool WORKING = PropertyBool.create("working");
public BlockSolderer() { public BlockSolderer() {

View File

@@ -25,7 +25,7 @@ import refinedstorage.tile.TileStorage;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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 static final PropertyEnum TYPE = PropertyEnum.create("type", EnumStorageType.class);
public BlockStorage() { public BlockStorage() {

View File

@@ -12,7 +12,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.tile.TileWirelessTransmitter; import refinedstorage.tile.TileWirelessTransmitter;
public class BlockWirelessTransmitter extends BlockMachine { public class BlockWirelessTransmitter extends BlockSlave {
public BlockWirelessTransmitter() { public BlockWirelessTransmitter() {
super("wireless_transmitter"); super("wireless_transmitter");
} }

View File

@@ -3,7 +3,7 @@ package refinedstorage.gui;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.RenderHelper;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.container.ContainerController; import refinedstorage.container.ContainerController;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.controller.ClientMachine; import refinedstorage.tile.controller.ClientMachine;
@@ -46,7 +46,7 @@ public class GuiController extends GuiBase {
drawTexture(x, y, 0, 0, width, height); 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); 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)) { 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));
} }
} }

View File

@@ -6,7 +6,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.block.EnumControllerType; import refinedstorage.block.EnumControllerType;
import java.util.List; import java.util.List;
@@ -21,11 +21,11 @@ public class ItemBlockController extends ItemBlockBase {
if (stack.getMetadata() != EnumControllerType.CREATIVE.getId()) { if (stack.getMetadata() != EnumControllerType.CREATIVE.getId()) {
int energyStored = 0; int energyStored = 0;
if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(StorageNetwork.NBT_ENERGY)) { if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(NetworkMaster.NBT_ENERGY)) {
energyStored = stack.getTagCompound().getInteger(StorageNetwork.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 = 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; return stack;
} }

View File

@@ -16,8 +16,8 @@ import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.api.storagenet.NetworkMasterRegistry;
import refinedstorage.tile.grid.TileGrid; import refinedstorage.tile.grid.TileGrid;
import java.util.List; import java.util.List;
@@ -134,10 +134,10 @@ public class ItemWirelessGrid extends ItemEnergyContainer {
@Override @Override
public ActionResult<ItemStack> onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { public ActionResult<ItemStack> onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) {
if (!world.isRemote && hasValidNBT(stack) && getDimensionId(stack) == player.dimension) { 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 (master != null) {
if (network.getWirelessGridHandler().handleOpen(player, hand)) { if (master.getWirelessGridHandler().handleOpen(player, hand)) {
return new ActionResult(EnumActionResult.SUCCESS, stack); return new ActionResult(EnumActionResult.SUCCESS, stack);
} else { } else {
player.addChatComponentMessage(new TextComponentTranslation("misc.refinedstorage:wireless_grid.out_of_range")); player.addChatComponentMessage(new TextComponentTranslation("misc.refinedstorage:wireless_grid.out_of_range"));

View File

@@ -4,8 +4,8 @@ import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.api.storagenet.NetworkMasterRegistry;
public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<MessageGridCraftingStart> implements IMessage { public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<MessageGridCraftingStart> implements IMessage {
private int x; private int x;
@@ -45,7 +45,7 @@ public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<Messa
@Override @Override
public void handle(MessageGridCraftingStart message, EntityPlayerMP player) { public void handle(MessageGridCraftingStart message, EntityPlayerMP player) {
StorageNetwork network = StorageNetworkRegistry.get(new BlockPos(message.x, message.y, message.z), player.worldObj.provider.getDimension()); NetworkMaster network = NetworkMasterRegistry.get(new BlockPos(message.x, message.y, message.z), player.worldObj.provider.getDimension());
if (network != null && network.canRun()) { if (network != null && network.canRun()) {
network.getStorageHandler().onCraftingRequested(message.id, message.quantity); network.getStorageHandler().onCraftingRequested(message.id, message.quantity);

View File

@@ -8,7 +8,7 @@ import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.container.ContainerGrid; import refinedstorage.container.ContainerGrid;
import refinedstorage.tile.ClientItem; import refinedstorage.tile.ClientItem;
@@ -16,13 +16,13 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
public class MessageGridItems implements IMessage, IMessageHandler<MessageGridItems, IMessage> { public class MessageGridItems implements IMessage, IMessageHandler<MessageGridItems, IMessage> {
private StorageNetwork network; private NetworkMaster network;
private List<ClientItem> items = new ArrayList<ClientItem>(); private List<ClientItem> items = new ArrayList<ClientItem>();
public MessageGridItems() { public MessageGridItems() {
} }
public MessageGridItems(StorageNetwork network) { public MessageGridItems(NetworkMaster network) {
this.network = network; this.network = network;
} }

View File

@@ -4,8 +4,8 @@ import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.api.storagenet.NetworkMasterRegistry;
public class MessageWirelessGridCraftingStart extends MessageHandlerPlayerToServer<MessageWirelessGridCraftingStart> implements IMessage { public class MessageWirelessGridCraftingStart extends MessageHandlerPlayerToServer<MessageWirelessGridCraftingStart> implements IMessage {
private int controllerX; private int controllerX;
@@ -45,7 +45,7 @@ public class MessageWirelessGridCraftingStart extends MessageHandlerPlayerToServ
@Override @Override
public void handle(MessageWirelessGridCraftingStart message, EntityPlayerMP player) { 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()) { if (network != null && network.canRun()) {
network.getStorageHandler().onCraftingRequested(message.id, message.quantity); network.getStorageHandler().onCraftingRequested(message.id, message.quantity);

View File

@@ -4,8 +4,8 @@ import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.api.storagenet.NetworkMasterRegistry;
public class MessageWirelessGridHeldItemPush extends MessageHandlerPlayerToServer<MessageWirelessGridHeldItemPush> implements IMessage { public class MessageWirelessGridHeldItemPush extends MessageHandlerPlayerToServer<MessageWirelessGridHeldItemPush> implements IMessage {
private int controllerX; private int controllerX;
@@ -41,7 +41,7 @@ public class MessageWirelessGridHeldItemPush extends MessageHandlerPlayerToServe
@Override @Override
public void handle(MessageWirelessGridHeldItemPush message, EntityPlayerMP player) { 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()) { if (network != null && network.canRun()) {
network.getStorageHandler().onHeldItemPush(message.one, player); network.getStorageHandler().onHeldItemPush(message.one, player);

View File

@@ -4,8 +4,8 @@ import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.api.storagenet.NetworkMasterRegistry;
public class MessageWirelessGridStoragePull extends MessageHandlerPlayerToServer<MessageWirelessGridStoragePull> implements IMessage { public class MessageWirelessGridStoragePull extends MessageHandlerPlayerToServer<MessageWirelessGridStoragePull> implements IMessage {
private int controllerX; private int controllerX;
@@ -45,7 +45,7 @@ public class MessageWirelessGridStoragePull extends MessageHandlerPlayerToServer
@Override @Override
public void handle(MessageWirelessGridStoragePull message, EntityPlayerMP player) { 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()) { if (network != null && network.canRun()) {
network.getStorageHandler().onPull(message.id, message.flags, player); network.getStorageHandler().onPull(message.id, message.flags, player);

View File

@@ -20,7 +20,7 @@ import refinedstorage.RefinedStorageItems;
import refinedstorage.api.solderer.SoldererRecipeBasic; import refinedstorage.api.solderer.SoldererRecipeBasic;
import refinedstorage.api.solderer.SoldererRegistry; import refinedstorage.api.solderer.SoldererRegistry;
import refinedstorage.api.storage.NBTStorage; import refinedstorage.api.storage.NBTStorage;
import refinedstorage.api.storagenet.StorageNetworkEventHandler; import refinedstorage.api.storagenet.NetworkMasterEventHandler;
import refinedstorage.block.BlockBase; import refinedstorage.block.BlockBase;
import refinedstorage.block.EnumControllerType; import refinedstorage.block.EnumControllerType;
import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumGridType;
@@ -485,7 +485,7 @@ public class CommonProxy {
} }
public void init(FMLInitializationEvent e) { public void init(FMLInitializationEvent e) {
MinecraftForge.EVENT_BUS.register(new StorageNetworkEventHandler()); MinecraftForge.EVENT_BUS.register(new NetworkMasterEventHandler());
} }
public void postInit(FMLPostInitializationEvent e) { public void postInit(FMLPostInitializationEvent e) {

View File

@@ -2,22 +2,23 @@ package refinedstorage.tile;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
public class TileCable extends TileMachine { public class TileCable extends TileSlave {
@Override @Override
public int getEnergyUsage() { public int getEnergyUsage() {
return 0; return 0;
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
}
@Override
public boolean canSendConnectivityUpdate() {
return false;
} }
@Override @Override
public Class<? extends Container> getContainer() { public Class<? extends Container> getContainer() {
return null; return null;
} }
public boolean canSendConnectivityData() {
return false;
}
} }

View File

@@ -22,7 +22,7 @@ import refinedstorage.inventory.BasicItemValidator;
import refinedstorage.item.ItemUpgrade; import refinedstorage.item.ItemUpgrade;
import refinedstorage.tile.config.ICompareConfig; 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 String NBT_COMPARE = "Compare";
public static final int BASE_SPEED = 20; public static final int BASE_SPEED = 20;
@@ -53,7 +53,7 @@ public class TileConstructor extends TileMachine implements ICompareConfig {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
if (block != null && ticks % RefinedStorageUtils.getSpeed(upgrades, BASE_SPEED, 4) == 0) { if (block != null && ticks % RefinedStorageUtils.getSpeed(upgrades, BASE_SPEED, 4) == 0) {
BlockPos front = pos.offset(getDirection()); BlockPos front = pos.offset(getDirection());

View File

@@ -19,7 +19,7 @@ import refinedstorage.inventory.IItemValidator;
import refinedstorage.item.ItemPattern; import refinedstorage.item.ItemPattern;
import refinedstorage.item.ItemUpgrade; import refinedstorage.item.ItemUpgrade;
public class TileCrafter extends TileMachine { public class TileCrafter extends TileSlave {
private BasicItemHandler patterns = new BasicItemHandler(9, this, new IItemValidator() { private BasicItemHandler patterns = new BasicItemHandler(9, this, new IItemValidator() {
@Override @Override
public boolean valid(ItemStack stack) { public boolean valid(ItemStack stack) {
@@ -35,7 +35,7 @@ public class TileCrafter extends TileMachine {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
} }
@Override @Override
@@ -44,14 +44,14 @@ public class TileCrafter extends TileMachine {
} }
@Override @Override
public void onDisconnected(World world) { public void disconnect(World world) {
for (ICraftingTask task : network.getCraftingTasks()) { for (ICraftingTask task : network.getCraftingTasks()) {
if (task.getPattern().getCrafter(worldObj) == this) { if (task.getPattern().getCrafter(worldObj) == this) {
network.cancelCraftingTask(task); network.cancelCraftingTask(task);
} }
} }
super.onDisconnected(world); super.disconnect(world);
} }
@Override @Override

View File

@@ -11,7 +11,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
public class TileCraftingMonitor extends TileMachine { public class TileCraftingMonitor extends TileSlave {
private List<ClientSideCraftingTask> tasks = new ArrayList<ClientSideCraftingTask>(); private List<ClientSideCraftingTask> tasks = new ArrayList<ClientSideCraftingTask>();
@Override @Override
@@ -20,7 +20,7 @@ public class TileCraftingMonitor extends TileMachine {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
} }
@Override @Override

View File

@@ -25,7 +25,7 @@ import refinedstorage.tile.config.ModeFilter;
import java.util.List; 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_COMPARE = "Compare";
public static final String NBT_MODE = "Mode"; public static final String NBT_MODE = "Mode";
@@ -47,7 +47,7 @@ public class TileDestructor extends TileMachine implements ICompareConfig, IMode
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
if (ticks % RefinedStorageUtils.getSpeed(upgrades, BASE_SPEED, 4) == 0) { if (ticks % RefinedStorageUtils.getSpeed(upgrades, BASE_SPEED, 4) == 0) {
BlockPos front = pos.offset(getDirection()); BlockPos front = pos.offset(getDirection());

View File

@@ -13,7 +13,7 @@ import refinedstorage.inventory.BasicItemHandler;
import refinedstorage.tile.config.ICompareConfig; import refinedstorage.tile.config.ICompareConfig;
import refinedstorage.tile.config.RedstoneMode; 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 SPEED = 5;
public static final int MODE_UNDER = 0; public static final int MODE_UNDER = 0;
@@ -34,10 +34,10 @@ public class TileDetector extends TileMachine implements ICompareConfig {
private boolean powered = false; private boolean powered = false;
@Override @Override
public void onDisconnected(World world) { public void disconnect(World world) {
super.onDisconnected(world);
powered = false; powered = false;
super.disconnect(world);
} }
@Override @Override
@@ -46,7 +46,7 @@ public class TileDetector extends TileMachine implements ICompareConfig {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
if (ticks % SPEED == 0) { if (ticks % SPEED == 0) {
ItemStack slot = filter.getStackInSlot(0); ItemStack slot = filter.getStackInSlot(0);

View File

@@ -12,7 +12,6 @@ import net.minecraftforge.items.ItemHandlerHelper;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageItems;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.RefinedStorageCapabilities;
import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorage;
import refinedstorage.api.storage.IStorageProvider; import refinedstorage.api.storage.IStorageProvider;
import refinedstorage.api.storage.NBTStorage; import refinedstorage.api.storage.NBTStorage;
@@ -25,7 +24,7 @@ import refinedstorage.tile.config.*;
import java.util.List; 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 class Storage extends NBTStorage {
public Storage(ItemStack disk) { public Storage(ItemStack disk) {
super(disk.getTagCompound(), EnumStorageType.getById(disk.getItemDamage()).getCapacity(), TileDiskDrive.this); super(disk.getTagCompound(), EnumStorageType.getById(disk.getItemDamage()).getCapacity(), TileDiskDrive.this);
@@ -86,7 +85,7 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
} }
@Override @Override
@@ -269,8 +268,6 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto
public <T> T getCapability(Capability<T> capability, EnumFacing facing) { public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
return (T) disks; return (T) disks;
} else if (capability == RefinedStorageCapabilities.STORAGE_PROVIDER_CAPABILITY) {
return (T) this;
} }
return super.getCapability(capability, facing); return super.getCapability(capability, facing);
@@ -278,6 +275,6 @@ public class TileDiskDrive extends TileMachine implements IStorageProvider, ISto
@Override @Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) { 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);
} }
} }

View File

@@ -18,7 +18,7 @@ import refinedstorage.inventory.BasicItemValidator;
import refinedstorage.item.ItemUpgrade; import refinedstorage.item.ItemUpgrade;
import refinedstorage.tile.config.ICompareConfig; 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"; public static final String NBT_COMPARE = "Compare";
private BasicItemHandler filters = new BasicItemHandler(9, this); private BasicItemHandler filters = new BasicItemHandler(9, this);
@@ -40,7 +40,7 @@ public class TileExporter extends TileMachine implements ICompareConfig {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
IItemHandler handler = RefinedStorageUtils.getItemHandler(getFacingTile(), getDirection().getOpposite()); IItemHandler handler = RefinedStorageUtils.getItemHandler(getFacingTile(), getDirection().getOpposite());
if (handler != null && ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) { if (handler != null && ticks % RefinedStorageUtils.getSpeed(upgrades) == 0) {

View File

@@ -19,7 +19,7 @@ import refinedstorage.tile.config.IModeConfig;
import refinedstorage.tile.config.ModeConstants; import refinedstorage.tile.config.ModeConstants;
import refinedstorage.tile.config.ModeFilter; 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_COMPARE = "Compare";
public static final String NBT_MODE = "Mode"; public static final String NBT_MODE = "Mode";
@@ -42,7 +42,7 @@ public class TileImporter extends TileMachine implements ICompareConfig, IModeCo
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
IItemHandler handler = RefinedStorageUtils.getItemHandler(getFacingTile(), getDirection().getOpposite()); IItemHandler handler = RefinedStorageUtils.getItemHandler(getFacingTile(), getDirection().getOpposite());
if (getFacingTile() instanceof TileDiskDrive || handler == null) { if (getFacingTile() instanceof TileDiskDrive || handler == null) {

View File

@@ -17,7 +17,7 @@ import refinedstorage.inventory.BasicItemValidator;
import refinedstorage.item.ItemUpgrade; import refinedstorage.item.ItemUpgrade;
import refinedstorage.tile.config.ICompareConfig; 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"; public static final String NBT_COMPARE = "Compare";
private BasicItemHandler importItems = new BasicItemHandler(9, this); private BasicItemHandler importItems = new BasicItemHandler(9, this);
@@ -40,7 +40,7 @@ public class TileInterface extends TileMachine implements ICompareConfig {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
if (currentSlot >= importItems.getSlots()) { if (currentSlot >= importItems.getSlots()) {
currentSlot = 0; currentSlot = 0;
} }

View File

@@ -5,7 +5,7 @@ import refinedstorage.RefinedStorageBlocks;
import refinedstorage.container.ContainerRelay; import refinedstorage.container.ContainerRelay;
import refinedstorage.tile.config.RedstoneMode; import refinedstorage.tile.config.RedstoneMode;
public class TileRelay extends TileMachine { public class TileRelay extends TileSlave {
private boolean couldUpdate; private boolean couldUpdate;
public TileRelay() { public TileRelay() {
@@ -18,7 +18,7 @@ public class TileRelay extends TileMachine {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
} }
public void update() { public void update() {

View File

@@ -3,10 +3,12 @@ package refinedstorage.tile;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.INetworkSlave;
import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.NetworkMasterRegistry;
import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.IRedstoneModeConfig;
import refinedstorage.tile.config.RedstoneMode; import refinedstorage.tile.config.RedstoneMode;
import refinedstorage.tile.controller.ControllerSearcher; import refinedstorage.tile.controller.ControllerSearcher;
@@ -15,34 +17,18 @@ import refinedstorage.tile.controller.TileController;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; 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"; public static final String NBT_CONNECTED = "Connected";
protected boolean connected; protected boolean connected;
protected boolean wasConnected; protected boolean wasConnected;
protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; protected RedstoneMode redstoneMode = RedstoneMode.IGNORE;
protected StorageNetwork network; protected NetworkMaster network;
private Block block; private Block block;
private Set<String> visited = new HashSet<String>(); private Set<String> visited = new HashSet<String>();
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 @Override
public void update() { public void update() {
if (!worldObj.isRemote) { if (!worldObj.isRemote) {
@@ -50,59 +36,50 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta
block = worldObj.getBlockState(pos).getBlock(); block = worldObj.getBlockState(pos).getBlock();
} }
if (wasConnected != isActive() && canSendConnectivityData()) { if (wasConnected != isActive() && canSendConnectivityUpdate()) {
wasConnected = isActive(); wasConnected = isActive();
RefinedStorageUtils.updateBlock(worldObj, pos); RefinedStorageUtils.updateBlock(worldObj, pos);
} }
if (isActive()) {
updateMachine();
}
} }
super.update(); super.update();
} }
public boolean canSendConnectivityData() { @Override
public boolean canSendConnectivityUpdate() {
return true; return true;
} }
@Override
public boolean canUpdate() { public boolean canUpdate() {
return redstoneMode.isEnabled(worldObj, pos); return redstoneMode.isEnabled(worldObj, pos);
} }
public boolean isActive() { public boolean isActive() {
return connected && canUpdate(); return isConnected() && canUpdate();
} }
public void onConnected(World world, TileController controller) { @Override
if (tryConnect(controller) && block != null) { 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); world.notifyNeighborsOfStateChange(pos, block);
} }
} }
private boolean tryConnect(TileController controller) { @Override
StorageNetwork network = StorageNetworkRegistry.get(controller.getPos(), worldObj.provider.getDimension()); public void forceConnect(NetworkMaster network) {
if (!network.canRun()) {
return false;
}
this.network = network;
this.connected = true;
network.addMachine(this);
return true;
}
public void forceConnect(StorageNetwork network) {
this.network = network; this.network = network;
this.connected = true; this.connected = true;
} }
public void onDisconnected(World world) { @Override
public void disconnect(World world) {
this.connected = false; this.connected = false;
if (this.network != null) { if (this.network != null) {
@@ -113,10 +90,33 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta
world.notifyNeighborsOfStateChange(pos, block); 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; return network;
} }
@Override
public BlockPos getPosition() {
return pos;
}
@Override
public boolean isConnected() { public boolean isConnected() {
return connected; return connected;
} }
@@ -179,21 +179,17 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta
connected = tag.getBoolean(NBT_CONNECTED); connected = tag.getBoolean(NBT_CONNECTED);
} }
public abstract int getEnergyUsage();
public abstract void updateMachine();
@Override @Override
public boolean equals(Object other) { public boolean equals(Object other) {
if (other == this) { if (other == this) {
return true; return true;
} }
if (!(other instanceof TileMachine)) { if (!(other instanceof TileSlave)) {
return false; return false;
} }
return ((TileMachine) other).getPos().equals(pos); return ((TileSlave) other).getPos().equals(pos);
} }
@Override @Override

View File

@@ -19,7 +19,7 @@ import refinedstorage.inventory.BasicItemValidator;
import refinedstorage.inventory.SoldererItemHandler; import refinedstorage.inventory.SoldererItemHandler;
import refinedstorage.item.ItemUpgrade; 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_WORKING = "Working";
public static final String NBT_PROGRESS = "Progress"; public static final String NBT_PROGRESS = "Progress";
@@ -39,7 +39,7 @@ public class TileSolderer extends TileMachine {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
boolean wasWorking = working; boolean wasWorking = working;
if (items.getStackInSlot(1) == null && items.getStackInSlot(2) == null && items.getStackInSlot(3) == null) { if (items.getStackInSlot(1) == null && items.getStackInSlot(2) == null && items.getStackInSlot(3) == null) {
@@ -91,10 +91,10 @@ public class TileSolderer extends TileMachine {
} }
@Override @Override
public void onDisconnected(World world) { public void disconnect(World world) {
super.onDisconnected(world);
stop(); stop();
super.disconnect(world);
} }
public void stop() { public void stop() {

View File

@@ -4,14 +4,11 @@ import io.netty.buffer.ByteBuf;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; 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.IItemHandler;
import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.ItemHandlerHelper;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.RefinedStorageCapabilities;
import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorage;
import refinedstorage.api.storage.IStorageProvider; import refinedstorage.api.storage.IStorageProvider;
import refinedstorage.api.storage.NBTStorage; import refinedstorage.api.storage.NBTStorage;
@@ -24,7 +21,7 @@ import refinedstorage.tile.config.*;
import java.util.List; 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 { class Storage extends NBTStorage {
public Storage() { public Storage() {
super(TileStorage.this.getStorageTag(), TileStorage.this.getCapacity(), TileStorage.this); super(TileStorage.this.getStorageTag(), TileStorage.this.getCapacity(), TileStorage.this);
@@ -69,7 +66,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
} }
@Override @Override
@@ -240,18 +237,4 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora
public int getCapacity() { public int getCapacity() {
return getType().getCapacity(); return getType().getCapacity();
} }
@Override
public <T> T getCapability(Capability<T> 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);
}
} }

View File

@@ -13,7 +13,7 @@ import refinedstorage.inventory.BasicItemHandler;
import refinedstorage.inventory.BasicItemValidator; import refinedstorage.inventory.BasicItemValidator;
import refinedstorage.item.ItemUpgrade; import refinedstorage.item.ItemUpgrade;
public class TileWirelessTransmitter extends TileMachine { public class TileWirelessTransmitter extends TileSlave {
public static final int RANGE_PER_UPGRADE = 8; public static final int RANGE_PER_UPGRADE = 8;
private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_RANGE)); private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_RANGE));
@@ -24,7 +24,7 @@ public class TileWirelessTransmitter extends TileMachine {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
} }
@Override @Override

View File

@@ -4,8 +4,8 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.tile.TileMachine;
import refinedstorage.tile.TileRelay; import refinedstorage.tile.TileRelay;
import refinedstorage.tile.TileSlave;
import java.util.Set; import java.util.Set;
@@ -21,7 +21,7 @@ public final class ControllerSearcher {
if (tile instanceof TileController) { if (tile instanceof TileController) {
return (TileController) tile; return (TileController) tile;
} else if (tile instanceof TileMachine) { } else if (tile instanceof TileSlave) {
if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).canUpdate()) { if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).canUpdate()) {
return null; return null;
} }

View File

@@ -4,7 +4,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.InventoryHelper; import net.minecraft.inventory.InventoryHelper;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.CraftingPattern;
import refinedstorage.autocrafting.task.ICraftingTask; import refinedstorage.autocrafting.task.ICraftingTask;
import refinedstorage.item.ItemWirelessGrid; import refinedstorage.item.ItemWirelessGrid;
@@ -13,10 +13,10 @@ import refinedstorage.network.GridPullFlags;
public class StorageHandler { public class StorageHandler {
public static final int MAX_CRAFTING_PER_REQUEST = 500; public static final int MAX_CRAFTING_PER_REQUEST = 500;
private StorageNetwork network; private NetworkMaster master;
public StorageHandler(StorageNetwork network) { public StorageHandler(NetworkMaster master) {
this.network = network; this.master = master;
} }
public void onPull(int id, int flags, EntityPlayerMP player) { public void onPull(int id, int flags, EntityPlayerMP player) {
@@ -24,11 +24,11 @@ public class StorageHandler {
return; return;
} }
if (id < 0 || id > network.getItems().size() - 1) { if (id < 0 || id > master.getItems().size() - 1) {
return; return;
} }
ItemStack stack = network.getItems().get(id); ItemStack stack = master.getItems().get(id);
int size = 64; int size = 64;
@@ -46,7 +46,7 @@ public class StorageHandler {
size = Math.min(size, stack.getItem().getItemStackLimit(stack)); size = Math.min(size, stack.getItem().getItemStackLimit(stack));
ItemStack took = network.take(stack, size); ItemStack took = master.take(stack, size);
if (took != null) { if (took != null) {
if (GridPullFlags.isPullingWithShift(flags)) { if (GridPullFlags.isPullingWithShift(flags)) {
@@ -58,7 +58,7 @@ public class StorageHandler {
player.updateHeldItem(); 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; int size = one ? 1 : stack.stackSize;
if (one) { if (one) {
if (network.push(stack, size, true) == null) { if (master.push(stack, size, true) == null) {
network.push(stack, size, false); master.push(stack, size, false);
stack.stackSize -= size; stack.stackSize -= size;
@@ -81,21 +81,21 @@ public class StorageHandler {
} }
} }
} else { } else {
player.inventory.setItemStack(network.push(stack, size, false)); player.inventory.setItemStack(master.push(stack, size, false));
} }
player.updateHeldItem(); player.updateHeldItem();
network.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH); master.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH);
} }
public void onCraftingRequested(int id, int quantity) { public void onCraftingRequested(int id, int quantity) {
if (id >= 0 && id < network.getItems().size() && quantity > 0 && quantity <= MAX_CRAFTING_PER_REQUEST) { if (id >= 0 && id < master.getItems().size() && quantity > 0 && quantity <= MAX_CRAFTING_PER_REQUEST) {
ItemStack requested = network.getItems().get(id); ItemStack requested = master.getItems().get(id);
int quantityPerRequest = 0; int quantityPerRequest = 0;
CraftingPattern pattern = network.getPatternWithBestScore(requested); CraftingPattern pattern = master.getPatternWithBestScore(requested);
if (pattern != null) { if (pattern != null) {
for (ItemStack output : pattern.getOutputs()) { for (ItemStack output : pattern.getOutputs()) {
@@ -109,7 +109,7 @@ public class StorageHandler {
} }
while (quantity > 0) { while (quantity > 0) {
network.addCraftingTaskAsLast(network.createCraftingTask(pattern)); master.addCraftingTaskAsLast(master.createCraftingTask(pattern));
quantity -= quantityPerRequest; quantity -= quantityPerRequest;
} }
@@ -118,11 +118,11 @@ public class StorageHandler {
} }
public void onCraftingCancelRequested(int id) { public void onCraftingCancelRequested(int id) {
if (id >= 0 && id < network.getCraftingTasks().size()) { if (id >= 0 && id < master.getCraftingTasks().size()) {
network.cancelCraftingTask(network.getCraftingTasks().get(id)); master.cancelCraftingTask(master.getCraftingTasks().get(id));
} else if (id == -1) { } else if (id == -1) {
for (ICraftingTask task : network.getCraftingTasks()) { for (ICraftingTask task : master.getCraftingTasks()) {
network.cancelCraftingTask(task); master.cancelCraftingTask(task);
} }
} }
} }

View File

@@ -9,14 +9,14 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.fml.common.network.ByteBufUtils;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.INetworkSlave;
import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.NetworkMasterRegistry;
import refinedstorage.block.BlockController; import refinedstorage.block.BlockController;
import refinedstorage.block.EnumControllerType; import refinedstorage.block.EnumControllerType;
import refinedstorage.container.ContainerController; import refinedstorage.container.ContainerController;
import refinedstorage.tile.ISynchronizedContainer; import refinedstorage.tile.ISynchronizedContainer;
import refinedstorage.tile.TileBase; import refinedstorage.tile.TileBase;
import refinedstorage.tile.TileMachine;
import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.IRedstoneModeConfig;
import refinedstorage.tile.config.RedstoneMode; import refinedstorage.tile.config.RedstoneMode;
@@ -24,7 +24,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
public class TileController extends TileBase implements IEnergyReceiver, ISynchronizedContainer, IRedstoneModeConfig { public class TileController extends TileBase implements IEnergyReceiver, ISynchronizedContainer, IRedstoneModeConfig {
private StorageNetwork network; private NetworkMaster network;
// Only used client side // Only used client side
private List<ClientMachine> clientMachines = new ArrayList<ClientMachine>(); private List<ClientMachine> clientMachines = new ArrayList<ClientMachine>();
@@ -33,9 +33,9 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
private EnumControllerType type; private EnumControllerType type;
private RedstoneMode redstoneMode; private RedstoneMode redstoneMode;
public StorageNetwork getNetwork() { public NetworkMaster getNetwork() {
if (network == null) { if (network == null) {
network = StorageNetworkRegistry.get(pos, worldObj.provider.getDimension()); network = NetworkMasterRegistry.get(pos, worldObj.provider.getDimension());
} }
return network; return network;
@@ -45,14 +45,14 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
public NBTTagCompound writeUpdate(NBTTagCompound tag) { public NBTTagCompound writeUpdate(NBTTagCompound tag) {
super.writeUpdate(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; return tag;
} }
@Override @Override
public void readUpdate(NBTTagCompound tag) { public void readUpdate(NBTTagCompound tag) {
energy = tag.getInteger(StorageNetwork.NBT_ENERGY); energy = tag.getInteger(NetworkMaster.NBT_ENERGY);
super.readUpdate(tag); super.readUpdate(tag);
} }
@@ -69,7 +69,7 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
public int getEnergyScaled(int i) { public int getEnergyScaled(int i) {
float stored = worldObj.isRemote ? energy : getNetwork().getEnergy().getEnergyStored(); float stored = worldObj.isRemote ? energy : getNetwork().getEnergy().getEnergyStored();
float max = StorageNetwork.ENERGY_CAPACITY; float max = NetworkMaster.ENERGY_CAPACITY;
return (int) (stored / max * (float) i); return (int) (stored / max * (float) i);
} }
@@ -145,9 +145,9 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
List<ClientMachine> m = new ArrayList<ClientMachine>(); List<ClientMachine> m = new ArrayList<ClientMachine>();
for (TileMachine machine : getNetwork().getMachines()) { for (INetworkSlave machine : getNetwork().getSlaves()) {
if (machine.canUpdate()) { if (machine.canUpdate()) {
IBlockState state = worldObj.getBlockState(machine.getPos()); IBlockState state = worldObj.getBlockState(machine.getPosition());
ClientMachine clientMachine = new ClientMachine(); ClientMachine clientMachine = new ClientMachine();

View File

@@ -8,7 +8,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageItems;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.item.ItemWirelessGrid; import refinedstorage.item.ItemWirelessGrid;
import refinedstorage.tile.grid.WirelessGridConsumer; import refinedstorage.tile.grid.WirelessGridConsumer;
@@ -17,13 +17,13 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
public class WirelessGridHandler { public class WirelessGridHandler {
private StorageNetwork network; private NetworkMaster network;
private List<WirelessGridConsumer> consumers = new ArrayList<WirelessGridConsumer>(); private List<WirelessGridConsumer> consumers = new ArrayList<WirelessGridConsumer>();
private List<WirelessGridConsumer> consumersToRemove = new ArrayList<WirelessGridConsumer>(); private List<WirelessGridConsumer> consumersToRemove = new ArrayList<WirelessGridConsumer>();
public WirelessGridHandler(StorageNetwork network) { public WirelessGridHandler(NetworkMaster master) {
this.network = network; this.network = master;
} }
public void update() { public void update() {

View File

@@ -6,20 +6,17 @@ import io.netty.buffer.ByteBuf;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandler;
import powercrystals.minefactoryreloaded.api.IDeepStorageUnit; import powercrystals.minefactoryreloaded.api.IDeepStorageUnit;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.RefinedStorageCapabilities;
import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorage;
import refinedstorage.api.storage.IStorageProvider; import refinedstorage.api.storage.IStorageProvider;
import refinedstorage.container.ContainerStorage; import refinedstorage.container.ContainerStorage;
import refinedstorage.inventory.BasicItemHandler; import refinedstorage.inventory.BasicItemHandler;
import refinedstorage.network.MessagePriorityUpdate; import refinedstorage.network.MessagePriorityUpdate;
import refinedstorage.tile.IStorageGui; import refinedstorage.tile.IStorageGui;
import refinedstorage.tile.TileMachine; import refinedstorage.tile.TileSlave;
import refinedstorage.tile.config.ICompareConfig; import refinedstorage.tile.config.ICompareConfig;
import refinedstorage.tile.config.IModeConfig; import refinedstorage.tile.config.IModeConfig;
import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.IRedstoneModeConfig;
@@ -27,7 +24,7 @@ import refinedstorage.tile.config.ModeConstants;
import java.util.List; 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_PRIORITY = "Priority";
public static final String NBT_COMPARE = "Compare"; public static final String NBT_COMPARE = "Compare";
public static final String NBT_MODE = "Mode"; public static final String NBT_MODE = "Mode";
@@ -48,7 +45,7 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
} }
@Override @Override
@@ -240,18 +237,4 @@ public class TileExternalStorage extends TileMachine implements IStorageProvider
public IItemHandler getFilters() { public IItemHandler getFilters() {
return filters; return filters;
} }
@Override
public <T> T getCapability(Capability<T> 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);
}
} }

View File

@@ -25,13 +25,13 @@ import refinedstorage.network.MessageGridHeldItemPush;
import refinedstorage.network.MessageGridSettingsUpdate; import refinedstorage.network.MessageGridSettingsUpdate;
import refinedstorage.network.MessageGridStoragePull; import refinedstorage.network.MessageGridStoragePull;
import refinedstorage.tile.ClientItem; import refinedstorage.tile.ClientItem;
import refinedstorage.tile.TileMachine; import refinedstorage.tile.TileSlave;
import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.IRedstoneModeConfig;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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_DIRECTION = "SortingDirection";
public static final String NBT_SORTING_TYPE = "SortingType"; public static final String NBT_SORTING_TYPE = "SortingType";
public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode"; public static final String NBT_SEARCH_BOX_MODE = "SearchBoxMode";
@@ -86,7 +86,7 @@ public class TileGrid extends TileMachine implements IGrid {
} }
@Override @Override
public void updateMachine() { public void updateSlave() {
} }
public EnumGridType getType() { public EnumGridType getType() {

View File

@@ -7,8 +7,8 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.storagenet.StorageNetwork; import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.StorageNetworkRegistry; import refinedstorage.api.storagenet.NetworkMasterRegistry;
import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumGridType;
import refinedstorage.item.ItemWirelessGrid; import refinedstorage.item.ItemWirelessGrid;
import refinedstorage.network.MessageWirelessGridCraftingStart; import refinedstorage.network.MessageWirelessGridCraftingStart;
@@ -63,7 +63,7 @@ public class WirelessGrid implements IGrid {
@Override @Override
public ItemStack onItemPush(EntityPlayer player, ItemStack stack) { 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()) { if (network != null && network.canRun()) {
network.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH); network.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH);
@@ -85,7 +85,7 @@ public class WirelessGrid implements IGrid {
} }
public void onClose(EntityPlayer player) { 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) { if (network != null) {
network.getWirelessGridHandler().handleClose(player); network.getWirelessGridHandler().handleClose(player);