Saving node data
This commit is contained in:
@@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin
|
|||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
|
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.INetworkNodeRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
|
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
|
||||||
@@ -30,10 +31,15 @@ public interface IRSAPI {
|
|||||||
IComparer getComparer();
|
IComparer getComparer();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param dimension the dimension
|
* @return the network node factory
|
||||||
* @return the network node registry for the given dimension
|
|
||||||
*/
|
*/
|
||||||
INetworkNodeRegistry getNetworkNodeRegistry(int dimension);
|
INetworkNodeRegistry getNetworkNodeRegistry();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param dimension the dimension
|
||||||
|
* @return the network node provider for the given dimension
|
||||||
|
*/
|
||||||
|
INetworkNodeProvider getNetworkNodeProvider(int dimension);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the solderer registry
|
* @return the solderer registry
|
||||||
|
|||||||
@@ -24,5 +24,5 @@ public interface ICraftingMonitorElementRegistry {
|
|||||||
* @return the factory, or null if no factory was found
|
* @return the factory, or null if no factory was found
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
Function<ByteBuf, ICraftingMonitorElement> getFactory(String id);
|
Function<ByteBuf, ICraftingMonitorElement> get(String id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,5 +24,5 @@ public interface ICraftingPreviewElementRegistry {
|
|||||||
* @return the factory, or null if no factory was found
|
* @return the factory, or null if no factory was found
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
Function<ByteBuf, ICraftingPreviewElement> getFactory(String id);
|
Function<ByteBuf, ICraftingPreviewElement> get(String id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public interface ICraftingTaskRegistry {
|
|||||||
* @param id the id of the factory
|
* @param id the id of the factory
|
||||||
* @param factory the factory
|
* @param factory the factory
|
||||||
*/
|
*/
|
||||||
void addFactory(String id, ICraftingTaskFactory factory);
|
void add(String id, ICraftingTaskFactory factory);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the crafting task factory by factory id.
|
* Returns the crafting task factory by factory id.
|
||||||
@@ -23,5 +23,5 @@ public interface ICraftingTaskRegistry {
|
|||||||
* @return the factory
|
* @return the factory
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
ICraftingTaskFactory getFactory(String id);
|
ICraftingTaskFactory get(String id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ public interface INetworkMaster {
|
|||||||
* @return the crafting task
|
* @return the crafting task
|
||||||
*/
|
*/
|
||||||
default ICraftingTask createCraftingTask(@Nullable ItemStack stack, ICraftingPattern pattern, int quantity) {
|
default ICraftingTask createCraftingTask(@Nullable ItemStack stack, ICraftingPattern pattern, int quantity) {
|
||||||
return API.instance().getCraftingTaskRegistry().getFactory(pattern.getId()).create(getNetworkWorld(), this, stack, pattern, quantity, null);
|
return API.instance().getCraftingTaskRegistry().get(pattern.getId()).create(getNetworkWorld(), this, stack, pattern, quantity, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -56,4 +56,6 @@ public interface INetworkNode {
|
|||||||
BlockPos getPos();
|
BlockPos getPos();
|
||||||
|
|
||||||
void markDirty();
|
void markDirty();
|
||||||
|
|
||||||
|
String getId();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
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,14 +1,13 @@
|
|||||||
package com.raoulvdberge.refinedstorage.api.network;
|
package com.raoulvdberge.refinedstorage.api.network;
|
||||||
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
public interface INetworkNodeRegistry {
|
public interface INetworkNodeRegistry {
|
||||||
|
void add(String id, Function<NBTTagCompound, INetworkNode> factory);
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
INetworkNode getNode(BlockPos pos);
|
Function<NBTTagCompound, INetworkNode> get(String id);
|
||||||
|
|
||||||
void removeNode(BlockPos pos);
|
|
||||||
|
|
||||||
void setNode(BlockPos pos, INetworkNode node);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ public interface IReaderWriterHandlerRegistry {
|
|||||||
* @return the factory, or null if no factory was found
|
* @return the factory, or null if no factory was found
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
IReaderWriterHandlerFactory getFactory(String id);
|
IReaderWriterHandlerFactory get(String id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a list of reader writer handler factories
|
* @return a list of reader writer handler factories
|
||||||
*/
|
*/
|
||||||
Collection<IReaderWriterHandlerFactory> getFactories();
|
Collection<IReaderWriterHandlerFactory> all();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,10 +6,7 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftin
|
|||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElementRegistry;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.craftingmonitor.ICraftingMonitorElementRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.preview.ICraftingPreviewElementRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
|
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
|
import com.raoulvdberge.refinedstorage.api.network.*;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
|
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry;
|
import com.raoulvdberge.refinedstorage.api.solderer.ISoldererRegistry;
|
||||||
@@ -19,6 +16,7 @@ import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.Craf
|
|||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementRegistry;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.CraftingMonitorElementRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementRegistry;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskRegistry;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskRegistry;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeProvider;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeRegistry;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeRegistry;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterChannel;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterChannel;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRegistry;
|
||||||
@@ -49,8 +47,9 @@ public class API implements IRSAPI {
|
|||||||
private static final IRSAPI INSTANCE = new API();
|
private static final IRSAPI INSTANCE = new API();
|
||||||
|
|
||||||
private IComparer comparer = new Comparer();
|
private IComparer comparer = new Comparer();
|
||||||
private Map<Integer, INetworkNodeRegistry> networkNodeRegistryServer = new HashMap<>();
|
private INetworkNodeRegistry networkNodeRegistry = new NetworkNodeRegistry();
|
||||||
private Map<Integer, INetworkNodeRegistry> networkNodeRegistryClient = new HashMap<>();
|
private Map<Integer, INetworkNodeProvider> networkNodeProviderServer = new HashMap<>();
|
||||||
|
private Map<Integer, INetworkNodeProvider> networkNodeProviderClient = new HashMap<>();
|
||||||
private ISoldererRegistry soldererRegistry = new SoldererRegistry();
|
private ISoldererRegistry soldererRegistry = new SoldererRegistry();
|
||||||
private ICraftingTaskRegistry craftingTaskRegistry = new CraftingTaskRegistry();
|
private ICraftingTaskRegistry craftingTaskRegistry = new CraftingTaskRegistry();
|
||||||
private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry();
|
private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry();
|
||||||
@@ -88,10 +87,15 @@ public class API implements IRSAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public INetworkNodeRegistry getNetworkNodeRegistry(int dimension) {
|
public INetworkNodeRegistry getNetworkNodeRegistry() {
|
||||||
Map<Integer, INetworkNodeRegistry> registry = FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? networkNodeRegistryClient : networkNodeRegistryServer;
|
return networkNodeRegistry;
|
||||||
|
}
|
||||||
|
|
||||||
return registry.computeIfAbsent(dimension, r -> new NetworkNodeRegistry());
|
@Override
|
||||||
|
public INetworkNodeProvider getNetworkNodeProvider(int dimension) {
|
||||||
|
Map<Integer, INetworkNodeProvider> provider = FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? networkNodeProviderClient : networkNodeProviderServer;
|
||||||
|
|
||||||
|
return provider.computeIfAbsent(dimension, r -> new NetworkNodeProvider());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public class CraftingMonitorElementRegistry implements ICraftingMonitorElementRe
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public Function<ByteBuf, ICraftingMonitorElement> getFactory(String id) {
|
public Function<ByteBuf, ICraftingMonitorElement> get(String id) {
|
||||||
return registry.get(id);
|
return registry.get(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public class CraftingPreviewElementRegistry implements ICraftingPreviewElementRe
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public Function<ByteBuf, ICraftingPreviewElement> getFactory(String id) {
|
public Function<ByteBuf, ICraftingPreviewElement> get(String id) {
|
||||||
return registry.get(id);
|
return registry.get(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ public class CraftingTaskFactory implements ICraftingTaskFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NBTTagList toInsertList = tag.getTagList(CraftingTask.NBT_TO_INSERT_ITEMS, Constants.NBT.TAG_COMPOUND);
|
NBTTagList toInsertList = tag.getTagList(CraftingTask.NBT_TO_INSERT_ITEMS, Constants.NBT.TAG_COMPOUND);
|
||||||
|
|
||||||
Deque<ItemStack> toInsert = new ArrayDeque<>();
|
Deque<ItemStack> toInsert = new ArrayDeque<>();
|
||||||
|
|||||||
@@ -11,13 +11,13 @@ public class CraftingTaskRegistry implements ICraftingTaskRegistry {
|
|||||||
private Map<String, ICraftingTaskFactory> registry = new HashMap<>();
|
private Map<String, ICraftingTaskFactory> registry = new HashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addFactory(String id, ICraftingTaskFactory factory) {
|
public void add(String id, ICraftingTaskFactory factory) {
|
||||||
registry.put(id, factory);
|
registry.put(id, factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public ICraftingTaskFactory getFactory(String id) {
|
public ICraftingTaskFactory get(String id) {
|
||||||
return registry.get(id);
|
return registry.get(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,13 +4,16 @@ import com.raoulvdberge.refinedstorage.RSUtils;
|
|||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.WorldSavedDataNetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy;
|
import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraftforge.event.world.BlockEvent;
|
import net.minecraftforge.event.world.BlockEvent;
|
||||||
|
import net.minecraftforge.event.world.WorldEvent;
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
|
|
||||||
public class NetworkListener {
|
public class NetworkNodeListener {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onBlockPlace(BlockEvent.PlaceEvent e) {
|
public void onBlockPlace(BlockEvent.PlaceEvent e) {
|
||||||
if (!e.getWorld().isRemote) {
|
if (!e.getWorld().isRemote) {
|
||||||
@@ -52,4 +55,19 @@ public class NetworkListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onWorldSave(WorldEvent.Save e) {
|
||||||
|
WorldSavedDataNetworkNode.get(e.getWorld());
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onWorldLoad(WorldEvent.Load e) {
|
||||||
|
WorldSavedDataNetworkNode.get(e.getWorld());
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onWorldUnload(WorldEvent.Unload e) {
|
||||||
|
API.instance().getNetworkNodeProvider(e.getWorld().provider.getDimension()).clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.apiimpl.network;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProvider;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class NetworkNodeProvider implements INetworkNodeProvider {
|
||||||
|
private Map<BlockPos, INetworkNode> nodes = new HashMap<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Nullable
|
||||||
|
public INetworkNode getNode(BlockPos pos) {
|
||||||
|
return nodes.get(pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeNode(BlockPos pos) {
|
||||||
|
nodes.remove(pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setNode(BlockPos pos, INetworkNode node) {
|
||||||
|
nodes.put(pos, node);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Collection<INetworkNode> all() {
|
||||||
|
return nodes.values();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clear() {
|
||||||
|
nodes.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,28 +2,24 @@ package com.raoulvdberge.refinedstorage.apiimpl.network;
|
|||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
public class NetworkNodeRegistry implements INetworkNodeRegistry {
|
public class NetworkNodeRegistry implements INetworkNodeRegistry {
|
||||||
private Map<BlockPos, INetworkNode> nodes = new HashMap<>();
|
private Map<String, Function<NBTTagCompound, INetworkNode>> factories = new HashMap<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void add(String id, Function<NBTTagCompound, INetworkNode> factory) {
|
||||||
|
factories.put(id, factory);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public INetworkNode getNode(BlockPos pos) {
|
public Function<NBTTagCompound, INetworkNode> get(String id) {
|
||||||
return nodes.get(pos);
|
return factories.get(id);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeNode(BlockPos pos) {
|
|
||||||
nodes.remove(pos);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setNode(BlockPos pos, INetworkNode node) {
|
|
||||||
nodes.put(pos, node);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
|
|||||||
|
|
||||||
private boolean active;
|
private boolean active;
|
||||||
|
|
||||||
|
public NetworkNode() {
|
||||||
|
}
|
||||||
|
|
||||||
public NetworkNode(INetworkNodeHolder holder) {
|
public NetworkNode(INetworkNodeHolder holder) {
|
||||||
this.holder = holder;
|
this.holder = holder;
|
||||||
}
|
}
|
||||||
@@ -71,7 +74,9 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void markDirty() {
|
public void markDirty() {
|
||||||
// @todo
|
if (holder.world() != null) {
|
||||||
|
WorldSavedDataNetworkNode.get(holder.world()).markDirty();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.tile.INetworkNodeHolder;
|
|
||||||
|
|
||||||
public class NetworkNodeBasic extends NetworkNode {
|
|
||||||
private int energyUsage;
|
|
||||||
private boolean connectivityState;
|
|
||||||
|
|
||||||
public NetworkNodeBasic(INetworkNodeHolder holder, int energyUsage, boolean connectivityState) {
|
|
||||||
super(holder);
|
|
||||||
|
|
||||||
this.energyUsage = energyUsage;
|
|
||||||
this.connectivityState = connectivityState;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getEnergyUsage() {
|
|
||||||
return energyUsage;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasConnectivityState() {
|
|
||||||
return connectivityState;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
|
||||||
|
public class NetworkNodeCable extends NetworkNode {
|
||||||
|
public static final String ID = "cable";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEnergyUsage() {
|
||||||
|
return RS.INSTANCE.config.cableUsage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -41,6 +41,8 @@ import net.minecraftforge.fluids.FluidStack;
|
|||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
|
||||||
public class NetworkNodeConstructor extends NetworkNode implements IComparable, IType {
|
public class NetworkNodeConstructor extends NetworkNode implements IComparable, IType {
|
||||||
|
public static final String ID = "constructor";
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
private static final String NBT_TYPE = "Type";
|
private static final String NBT_TYPE = "Type";
|
||||||
private static final String NBT_DROP = "Drop";
|
private static final String NBT_DROP = "Drop";
|
||||||
@@ -236,6 +238,11 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable,
|
|||||||
RSUtils.readItems(upgrades, 1, tag);
|
RSUtils.readItems(upgrades, 1, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternContainer {
|
public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternContainer {
|
||||||
|
public static final String ID = "crafter";
|
||||||
|
|
||||||
private static final String NBT_TRIGGERED_AUTOCRAFTING = "TriggeredAutocrafting";
|
private static final String NBT_TRIGGERED_AUTOCRAFTING = "TriggeredAutocrafting";
|
||||||
|
|
||||||
private ItemHandlerBasic patterns = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this), s -> {
|
private ItemHandlerBasic patterns = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this), s -> {
|
||||||
@@ -124,6 +126,11 @@ public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternC
|
|||||||
RSUtils.readItems(upgrades, 1, tag);
|
RSUtils.readItems(upgrades, 1, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class NetworkNodeCraftingMonitor extends NetworkNode implements ICraftingMonitor {
|
public class NetworkNodeCraftingMonitor extends NetworkNode implements ICraftingMonitor {
|
||||||
|
public static final String ID = "crafting_monitor";
|
||||||
|
|
||||||
public NetworkNodeCraftingMonitor(INetworkNodeHolder holder) {
|
public NetworkNodeCraftingMonitor(INetworkNodeHolder holder) {
|
||||||
super(holder);
|
super(holder);
|
||||||
}
|
}
|
||||||
@@ -21,6 +23,11 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting
|
|||||||
return RS.INSTANCE.config.craftingMonitorUsage;
|
return RS.INSTANCE.config.craftingMonitorUsage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasConnectivityState() {
|
public boolean hasConnectivityState() {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class NetworkNodeDestructor extends NetworkNode implements IComparable, IFilterable, IType {
|
public class NetworkNodeDestructor extends NetworkNode implements IComparable, IFilterable, IType {
|
||||||
|
public static final String ID = "destructor";
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
private static final String NBT_MODE = "Mode";
|
private static final String NBT_MODE = "Mode";
|
||||||
private static final String NBT_TYPE = "Type";
|
private static final String NBT_TYPE = "Type";
|
||||||
@@ -186,6 +188,11 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I
|
|||||||
RSUtils.readItems(upgrades, 1, tag);
|
RSUtils.readItems(upgrades, 1, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ import net.minecraftforge.fluids.FluidStack;
|
|||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
|
||||||
public class NetworkNodeDetector extends NetworkNode implements IComparable, IType {
|
public class NetworkNodeDetector extends NetworkNode implements IComparable, IType {
|
||||||
|
public static final String ID = "detector";
|
||||||
|
|
||||||
private static final int SPEED = 5;
|
private static final int SPEED = 5;
|
||||||
|
|
||||||
public static final int MODE_UNDER = 0;
|
public static final int MODE_UNDER = 0;
|
||||||
@@ -108,6 +110,11 @@ public class NetworkNodeDetector extends NetworkNode implements IComparable, ITy
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnectedStateChange(INetworkMaster network, boolean state) {
|
public void onConnectedStateChange(INetworkMaster network, boolean state) {
|
||||||
super.onConnectedStateChange(network, state);
|
super.onConnectedStateChange(network, state);
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ import javax.annotation.Nonnull;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class NetworkNodeDiskDrive extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IType, IExcessVoidable, IAccessType {
|
public class NetworkNodeDiskDrive extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IType, IExcessVoidable, IAccessType {
|
||||||
|
public static final String ID = "disk_drive";
|
||||||
|
|
||||||
public class StorageItem extends StorageItemNBT {
|
public class StorageItem extends StorageItemNBT {
|
||||||
private int lastState;
|
private int lastState;
|
||||||
|
|
||||||
@@ -251,6 +253,11 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IStorageGui, IS
|
|||||||
RSUtils.readItems(disks, 0, tag);
|
RSUtils.readItems(disks, 0, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ import javax.annotation.Nonnull;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class NetworkNodeDiskManipulator extends NetworkNode implements IComparable, IFilterable, IType {
|
public class NetworkNodeDiskManipulator extends NetworkNode implements IComparable, IFilterable, IType {
|
||||||
|
public static final String ID = "disk_manipulator";
|
||||||
|
|
||||||
public static final int IO_MODE_INSERT = 0;
|
public static final int IO_MODE_INSERT = 0;
|
||||||
public static final int IO_MODE_EXTRACT = 1;
|
public static final int IO_MODE_EXTRACT = 1;
|
||||||
|
|
||||||
@@ -506,6 +508,11 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab
|
|||||||
RSUtils.readItems(outputDisks, 5, tag);
|
RSUtils.readItems(outputDisks, 5, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ import net.minecraftforge.items.IItemHandler;
|
|||||||
import net.minecraftforge.items.ItemHandlerHelper;
|
import net.minecraftforge.items.ItemHandlerHelper;
|
||||||
|
|
||||||
public class NetworkNodeExporter extends NetworkNode implements IComparable, IType {
|
public class NetworkNodeExporter extends NetworkNode implements IComparable, IType {
|
||||||
|
public static final String ID = "exporter";
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
private static final String NBT_TYPE = "Type";
|
private static final String NBT_TYPE = "Type";
|
||||||
private static final String NBT_REGULATOR = "Regulator";
|
private static final String NBT_REGULATOR = "Regulator";
|
||||||
@@ -166,6 +168,11 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
|
|||||||
RSUtils.readItems(upgrades, 1, tag);
|
RSUtils.readItems(upgrades, 1, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ import net.minecraftforge.fluids.FluidTank;
|
|||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
public class NetworkNodeFluidInterface extends NetworkNode implements IComparable {
|
public class NetworkNodeFluidInterface extends NetworkNode implements IComparable {
|
||||||
|
public static final String ID = "fluid_interface";
|
||||||
|
|
||||||
public static final int TANK_CAPACITY = 16000;
|
public static final int TANK_CAPACITY = 16000;
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
@@ -170,6 +172,11 @@ public class NetworkNodeFluidInterface extends NetworkNode implements IComparabl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound writeConfiguration(NBTTagCompound tag) {
|
public NBTTagCompound writeConfiguration(NBTTagCompound tag) {
|
||||||
super.writeConfiguration(tag);
|
super.writeConfiguration(tag);
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ import net.minecraftforge.fluids.FluidStack;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class NetworkNodeFluidStorage extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
public class NetworkNodeFluidStorage extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
||||||
|
public static final String ID = "fluid_storage";
|
||||||
|
|
||||||
class StorageFluid extends StorageFluidNBT {
|
class StorageFluid extends StorageFluidNBT {
|
||||||
public StorageFluid() {
|
public StorageFluid() {
|
||||||
super(NetworkNodeFluidStorage.this.getStorageTag(), NetworkNodeFluidStorage.this.getCapacity(), NetworkNodeFluidStorage.this);
|
super(NetworkNodeFluidStorage.this.getStorageTag(), NetworkNodeFluidStorage.this.getCapacity(), NetworkNodeFluidStorage.this);
|
||||||
@@ -132,6 +134,11 @@ public class NetworkNodeFluidStorage extends NetworkNode implements IStorageGui,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -41,6 +41,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
||||||
|
public static final String ID = "grid";
|
||||||
|
|
||||||
public static final String NBT_VIEW_TYPE = "ViewType";
|
public static final String NBT_VIEW_TYPE = "ViewType";
|
||||||
public static final String NBT_SORTING_DIRECTION = "SortingDirection";
|
public static final String NBT_SORTING_DIRECTION = "SortingDirection";
|
||||||
public static final String NBT_SORTING_TYPE = "SortingType";
|
public static final String NBT_SORTING_TYPE = "SortingType";
|
||||||
@@ -456,6 +458,11 @@ public class NetworkNodeGrid extends NetworkNode implements IGrid {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ import net.minecraftforge.fluids.capability.IFluidHandler;
|
|||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
|
||||||
public class NetworkNodeImporter extends NetworkNode implements IComparable, IFilterable, IType {
|
public class NetworkNodeImporter extends NetworkNode implements IComparable, IFilterable, IType {
|
||||||
|
public static final String ID = "importer";
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
private static final String NBT_MODE = "Mode";
|
private static final String NBT_MODE = "Mode";
|
||||||
private static final String NBT_TYPE = "Type";
|
private static final String NBT_TYPE = "Type";
|
||||||
@@ -130,6 +132,11 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi
|
|||||||
RSUtils.readItems(upgrades, 1, tag);
|
RSUtils.readItems(upgrades, 1, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import net.minecraftforge.items.IItemHandler;
|
|||||||
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||||
|
|
||||||
public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
||||||
|
public static final String ID = "interface";
|
||||||
|
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
|
|
||||||
private ItemHandlerBasic importItems = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
|
private ItemHandlerBasic importItems = new ItemHandlerBasic(9, new ItemHandlerListenerNetworkNode(this));
|
||||||
@@ -125,6 +127,11 @@ public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
|||||||
RSUtils.readItems(upgrades, 3, tag);
|
RSUtils.readItems(upgrades, 3, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
|
||||||
|
public class NetworkNodeNetworkReceiver extends NetworkNode {
|
||||||
|
public static final String ID = "network_receiver";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEnergyUsage() {
|
||||||
|
return RS.INSTANCE.config.networkReceiverUsage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasConnectivityState() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -21,6 +21,8 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class NetworkNodeNetworkTransmitter extends NetworkNode {
|
public class NetworkNodeNetworkTransmitter extends NetworkNode {
|
||||||
|
public static final String ID = "network_transmitter";
|
||||||
|
|
||||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(1, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_INTERDIMENSIONAL) {
|
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(1, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_INTERDIMENSIONAL) {
|
||||||
@Override
|
@Override
|
||||||
protected void onContentsChanged(int slot) {
|
protected void onContentsChanged(int slot) {
|
||||||
@@ -83,6 +85,11 @@ public class NetworkNodeNetworkTransmitter extends NetworkNode {
|
|||||||
RSUtils.readItems(upgrades, 1, tag);
|
RSUtils.readItems(upgrades, 1, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getEnergyUsage() {
|
public int getEnergyUsage() {
|
||||||
return Math.min(
|
return Math.min(
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
|||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
|
||||||
public class NetworkNodeReader extends NetworkNode implements IReader {
|
public class NetworkNodeReader extends NetworkNode implements IReader {
|
||||||
|
public static final String ID = "reader";
|
||||||
|
|
||||||
private static final String NBT_CHANNEL = "Channel";
|
private static final String NBT_CHANNEL = "Channel";
|
||||||
|
|
||||||
private String channel = "";
|
private String channel = "";
|
||||||
@@ -62,6 +64,11 @@ public class NetworkNodeReader extends NetworkNode implements IReader {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import net.minecraft.util.EnumFacing;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class NetworkNodeRelay extends NetworkNode {
|
public class NetworkNodeRelay extends NetworkNode {
|
||||||
|
public static final String ID = "relay";
|
||||||
|
|
||||||
public NetworkNodeRelay(INetworkNodeHolder holder) {
|
public NetworkNodeRelay(INetworkNodeHolder holder) {
|
||||||
super(holder);
|
super(holder);
|
||||||
|
|
||||||
@@ -21,6 +23,11 @@ public class NetworkNodeRelay extends NetworkNode {
|
|||||||
return getRedstoneMode() == RedstoneMode.IGNORE ? 0 : RS.INSTANCE.config.relayUsage;
|
return getRedstoneMode() == RedstoneMode.IGNORE ? 0 : RS.INSTANCE.config.relayUsage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canConduct(@Nullable EnumFacing direction) {
|
public boolean canConduct(@Nullable EnumFacing direction) {
|
||||||
return canUpdate();
|
return canUpdate();
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ import java.util.List;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class NetworkNodeSecurityManager extends NetworkNode implements ISecurityCardContainer {
|
public class NetworkNodeSecurityManager extends NetworkNode implements ISecurityCardContainer {
|
||||||
|
public static final String ID = "security_manager";
|
||||||
|
|
||||||
private static final String NBT_OWNER = "Owner";
|
private static final String NBT_OWNER = "Owner";
|
||||||
|
|
||||||
private List<ISecurityCard> actualCards = new ArrayList<>();
|
private List<ISecurityCard> actualCards = new ArrayList<>();
|
||||||
@@ -120,6 +122,11 @@ public class NetworkNodeSecurityManager extends NetworkNode implements ISecurity
|
|||||||
RSUtils.readItems(editCard, 1, tag);
|
RSUtils.readItems(editCard, 1, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
|||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class NetworkNodeSolderer extends NetworkNode {
|
public class NetworkNodeSolderer extends NetworkNode {
|
||||||
|
public static final String ID = "solderer";
|
||||||
|
|
||||||
private static final String NBT_WORKING = "Working";
|
private static final String NBT_WORKING = "Working";
|
||||||
private static final String NBT_PROGRESS = "Progress";
|
private static final String NBT_PROGRESS = "Progress";
|
||||||
|
|
||||||
@@ -142,6 +144,11 @@ public class NetworkNodeSolderer extends NetworkNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ import javax.annotation.Nonnull;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class NetworkNodeStorage extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
public class NetworkNodeStorage extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
||||||
|
public static final String ID = "storage";
|
||||||
|
|
||||||
class StorageItem extends StorageItemNBT {
|
class StorageItem extends StorageItemNBT {
|
||||||
public StorageItem() {
|
public StorageItem() {
|
||||||
super(NetworkNodeStorage.this.getStorageTag(), NetworkNodeStorage.this.getCapacity(), NetworkNodeStorage.this);
|
super(NetworkNodeStorage.this.getStorageTag(), NetworkNodeStorage.this.getCapacity(), NetworkNodeStorage.this);
|
||||||
@@ -134,6 +136,11 @@ public class NetworkNodeStorage extends NetworkNode implements IStorageGui, ISto
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import net.minecraftforge.items.IItemHandler;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWirelessTransmitter {
|
public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWirelessTransmitter {
|
||||||
|
public static final String ID = "wireless_transmitter";
|
||||||
|
|
||||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_RANGE);
|
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(4, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_RANGE);
|
||||||
|
|
||||||
public NetworkNodeWirelessTransmitter(INetworkNodeHolder holder) {
|
public NetworkNodeWirelessTransmitter(INetworkNodeHolder holder) {
|
||||||
@@ -34,6 +36,11 @@ public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWire
|
|||||||
RSUtils.readItems(upgrades, 0, tag);
|
RSUtils.readItems(upgrades, 0, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
|
|
||||||
public class NetworkNodeWriter extends NetworkNode implements IWriter {
|
public class NetworkNodeWriter extends NetworkNode implements IWriter {
|
||||||
|
public static final String ID = "writer";
|
||||||
|
|
||||||
private static final String NBT_CHANNEL = "Channel";
|
private static final String NBT_CHANNEL = "Channel";
|
||||||
|
|
||||||
private String channel = "";
|
private String channel = "";
|
||||||
@@ -100,6 +102,11 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound write(NBTTagCompound tag) {
|
public NBTTagCompound write(NBTTagCompound tag) {
|
||||||
super.write(tag);
|
super.write(tag);
|
||||||
|
|||||||
@@ -0,0 +1,92 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.apiimpl.network.node;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.nbt.NBTTagList;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraft.world.WorldSavedData;
|
||||||
|
import net.minecraft.world.storage.MapStorage;
|
||||||
|
import net.minecraftforge.common.util.Constants;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
public class WorldSavedDataNetworkNode extends WorldSavedData {
|
||||||
|
private static final String NAME = "refinedstorage_nodes";
|
||||||
|
|
||||||
|
private static final String NBT_NODES = "Nodes";
|
||||||
|
private static final String NBT_NODE_ID = "Id";
|
||||||
|
private static final String NBT_NODE_DATA = "Data";
|
||||||
|
private static final String NBT_NODE_POS = "Pos";
|
||||||
|
private static final String NBT_DIMENSION = "Dimension";
|
||||||
|
|
||||||
|
private int dimension;
|
||||||
|
|
||||||
|
public WorldSavedDataNetworkNode(int dimension) {
|
||||||
|
super(NAME);
|
||||||
|
|
||||||
|
this.dimension = dimension;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorldSavedDataNetworkNode(String s) {
|
||||||
|
super(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound tag) {
|
||||||
|
if (tag.hasKey(NBT_NODES) && tag.hasKey(NBT_DIMENSION)) {
|
||||||
|
int dimension = tag.getInteger(NBT_DIMENSION);
|
||||||
|
|
||||||
|
NBTTagList list = tag.getTagList(NBT_NODES, Constants.NBT.TAG_COMPOUND);
|
||||||
|
|
||||||
|
for (int i = 0; i < list.tagCount(); ++i) {
|
||||||
|
NBTTagCompound nodeTag = list.getCompoundTagAt(i);
|
||||||
|
|
||||||
|
String id = nodeTag.getString(NBT_NODE_ID);
|
||||||
|
NBTTagCompound data = nodeTag.getCompoundTag(NBT_NODE_DATA);
|
||||||
|
BlockPos pos = BlockPos.fromLong(nodeTag.getLong(NBT_NODE_POS));
|
||||||
|
|
||||||
|
Function<NBTTagCompound, INetworkNode> factory = API.instance().getNetworkNodeRegistry().get(id);
|
||||||
|
|
||||||
|
if (factory != null) {
|
||||||
|
API.instance().getNetworkNodeProvider(dimension).setNode(pos, factory.apply(data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound writeToNBT(NBTTagCompound tag) {
|
||||||
|
NBTTagList list = new NBTTagList();
|
||||||
|
|
||||||
|
for (INetworkNode node : API.instance().getNetworkNodeProvider(dimension).all()) {
|
||||||
|
NBTTagCompound nodeTag = new NBTTagCompound();
|
||||||
|
|
||||||
|
nodeTag.setString(NBT_NODE_ID, node.getId());
|
||||||
|
nodeTag.setLong(NBT_NODE_POS, node.getPos().toLong());
|
||||||
|
nodeTag.setTag(NBT_NODE_DATA, node.write(new NBTTagCompound()));
|
||||||
|
|
||||||
|
list.appendTag(nodeTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
tag.setTag(NBT_NODES, list);
|
||||||
|
|
||||||
|
tag.setInteger(NBT_DIMENSION, dimension);
|
||||||
|
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static WorldSavedDataNetworkNode get(World world) {
|
||||||
|
MapStorage storage = world.getPerWorldStorage();
|
||||||
|
WorldSavedDataNetworkNode instance = (WorldSavedDataNetworkNode) storage.getOrLoadData(WorldSavedDataNetworkNode.class, NAME);
|
||||||
|
|
||||||
|
if (instance == null) {
|
||||||
|
instance = new WorldSavedDataNetworkNode(world.provider.getDimension());
|
||||||
|
|
||||||
|
storage.setData(NAME, instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -32,6 +32,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class NetworkNodeExternalStorage extends NetworkNode implements IStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType, IAccessType {
|
public class NetworkNodeExternalStorage extends NetworkNode implements IStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType, IAccessType {
|
||||||
|
public static final String ID = "external_storage";
|
||||||
|
|
||||||
private static final String NBT_PRIORITY = "Priority";
|
private static final String NBT_PRIORITY = "Priority";
|
||||||
private static final String NBT_COMPARE = "Compare";
|
private static final String NBT_COMPARE = "Compare";
|
||||||
private static final String NBT_MODE = "Mode";
|
private static final String NBT_MODE = "Mode";
|
||||||
@@ -98,6 +100,11 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound writeConfiguration(NBTTagCompound tag) {
|
public NBTTagCompound writeConfiguration(NBTTagCompound tag) {
|
||||||
super.writeConfiguration(tag);
|
super.writeConfiguration(tag);
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class ReaderWriterChannel implements IReaderWriterChannel {
|
|||||||
public ReaderWriterChannel(String name, INetworkMaster network) {
|
public ReaderWriterChannel(String name, INetworkMaster network) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.network = network;
|
this.network = network;
|
||||||
this.handlers.addAll(API.instance().getReaderWriterHandlerRegistry().getFactories().stream().map(f -> f.create(null)).collect(Collectors.toList()));
|
this.handlers.addAll(API.instance().getReaderWriterHandlerRegistry().all().stream().map(f -> f.create(null)).collect(Collectors.toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -59,7 +59,7 @@ public class ReaderWriterChannel implements IReaderWriterChannel {
|
|||||||
String id = String.format(NBT_HANDLER, handler.getId());
|
String id = String.format(NBT_HANDLER, handler.getId());
|
||||||
|
|
||||||
if (tag.hasKey(id)) {
|
if (tag.hasKey(id)) {
|
||||||
IReaderWriterHandlerFactory factory = API.instance().getReaderWriterHandlerRegistry().getFactory(id);
|
IReaderWriterHandlerFactory factory = API.instance().getReaderWriterHandlerRegistry().get(id);
|
||||||
|
|
||||||
if (factory != null) {
|
if (factory != null) {
|
||||||
handlers.add(factory.create(tag.getCompoundTag(id)));
|
handlers.add(factory.create(tag.getCompoundTag(id)));
|
||||||
|
|||||||
@@ -18,12 +18,12 @@ public class ReaderWriterHandlerRegistry implements IReaderWriterHandlerRegistry
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IReaderWriterHandlerFactory getFactory(String id) {
|
public IReaderWriterHandlerFactory get(String id) {
|
||||||
return factories.get(id);
|
return factories.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<IReaderWriterHandlerFactory> getFactories() {
|
public Collection<IReaderWriterHandlerFactory> all() {
|
||||||
return factories.values();
|
return factories.values();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public class MessageCraftingMonitorElements implements IMessage, IMessageHandler
|
|||||||
int size = buf.readInt();
|
int size = buf.readInt();
|
||||||
|
|
||||||
for (int i = 0; i < size; ++i) {
|
for (int i = 0; i < size; ++i) {
|
||||||
Function<ByteBuf, ICraftingMonitorElement> factory = API.instance().getCraftingMonitorElementRegistry().getFactory(ByteBufUtils.readUTF8String(buf));
|
Function<ByteBuf, ICraftingMonitorElement> factory = API.instance().getCraftingMonitorElementRegistry().get(ByteBufUtils.readUTF8String(buf));
|
||||||
|
|
||||||
if (factory != null) {
|
if (factory != null) {
|
||||||
elements.add(factory.apply(buf));
|
elements.add(factory.apply(buf));
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class MessageGridCraftingPreviewResponse implements IMessage, IMessageHan
|
|||||||
int size = buf.readInt();
|
int size = buf.readInt();
|
||||||
|
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
this.stacks.add(API.instance().getCraftingPreviewElementRegistry().getFactory(ByteBufUtils.readUTF8String(buf)).apply(buf));
|
this.stacks.add(API.instance().getCraftingPreviewElementRegistry().get(ByteBufUtils.readUTF8String(buf)).apply(buf));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,13 @@ import com.raoulvdberge.refinedstorage.RS;
|
|||||||
import com.raoulvdberge.refinedstorage.RSBlocks;
|
import com.raoulvdberge.refinedstorage.RSBlocks;
|
||||||
import com.raoulvdberge.refinedstorage.RSItems;
|
import com.raoulvdberge.refinedstorage.RSItems;
|
||||||
import com.raoulvdberge.refinedstorage.RSUtils;
|
import com.raoulvdberge.refinedstorage.RSUtils;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.*;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.craftingmonitor.*;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementFluidStack;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementFluidStack;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewElementItemStack;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskFactory;
|
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.registry.CraftingTaskFactory;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkListener;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerFluids;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerFluids;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerItems;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerItems;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRedstone;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRedstone;
|
||||||
@@ -62,7 +63,7 @@ public class ProxyCommon {
|
|||||||
|
|
||||||
API.deliver(e.getAsmData());
|
API.deliver(e.getAsmData());
|
||||||
|
|
||||||
API.instance().getCraftingTaskRegistry().addFactory(CraftingTaskFactory.ID, new CraftingTaskFactory());
|
API.instance().getCraftingTaskRegistry().add(CraftingTaskFactory.ID, new CraftingTaskFactory());
|
||||||
|
|
||||||
API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementItemRender.ID, buf -> new CraftingMonitorElementItemRender(buf.readInt(), ByteBufUtils.readItemStack(buf), buf.readInt(), buf.readInt()));
|
API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementItemRender.ID, buf -> new CraftingMonitorElementItemRender(buf.readInt(), ByteBufUtils.readItemStack(buf), buf.readInt(), buf.readInt()));
|
||||||
API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementFluidRender.ID, buf -> new CraftingMonitorElementFluidRender(buf.readInt(), RSUtils.readFluidStack(buf).getRight(), buf.readInt()));
|
API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementFluidRender.ID, buf -> new CraftingMonitorElementFluidRender(buf.readInt(), RSUtils.readFluidStack(buf).getRight(), buf.readInt()));
|
||||||
@@ -71,13 +72,13 @@ public class ProxyCommon {
|
|||||||
String id = ByteBufUtils.readUTF8String(buf);
|
String id = ByteBufUtils.readUTF8String(buf);
|
||||||
String tooltip = ByteBufUtils.readUTF8String(buf);
|
String tooltip = ByteBufUtils.readUTF8String(buf);
|
||||||
|
|
||||||
return new CraftingMonitorElementError(API.instance().getCraftingMonitorElementRegistry().getFactory(id).apply(buf), tooltip);
|
return new CraftingMonitorElementError(API.instance().getCraftingMonitorElementRegistry().get(id).apply(buf), tooltip);
|
||||||
});
|
});
|
||||||
API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementInfo.ID, buf -> {
|
API.instance().getCraftingMonitorElementRegistry().add(CraftingMonitorElementInfo.ID, buf -> {
|
||||||
String id = ByteBufUtils.readUTF8String(buf);
|
String id = ByteBufUtils.readUTF8String(buf);
|
||||||
String tooltip = ByteBufUtils.readUTF8String(buf);
|
String tooltip = ByteBufUtils.readUTF8String(buf);
|
||||||
|
|
||||||
return new CraftingMonitorElementInfo(API.instance().getCraftingMonitorElementRegistry().getFactory(id).apply(buf), tooltip);
|
return new CraftingMonitorElementInfo(API.instance().getCraftingMonitorElementRegistry().get(id).apply(buf), tooltip);
|
||||||
});
|
});
|
||||||
|
|
||||||
API.instance().getCraftingPreviewElementRegistry().add(CraftingPreviewElementItemStack.ID, CraftingPreviewElementItemStack::fromByteBuf);
|
API.instance().getCraftingPreviewElementRegistry().add(CraftingPreviewElementItemStack.ID, CraftingPreviewElementItemStack::fromByteBuf);
|
||||||
@@ -125,7 +126,7 @@ public class ProxyCommon {
|
|||||||
NetworkRegistry.INSTANCE.registerGuiHandler(RS.INSTANCE, new GuiHandler());
|
NetworkRegistry.INSTANCE.registerGuiHandler(RS.INSTANCE, new GuiHandler());
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.register(new ContainerListener());
|
MinecraftForge.EVENT_BUS.register(new ContainerListener());
|
||||||
MinecraftForge.EVENT_BUS.register(new NetworkListener());
|
MinecraftForge.EVENT_BUS.register(new NetworkNodeListener());
|
||||||
|
|
||||||
registerTile(TileController.class, "controller");
|
registerTile(TileController.class, "controller");
|
||||||
registerTile(TileGrid.class, "grid");
|
registerTile(TileGrid.class, "grid");
|
||||||
@@ -793,6 +794,18 @@ public class ProxyCommon {
|
|||||||
try {
|
try {
|
||||||
TileBase tileInstance = tile.newInstance();
|
TileBase tileInstance = tile.newInstance();
|
||||||
|
|
||||||
|
if (tileInstance instanceof TileNode) {
|
||||||
|
String nodeId = ((TileNode) tileInstance).createNode().getId();
|
||||||
|
|
||||||
|
API.instance().getNetworkNodeRegistry().add(nodeId, tag -> {
|
||||||
|
INetworkNode node = ((TileNode) tileInstance).createNode();
|
||||||
|
|
||||||
|
node.read(tag);
|
||||||
|
|
||||||
|
return node;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
tileInstance.getDataManager().getParameters().forEach(TileDataManager::registerParameter);
|
tileInstance.getDataManager().getParameters().forEach(TileDataManager::registerParameter);
|
||||||
} catch (InstantiationException | IllegalAccessException e) {
|
} catch (InstantiationException | IllegalAccessException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile;
|
package com.raoulvdberge.refinedstorage.tile;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeBasic;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeCable;
|
||||||
|
|
||||||
public class TileCable extends TileNode {
|
public class TileCable extends TileNode {
|
||||||
@Override
|
@Override
|
||||||
public INetworkNode createNode() {
|
public INetworkNode createNode() {
|
||||||
return new NetworkNodeBasic(this, RS.INSTANCE.config.cableUsage, false);
|
return new NetworkNodeCable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -327,6 +327,11 @@ public class TileController extends TileBase implements INetworkMaster, IRedston
|
|||||||
super.update();
|
super.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IItemGridHandler getItemGridHandler() {
|
public IItemGridHandler getItemGridHandler() {
|
||||||
return itemGridHandler;
|
return itemGridHandler;
|
||||||
@@ -798,7 +803,7 @@ public class TileController extends TileBase implements INetworkMaster, IRedston
|
|||||||
if (container instanceof ICraftingPatternContainer) {
|
if (container instanceof ICraftingPatternContainer) {
|
||||||
ICraftingPattern pattern = ((ICraftingPatternProvider) stack.getItem()).create(world, stack, (ICraftingPatternContainer) container);
|
ICraftingPattern pattern = ((ICraftingPatternProvider) stack.getItem()).create(world, stack, (ICraftingPatternContainer) container);
|
||||||
|
|
||||||
ICraftingTaskFactory factory = API.instance().getCraftingTaskRegistry().getFactory(tag.getString(ICraftingTask.NBT_PATTERN_ID));
|
ICraftingTaskFactory factory = API.instance().getCraftingTaskRegistry().get(tag.getString(ICraftingTask.NBT_PATTERN_ID));
|
||||||
|
|
||||||
if (factory != null) {
|
if (factory != null) {
|
||||||
return factory.create(world, network, tag.hasKey(ICraftingTask.NBT_REQUESTED) ? new ItemStack(tag.getCompoundTag(ICraftingTask.NBT_REQUESTED)) : null, pattern, tag.getInteger(ICraftingTask.NBT_QUANTITY), tag);
|
return factory.create(world, network, tag.hasKey(ICraftingTask.NBT_REQUESTED) ? new ItemStack(tag.getCompoundTag(ICraftingTask.NBT_REQUESTED)) : null, pattern, tag.getInteger(ICraftingTask.NBT_QUANTITY), tag);
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile;
|
package com.raoulvdberge.refinedstorage.tile;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RS;
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeBasic;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNodeNetworkReceiver;
|
||||||
|
|
||||||
public class TileNetworkReceiver extends TileNode {
|
public class TileNetworkReceiver extends TileNode {
|
||||||
@Override
|
@Override
|
||||||
public INetworkNode createNode() {
|
public INetworkNode createNode() {
|
||||||
return new NetworkNodeBasic(this, RS.INSTANCE.config.networkReceiverUsage, true);
|
return new NetworkNodeNetworkReceiver();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.raoulvdberge.refinedstorage.tile;
|
package com.raoulvdberge.refinedstorage.tile;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNode;
|
||||||
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProvider;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
|
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeProxy;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeRegistry;
|
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||||
import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy;
|
import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy;
|
||||||
@@ -40,12 +40,12 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN
|
|||||||
public void invalidate() {
|
public void invalidate() {
|
||||||
super.invalidate();
|
super.invalidate();
|
||||||
|
|
||||||
if (getWorld() != null && !getWorld().isRemote) {
|
if (getWorld() != null) {
|
||||||
INetworkNode node = getNode();
|
INetworkNode node = getNode();
|
||||||
|
|
||||||
API.instance().getNetworkNodeRegistry(getWorld().provider.getDimension()).removeNode(pos);
|
API.instance().getNetworkNodeProvider(getWorld().provider.getDimension()).removeNode(pos);
|
||||||
|
|
||||||
if (node.getNetwork() != null) {
|
if (!getWorld().isRemote && node.getNetwork() != null) {
|
||||||
node.getNetwork().getNodeGraph().rebuild();
|
node.getNetwork().getNodeGraph().rebuild();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -107,12 +107,12 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public INetworkNode getNode() {
|
public INetworkNode getNode() {
|
||||||
INetworkNodeRegistry registry = API.instance().getNetworkNodeRegistry(getWorld().provider.getDimension());
|
INetworkNodeProvider provider = API.instance().getNetworkNodeProvider(getWorld().provider.getDimension());
|
||||||
|
|
||||||
INetworkNode node = registry.getNode(pos);
|
INetworkNode node = provider.getNode(pos);
|
||||||
|
|
||||||
if (node == null) {
|
if (node == null) {
|
||||||
registry.setNode(pos, node = createNode());
|
provider.setNode(pos, node = createNode());
|
||||||
}
|
}
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
|
|||||||
Reference in New Issue
Block a user