Fix all remaining bugs from after the refactor, add docs where needed, move some classes, moved some stuff out of API

This commit is contained in:
raoulvdberge
2017-01-03 11:43:30 +01:00
parent a80c9dbb5a
commit 9964fa319b
74 changed files with 235 additions and 178 deletions

View File

@@ -5,8 +5,8 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry;
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProvider;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeRegistry;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry;
@@ -37,9 +37,9 @@ public interface IRSAPI {
/**
* @param dimension the dimension
* @return the network node provider for the given dimension
* @return the network node manager for the given dimension
*/
INetworkNodeProvider getNetworkNodeProvider(int dimension);
INetworkNodeManager getNetworkNodeManager(int dimension);
/**
* @return the solderer registry

View File

@@ -35,7 +35,13 @@ public interface ICraftingPatternContainer {
*/
BlockPos getPosition();
/**
* @return whether this container is blocked
*/
boolean isBlocked();
void setBlocked(boolean value);
/**
* @param blocked whether the container is blocked
*/
void setBlocked(boolean blocked);
}

View File

@@ -18,7 +18,7 @@ public interface ICraftingMonitorElement {
void draw(int x, int y, IElementDrawers drawers);
/**
* @return whether the crafting monitor can draw a grey background behind the element when selected
* @return whether the crafting monitor can draw a selection background behind the element when selected
*/
boolean canDrawSelection();

View File

@@ -24,6 +24,7 @@ public interface ICraftingMonitorElementList {
void commit();
/**
* Gets all the elements in the list.
* This also commits the last changes.
*
* @return the current list of elements

View File

@@ -28,7 +28,7 @@ public interface ICraftingPreviewElement<T> {
int getAvailable();
/**
* @return toCraft or missing (depends on {@link #hasMissing()} amount of the {@link #getElement()}
* @return the amount to craft or missing (depends on {@link #hasMissing()} amount of the {@link #getElement()}
*/
int getToCraft();

View File

@@ -33,7 +33,7 @@ public interface ICraftingStep {
*
* @param items a list to compare the needed {@link ItemStack} inputs against
* @param fluids a list to compare the needed {@link FluidStack} inputs against (eg. a bucket, machine insert)
* @return true if processing can start
* @return true if processing can start, false otherwise
*/
boolean canStartProcessing(IStackList<ItemStack> items, IStackList<FluidStack> fluids);
@@ -41,7 +41,7 @@ public interface ICraftingStep {
* Check if the processing can start.
* Assuming you have all needed {@link ItemStack}s and {@link FluidStack}s
*
* @return true if processing can start
* @return true if processing can start, false otherwise
*/
boolean canStartProcessing();
@@ -71,7 +71,7 @@ public interface ICraftingStep {
/**
* @param stack the output to check
* @return true if we received the given output (based upon item and getCount()), false otherwise
* @return true if we received the given output (based upon item and count), false otherwise
*/
boolean hasReceivedOutput(ItemStack stack);
@@ -91,7 +91,7 @@ public interface ICraftingStep {
boolean onReceiveOutput(ItemStack stack);
/**
* Writes the processable to NBT.
* Writes the crafting step to NBT.
*
* @param tag the tag
* @return the written tag

View File

@@ -23,7 +23,7 @@ public interface ICraftingTask {
String NBT_REQUESTED = "Requested";
/**
* Calculates what this task will do, but doesn't run the task just yet.
* Calculates what this task will do, but doesn't run the task yet.
*/
void calculate();

View File

@@ -176,6 +176,13 @@ public interface INetworkMaster {
@Nullable
ItemStack insertItem(@Nonnull ItemStack stack, int size, boolean simulate);
/**
* Inserts an item and notifies the crafting manager of the incoming item.
*
* @param stack the stack prototype to insert, do NOT modify
* @param size the amount of that prototype that has to be inserted
* @return null if the insert was successful, or a stack with the remainder
*/
default ItemStack insertItemTracked(@Nonnull ItemStack stack, int size) {
ItemStack remainder = insertItem(stack, size, false);

View File

@@ -5,7 +5,7 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
/**
* Allow the network nodes to implement more optimal or non-regular discovery of neighbor nodes
* Allows the network nodes to implement more optimal or non-regular discovery of neighbor nodes.
*/
public interface INetworkNeighborhoodAware {
void walkNeighborhood(Operator operator);

View File

@@ -1,5 +1,7 @@
package com.raoulvdberge.refinedstorage.api.network;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import java.util.List;
/**

View File

@@ -1,19 +0,0 @@
package com.raoulvdberge.refinedstorage.api.network;
import net.minecraft.util.math.BlockPos;
import javax.annotation.Nullable;
import java.util.Collection;
public interface INetworkNodeProvider {
@Nullable
INetworkNode getNode(BlockPos pos);
void removeNode(BlockPos pos);
void setNode(BlockPos pos, INetworkNode node);
Collection<INetworkNode> all();
void clear();
}

View File

@@ -1,8 +0,0 @@
package com.raoulvdberge.refinedstorage.api.network;
import javax.annotation.Nonnull;
public interface INetworkNodeProxy<T extends INetworkNode> {
@Nonnull
T getNode();
}

View File

@@ -1,13 +0,0 @@
package com.raoulvdberge.refinedstorage.api.network;
import net.minecraft.nbt.NBTTagCompound;
import javax.annotation.Nullable;
import java.util.function.Function;
public interface INetworkNodeRegistry {
void add(String id, Function<NBTTagCompound, INetworkNode> factory);
@Nullable
Function<NBTTagCompound, INetworkNode> get(String id);
}

View File

@@ -1,5 +1,7 @@
package com.raoulvdberge.refinedstorage.api.network;
package com.raoulvdberge.refinedstorage.api.network.node;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.INetworkNodeHolder;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos;
@@ -37,7 +39,7 @@ public interface INetworkNode {
void onDisconnected(INetworkMaster network);
/**
* @return true if this node can be treated as active, typically checks the redstone configuration
* @return true if this node can be treated as updatable, typically checks the redstone configuration
*/
boolean canUpdate();
@@ -47,20 +49,31 @@ public interface INetworkNode {
@Nullable
INetworkMaster getNetwork();
@Nullable
INetworkNodeHolder getHolder();
void setHolder(INetworkNodeHolder holder);
/**
* Updates a network node.
*/
void update();
/**
* Writes the network node data to NBT.
*
* @param tag the tag
* @return the written tag
*/
NBTTagCompound write(NBTTagCompound tag);
void read(NBTTagCompound tag);
/**
* @return the position of this network node
*/
BlockPos getPos();
/**
* Marks this node as dirty for saving.
*/
void markDirty();
/**
* @return the id of this node as specified in {@link INetworkNodeRegistry}
*/
String getId();
}

View File

@@ -0,0 +1,45 @@
package com.raoulvdberge.refinedstorage.api.network.node;
import net.minecraft.util.math.BlockPos;
import javax.annotation.Nullable;
import java.util.Collection;
/**
* This is a registry for network nodes in the world.
*/
public interface INetworkNodeManager {
/**
* Gets a network node from the registry at a given position.
*
* @param pos the position
* @return the network node at the given position, or null if no network node was found
*/
@Nullable
INetworkNode getNode(BlockPos pos);
/**
* Removes a node from the registry at a given position.
*
* @param pos the position
*/
void removeNode(BlockPos pos);
/**
* Sets a node in the registry at a given position.
*
* @param pos the position
* @param node the node
*/
void setNode(BlockPos pos, INetworkNode node);
/**
* @return all nodes in this registry
*/
Collection<INetworkNode> all();
/**
* Clears all the nodes.
*/
void clear();
}

View File

@@ -0,0 +1,16 @@
package com.raoulvdberge.refinedstorage.api.network.node;
import javax.annotation.Nonnull;
/**
* Makes a network node accessible from a tile entity. Implement this as a capability.
*
* @param <T>
*/
public interface INetworkNodeProxy<T extends INetworkNode> {
/**
* @return the node
*/
@Nonnull
T getNode();
}

View File

@@ -0,0 +1,28 @@
package com.raoulvdberge.refinedstorage.api.network.node;
import net.minecraft.nbt.NBTTagCompound;
import javax.annotation.Nullable;
import java.util.function.Function;
/**
* This registry holds factories for reading network nodes from NBT.
*/
public interface INetworkNodeRegistry {
/**
* Adds a factory to the registry.
*
* @param id the id, as specified in {@link INetworkNode#getId()}
* @param factory the factory
*/
void add(String id, Function<NBTTagCompound, INetworkNode> factory);
/**
* Returns a factory from the registry.
*
* @param id the id, as specified in {@link INetworkNode#getId()}
* @return the factory, or null if no factory was found
*/
@Nullable
Function<NBTTagCompound, INetworkNode> get(String id);
}

View File

@@ -43,6 +43,7 @@ public interface IElementDrawers {
*/
default <T> IElementDrawer<T> getNullDrawer() {
return (x, y, element) -> {
// NO OP
};
}
}

View File

@@ -5,8 +5,17 @@ import net.minecraftforge.fluids.FluidStack;
import java.util.List;
/**
* Provides a storage to the network. Implement this on {@link com.raoulvdberge.refinedstorage.api.network.node.INetworkNode}s.
*/
public interface IStorageProvider {
/**
* @param storages the item storages
*/
void addItemStorages(List<IStorage<ItemStack>> storages);
/**
* @param storages the fluid storages
*/
void addFluidStorages(List<IStorage<FluidStack>> storages);
}

View File

@@ -15,7 +15,7 @@ public interface IWrenchable {
NBTTagCompound writeConfiguration(NBTTagCompound tag);
/**
* Reads the configurration of this tile from the wrench.
* Reads the configuration of this tile from the wrench.
*
* @param tag the tag to read
*/

View File

@@ -7,6 +7,10 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry;
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
import com.raoulvdberge.refinedstorage.api.network.*;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeRegistry;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry;
@@ -16,7 +20,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.Craf
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeProvider;
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeManager;
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeRegistry;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterChannel;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry;
@@ -48,8 +52,8 @@ public class API implements IRSAPI {
private IComparer comparer = new Comparer();
private INetworkNodeRegistry networkNodeRegistry = new NetworkNodeRegistry();
private Map<Integer, INetworkNodeProvider> networkNodeProviderServer = new HashMap<>();
private Map<Integer, INetworkNodeProvider> networkNodeProviderClient = new HashMap<>();
private Map<Integer, INetworkNodeManager> networkNodeProviderServer = new HashMap<>();
private Map<Integer, INetworkNodeManager> networkNodeProviderClient = new HashMap<>();
private ISoldererRegistry soldererRegistry = new SoldererRegistry();
private ICraftingTaskRegistry craftingTaskRegistry = new CraftingTaskRegistry();
private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry();
@@ -92,10 +96,10 @@ public class API implements IRSAPI {
}
@Override
public INetworkNodeProvider getNetworkNodeProvider(int dimension) {
Map<Integer, INetworkNodeProvider> provider = FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? networkNodeProviderClient : networkNodeProviderServer;
public INetworkNodeManager getNetworkNodeManager(int dimension) {
Map<Integer, INetworkNodeManager> provider = FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? networkNodeProviderClient : networkNodeProviderServer;
return provider.computeIfAbsent(dimension, r -> new NetworkNodeProvider());
return provider.computeIfAbsent(dimension, r -> new NetworkNodeManager());
}
@Override

View File

@@ -8,7 +8,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskFa
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingStep;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.api.util.IStackList;
import com.raoulvdberge.refinedstorage.apiimpl.API;

View File

@@ -12,7 +12,6 @@ import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.NonNullList;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
@@ -21,7 +20,6 @@ import javax.annotation.Nullable;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class CraftingPattern implements ICraftingPattern {
private ICraftingPatternContainer container;
@@ -107,7 +105,7 @@ public class CraftingPattern implements ICraftingPattern {
for (ItemStack input : inputs) {
if (input == null) {
oreInputs.add(Collections.emptyList());
} else {
} else if (!input.isEmpty()) {
int[] ids = OreDictionary.getOreIDs(input);
if (ids == null || ids.length == 0) {
oreInputs.add(Collections.singletonList(Comparer.stripTags(input)));

View File

@@ -2,9 +2,9 @@ package com.raoulvdberge.refinedstorage.apiimpl.network;
import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.api.network.INetworkNeighborhoodAware;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.item.ItemBlockController;
import com.raoulvdberge.refinedstorage.tile.TileController;
import net.minecraft.block.state.IBlockState;

View File

@@ -1,8 +1,8 @@
package com.raoulvdberge.refinedstorage.apiimpl.network;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.WorldSavedDataNetworkNode;
@@ -66,6 +66,6 @@ public class NetworkNodeListener {
@SubscribeEvent
public void onWorldUnload(WorldEvent.Unload e) {
API.instance().getNetworkNodeProvider(e.getWorld().provider.getDimension()).clear();
API.instance().getNetworkNodeManager(e.getWorld().provider.getDimension()).clear();
}
}

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.apiimpl.network;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProvider;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
import net.minecraft.util.math.BlockPos;
import javax.annotation.Nullable;
@@ -9,7 +9,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class NetworkNodeProvider implements INetworkNodeProvider {
public class NetworkNodeManager implements INetworkNodeManager {
private Map<BlockPos, INetworkNode> nodes = new HashMap<>();
@Override

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.apiimpl.network;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeRegistry;
import net.minecraft.nbt.NBTTagCompound;
import javax.annotation.Nullable;

View File

@@ -1,11 +1,11 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.item;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.IWirelessTransmitter;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemProvider;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.EnumHand;
import net.minecraft.util.text.TextComponentTranslation;

View File

@@ -1,9 +1,10 @@
package com.raoulvdberge.refinedstorage.api.network;
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
// @todo: move outta API?
public interface INetworkNodeHolder {
EnumFacing getDirection();

View File

@@ -3,8 +3,7 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNeighborhoodAware;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.util.IWrenchable;
import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode;
import net.minecraft.block.state.IBlockState;
@@ -45,13 +44,11 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
markDirty();
}
@Override
@Nullable
public INetworkNodeHolder getHolder() {
return holder;
}
@Override
public void setHolder(INetworkNodeHolder holder) {
this.holder = holder;
}
@@ -133,7 +130,6 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
return tag;
}
@Override
public void read(NBTTagCompound tag) {
readConfiguration(tag);
}

View File

@@ -1,7 +1,6 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
public class NetworkNodeCable extends NetworkNode {
public static final String ID = "cable";

View File

@@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.mojang.authlib.GameProfile;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.container.slot.SlotFilter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;

View File

@@ -6,7 +6,6 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
@@ -40,7 +39,7 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
protected void onContentsChanged(int slot) {
super.onContentsChanged(slot);
if (!holder.world().isRemote) {
if (holder.world() != null && !holder.world().isRemote) {
rebuildPatterns();
}
@@ -219,8 +218,8 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
}
@Override
public void setBlocked(boolean value) {
blocked = value;
public void setBlocked(boolean blocked) {
this.blocked = blocked;
markDirty();
}

View File

@@ -1,7 +1,6 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.ICraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.craftingmonitor.TileCraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;

View File

@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;

View File

@@ -5,7 +5,6 @@ import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;

View File

@@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
import com.raoulvdberge.refinedstorage.api.storage.IStorageProvider;

View File

@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageFluidNBT;
import com.raoulvdberge.refinedstorage.apiimpl.storage.StorageItemNBT;

View File

@@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;

View File

@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.*;
import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
@@ -31,7 +30,7 @@ public class NetworkNodeFluidInterface extends NetworkNode implements IComparabl
protected void onContentsChanged() {
super.onContentsChanged();
if (!holder.world().isRemote) {
if (holder.world() != null && !holder.world().isRemote) {
((TileFluidInterface) holder.world().getTileEntity(holder.pos())).getDataManager().sendParameterToWatchers(TileFluidInterface.TANK_IN);
}
@@ -44,7 +43,7 @@ public class NetworkNodeFluidInterface extends NetworkNode implements IComparabl
protected void onContentsChanged() {
super.onContentsChanged();
if (!holder.world().isRemote) {
if (holder.world() != null && !holder.world().isRemote) {
((TileFluidInterface) holder.world().getTileEntity(holder.pos())).getDataManager().sendParameterToWatchers(TileFluidInterface.TANK_OUT);
}

View File

@@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
import com.raoulvdberge.refinedstorage.api.storage.IStorageProvider;

View File

@@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.block.BlockGrid;

View File

@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;

View File

@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerInterface;

View File

@@ -1,7 +1,6 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
public class NetworkNodeNetworkReceiver extends NetworkNode {
public static final String ID = "network_receiver";

View File

@@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;

View File

@@ -1,7 +1,6 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReader;
import com.raoulvdberge.refinedstorage.tile.TileReader;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;

View File

@@ -1,7 +1,6 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.tile.config.RedstoneMode;
import net.minecraft.util.EnumFacing;

View File

@@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityCard;
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityCardContainer;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
@@ -35,7 +34,7 @@ public class NetworkNodeSecurityManager extends NetworkNode implements ISecurity
protected void onContentsChanged(int slot) {
super.onContentsChanged(slot);
if (!holder.world().isRemote) {
if (holder.world() != null && !holder.world().isRemote) {
rebuildCards();
}

View File

@@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRecipe;
import com.raoulvdberge.refinedstorage.api.util.IComparer;
import com.raoulvdberge.refinedstorage.apiimpl.API;

View File

@@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
import com.raoulvdberge.refinedstorage.api.storage.IStorageProvider;

View File

@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.network.IWirelessTransmitter;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;

View File

@@ -2,7 +2,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IWriter;

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
@@ -50,7 +50,7 @@ public class WorldSavedDataNetworkNode extends WorldSavedData {
Function<NBTTagCompound, INetworkNode> factory = API.instance().getNetworkNodeRegistry().get(id);
if (factory != null) {
API.instance().getNetworkNodeProvider(dimension).setNode(pos, factory.apply(data));
API.instance().getNetworkNodeManager(dimension).setNode(pos, factory.apply(data));
}
}
}
@@ -60,7 +60,7 @@ public class WorldSavedDataNetworkNode extends WorldSavedData {
public NBTTagCompound writeToNBT(NBTTagCompound tag) {
NBTTagList list = new NBTTagList();
for (INetworkNode node : API.instance().getNetworkNodeProvider(dimension).all()) {
for (INetworkNode node : API.instance().getNetworkNodeManager(dimension).all()) {
NBTTagCompound nodeTag = new NBTTagCompound();
nodeTag.setString(NBT_NODE_ID, node.getId());

View File

@@ -5,7 +5,7 @@ import com.jaquadro.minecraft.storagedrawers.api.storage.IDrawerGroup;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
import com.raoulvdberge.refinedstorage.api.storage.IStorageProvider;

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.apiimpl.network.security;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityCard;
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityCardContainer;
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityManager;

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.apiimpl.storage;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
import com.raoulvdberge.refinedstorage.apiimpl.API;

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.apiimpl.storage;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
import com.raoulvdberge.refinedstorage.api.storage.IStorage;
import com.raoulvdberge.refinedstorage.apiimpl.API;

View File

@@ -2,8 +2,8 @@ package com.raoulvdberge.refinedstorage.block;
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.item.ItemBlockBase;
import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy;

View File

@@ -1,5 +1,7 @@
package com.raoulvdberge.refinedstorage.block;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.tile.TileNode;
import net.minecraft.block.properties.PropertyBool;
@@ -44,6 +46,21 @@ public abstract class BlockNode extends BlockBase {
}
}
@Override
public void breakBlock(World world, BlockPos pos, IBlockState state) {
super.breakBlock(world, pos, state);
INetworkNodeManager manager = API.instance().getNetworkNodeManager(world.provider.getDimension());
INetworkNode node = manager.getNode(pos);
manager.removeNode(pos);
if (!world.isRemote && node.getNetwork() != null) {
node.getNetwork().getNodeGraph().rebuild();
}
}
@Override
protected BlockStateContainer.Builder createBlockStateBuilder() {
BlockStateContainer.Builder builder = super.createBlockStateBuilder();

View File

@@ -1,9 +1,9 @@
package com.raoulvdberge.refinedstorage.container.slot;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
import com.raoulvdberge.refinedstorage.tile.config.IType;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.items.IItemHandler;
import javax.annotation.Nonnull;
@@ -39,7 +39,7 @@ public class SlotFilterType extends SlotFilter {
@Override
@Nonnull
public ItemStack getStack() {
return (type.getType() == IType.ITEMS || !((INetworkNode) type).getHolder().world().isRemote) ? super.getStack() : ItemStack.EMPTY;
return (type.getType() == IType.ITEMS || !((NetworkNode) type).getHolder().world().isRemote) ? super.getStack() : ItemStack.EMPTY;
}
public ItemStack getRealStack() {

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.inventory;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
public class ItemHandlerListenerNetworkNode implements IItemHandlerListener {
private INetworkNode node;

View File

@@ -3,8 +3,8 @@ package com.raoulvdberge.refinedstorage.proxy;
import javax.annotation.Nonnull;
import com.google.common.base.Preconditions;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;

View File

@@ -4,13 +4,13 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSItems;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.*;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementFluidStack;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskFactory;
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerFluids;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerItems;
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRedstone;
@@ -798,7 +798,7 @@ public class ProxyCommon {
String nodeId = ((TileNode) tileInstance).createNode().getId();
API.instance().getNetworkNodeRegistry().add(nodeId, tag -> {
INetworkNode node = ((TileNode) tileInstance).createNode();
NetworkNode node = ((TileNode) tileInstance).createNode();
node.read(tag);

View File

@@ -1,7 +1,7 @@
package com.raoulvdberge.refinedstorage.tile;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;
public interface IReaderWriter extends INetworkNode {

View File

@@ -6,10 +6,13 @@ import com.raoulvdberge.refinedstorage.RSBlocks;
import com.raoulvdberge.refinedstorage.RSUtils;
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingManager;
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElement;
import com.raoulvdberge.refinedstorage.api.network.*;
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeGraph;
import com.raoulvdberge.refinedstorage.api.network.grid.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.grid.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandler;
import com.raoulvdberge.refinedstorage.api.network.security.ISecurityManager;
@@ -747,17 +750,6 @@ public class TileController extends TileBase implements INetworkMaster, IRedston
return this;
}
@Nullable
@Override
public INetworkNodeHolder getHolder() {
return null;
}
@Override
public void setHolder(INetworkNodeHolder holder) {
// NO OP
}
public EnumControllerType getType() {
if (type == null && getWorld().getBlockState(pos).getBlock() == RSBlocks.CONTROLLER) {
this.type = (EnumControllerType) getWorld().getBlockState(pos).getValue(BlockController.TYPE);

View File

@@ -1,11 +1,11 @@
package com.raoulvdberge.refinedstorage.tile;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProvider;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeManager;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.util.IWrenchable;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.INetworkNodeHolder;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy;
import com.raoulvdberge.refinedstorage.tile.config.IRedstoneConfigurable;
@@ -56,21 +56,6 @@ public abstract class TileNode<N extends NetworkNode> extends TileBase implement
}
}
@Override
public void invalidate() {
super.invalidate();
if (getWorld() != null) {
INetworkNode node = getNode();
API.instance().getNetworkNodeProvider(getWorld().provider.getDimension()).removeNode(pos);
if (!getWorld().isRemote && node.getNetwork() != null) {
node.getNetwork().getNodeGraph().rebuild();
}
}
}
@Override
public World world() {
return getWorld();
@@ -133,12 +118,12 @@ public abstract class TileNode<N extends NetworkNode> extends TileBase implement
@Nonnull
@SuppressWarnings("unchecked")
public N getNode() {
INetworkNodeProvider provider = API.instance().getNetworkNodeProvider(getWorld().provider.getDimension());
INetworkNodeManager manager = API.instance().getNetworkNodeManager(getWorld().provider.getDimension());
INetworkNode node = provider.getNode(pos);
INetworkNode node = manager.getNode(pos);
if (node == null) {
provider.setNode(pos, node = createNode());
manager.setNode(pos, node = createNode());
}
return (N) node;

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.tile.config;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.storage.AccessType;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.tile.config;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.tile.config;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.tile.config;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.tile.config;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;
import com.raoulvdberge.refinedstorage.tile.data.TileDataParameter;

View File

@@ -1,6 +1,6 @@
package com.raoulvdberge.refinedstorage.tile.config;
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNodeProxy;
import com.raoulvdberge.refinedstorage.container.ContainerBase;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataConsumer;
import com.raoulvdberge.refinedstorage.tile.data.ITileDataProducer;

View File

@@ -1,6 +1,5 @@
package com.raoulvdberge.refinedstorage.tile.craftingmonitor;
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCraftingMonitor;
import com.raoulvdberge.refinedstorage.tile.TileNode;