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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,17 +1,17 @@
package refinedstorage.autocrafting.task;
import net.minecraft.nbt.NBTTagCompound;
import refinedstorage.api.storagenet.StorageNetwork;
import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.autocrafting.CraftingPattern;
public interface ICraftingTask {
CraftingPattern getPattern();
boolean update(StorageNetwork network);
boolean update(NetworkMaster master);
void onDone(StorageNetwork network);
void onDone(NetworkMaster master);
void onCancelled(StorageNetwork network);
void onCancelled(NetworkMaster master);
void writeToNBT(NBTTagCompound tag);

View File

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

View File

@@ -11,9 +11,9 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import refinedstorage.RefinedStorageBlocks;
import refinedstorage.tile.TileCable;
import refinedstorage.tile.TileMachine;
import refinedstorage.tile.TileSlave;
public class BlockCable extends BlockMachine {
public class BlockCable extends BlockSlave {
public static final AxisAlignedBB CABLE_AABB = new AxisAlignedBB(4 * (1F / 16F), 4 * (1F / 16F), 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F), 1 - 4 * (1F / 16F));
public static final PropertyBool NORTH = PropertyBool.create("north");
@@ -57,7 +57,7 @@ public class BlockCable extends BlockMachine {
}
public static boolean hasConnectionWith(IBlockAccess world, BlockPos pos) {
return world.getBlockState(pos).getBlock() == RefinedStorageBlocks.CONTROLLER || world.getTileEntity(pos) instanceof TileMachine;
return world.getBlockState(pos).getBlock() == RefinedStorageBlocks.CONTROLLER || world.getTileEntity(pos) instanceof TileSlave;
}
@Override

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -20,7 +20,7 @@ import refinedstorage.tile.grid.TileGrid;
import java.util.List;
public class BlockGrid extends BlockMachine {
public class BlockGrid extends BlockSlave {
public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumGridType.class);
public BlockGrid() {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -25,7 +25,7 @@ import refinedstorage.tile.TileStorage;
import java.util.ArrayList;
import java.util.List;
public class BlockStorage extends BlockMachine {
public class BlockStorage extends BlockSlave {
public static final PropertyEnum TYPE = PropertyEnum.create("type", EnumStorageType.class);
public BlockStorage() {

View File

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

View File

@@ -3,7 +3,7 @@ package refinedstorage.gui;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.storagenet.StorageNetwork;
import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.container.ContainerController;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.controller.ClientMachine;
@@ -46,7 +46,7 @@ public class GuiController extends GuiBase {
drawTexture(x, y, 0, 0, width, height);
int barHeightNew = (int) ((float) controller.getEnergy() / (float) StorageNetwork.ENERGY_CAPACITY * (float) barHeight);
int barHeightNew = (int) ((float) controller.getEnergy() / (float) NetworkMaster.ENERGY_CAPACITY * (float) barHeight);
drawTexture(x + barX, y + barY + barHeight - barHeightNew, 178, barHeight - barHeightNew, barWidth, barHeightNew);
}
@@ -103,7 +103,7 @@ public class GuiController extends GuiBase {
}
if (inBounds(barX, barY, barWidth, barHeight, mouseX, mouseY)) {
drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergy(), StorageNetwork.ENERGY_CAPACITY));
drawTooltip(mouseX, mouseY, t("misc.refinedstorage:energy_usage", controller.getEnergyUsage()) + "\n" + t("misc.refinedstorage:energy_stored", controller.getEnergy(), NetworkMaster.ENERGY_CAPACITY));
}
}

View File

@@ -6,7 +6,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import refinedstorage.RefinedStorageBlocks;
import refinedstorage.api.storagenet.StorageNetwork;
import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.block.EnumControllerType;
import java.util.List;
@@ -21,11 +21,11 @@ public class ItemBlockController extends ItemBlockBase {
if (stack.getMetadata() != EnumControllerType.CREATIVE.getId()) {
int energyStored = 0;
if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(StorageNetwork.NBT_ENERGY)) {
energyStored = stack.getTagCompound().getInteger(StorageNetwork.NBT_ENERGY);
if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(NetworkMaster.NBT_ENERGY)) {
energyStored = stack.getTagCompound().getInteger(NetworkMaster.NBT_ENERGY);
}
list.add(I18n.format("misc.refinedstorage:energy_stored", energyStored, StorageNetwork.ENERGY_CAPACITY));
list.add(I18n.format("misc.refinedstorage:energy_stored", energyStored, NetworkMaster.ENERGY_CAPACITY));
}
}
@@ -43,7 +43,7 @@ public class ItemBlockController extends ItemBlockBase {
tag = new NBTTagCompound();
}
tag.setInteger(StorageNetwork.NBT_ENERGY, stack.getMetadata() == EnumControllerType.CREATIVE.getId() ? StorageNetwork.ENERGY_CAPACITY : 0);
tag.setInteger(NetworkMaster.NBT_ENERGY, stack.getMetadata() == EnumControllerType.CREATIVE.getId() ? NetworkMaster.ENERGY_CAPACITY : 0);
return stack;
}

View File

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

View File

@@ -4,8 +4,8 @@ import io.netty.buffer.ByteBuf;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.api.storagenet.StorageNetwork;
import refinedstorage.api.storagenet.StorageNetworkRegistry;
import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.api.storagenet.NetworkMasterRegistry;
public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<MessageGridCraftingStart> implements IMessage {
private int x;
@@ -45,7 +45,7 @@ public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<Messa
@Override
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()) {
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.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import refinedstorage.api.storagenet.StorageNetwork;
import refinedstorage.api.storagenet.NetworkMaster;
import refinedstorage.container.ContainerGrid;
import refinedstorage.tile.ClientItem;
@@ -16,13 +16,13 @@ import java.util.ArrayList;
import java.util.List;
public class MessageGridItems implements IMessage, IMessageHandler<MessageGridItems, IMessage> {
private StorageNetwork network;
private NetworkMaster network;
private List<ClientItem> items = new ArrayList<ClientItem>();
public MessageGridItems() {
}
public MessageGridItems(StorageNetwork network) {
public MessageGridItems(NetworkMaster network) {
this.network = network;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -4,14 +4,11 @@ import io.netty.buffer.ByteBuf;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.ItemHandlerHelper;
import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks;
import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.RefinedStorageCapabilities;
import refinedstorage.api.storage.IStorage;
import refinedstorage.api.storage.IStorageProvider;
import refinedstorage.api.storage.NBTStorage;
@@ -24,7 +21,7 @@ import refinedstorage.tile.config.*;
import java.util.List;
public class TileStorage extends TileMachine implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig {
public class TileStorage extends TileSlave implements IStorageProvider, IStorageGui, ICompareConfig, IModeConfig {
class Storage extends NBTStorage {
public Storage() {
super(TileStorage.this.getStorageTag(), TileStorage.this.getCapacity(), TileStorage.this);
@@ -69,7 +66,7 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora
}
@Override
public void updateMachine() {
public void updateSlave() {
}
@Override
@@ -240,18 +237,4 @@ public class TileStorage extends TileMachine implements IStorageProvider, IStora
public int getCapacity() {
return getType().getCapacity();
}
@Override
public <T> 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.item.ItemUpgrade;
public class TileWirelessTransmitter extends TileMachine {
public class TileWirelessTransmitter extends TileSlave {
public static final int RANGE_PER_UPGRADE = 8;
private BasicItemHandler upgrades = new BasicItemHandler(4, this, new BasicItemValidator(RefinedStorageItems.UPGRADE, ItemUpgrade.TYPE_RANGE));
@@ -24,7 +24,7 @@ public class TileWirelessTransmitter extends TileMachine {
}
@Override
public void updateMachine() {
public void updateSlave() {
}
@Override

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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