Make wireless grid handler and storage handler a interface too

This commit is contained in:
Raoul Van den Berge
2016-06-23 00:39:59 +02:00
parent 47f631585a
commit 7024caa17e
40 changed files with 305 additions and 183 deletions

View File

@@ -0,0 +1,16 @@
package refinedstorage.api.network;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
public interface IGridHandler {
void onPull(ItemStack stack, int flags, EntityPlayerMP player);
ItemStack onPush(ItemStack stack);
void onHeldItemPush(boolean single, EntityPlayerMP player);
void onCraftingRequested(ItemStack stack, int quantity);
void onCraftingCancelRequested(int id);
}

View File

@@ -0,0 +1,80 @@
package refinedstorage.api.network;
import cofh.api.energy.EnergyStorage;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import refinedstorage.autocrafting.CraftingPattern;
import refinedstorage.autocrafting.task.ICraftingTask;
import refinedstorage.tile.config.RedstoneMode;
import java.util.Iterator;
import java.util.List;
public interface INetworkMaster {
RedstoneMode getRedstoneMode();
void setRedstoneMode(RedstoneMode mode);
World getWorld();
void setWorld(World world);
EnergyStorage getEnergy();
int getEnergyUsage();
BlockPos getPosition();
boolean canRun();
void update();
Iterator<INetworkSlave> getSlaves();
void addSlave(BlockPos slave);
void removeSlave(BlockPos slave);
IGridHandler getGridHandler();
IWirelessGridHandler getWirelessGridHandler();
List<ItemStack> getItems();
List<ICraftingTask> getCraftingTasks();
void addCraftingTask(ICraftingTask task);
void addCraftingTaskAsLast(ICraftingTask task);
ICraftingTask createCraftingTask(CraftingPattern pattern);
void cancelCraftingTask(ICraftingTask task);
List<CraftingPattern> getPatterns();
List<CraftingPattern> getPattern(ItemStack pattern, int flags);
CraftingPattern getPatternWithBestScore(ItemStack pattern);
CraftingPattern getPatternWithBestScore(ItemStack pattern, int flags);
void updateItemsWithClient();
void updateItemsWithClient(EntityPlayerMP player);
ItemStack push(ItemStack stack, int size, boolean simulate);
ItemStack take(ItemStack stack, int size);
ItemStack take(ItemStack stack, int size, int flags);
ItemStack getItem(ItemStack stack, int flags);
NBTTagCompound writeToNBT(NBTTagCompound tag);
void readFromNBT(NBTTagCompound tag);
}

View File

@@ -36,18 +36,17 @@ public interface INetworkSlave {
/** /**
* Called when a connection is found to the network * Called when a connection is found to the network
*
* @param world The world * @param world The world
* @param network The network we're trying to connect to * @param network The network we're trying to connect to
*/ */
void connect(World world, NetworkMaster network); void connect(World world, INetworkMaster network);
/** /**
* Called when the slave is loaded from a save file * Called when the slave is loaded from a save file
* *
* @param network The network we have to connected to * @param network The network we have to connected to
*/ */
void forceConnect(NetworkMaster network); void forceConnect(INetworkMaster network);
/** /**
* Called when a connection is lost to the network * Called when a connection is lost to the network
@@ -69,5 +68,5 @@ public interface INetworkSlave {
/** /**
* @return The network * @return The network
*/ */
NetworkMaster getNetwork(); INetworkMaster getNetwork();
} }

View File

@@ -0,0 +1,16 @@
package refinedstorage.api.network;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.EnumHand;
public interface IWirelessGridHandler {
void update();
boolean onOpen(EntityPlayer player, EnumHand hand);
void onClose(EntityPlayer player);
void drainEnergy(EntityPlayer player, int energy);
WirelessGridConsumer getConsumer(EntityPlayer player);
}

View File

@@ -1,42 +0,0 @@
package refinedstorage.api.network;
import net.minecraft.util.math.BlockPos;
import java.util.HashMap;
import java.util.Map;
public class NetworkMasterRegistry {
public static final Map<Integer, Map<BlockPos, NetworkMaster>> NETWORKS = new HashMap<Integer, Map<BlockPos, NetworkMaster>>();
public static void add(NetworkMaster network, int dimension) {
if (NETWORKS.get(dimension) == null) {
NETWORKS.put(dimension, new HashMap<BlockPos, NetworkMaster>());
}
NETWORKS.get(dimension).put(network.getPosition(), network);
}
public static void remove(BlockPos pos, int dimension) {
if (get(dimension) != null) {
NetworkMaster network = get(dimension).get(pos);
if (network != null) {
network.onRemoved();
get(dimension).remove(pos);
}
}
}
public static NetworkMaster get(BlockPos pos, int dimension) {
return get(dimension) == null ? null : get(dimension).get(pos);
}
public static Map<BlockPos, NetworkMaster> get(int dimension) {
return NETWORKS.get(dimension);
}
public static void clear() {
NETWORKS.clear();
}
}

View File

@@ -1,4 +1,4 @@
package refinedstorage.tile.grid; package refinedstorage.api.network;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View File

