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:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.api.network.node.INetworkNode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.raoulvdberge.refinedstorage.api.network;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public interface INetworkNodeProxy<T extends INetworkNode> {
|
||||
@Nonnull
|
||||
T getNode();
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -43,6 +43,7 @@ public interface IElementDrawers {
|
||||
*/
|
||||
default <T> IElementDrawer<T> getNullDrawer() {
|
||||
return (x, y, element) -> {
|
||||
// NO OP
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user