@@ -1,24 +1,25 @@
package refinedstorage.tile.controller; package refinedstorage.apiimpl.network;
import net.minecraft.entity.player.EntityPlayerMP; 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.network.NetworkMaster; import refinedstorage.api.network.IGridHandler;
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;
import refinedstorage.network.GridPullFlags; import refinedstorage.network.GridPullFlags;
public class StorageHandler { public class GridHandler implements IGridHandler {
public static final int MAX_CRAFTING_PER_REQUEST = 500; public static final int MAX_CRAFTING_PER_REQUEST = 500;
private NetworkMaster network; private NetworkMaster network;
public StorageHandler(NetworkMaster network) { public GridHandler(NetworkMaster network) {
this.network = network; this.network = network;
} }
@Override
public void onPull(ItemStack stack, int flags, EntityPlayerMP player) { public void onPull(ItemStack stack, int flags, EntityPlayerMP player) {
if (player.inventory.getItemStack() != null) { if (player.inventory.getItemStack() != null) {
return; return;
@@ -56,10 +57,12 @@ public class StorageHandler {
} }
} }
@Override
public ItemStack onPush(ItemStack stack) { public ItemStack onPush(ItemStack stack) {
return network.push(stack, stack.stackSize, false); return network.push(stack, stack.stackSize, false);
} }
@Override
public void onHeldItemPush(boolean single, EntityPlayerMP player) { public void onHeldItemPush(boolean single, EntityPlayerMP player) {
if (player.inventory.getItemStack() == null) { if (player.inventory.getItemStack() == null) {
return; return;
@@ -87,6 +90,7 @@ public class StorageHandler {
network.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH); network.getWirelessGridHandler().drainEnergy(player, ItemWirelessGrid.USAGE_PUSH);
} }
@Override
public void onCraftingRequested(ItemStack stack, int quantity) { public void onCraftingRequested(ItemStack stack, int quantity) {
if (quantity <= 0 || quantity > MAX_CRAFTING_PER_REQUEST) { if (quantity <= 0 || quantity > MAX_CRAFTING_PER_REQUEST) {
return; return;
@@ -115,6 +119,7 @@ public class StorageHandler {
} }
} }
@Override
public void onCraftingCancelRequested(int id) { public void onCraftingCancelRequested(int id) {
if (id >= 0 && id < network.getCraftingTasks().size()) { if (id >= 0 && id < network.getCraftingTasks().size()) {
network.cancelCraftingTask(network.getCraftingTasks().get(id)); network.cancelCraftingTask(network.getCraftingTasks().get(id));

View File

@@ -1,4 +1,4 @@
package refinedstorage.api.network; package refinedstorage.apiimpl.network;
import cofh.api.energy.EnergyStorage; import cofh.api.energy.EnergyStorage;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@@ -14,6 +14,10 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.RefinedStorageCapabilities; import refinedstorage.api.RefinedStorageCapabilities;
import refinedstorage.api.network.IGridHandler;
import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.network.INetworkSlave;
import refinedstorage.api.network.IWirelessGridHandler;
import refinedstorage.api.storage.CompareFlags; import refinedstorage.api.storage.CompareFlags;
import refinedstorage.api.storage.IStorage; import refinedstorage.api.storage.IStorage;
import refinedstorage.api.storage.IStorageProvider; import refinedstorage.api.storage.IStorageProvider;
@@ -30,12 +34,10 @@ import refinedstorage.tile.TileCable;
import refinedstorage.tile.TileCrafter; import refinedstorage.tile.TileCrafter;
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.WirelessGridHandler;
import java.util.*; import java.util.*;
public class NetworkMaster { public class NetworkMaster implements INetworkMaster {
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";
@@ -45,7 +47,7 @@ public class NetworkMaster {
public static final String NBT_SLAVE_Y = "Y"; public static final String NBT_SLAVE_Y = "Y";
public static final String NBT_SLAVE_Z = "Z"; public static final String NBT_SLAVE_Z = "Z";
private StorageHandler storageHandler = new StorageHandler(this); private GridHandler gridHandler = new GridHandler(this);
private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this); private WirelessGridHandler wirelessGridHandler = new WirelessGridHandler(this);
private List<ItemStack> items = new ArrayList<ItemStack>(); private List<ItemStack> items = new ArrayList<ItemStack>();
@@ -86,7 +88,7 @@ public class NetworkMaster {
public NetworkMaster(BlockPos pos, World world) { public NetworkMaster(BlockPos pos, World world) {
this.pos = pos; this.pos = pos;
onAdded(world); setWorld(world);
} }
public NetworkMaster(BlockPos pos) { public NetworkMaster(BlockPos pos) {
@@ -119,6 +121,23 @@ public class NetworkMaster {
return world; return world;
} }
public void setWorld(World world) {
this.world = world;
this.type = (EnumControllerType) world.getBlockState(pos).getValue(BlockController.TYPE);
for (BlockPos slavePos : slavesToLoad) {
INetworkSlave slave = world.getTileEntity(slavePos).getCapability(RefinedStorageCapabilities.NETWORK_SLAVE_CAPABILITY, null);
slave.forceConnect(this);
if (!(slave instanceof TileCable)) {
slaves.add(slavePos);
}
}
this.slavesToLoad.clear();
}
public boolean canRun() { public boolean canRun() {
return energy.getEnergyStored() > 0 && energy.getEnergyStored() >= energyUsage && redstoneMode.isEnabled(world, pos); return energy.getEnergyStored() > 0 && energy.getEnergyStored() >= energyUsage && redstoneMode.isEnabled(world, pos);
} }
@@ -138,7 +157,7 @@ public class NetworkMaster {
if (canRun()) { if (canRun()) {
if (ticks % 20 == 0) { if (ticks % 20 == 0) {
syncMachines(); updateSlaves();
} }
Iterator<INetworkSlave> slaves = getSlaves(); Iterator<INetworkSlave> slaves = getSlaves();
@@ -188,7 +207,7 @@ public class NetworkMaster {
} }
} else if (!slaves.isEmpty()) { } else if (!slaves.isEmpty()) {
disconnectAll(); disconnectAll();
syncMachines(); updateSlaves();
} }
if (couldRun != canRun()) { if (couldRun != canRun()) {
@@ -255,11 +274,12 @@ public class NetworkMaster {
markDirty(); markDirty();
} }
public StorageHandler getStorageHandler() { public IGridHandler getGridHandler() {
return storageHandler; return gridHandler;
} }
public WirelessGridHandler getWirelessGridHandler() { @Override
public IWirelessGridHandler getWirelessGridHandler() {
return wirelessGridHandler; return wirelessGridHandler;
} }
@@ -277,27 +297,6 @@ public class NetworkMaster {
this.slaves.clear(); this.slaves.clear();
} }
public void onRemoved() {
markDirty();
}
public void onAdded(World world) {
this.world = world;
this.type = (EnumControllerType) world.getBlockState(pos).getValue(BlockController.TYPE);
for (BlockPos slavePos : slavesToLoad) {
INetworkSlave slave = world.getTileEntity(slavePos).getCapability(RefinedStorageCapabilities.NETWORK_SLAVE_CAPABILITY, null);
slave.forceConnect(this);
if (!(slave instanceof TileCable)) {
slaves.add(slavePos);
}
}
this.slavesToLoad.clear();
}
public List<ItemStack> getItems() { public List<ItemStack> getItems() {
return items; return items;
} }
@@ -384,7 +383,7 @@ public class NetworkMaster {
return patterns.get(highestPattern); return patterns.get(highestPattern);
} }
private void syncMachines() { private void updateSlaves() {
this.wirelessGridRange = 0; this.wirelessGridRange = 0;
this.energyUsage = 0; this.energyUsage = 0;
this.storages.clear(); this.storages.clear();
@@ -446,11 +445,11 @@ public class NetworkMaster {
} }
}); });
syncItems(); updateItems();
syncItemsWithClients(); updateItemsWithClient();
} }
private void syncItems() { private void updateItems() {
items.clear(); items.clear();
for (IStorage storage : storages) { for (IStorage storage : storages) {
@@ -498,15 +497,15 @@ public class NetworkMaster {
items.removeAll(combinedItems); items.removeAll(combinedItems);
} }
public void syncItemsWithClients() { public void updateItemsWithClient() {
for (EntityPlayer player : world.playerEntities) { for (EntityPlayer player : world.playerEntities) {
if (player.openContainer.getClass() == ContainerGrid.class && pos.equals(((ContainerGrid) player.openContainer).getGrid().getNetworkPosition())) { if (player.openContainer.getClass() == ContainerGrid.class && pos.equals(((ContainerGrid) player.openContainer).getGrid().getNetworkPosition())) {
syncItemsWithClient((EntityPlayerMP) player); updateItemsWithClient((EntityPlayerMP) player);
} }
} }
} }
public void syncItemsWithClient(EntityPlayerMP player) { public void updateItemsWithClient(EntityPlayerMP player) {
RefinedStorage.NETWORK.sendTo(new MessageGridItems(this), player); RefinedStorage.NETWORK.sendTo(new MessageGridItems(this), player);
} }
@@ -536,8 +535,8 @@ public class NetworkMaster {
int sizePushed = remainder != null ? (orginalSize - remainder.stackSize) : orginalSize; int sizePushed = remainder != null ? (orginalSize - remainder.stackSize) : orginalSize;
if (!simulate && sizePushed > 0) { if (!simulate && sizePushed > 0) {
syncItems(); updateItems();
syncItemsWithClients(); updateItemsWithClient();
for (int i = 0; i < sizePushed; ++i) { for (int i = 0; i < sizePushed; ++i) {
if (!craftingTasks.empty()) { if (!craftingTasks.empty()) {
@@ -582,8 +581,8 @@ public class NetworkMaster {
} }
if (newStack != null) { if (newStack != null) {
syncItems(); updateItems();
syncItemsWithClients(); updateItemsWithClient();
} }
return newStack; return newStack;

View File

@@ -1,21 +1,22 @@
package refinedstorage.api.network; package refinedstorage.apiimpl.network;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.common.gameevent.TickEvent;
import refinedstorage.api.network.INetworkMaster;
import java.util.Map; import java.util.Map;
public class NetworkMasterEventHandler { public class NetworkMasterEventHandler {
@SubscribeEvent @SubscribeEvent
public void onWorldTick(TickEvent.WorldTickEvent e) { public void onWorldTick(TickEvent.WorldTickEvent e) {
Map<BlockPos, NetworkMaster> networks = NetworkMasterRegistry.get(e.world.provider.getDimension()); Map<BlockPos, INetworkMaster> networks = NetworkMasterRegistry.get(e.world);
if (networks != null) { if (networks != null) {
for (NetworkMaster network : networks.values()) { for (INetworkMaster network : networks.values()) {
if (network.getWorld() == null) { if (network.getWorld() == null) {
network.onAdded(e.world); network.setWorld(e.world);
} }
network.update(); network.update();

View File

@@ -0,0 +1,48 @@
package refinedstorage.apiimpl.network;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import refinedstorage.api.network.INetworkMaster;
import java.util.HashMap;
import java.util.Map;
public class NetworkMasterRegistry {
public static final Map<Integer, Map<BlockPos, INetworkMaster>> NETWORKS = new HashMap<Integer, Map<BlockPos, INetworkMaster>>();
public static void add(World world, INetworkMaster network) {
add(world.provider.getDimension(), network);
}
public static void add(int dim, INetworkMaster network) {
if (NETWORKS.get(dim) == null) {
NETWORKS.put(dim, new HashMap<BlockPos, INetworkMaster>());
}
NETWORKS.get(dim).put(network.getPosition(), network);
}
public static void remove(World world, BlockPos pos) {
if (get(world) != null) {
INetworkMaster network = get(world).get(pos);
if (network != null) {
get(world).remove(pos);
NetworkMasterSavedData.getOrLoad(world).markDirty();
}
}
}
public static INetworkMaster get(World world, BlockPos pos) {
return get(world) == null ? null : get(world).get(pos);
}
public static Map<BlockPos, INetworkMaster> get(World world) {
return NETWORKS.get(world.provider.getDimension());
}
public static void clear() {
NETWORKS.clear();
}
}

View File

@@ -1,4 +1,4 @@
package refinedstorage.api.network; package refinedstorage.apiimpl.network;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
@@ -6,6 +6,7 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.WorldSavedData; import net.minecraft.world.WorldSavedData;
import net.minecraftforge.common.util.Constants; import net.minecraftforge.common.util.Constants;
import refinedstorage.api.network.INetworkMaster;
import java.util.Map; import java.util.Map;
@@ -29,11 +30,11 @@ public class NetworkMasterSavedData extends WorldSavedData {
for (int i = 0; i < networks.tagCount(); ++i) { for (int i = 0; i < networks.tagCount(); ++i) {
NBTTagCompound networkTag = networks.getCompoundTagAt(i); NBTTagCompound networkTag = networks.getCompoundTagAt(i);
NetworkMaster network = new NetworkMaster(new BlockPos(networkTag.getInteger(NBT_NETWORK_X), networkTag.getInteger(NBT_NETWORK_Y), networkTag.getInteger(NBT_NETWORK_Z))); INetworkMaster network = new NetworkMaster(new BlockPos(networkTag.getInteger(NBT_NETWORK_X), networkTag.getInteger(NBT_NETWORK_Y), networkTag.getInteger(NBT_NETWORK_Z)));
network.readFromNBT(networkTag.getCompoundTag(NBT_NETWORK_DATA)); network.readFromNBT(networkTag.getCompoundTag(NBT_NETWORK_DATA));
NetworkMasterRegistry.add(network, networkTag.getInteger(NBT_NETWORK_DIM)); NetworkMasterRegistry.add(networkTag.getInteger(NBT_NETWORK_DIM), network);
} }
} }
@@ -41,8 +42,8 @@ public class NetworkMasterSavedData extends WorldSavedData {
public NBTTagCompound writeToNBT(NBTTagCompound tag) { public NBTTagCompound writeToNBT(NBTTagCompound tag) {
NBTTagList networks = new NBTTagList(); NBTTagList networks = new NBTTagList();
for (Map.Entry<Integer, Map<BlockPos, NetworkMaster>> entry : NetworkMasterRegistry.NETWORKS.entrySet()) { for (Map.Entry<Integer, Map<BlockPos, INetworkMaster>> entry : NetworkMasterRegistry.NETWORKS.entrySet()) {
for (NetworkMaster network : entry.getValue().values()) { for (INetworkMaster network : entry.getValue().values()) {
NBTTagCompound networkTag = new NBTTagCompound(); NBTTagCompound networkTag = new NBTTagCompound();
networkTag.setInteger(NBT_NETWORK_X, network.getPosition().getX()); networkTag.setInteger(NBT_NETWORK_X, network.getPosition().getX());

View File

@@ -1,4 +1,4 @@
package refinedstorage.tile.controller; package refinedstorage.apiimpl.network;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
@@ -8,15 +8,15 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageGui; import refinedstorage.RefinedStorageGui;
import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageItems;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.network.NetworkMaster; import refinedstorage.api.network.IWirelessGridHandler;
import refinedstorage.api.network.WirelessGridConsumer;
import refinedstorage.item.ItemWirelessGrid; import refinedstorage.item.ItemWirelessGrid;
import refinedstorage.tile.grid.WirelessGridConsumer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
public class WirelessGridHandler { public class WirelessGridHandler implements IWirelessGridHandler {
private NetworkMaster network; private NetworkMaster network;
private List<WirelessGridConsumer> consumers = new ArrayList<WirelessGridConsumer>(); private List<WirelessGridConsumer> consumers = new ArrayList<WirelessGridConsumer>();
@@ -26,6 +26,7 @@ public class WirelessGridHandler {
this.network = network; this.network = network;
} }
@Override
public void update() { public void update() {
consumers.removeAll(consumersToRemove); consumers.removeAll(consumersToRemove);
consumersToRemove.clear(); consumersToRemove.clear();
@@ -41,7 +42,8 @@ public class WirelessGridHandler {
} }
} }
public boolean handleOpen(EntityPlayer player, EnumHand hand) { @Override
public boolean onOpen(EntityPlayer player, EnumHand hand) {
int distance = (int) Math.sqrt(Math.pow(network.getPosition().getX() - player.posX, 2) + Math.pow(network.getPosition().getY() - player.posY, 2) + Math.pow(network.getPosition().getZ() - player.posZ, 2)); int distance = (int) Math.sqrt(Math.pow(network.getPosition().getX() - player.posX, 2) + Math.pow(network.getPosition().getY() - player.posY, 2) + Math.pow(network.getPosition().getZ() - player.posZ, 2));
if (distance > network.getWirelessGridRange()) { if (distance > network.getWirelessGridRange()) {
@@ -52,14 +54,15 @@ public class WirelessGridHandler {
player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, player.worldObj, RefinedStorageUtils.getIdFromHand(hand), 0, 0); player.openGui(RefinedStorage.INSTANCE, RefinedStorageGui.WIRELESS_GRID, player.worldObj, RefinedStorageUtils.getIdFromHand(hand), 0, 0);
network.syncItemsWithClient((EntityPlayerMP) player); network.updateItemsWithClient((EntityPlayerMP) player);
drainEnergy(player, ItemWirelessGrid.USAGE_OPEN); drainEnergy(player, ItemWirelessGrid.USAGE_OPEN);
return true; return true;
} }
public void handleClose(EntityPlayer player) { @Override
public void onClose(EntityPlayer player) {
WirelessGridConsumer consumer = getConsumer(player); WirelessGridConsumer consumer = getConsumer(player);
if (consumer != null) { if (consumer != null) {
@@ -67,6 +70,7 @@ public class WirelessGridHandler {
} }
} }
@Override
public void drainEnergy(EntityPlayer player, int energy) { public void drainEnergy(EntityPlayer player, int energy) {
WirelessGridConsumer consumer = getConsumer(player); WirelessGridConsumer consumer = getConsumer(player);
@@ -78,13 +82,14 @@ public class WirelessGridHandler {
item.extractEnergy(held, energy, false); item.extractEnergy(held, energy, false);
if (item.getEnergyStored(held) <= 0) { if (item.getEnergyStored(held) <= 0) {
handleClose(player); onClose(player);
consumer.getPlayer().closeScreen(); consumer.getPlayer().closeScreen();
} }
} }
} }
} }
@Override
public WirelessGridConsumer getConsumer(EntityPlayer player) { public WirelessGridConsumer getConsumer(EntityPlayer player) {
Iterator<WirelessGridConsumer> it = consumers.iterator(); Iterator<WirelessGridConsumer> it = consumers.iterator();
@@ -98,8 +103,4 @@ public class WirelessGridHandler {
return null; return null;
} }
public List<WirelessGridConsumer> getConsumers() {
return consumers;
}
} }

View File

@@ -1,6 +1,7 @@
package refinedstorage.api.solderer; package refinedstorage.apiimpl.solderer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import refinedstorage.api.solderer.ISoldererRecipe;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;

View File

@@ -1,4 +1,4 @@
package refinedstorage.solderer; package refinedstorage.apiimpl.solderer;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View File

@@ -1,4 +1,4 @@
package refinedstorage.solderer; package refinedstorage.apiimpl.solderer;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View File

@@ -1,4 +1,4 @@
package refinedstorage.solderer; package refinedstorage.apiimpl.solderer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;

View File

@@ -1,4 +1,4 @@
package refinedstorage.solderer; package refinedstorage.apiimpl.solderer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;

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.network.NetworkMaster; import refinedstorage.api.network.INetworkMaster;
public class CraftingTaskScheduler { public class CraftingTaskScheduler {
public static final String NBT_SCHEDULED = "CraftingTaskScheduled"; public static final String NBT_SCHEDULED = "CraftingTaskScheduled";
@@ -14,7 +14,7 @@ public class CraftingTaskScheduler {
return scheduledItem == null || !RefinedStorageUtils.compareStack(scheduledItem, item, compare); return scheduledItem == null || !RefinedStorageUtils.compareStack(scheduledItem, item, compare);
} }
public void schedule(NetworkMaster network, int compare, ItemStack item) { public void schedule(INetworkMaster network, int compare, ItemStack item) {
CraftingPattern pattern = network.getPatternWithBestScore(item, compare); CraftingPattern pattern = network.getPatternWithBestScore(item, compare);
if (pattern != null) { if (pattern != null) {

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.network.NetworkMaster; import refinedstorage.apiimpl.network.NetworkMaster;
import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.CraftingPattern;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -1,7 +1,7 @@
package refinedstorage.autocrafting.task; package refinedstorage.autocrafting.task;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import refinedstorage.api.network.NetworkMaster; import refinedstorage.apiimpl.network.NetworkMaster;
import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.CraftingPattern;
public interface ICraftingTask { public interface ICraftingTask {

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.network.NetworkMaster; import refinedstorage.apiimpl.network.NetworkMaster;
import refinedstorage.autocrafting.CraftingPattern; import refinedstorage.autocrafting.CraftingPattern;
import refinedstorage.tile.TileCrafter; import refinedstorage.tile.TileCrafter;

View File

@@ -21,8 +21,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.network.NetworkMaster; import refinedstorage.apiimpl.network.NetworkMaster;
import refinedstorage.api.network.NetworkMasterRegistry; import refinedstorage.apiimpl.network.NetworkMasterRegistry;
import refinedstorage.item.ItemBlockController; import refinedstorage.item.ItemBlockController;
import refinedstorage.tile.controller.TileController; import refinedstorage.tile.controller.TileController;
@@ -105,7 +105,7 @@ public class BlockController extends BlockBase {
network.getEnergy().receiveEnergy(tag.getInteger(NetworkMaster.NBT_ENERGY), false); network.getEnergy().receiveEnergy(tag.getInteger(NetworkMaster.NBT_ENERGY), false);
} }
NetworkMasterRegistry.add(network, world.provider.getDimension()); NetworkMasterRegistry.add(world, network);
} }
super.onBlockPlacedBy(world, pos, state, player, stack); super.onBlockPlacedBy(world, pos, state, player, stack);
@@ -114,7 +114,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) {
NetworkMasterRegistry.remove(pos, world.provider.getDimension()); NetworkMasterRegistry.remove(world, pos);
} }
super.breakBlock(world, pos, state); super.breakBlock(world, pos, state);

View File

@@ -98,8 +98,8 @@ public class ContainerGrid extends ContainerBase {
if (slot == craftingResultSlot) { if (slot == craftingResultSlot) {
((TileGrid) grid).onCraftedShift(this, player); ((TileGrid) grid).onCraftedShift(this, player);
} else if (grid.getStorageHandler() != null && slot != patternResultSlot && !(slot instanceof SlotSpecimenLegacy) && slot.getHasStack()) { } else if (grid.getGridHandler() != null && slot != patternResultSlot && !(slot instanceof SlotSpecimenLegacy) && slot.getHasStack()) {
slot.putStack(grid.getStorageHandler().onPush(slot.getStack())); slot.putStack(grid.getGridHandler().onPush(slot.getStack()));
detectAndSendChanges(); detectAndSendChanges();
} }

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.network.NetworkMaster; import refinedstorage.apiimpl.network.NetworkMaster;
import refinedstorage.container.ContainerController; import refinedstorage.container.ContainerController;
import refinedstorage.gui.sidebutton.SideButtonRedstoneMode; import refinedstorage.gui.sidebutton.SideButtonRedstoneMode;
import refinedstorage.tile.controller.ClientSlave; import refinedstorage.tile.controller.ClientSlave;

View File

@@ -8,9 +8,9 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.client.FMLClientHandler; import net.minecraftforge.fml.client.FMLClientHandler;
import org.lwjgl.input.Keyboard; import org.lwjgl.input.Keyboard;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.apiimpl.network.GridHandler;
import refinedstorage.container.ContainerCraftingSettings; import refinedstorage.container.ContainerCraftingSettings;
import refinedstorage.network.MessageGridCraftingStart; import refinedstorage.network.MessageGridCraftingStart;
import refinedstorage.tile.controller.StorageHandler;
import java.io.IOException; import java.io.IOException;
@@ -110,7 +110,7 @@ public class GuiCraftingSettings extends GuiBase {
int newAmount = Integer.parseInt(incrementButton.displayString); int newAmount = Integer.parseInt(incrementButton.displayString);
newAmount = Math.min(Math.max(DEFAULT_AMOUNT, oldAmount + newAmount), StorageHandler.MAX_CRAFTING_PER_REQUEST); newAmount = Math.min(Math.max(DEFAULT_AMOUNT, oldAmount + newAmount), GridHandler.MAX_CRAFTING_PER_REQUEST);
amountField.setText(String.valueOf(newAmount)); amountField.setText(String.valueOf(newAmount));
@@ -123,7 +123,7 @@ public class GuiCraftingSettings extends GuiBase {
private void startRequest() { private void startRequest() {
Integer quantity = Ints.tryParse(amountField.getText()); Integer quantity = Ints.tryParse(amountField.getText());
if (quantity != null && quantity > 0 && quantity <= StorageHandler.MAX_CRAFTING_PER_REQUEST) { if (quantity != null && quantity > 0 && quantity <= GridHandler.MAX_CRAFTING_PER_REQUEST) {
RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingStart(stack, quantity)); RefinedStorage.NETWORK.sendToServer(new MessageGridCraftingStart(stack, quantity));
close(); close();

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.network.NetworkMaster; import refinedstorage.apiimpl.network.NetworkMaster;
import refinedstorage.block.EnumControllerType; import refinedstorage.block.EnumControllerType;
import java.util.List; import java.util.List;

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.network.NetworkMaster; import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.network.NetworkMasterRegistry; import refinedstorage.apiimpl.network.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) {
NetworkMaster network = NetworkMasterRegistry.get(new BlockPos(getX(stack), getY(stack), getZ(stack)), player.worldObj.provider.getDimension()); INetworkMaster network = NetworkMasterRegistry.get(player.worldObj, new BlockPos(getX(stack), getY(stack), getZ(stack)));
if (network != null) { if (network != null) {
if (network.getWirelessGridHandler().handleOpen(player, hand)) { if (network.getWirelessGridHandler().onOpen(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

@@ -47,7 +47,7 @@ public class MessageCraftingMonitorCancel extends MessageHandlerPlayerToServer<M
TileCraftingMonitor monitor = (TileCraftingMonitor) tile; TileCraftingMonitor monitor = (TileCraftingMonitor) tile;
if (monitor.isConnected()) { if (monitor.isConnected()) {
monitor.getNetwork().getStorageHandler().onCraftingCancelRequested(message.id); monitor.getNetwork().getGridHandler().onCraftingCancelRequested(message.id);
} }
} }
} }

View File

@@ -6,8 +6,8 @@ import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.api.network.IGridHandler;
import refinedstorage.container.ContainerGrid; import refinedstorage.container.ContainerGrid;
import refinedstorage.tile.controller.StorageHandler;
public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<MessageGridCraftingStart> implements IMessage { public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<MessageGridCraftingStart> implements IMessage {
private ItemStack stack; private ItemStack stack;
@@ -38,7 +38,7 @@ public class MessageGridCraftingStart extends MessageHandlerPlayerToServer<Messa
Container container = player.openContainer; Container container = player.openContainer;
if (container instanceof ContainerGrid) { if (container instanceof ContainerGrid) {
StorageHandler handler = ((ContainerGrid) container).getGrid().getStorageHandler(); IGridHandler handler = ((ContainerGrid) container).getGrid().getGridHandler();
if (handler != null) { if (handler != null) {
handler.onCraftingRequested(message.stack, message.quantity); handler.onCraftingRequested(message.stack, 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.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.api.network.IGridHandler;
import refinedstorage.container.ContainerGrid; import refinedstorage.container.ContainerGrid;
import refinedstorage.tile.controller.StorageHandler;
public class MessageGridHeldPush extends MessageHandlerPlayerToServer<MessageGridHeldPush> implements IMessage { public class MessageGridHeldPush extends MessageHandlerPlayerToServer<MessageGridHeldPush> implements IMessage {
private boolean single; private boolean single;
@@ -32,7 +32,7 @@ public class MessageGridHeldPush extends MessageHandlerPlayerToServer<MessageGri
Container container = player.openContainer; Container container = player.openContainer;
if (container instanceof ContainerGrid) { if (container instanceof ContainerGrid) {
StorageHandler handler = ((ContainerGrid) container).getGrid().getStorageHandler(); IGridHandler handler = ((ContainerGrid) container).getGrid().getGridHandler();
if (handler != null) { if (handler != null) {
handler.onHeldItemPush(message.single, player); handler.onHeldItemPush(message.single, player);

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.network.NetworkMaster; import refinedstorage.apiimpl.network.NetworkMaster;
import refinedstorage.container.ContainerGrid; import refinedstorage.container.ContainerGrid;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -6,8 +6,8 @@ import net.minecraft.inventory.Container;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import refinedstorage.api.network.IGridHandler;
import refinedstorage.container.ContainerGrid; import refinedstorage.container.ContainerGrid;
import refinedstorage.tile.controller.StorageHandler;
public class MessageGridPull extends MessageHandlerPlayerToServer<MessageGridPull> implements IMessage { public class MessageGridPull extends MessageHandlerPlayerToServer<MessageGridPull> implements IMessage {
private ItemStack stack; private ItemStack stack;
@@ -38,7 +38,7 @@ public class MessageGridPull extends MessageHandlerPlayerToServer<MessageGridPul
Container container = player.openContainer; Container container = player.openContainer;
if (container instanceof ContainerGrid) { if (container instanceof ContainerGrid) {
StorageHandler handler = ((ContainerGrid) container).getGrid().getStorageHandler(); IGridHandler handler = ((ContainerGrid) container).getGrid().getGridHandler();
if (handler != null) { if (handler != null) {
handler.onPull(message.stack, message.flags, player); handler.onPull(message.stack, message.flags, player);

View File

@@ -17,10 +17,10 @@ import net.minecraftforge.oredict.ShapedOreRecipe;
import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageItems;
import refinedstorage.api.network.NetworkMasterEventHandler;
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.apiimpl.network.NetworkMasterEventHandler;
import refinedstorage.apiimpl.solderer.*;
import refinedstorage.block.BlockBase; import refinedstorage.block.BlockBase;
import refinedstorage.block.EnumControllerType; import refinedstorage.block.EnumControllerType;
import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumGridType;
@@ -28,10 +28,6 @@ import refinedstorage.block.EnumStorageType;
import refinedstorage.gui.GuiHandler; import refinedstorage.gui.GuiHandler;
import refinedstorage.item.*; import refinedstorage.item.*;
import refinedstorage.network.*; import refinedstorage.network.*;
import refinedstorage.solderer.SoldererRecipePrintedProcessor;
import refinedstorage.solderer.SoldererRecipeProcessor;
import refinedstorage.solderer.SoldererRecipeStorage;
import refinedstorage.solderer.SoldererRecipeUpgrade;
import refinedstorage.tile.*; import refinedstorage.tile.*;
import refinedstorage.tile.controller.TileController; import refinedstorage.tile.controller.TileController;
import refinedstorage.tile.externalstorage.TileExternalStorage; import refinedstorage.tile.externalstorage.TileExternalStorage;

View File

@@ -43,7 +43,6 @@ public class TileImporter extends TileSlave implements ICompareConfig, IModeConf
@Override @Override
public void updateSlave() { public void updateSlave() {
System.out.println("Update: " + System.currentTimeMillis());
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

@@ -9,9 +9,9 @@ import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.Capability;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.RefinedStorageCapabilities; import refinedstorage.api.RefinedStorageCapabilities;
import refinedstorage.api.network.INetworkMaster;
import refinedstorage.api.network.INetworkSlave; import refinedstorage.api.network.INetworkSlave;
import refinedstorage.api.network.NetworkMaster; import refinedstorage.apiimpl.network.NetworkMasterRegistry;
import refinedstorage.api.network.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.TileController; import refinedstorage.tile.controller.TileController;
@@ -24,7 +24,7 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain
protected boolean connected; protected boolean connected;
protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; protected RedstoneMode redstoneMode = RedstoneMode.IGNORE;
protected NetworkMaster network; protected INetworkMaster network;
private Set<String> visited = new HashSet<String>(); private Set<String> visited = new HashSet<String>();
@@ -43,7 +43,7 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain
} }
@Override @Override
public void connect(World world, NetworkMaster network) { public void connect(World world, INetworkMaster network) {
if (network.canRun()) { if (network.canRun()) {
this.network = network; this.network = network;
this.connected = true; this.connected = true;
@@ -61,7 +61,7 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain
} }
@Override @Override
public void forceConnect(NetworkMaster network) { public void forceConnect(INetworkMaster network) {
this.network = network; this.network = network;
this.connected = true; this.connected = true;
} }
@@ -91,7 +91,7 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain
if (network == null) { if (network == null) {
if (controller != null) { if (controller != null) {
// For backwards compatibility // For backwards compatibility
NetworkMaster network = NetworkMasterRegistry.get(controller.getPos(), world.provider.getDimension()); INetworkMaster network = NetworkMasterRegistry.get(world, controller.getPos());
if (network != null) { if (network != null) {
connect(world, network); connect(world, network);
@@ -134,7 +134,8 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain
return null; return null;
} }
public NetworkMaster getNetwork() { @Override
public INetworkMaster getNetwork() {
return network; return network;
} }

View File

@@ -3,7 +3,7 @@ package refinedstorage.tile.controller;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
public class ClientSlave { public final class ClientSlave {
public ItemStack stack; public ItemStack stack;
public int amount; public int amount;
public int energyUsage; public int energyUsage;

View File

@@ -9,9 +9,10 @@ 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.network.INetworkMaster;
import refinedstorage.api.network.INetworkSlave; import refinedstorage.api.network.INetworkSlave;
import refinedstorage.api.network.NetworkMaster; import refinedstorage.apiimpl.network.NetworkMaster;
import refinedstorage.api.network.NetworkMasterRegistry; import refinedstorage.apiimpl.network.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;
@@ -25,7 +26,7 @@ import java.util.Iterator;
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 NetworkMaster network; private INetworkMaster network;
// Only used client side // Only used client side
private List<ClientSlave> clientSlaves = new ArrayList<ClientSlave>(); private List<ClientSlave> clientSlaves = new ArrayList<ClientSlave>();
@@ -34,9 +35,9 @@ public class TileController extends TileBase implements IEnergyReceiver, ISynchr
private EnumControllerType type; private EnumControllerType type;
private RedstoneMode redstoneMode; private RedstoneMode redstoneMode;
public NetworkMaster getNetwork() { public INetworkMaster getNetwork() {
if (network == null) { if (network == null) {
network = NetworkMasterRegistry.get(pos, worldObj.provider.getDimension()); network = NetworkMasterRegistry.get(worldObj, pos);
} }
return network; return network;

View File

@@ -2,9 +2,9 @@ package refinedstorage.tile.grid;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import refinedstorage.api.network.IGridHandler;
import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumGridType;
import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.IRedstoneModeConfig;
import refinedstorage.tile.controller.StorageHandler;
import java.util.List; import java.util.List;
@@ -17,7 +17,7 @@ public interface IGrid {
BlockPos getNetworkPosition(); BlockPos getNetworkPosition();
StorageHandler getStorageHandler(); IGridHandler getGridHandler();
int getSortingType(); int getSortingType();

View File

@@ -14,6 +14,7 @@ import refinedstorage.RefinedStorage;
import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageBlocks;
import refinedstorage.RefinedStorageItems; import refinedstorage.RefinedStorageItems;
import refinedstorage.RefinedStorageUtils; import refinedstorage.RefinedStorageUtils;
import refinedstorage.api.network.IGridHandler;
import refinedstorage.block.BlockGrid; import refinedstorage.block.BlockGrid;
import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumGridType;
import refinedstorage.container.ContainerGrid; import refinedstorage.container.ContainerGrid;
@@ -23,7 +24,6 @@ import refinedstorage.item.ItemPattern;
import refinedstorage.network.MessageGridSettingsUpdate; import refinedstorage.network.MessageGridSettingsUpdate;
import refinedstorage.tile.TileSlave; import refinedstorage.tile.TileSlave;
import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.IRedstoneModeConfig;
import refinedstorage.tile.controller.StorageHandler;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -112,13 +112,13 @@ public class TileGrid extends TileSlave implements IGrid {
public void onGridOpened(EntityPlayer player) { public void onGridOpened(EntityPlayer player) {
if (isConnected()) { if (isConnected()) {
network.syncItemsWithClient((EntityPlayerMP) player); network.updateItemsWithClient((EntityPlayerMP) player);
} }
} }
@Override @Override
public StorageHandler getStorageHandler() { public IGridHandler getGridHandler() {
return isConnected() ? network.getStorageHandler() : null; return isConnected() ? network.getGridHandler() : null;
} }
public InventoryCrafting getMatrix() { public InventoryCrafting getMatrix() {

View File

@@ -7,13 +7,13 @@ 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.network.NetworkMaster; import refinedstorage.api.network.IGridHandler;
import refinedstorage.api.network.NetworkMasterRegistry; import refinedstorage.api.network.INetworkMaster;
import refinedstorage.apiimpl.network.NetworkMasterRegistry;
import refinedstorage.block.EnumGridType; import refinedstorage.block.EnumGridType;
import refinedstorage.item.ItemWirelessGrid; import refinedstorage.item.ItemWirelessGrid;
import refinedstorage.network.MessageWirelessGridSettingsUpdate; import refinedstorage.network.MessageWirelessGridSettingsUpdate;
import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.IRedstoneModeConfig;
import refinedstorage.tile.controller.StorageHandler;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -59,21 +59,21 @@ public class WirelessGrid implements IGrid {
} }
@Override @Override
public StorageHandler getStorageHandler() { public IGridHandler getGridHandler() {
NetworkMaster network = NetworkMasterRegistry.get(controllerPos, world.provider.getDimension()); INetworkMaster network = NetworkMasterRegistry.get(world, controllerPos);
if (network != null) { if (network != null) {
return network.getStorageHandler(); return network.getGridHandler();
} }
return null; return null;
} }
public void onClose(EntityPlayer player) { public void onClose(EntityPlayer player) {
NetworkMaster network = NetworkMasterRegistry.get(controllerPos, world.provider.getDimension()); INetworkMaster network = NetworkMasterRegistry.get(world, controllerPos);
if (network != null) { if (network != null) {
network.getWirelessGridHandler().handleClose(player); network.getWirelessGridHandler().onClose(player);
} }
} }