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.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.readerwriter.IReaderWriterChannel;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
|
||||
@@ -30,10 +31,15 @@ public interface IRSAPI {
|
||||
IComparer getComparer();
|
||||
|
||||
/**
|
||||
* @param dimension the dimension
|
||||
* @return the network node registry for the given dimension
|
||||
* @return the network node factory
|
||||
*/
|
||||
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
|
||||
|
||||
@@ -24,5 +24,5 @@ public interface ICraftingMonitorElementRegistry {
|
||||
* @return the factory, or null if no factory was found
|
||||
*/
|
||||
@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
|
||||
*/
|
||||
@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 factory the factory
|
||||
*/
|
||||
void addFactory(String id, ICraftingTaskFactory factory);
|
||||
void add(String id, ICraftingTaskFactory factory);
|
||||
|
||||
/**
|
||||
* Returns the crafting task factory by factory id.
|
||||
@@ -23,5 +23,5 @@ public interface ICraftingTaskRegistry {
|
||||
* @return the factory
|
||||
*/
|
||||
@Nullable
|
||||
ICraftingTaskFactory getFactory(String id);
|
||||
ICraftingTaskFactory get(String id);
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ public interface INetworkMaster {
|
||||
* @return the crafting task
|
||||
*/
|
||||
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();
|
||||
|
||||
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;
|
||||
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
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
|
||||
INetworkNode getNode(BlockPos pos);
|
||||
|
||||
void removeNode(BlockPos pos);
|
||||
|
||||
void setNode(BlockPos pos, INetworkNode node);
|
||||
Function<NBTTagCompound, INetworkNode> get(String id);
|
||||
}
|
||||
|
||||
@@ -22,10 +22,10 @@ public interface IReaderWriterHandlerRegistry {
|
||||
* @return the factory, or null if no factory was found
|
||||
*/
|
||||
@Nullable
|
||||
IReaderWriterHandlerFactory getFactory(String id);
|
||||
IReaderWriterHandlerFactory get(String id);
|
||||
|
||||
/**
|
||||
* @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.preview.ICraftingPreviewElementRegistry;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.registry.ICraftingTaskRegistry;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetworkMaster;
|
||||
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.*;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterChannel;
|
||||
import com.raoulvdberge.refinedstorage.api.network.readerwriter.IReaderWriterHandlerRegistry;
|
||||
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.preview.CraftingPreviewElementRegistry;
|
||||
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.readerwriter.ReaderWriterChannel;
|
||||
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 IComparer comparer = new Comparer();
|
||||
private Map<Integer, INetworkNodeRegistry> networkNodeRegistryServer = new HashMap<>();
|
||||
private Map<Integer, INetworkNodeRegistry> networkNodeRegistryClient = new HashMap<>();
|
||||
private INetworkNodeRegistry networkNodeRegistry = new NetworkNodeRegistry();
|
||||
private Map<Integer, INetworkNodeProvider> networkNodeProviderServer = new HashMap<>();
|
||||
private Map<Integer, INetworkNodeProvider> networkNodeProviderClient = new HashMap<>();
|
||||
private ISoldererRegistry soldererRegistry = new SoldererRegistry();
|
||||
private ICraftingTaskRegistry craftingTaskRegistry = new CraftingTaskRegistry();
|
||||
private ICraftingMonitorElementRegistry craftingMonitorElementRegistry = new CraftingMonitorElementRegistry();
|
||||
@@ -88,10 +87,15 @@ public class API implements IRSAPI {
|
||||
}
|
||||
|
||||
@Override
|
||||
public INetworkNodeRegistry getNetworkNodeRegistry(int dimension) {
|
||||
Map<Integer, INetworkNodeRegistry> registry = FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT ? networkNodeRegistryClient : networkNodeRegistryServer;
|
||||
public INetworkNodeRegistry getNetworkNodeRegistry() {
|
||||
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
|
||||
|
||||
@@ -19,7 +19,7 @@ public class CraftingMonitorElementRegistry implements ICraftingMonitorElementRe
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Function<ByteBuf, ICraftingMonitorElement> getFactory(String id) {
|
||||
public Function<ByteBuf, ICraftingMonitorElement> get(String id) {
|
||||
return registry.get(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public class CraftingPreviewElementRegistry implements ICraftingPreviewElementRe
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Function<ByteBuf, ICraftingPreviewElement> getFactory(String id) {
|
||||
public Function<ByteBuf, ICraftingPreviewElement> get(String 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);
|
||||
|
||||
Deque<ItemStack> toInsert = new ArrayDeque<>();
|
||||
|
||||
@@ -11,13 +11,13 @@ public class CraftingTaskRegistry implements ICraftingTaskRegistry {
|
||||
private Map<String, ICraftingTaskFactory> registry = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void addFactory(String id, ICraftingTaskFactory factory) {
|
||||
public void add(String id, ICraftingTaskFactory factory) {
|
||||
registry.put(id, factory);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public ICraftingTaskFactory getFactory(String id) {
|
||||
public ICraftingTaskFactory get(String 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.INetworkNodeProxy;
|
||||
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 net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraftforge.event.world.BlockEvent;
|
||||
import net.minecraftforge.event.world.WorldEvent;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
|
||||
public class NetworkListener {
|
||||
public class NetworkNodeListener {
|
||||
@SubscribeEvent
|
||||
public void onBlockPlace(BlockEvent.PlaceEvent e) {
|
||||
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.INetworkNodeRegistry;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
|
||||
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
|
||||
@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);
|
||||
public Function<NBTTagCompound, INetworkNode> get(String id) {
|
||||
return factories.get(id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,9 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
|
||||
|
||||
private boolean active;
|
||||
|
||||
public NetworkNode() {
|
||||
}
|
||||
|
||||
public NetworkNode(INetworkNodeHolder holder) {
|
||||
this.holder = holder;
|
||||
}
|
||||
@@ -71,7 +74,9 @@ public abstract class NetworkNode implements INetworkNode, INetworkNeighborhoodA
|
||||
|
||||
@Override
|
||||
public void markDirty() {
|
||||
// @todo
|
||||
if (holder.world() != null) {
|
||||
WorldSavedDataNetworkNode.get(holder.world()).markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
@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;
|
||||
|
||||
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_TYPE = "Type";
|
||||
private static final String NBT_DROP = "Drop";
|
||||
@@ -236,6 +238,11 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable,
|
||||
RSUtils.readItems(upgrades, 1, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -22,6 +22,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkNodeCrafter extends NetworkNode implements ICraftingPatternContainer {
|
||||
public static final String ID = "crafter";
|
||||
|
||||
private static final String NBT_TRIGGERED_AUTOCRAFTING = "TriggeredAutocrafting";
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -12,6 +12,8 @@ import net.minecraft.util.math.BlockPos;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class NetworkNodeCraftingMonitor extends NetworkNode implements ICraftingMonitor {
|
||||
public static final String ID = "crafting_monitor";
|
||||
|
||||
public NetworkNodeCraftingMonitor(INetworkNodeHolder holder) {
|
||||
super(holder);
|
||||
}
|
||||
@@ -21,6 +23,11 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting
|
||||
return RS.INSTANCE.config.craftingMonitorUsage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasConnectivityState() {
|
||||
return true;
|
||||
|
||||
@@ -41,6 +41,8 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
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_MODE = "Mode";
|
||||
private static final String NBT_TYPE = "Type";
|
||||
@@ -186,6 +188,11 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I
|
||||
RSUtils.readItems(upgrades, 1, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -21,6 +21,8 @@ import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
||||
public class NetworkNodeDetector extends NetworkNode implements IComparable, IType {
|
||||
public static final String ID = "detector";
|
||||
|
||||
private static final int SPEED = 5;
|
||||
|
||||
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
|
||||
public void onConnectedStateChange(INetworkMaster network, boolean state) {
|
||||
super.onConnectedStateChange(network, state);
|
||||
|
||||
@@ -33,6 +33,8 @@ import javax.annotation.Nonnull;
|
||||
import java.util.List;
|
||||
|
||||
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 {
|
||||
private int lastState;
|
||||
|
||||
@@ -251,6 +253,11 @@ public class NetworkNodeDiskDrive extends NetworkNode implements IStorageGui, IS
|
||||
RSUtils.readItems(disks, 0, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -27,6 +27,8 @@ import javax.annotation.Nonnull;
|
||||
import java.util.ArrayList;
|
||||
|
||||
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_EXTRACT = 1;
|
||||
|
||||
@@ -506,6 +508,11 @@ public class NetworkNodeDiskManipulator extends NetworkNode implements IComparab
|
||||
RSUtils.readItems(outputDisks, 5, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -23,6 +23,8 @@ import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
|
||||
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_TYPE = "Type";
|
||||
private static final String NBT_REGULATOR = "Regulator";
|
||||
@@ -166,6 +168,11 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
|
||||
RSUtils.readItems(upgrades, 1, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -19,6 +19,8 @@ import net.minecraftforge.fluids.FluidTank;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
public class NetworkNodeFluidInterface extends NetworkNode implements IComparable {
|
||||
public static final String ID = "fluid_interface";
|
||||
|
||||
public static final int TANK_CAPACITY = 16000;
|
||||
|
||||
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
|
||||
public NBTTagCompound writeConfiguration(NBTTagCompound tag) {
|
||||
super.writeConfiguration(tag);
|
||||
|
||||
@@ -25,6 +25,8 @@ import net.minecraftforge.fluids.FluidStack;
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkNodeFluidStorage extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
||||
public static final String ID = "fluid_storage";
|
||||
|
||||
class StorageFluid extends StorageFluidNBT {
|
||||
public StorageFluid() {
|
||||
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
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -41,6 +41,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
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_SORTING_DIRECTION = "SortingDirection";
|
||||
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
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -23,6 +23,8 @@ import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
||||
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_MODE = "Mode";
|
||||
private static final String NBT_TYPE = "Type";
|
||||
@@ -130,6 +132,11 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi
|
||||
RSUtils.readItems(upgrades, 1, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -16,6 +16,8 @@ import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||
|
||||
public class NetworkNodeInterface extends NetworkNode implements IComparable {
|
||||
public static final String ID = "interface";
|
||||
|
||||
private static final String NBT_COMPARE = "Compare";
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound 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;
|
||||
|
||||
public class NetworkNodeNetworkTransmitter extends NetworkNode {
|
||||
public static final String ID = "network_transmitter";
|
||||
|
||||
private ItemHandlerUpgrade upgrades = new ItemHandlerUpgrade(1, new ItemHandlerListenerNetworkNode(this), ItemUpgrade.TYPE_INTERDIMENSIONAL) {
|
||||
@Override
|
||||
protected void onContentsChanged(int slot) {
|
||||
@@ -83,6 +85,11 @@ public class NetworkNodeNetworkTransmitter extends NetworkNode {
|
||||
RSUtils.readItems(upgrades, 1, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return Math.min(
|
||||
|
||||
@@ -10,6 +10,8 @@ import net.minecraft.entity.player.EntityPlayerMP;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
public class NetworkNodeReader extends NetworkNode implements IReader {
|
||||
public static final String ID = "reader";
|
||||
|
||||
private static final String NBT_CHANNEL = "Channel";
|
||||
|
||||
private String channel = "";
|
||||
@@ -62,6 +64,11 @@ public class NetworkNodeReader extends NetworkNode implements IReader {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -8,6 +8,8 @@ import net.minecraft.util.EnumFacing;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class NetworkNodeRelay extends NetworkNode {
|
||||
public static final String ID = "relay";
|
||||
|
||||
public NetworkNodeRelay(INetworkNodeHolder holder) {
|
||||
super(holder);
|
||||
|
||||
@@ -21,6 +23,11 @@ public class NetworkNodeRelay extends NetworkNode {
|
||||
return getRedstoneMode() == RedstoneMode.IGNORE ? 0 : RS.INSTANCE.config.relayUsage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConduct(@Nullable EnumFacing direction) {
|
||||
return canUpdate();
|
||||
|
||||
@@ -24,6 +24,8 @@ import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class NetworkNodeSecurityManager extends NetworkNode implements ISecurityCardContainer {
|
||||
public static final String ID = "security_manager";
|
||||
|
||||
private static final String NBT_OWNER = "Owner";
|
||||
|
||||
private List<ISecurityCard> actualCards = new ArrayList<>();
|
||||
@@ -120,6 +122,11 @@ public class NetworkNodeSecurityManager extends NetworkNode implements ISecurity
|
||||
RSUtils.readItems(editCard, 1, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -18,6 +18,8 @@ import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
public class NetworkNodeSolderer extends NetworkNode {
|
||||
public static final String ID = "solderer";
|
||||
|
||||
private static final String NBT_WORKING = "Working";
|
||||
private static final String NBT_PROGRESS = "Progress";
|
||||
|
||||
@@ -142,6 +144,11 @@ public class NetworkNodeSolderer extends NetworkNode {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -27,6 +27,8 @@ import javax.annotation.Nonnull;
|
||||
import java.util.List;
|
||||
|
||||
public class NetworkNodeStorage extends NetworkNode implements IStorageGui, IStorageProvider, IComparable, IFilterable, IPrioritizable, IExcessVoidable, IAccessType {
|
||||
public static final String ID = "storage";
|
||||
|
||||
class StorageItem extends StorageItemNBT {
|
||||
public StorageItem() {
|
||||
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
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -16,6 +16,8 @@ import net.minecraftforge.items.IItemHandler;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
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);
|
||||
|
||||
public NetworkNodeWirelessTransmitter(INetworkNodeHolder holder) {
|
||||
@@ -34,6 +36,11 @@ public class NetworkNodeWirelessTransmitter extends NetworkNode implements IWire
|
||||
RSUtils.readItems(upgrades, 0, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
@@ -14,6 +14,8 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
|
||||
public class NetworkNodeWriter extends NetworkNode implements IWriter {
|
||||
public static final String ID = "writer";
|
||||
|
||||
private static final String NBT_CHANNEL = "Channel";
|
||||
|
||||
private String channel = "";
|
||||
@@ -100,6 +102,11 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound 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;
|
||||
|
||||
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_COMPARE = "Compare";
|
||||
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
|
||||
public NBTTagCompound writeConfiguration(NBTTagCompound tag) {
|
||||
super.writeConfiguration(tag);
|
||||
|
||||
@@ -20,7 +20,7 @@ public class ReaderWriterChannel implements IReaderWriterChannel {
|
||||
public ReaderWriterChannel(String name, INetworkMaster network) {
|
||||
this.name = name;
|
||||
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
|
||||
@@ -59,7 +59,7 @@ public class ReaderWriterChannel implements IReaderWriterChannel {
|
||||
String id = String.format(NBT_HANDLER, handler.getId());
|
||||
|
||||
if (tag.hasKey(id)) {
|
||||
IReaderWriterHandlerFactory factory = API.instance().getReaderWriterHandlerRegistry().getFactory(id);
|
||||
IReaderWriterHandlerFactory factory = API.instance().getReaderWriterHandlerRegistry().get(id);
|
||||
|
||||
if (factory != null) {
|
||||
handlers.add(factory.create(tag.getCompoundTag(id)));
|
||||
|
||||
@@ -18,12 +18,12 @@ public class ReaderWriterHandlerRegistry implements IReaderWriterHandlerRegistry
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IReaderWriterHandlerFactory getFactory(String id) {
|
||||
public IReaderWriterHandlerFactory get(String id) {
|
||||
return factories.get(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<IReaderWriterHandlerFactory> getFactories() {
|
||||
public Collection<IReaderWriterHandlerFactory> all() {
|
||||
return factories.values();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ public class MessageCraftingMonitorElements implements IMessage, IMessageHandler
|
||||
int size = buf.readInt();
|
||||
|
||||
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) {
|
||||
elements.add(factory.apply(buf));
|
||||
|
||||
@@ -37,7 +37,7 @@ public class MessageGridCraftingPreviewResponse implements IMessage, IMessageHan
|
||||
int size = buf.readInt();
|
||||
|
||||
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.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.NetworkListener;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.NetworkNodeListener;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerFluids;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerItems;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.readerwriter.ReaderWriterHandlerRedstone;
|
||||
@@ -62,7 +63,7 @@ public class ProxyCommon {
|
||||
|
||||
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(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 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 -> {
|
||||
String id = 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);
|
||||
@@ -125,7 +126,7 @@ public class ProxyCommon {
|
||||
NetworkRegistry.INSTANCE.registerGuiHandler(RS.INSTANCE, new GuiHandler());
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(new ContainerListener());
|
||||
MinecraftForge.EVENT_BUS.register(new NetworkListener());
|
||||
MinecraftForge.EVENT_BUS.register(new NetworkNodeListener());
|
||||
|
||||
registerTile(TileController.class, "controller");
|
||||
registerTile(TileGrid.class, "grid");
|
||||
@@ -228,338 +229,338 @@ public class ProxyCommon {
|
||||
|
||||
// Quartz Enriched Iron
|
||||
GameRegistry.addRecipe(new ItemStack(RSItems.QUARTZ_ENRICHED_IRON, 4),
|
||||
"II",
|
||||
"IQ",
|
||||
'I', new ItemStack(Items.IRON_INGOT),
|
||||
'Q', new ItemStack(Items.QUARTZ)
|
||||
"II",
|
||||
"IQ",
|
||||
'I', new ItemStack(Items.IRON_INGOT),
|
||||
'Q', new ItemStack(Items.QUARTZ)
|
||||
);
|
||||
|
||||
// Machine Casing
|
||||
GameRegistry.addRecipe(new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
"EEE",
|
||||
"E E",
|
||||
"EEE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
"EEE",
|
||||
"E E",
|
||||
"EEE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
);
|
||||
|
||||
// Construction Core
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
new ItemStack(Items.GLOWSTONE_DUST)
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
new ItemStack(Items.GLOWSTONE_DUST)
|
||||
);
|
||||
|
||||
// Destruction Core
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
new ItemStack(Items.QUARTZ)
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
new ItemStack(Items.QUARTZ)
|
||||
);
|
||||
|
||||
// Relay
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(RSBlocks.RELAY),
|
||||
new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
new ItemStack(RSBlocks.CABLE),
|
||||
new ItemStack(Blocks.REDSTONE_TORCH)
|
||||
new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
new ItemStack(RSBlocks.CABLE),
|
||||
new ItemStack(Blocks.REDSTONE_TORCH)
|
||||
);
|
||||
|
||||
// Controller
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSBlocks.CONTROLLER, 1, EnumControllerType.NORMAL.getId()),
|
||||
"EDE",
|
||||
"SMS",
|
||||
"ESE",
|
||||
'D', new ItemStack(Items.DIAMOND),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'S', "itemSilicon"
|
||||
"EDE",
|
||||
"SMS",
|
||||
"ESE",
|
||||
'D', new ItemStack(Items.DIAMOND),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'S', "itemSilicon"
|
||||
));
|
||||
|
||||
// Solderer
|
||||
GameRegistry.addRecipe(new ItemStack(RSBlocks.SOLDERER),
|
||||
"ESE",
|
||||
"E E",
|
||||
"ESE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'S', new ItemStack(Blocks.STICKY_PISTON)
|
||||
"ESE",
|
||||
"E E",
|
||||
"ESE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'S', new ItemStack(Blocks.STICKY_PISTON)
|
||||
);
|
||||
|
||||
// Disk Drive
|
||||
API.instance().getSoldererRegistry().addRecipe(API.instance().getSoldererRegistry().createSimpleRecipe(
|
||||
new ItemStack(RSBlocks.DISK_DRIVE),
|
||||
500,
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
new ItemStack(Blocks.CHEST)
|
||||
new ItemStack(RSBlocks.DISK_DRIVE),
|
||||
500,
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
new ItemStack(Blocks.CHEST)
|
||||
));
|
||||
|
||||
// Cable
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSBlocks.CABLE, 12),
|
||||
"EEE",
|
||||
"GRG",
|
||||
"EEE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE)
|
||||
"EEE",
|
||||
"GRG",
|
||||
"EEE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE)
|
||||
));
|
||||
|
||||
// Wireless Transmitter
|
||||
GameRegistry.addRecipe(new ItemStack(RSBlocks.WIRELESS_TRANSMITTER),
|
||||
"EPE",
|
||||
"EME",
|
||||
"EAE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'P', new ItemStack(Items.ENDER_PEARL),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING)
|
||||
"EPE",
|
||||
"EME",
|
||||
"EAE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'P', new ItemStack(Items.ENDER_PEARL),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING)
|
||||
);
|
||||
|
||||
// Grid
|
||||
GameRegistry.addRecipe(new ItemStack(RSBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
|
||||
"ECE",
|
||||
"PMP",
|
||||
"EDE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING)
|
||||
"ECE",
|
||||
"PMP",
|
||||
"EDE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING)
|
||||
);
|
||||
|
||||
// Crafting Grid
|
||||
API.instance().getSoldererRegistry().addRecipe(API.instance().getSoldererRegistry().createSimpleRecipe(
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.CRAFTING.getId()),
|
||||
500,
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
|
||||
new ItemStack(Blocks.CRAFTING_TABLE)
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.CRAFTING.getId()),
|
||||
500,
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
|
||||
new ItemStack(Blocks.CRAFTING_TABLE)
|
||||
));
|
||||
|
||||
// Pattern Grid
|
||||
API.instance().getSoldererRegistry().addRecipe(API.instance().getSoldererRegistry().createSimpleRecipe(
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.PATTERN.getId()),
|
||||
500,
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
|
||||
new ItemStack(RSItems.PATTERN)
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.PATTERN.getId()),
|
||||
500,
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
|
||||
new ItemStack(RSItems.PATTERN)
|
||||
));
|
||||
|
||||
// Fluid Grid
|
||||
API.instance().getSoldererRegistry().addRecipe(API.instance().getSoldererRegistry().createSimpleRecipe(
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.FLUID.getId()),
|
||||
500,
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
|
||||
new ItemStack(Items.BUCKET)
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.FLUID.getId()),
|
||||
500,
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
new ItemStack(RSBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
|
||||
new ItemStack(Items.BUCKET)
|
||||
));
|
||||
|
||||
// Wireless Grid
|
||||
GameRegistry.addRecipe(new ItemStack(RSItems.WIRELESS_GRID, 1, ItemWirelessGrid.TYPE_NORMAL),
|
||||
"EPE",
|
||||
"EGE",
|
||||
"EAE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.ENDER_PEARL),
|
||||
'G', new ItemStack(RSBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
"EPE",
|
||||
"EGE",
|
||||
"EAE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.ENDER_PEARL),
|
||||
'G', new ItemStack(RSBlocks.GRID, 1, EnumGridType.NORMAL.getId()),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
);
|
||||
|
||||
// Wireless Fluid Grid
|
||||
GameRegistry.addRecipe(new ItemStack(RSItems.WIRELESS_FLUID_GRID, 1, ItemWirelessFluidGrid.TYPE_NORMAL),
|
||||
"EPE",
|
||||
"EGE",
|
||||
"EAE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.ENDER_PEARL),
|
||||
'G', new ItemStack(RSBlocks.GRID, 1, EnumGridType.FLUID.getId()),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
"EPE",
|
||||
"EGE",
|
||||
"EAE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.ENDER_PEARL),
|
||||
'G', new ItemStack(RSBlocks.GRID, 1, EnumGridType.FLUID.getId()),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
);
|
||||
|
||||
// Wireless Crafting Monitor
|
||||
GameRegistry.addRecipe(new ItemStack(RSItems.WIRELESS_CRAFTING_MONITOR, 1, ItemWirelessCraftingMonitor.TYPE_NORMAL),
|
||||
"EPE",
|
||||
"EME",
|
||||
"EAE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.ENDER_PEARL),
|
||||
'M', new ItemStack(RSBlocks.CRAFTING_MONITOR),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
"EPE",
|
||||
"EME",
|
||||
"EAE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.ENDER_PEARL),
|
||||
'M', new ItemStack(RSBlocks.CRAFTING_MONITOR),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
);
|
||||
|
||||
// Crafter
|
||||
GameRegistry.addRecipe(new ItemStack(RSBlocks.CRAFTER),
|
||||
"ECE",
|
||||
"AMA",
|
||||
"EDE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING)
|
||||
"ECE",
|
||||
"AMA",
|
||||
"EDE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING)
|
||||
);
|
||||
|
||||
// Processing Pattern Encoder
|
||||
GameRegistry.addRecipe(new ItemStack(RSBlocks.PROCESSING_PATTERN_ENCODER),
|
||||
"ECE",
|
||||
"PMP",
|
||||
"EFE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'P', new ItemStack(RSItems.PATTERN),
|
||||
'C', new ItemStack(Blocks.CRAFTING_TABLE),
|
||||
'F', new ItemStack(Blocks.FURNACE)
|
||||
"ECE",
|
||||
"PMP",
|
||||
"EFE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'P', new ItemStack(RSItems.PATTERN),
|
||||
'C', new ItemStack(Blocks.CRAFTING_TABLE),
|
||||
'F', new ItemStack(Blocks.FURNACE)
|
||||
);
|
||||
|
||||
// External Storage
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSBlocks.EXTERNAL_STORAGE),
|
||||
"CED",
|
||||
"HMH",
|
||||
"EPE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'H', "chest",
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.CABLE),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
"CED",
|
||||
"HMH",
|
||||
"EPE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'H', "chest",
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.CABLE),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
));
|
||||
|
||||
// Importer
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(RSBlocks.IMPORTER),
|
||||
new ItemStack(RSBlocks.CABLE),
|
||||
new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
new ItemStack(RSBlocks.CABLE),
|
||||
new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
);
|
||||
|
||||
// Exporter
|
||||
GameRegistry.addShapelessRecipe(new ItemStack(RSBlocks.EXPORTER),
|
||||
new ItemStack(RSBlocks.CABLE),
|
||||
new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
new ItemStack(RSBlocks.CABLE),
|
||||
new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
);
|
||||
|
||||
// Destructor
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSBlocks.DESTRUCTOR),
|
||||
"EDE",
|
||||
"RMR",
|
||||
"EIE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'M', new ItemStack(RSBlocks.CABLE),
|
||||
'I', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
"EDE",
|
||||
"RMR",
|
||||
"EIE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'M', new ItemStack(RSBlocks.CABLE),
|
||||
'I', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
);
|
||||
|
||||
// Constructor
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSBlocks.CONSTRUCTOR),
|
||||
"ECE",
|
||||
"RMR",
|
||||
"EIE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'M', new ItemStack(RSBlocks.CABLE),
|
||||
'I', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
"ECE",
|
||||
"RMR",
|
||||
"EIE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'M', new ItemStack(RSBlocks.CABLE),
|
||||
'I', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
);
|
||||
|
||||
// Detector
|
||||
GameRegistry.addRecipe(new ItemStack(RSBlocks.DETECTOR),
|
||||
"ECE",
|
||||
"RMR",
|
||||
"EPE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'C', new ItemStack(Items.COMPARATOR),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
"ECE",
|
||||
"RMR",
|
||||
"EPE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'C', new ItemStack(Items.COMPARATOR),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
);
|
||||
|
||||
// Storage Parts
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_1K),
|
||||
"SES",
|
||||
"GRG",
|
||||
"SGS",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'S', "itemSilicon",
|
||||
'G', "blockGlass"
|
||||
"SES",
|
||||
"GRG",
|
||||
"SGS",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'S', "itemSilicon",
|
||||
'G', "blockGlass"
|
||||
));
|
||||
|
||||
GameRegistry.addRecipe(new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_4K),
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
'S', new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_1K)
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
'S', new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_1K)
|
||||
);
|
||||
|
||||
GameRegistry.addRecipe(new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_16K),
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED),
|
||||
'S', new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_4K)
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED),
|
||||
'S', new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_4K)
|
||||
);
|
||||
|
||||
GameRegistry.addRecipe(new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_64K),
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'S', new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_16K)
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'S', new ItemStack(RSItems.STORAGE_PART, 1, ItemStoragePart.TYPE_16K)
|
||||
);
|
||||
|
||||
// Fluid Storage Parts
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_64K),
|
||||
"SES",
|
||||
"GRG",
|
||||
"SGS",
|
||||
'R', new ItemStack(Items.BUCKET),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'S', "itemSilicon",
|
||||
'G', "blockGlass"
|
||||
"SES",
|
||||
"GRG",
|
||||
"SGS",
|
||||
'R', new ItemStack(Items.BUCKET),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'S', "itemSilicon",
|
||||
'G', "blockGlass"
|
||||
));
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_128K),
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.BUCKET),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
'S', new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_64K)
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.BUCKET),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
'S', new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_64K)
|
||||
));
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_256K),
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.BUCKET),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED),
|
||||
'S', new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_128K)
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.BUCKET),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED),
|
||||
'S', new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_128K)
|
||||
));
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_512K),
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.BUCKET),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'S', new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_256K)
|
||||
"PEP",
|
||||
"SRS",
|
||||
"PSP",
|
||||
'R', new ItemStack(Items.BUCKET),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'S', new ItemStack(RSItems.FLUID_STORAGE_PART, 1, ItemFluidStoragePart.TYPE_256K)
|
||||
));
|
||||
|
||||
// Storage Housing
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSItems.STORAGE_HOUSING),
|
||||
"GRG",
|
||||
"R R",
|
||||
"EEE",
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
"GRG",
|
||||
"R R",
|
||||
"EEE",
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
));
|
||||
|
||||
// Storage Disks
|
||||
@@ -567,18 +568,18 @@ public class ProxyCommon {
|
||||
ItemStack disk = StorageItemNBT.createStackWithNBT(new ItemStack(RSItems.STORAGE_DISK, 1, type));
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(disk,
|
||||
"GRG",
|
||||
"RPR",
|
||||
"EEE",
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'P', new ItemStack(RSItems.STORAGE_PART, 1, type),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
"GRG",
|
||||
"RPR",
|
||||
"EEE",
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'P', new ItemStack(RSItems.STORAGE_PART, 1, type),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
));
|
||||
|
||||
GameRegistry.addShapelessRecipe(disk,
|
||||
new ItemStack(RSItems.STORAGE_HOUSING),
|
||||
new ItemStack(RSItems.STORAGE_PART, 1, type)
|
||||
new ItemStack(RSItems.STORAGE_HOUSING),
|
||||
new ItemStack(RSItems.STORAGE_PART, 1, type)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -587,39 +588,39 @@ public class ProxyCommon {
|
||||
ItemStack disk = StorageFluidNBT.createStackWithNBT(new ItemStack(RSItems.FLUID_STORAGE_DISK, 1, type));
|
||||
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(disk,
|
||||
"GRG",
|
||||
"RPR",
|
||||
"EEE",
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'P', new ItemStack(RSItems.FLUID_STORAGE_PART, 1, type),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
"GRG",
|
||||
"RPR",
|
||||
"EEE",
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'P', new ItemStack(RSItems.FLUID_STORAGE_PART, 1, type),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
));
|
||||
|
||||
GameRegistry.addShapelessRecipe(disk,
|
||||
new ItemStack(RSItems.STORAGE_HOUSING),
|
||||
new ItemStack(RSItems.FLUID_STORAGE_PART, 1, type)
|
||||
new ItemStack(RSItems.STORAGE_HOUSING),
|
||||
new ItemStack(RSItems.FLUID_STORAGE_PART, 1, type)
|
||||
);
|
||||
}
|
||||
|
||||
// Pattern
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSItems.PATTERN),
|
||||
"GRG",
|
||||
"RGR",
|
||||
"EEE",
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
"GRG",
|
||||
"RGR",
|
||||
"EEE",
|
||||
'G', "blockGlass",
|
||||
'R', new ItemStack(Items.REDSTONE),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
));
|
||||
|
||||
// Upgrade
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSItems.UPGRADE, 1, 0),
|
||||
"EGE",
|
||||
"EPE",
|
||||
"EGE",
|
||||
'G', "blockGlass",
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
"EGE",
|
||||
"EPE",
|
||||
"EGE",
|
||||
'G', "blockGlass",
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED),
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON)
|
||||
));
|
||||
|
||||
API.instance().getSoldererRegistry().addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.TYPE_RANGE));
|
||||
@@ -632,11 +633,11 @@ public class ProxyCommon {
|
||||
API.instance().getSoldererRegistry().addRecipe(new SoldererRecipeUpgrade(ItemUpgrade.initializeForFortune(3)));
|
||||
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSItems.UPGRADE, 1, ItemUpgrade.TYPE_STACK),
|
||||
"USU",
|
||||
"SUS",
|
||||
"USU",
|
||||
'U', new ItemStack(Items.SUGAR),
|
||||
'S', new ItemStack(RSItems.UPGRADE, 1, ItemUpgrade.TYPE_SPEED)
|
||||
"USU",
|
||||
"SUS",
|
||||
"USU",
|
||||
'U', new ItemStack(Items.SUGAR),
|
||||
'S', new ItemStack(RSItems.UPGRADE, 1, ItemUpgrade.TYPE_SPEED)
|
||||
);
|
||||
|
||||
// Storage Blocks
|
||||
@@ -653,117 +654,117 @@ public class ProxyCommon {
|
||||
|
||||
// Crafting Monitor
|
||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(RSBlocks.CRAFTING_MONITOR),
|
||||
"EGE",
|
||||
"GMG",
|
||||
"EPE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'G', "blockGlass",
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
"EGE",
|
||||
"GMG",
|
||||
"EPE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'G', "blockGlass",
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_IMPROVED)
|
||||
));
|
||||
|
||||
// Interface
|
||||
API.instance().getSoldererRegistry().addRecipe(API.instance().getSoldererRegistry().createSimpleRecipe(
|
||||
new ItemStack(RSBlocks.INTERFACE),
|
||||
200,
|
||||
new ItemStack(RSBlocks.IMPORTER),
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
new ItemStack(RSBlocks.EXPORTER)
|
||||
new ItemStack(RSBlocks.INTERFACE),
|
||||
200,
|
||||
new ItemStack(RSBlocks.IMPORTER),
|
||||
new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC),
|
||||
new ItemStack(RSBlocks.EXPORTER)
|
||||
));
|
||||
|
||||
// Fluid Interface
|
||||
API.instance().getSoldererRegistry().addRecipe(API.instance().getSoldererRegistry().createSimpleRecipe(
|
||||
new ItemStack(RSBlocks.FLUID_INTERFACE),
|
||||
200,
|
||||
new ItemStack(Items.BUCKET),
|
||||
new ItemStack(RSBlocks.INTERFACE),
|
||||
new ItemStack(Items.BUCKET)
|
||||
new ItemStack(RSBlocks.FLUID_INTERFACE),
|
||||
200,
|
||||
new ItemStack(Items.BUCKET),
|
||||
new ItemStack(RSBlocks.INTERFACE),
|
||||
new ItemStack(Items.BUCKET)
|
||||
));
|
||||
|
||||
// Grid Filter
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSItems.GRID_FILTER),
|
||||
"EPE",
|
||||
"PHP",
|
||||
"EPE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.PAPER),
|
||||
'H', new ItemStack(Blocks.HOPPER)
|
||||
"EPE",
|
||||
"PHP",
|
||||
"EPE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.PAPER),
|
||||
'H', new ItemStack(Blocks.HOPPER)
|
||||
);
|
||||
|
||||
// Network Card
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSItems.NETWORK_CARD),
|
||||
"EEE",
|
||||
"PAP",
|
||||
"EEE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.PAPER),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
"EEE",
|
||||
"PAP",
|
||||
"EEE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(Items.PAPER),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
);
|
||||
|
||||
// Network Transmitter
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSBlocks.NETWORK_TRANSMITTER),
|
||||
"EEE",
|
||||
"CMD",
|
||||
"AAA",
|
||||
'E', new ItemStack(Items.ENDER_PEARL),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
"EEE",
|
||||
"CMD",
|
||||
"AAA",
|
||||
'E', new ItemStack(Items.ENDER_PEARL),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
);
|
||||
|
||||
// Network Receiver
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSBlocks.NETWORK_RECEIVER),
|
||||
"AAA",
|
||||
"CMD",
|
||||
"EEE",
|
||||
'E', new ItemStack(Items.ENDER_PEARL),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
"AAA",
|
||||
"CMD",
|
||||
"EEE",
|
||||
'E', new ItemStack(Items.ENDER_PEARL),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
);
|
||||
|
||||
// Disk Manipulator
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSBlocks.DISK_MANIPULATOR),
|
||||
"ESE",
|
||||
"CMD",
|
||||
"ESE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'S', new ItemStack(RSItems.STORAGE_HOUSING),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION)
|
||||
"ESE",
|
||||
"CMD",
|
||||
"ESE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'S', new ItemStack(RSItems.STORAGE_HOUSING),
|
||||
'C', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_CONSTRUCTION),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'D', new ItemStack(RSItems.CORE, 1, ItemCore.TYPE_DESTRUCTION)
|
||||
);
|
||||
|
||||
// Wrench
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSItems.WRENCH),
|
||||
"EPE",
|
||||
"EEE",
|
||||
" E ",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC)
|
||||
"EPE",
|
||||
"EEE",
|
||||
" E ",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_BASIC)
|
||||
);
|
||||
|
||||
// Security Manager
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSBlocks.SECURITY_MANAGER),
|
||||
"ECE",
|
||||
"CMC",
|
||||
"ECE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'C', new ItemStack(RSItems.NETWORK_CARD)
|
||||
"ECE",
|
||||
"CMC",
|
||||
"ECE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'P', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED),
|
||||
'M', new ItemStack(RSBlocks.MACHINE_CASING),
|
||||
'C', new ItemStack(RSItems.NETWORK_CARD)
|
||||
);
|
||||
|
||||
// Security Card
|
||||
GameRegistry.addShapedRecipe(new ItemStack(RSItems.SECURITY_CARD),
|
||||
"EEE",
|
||||
"CAC",
|
||||
"EEE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'C', new ItemStack(RSItems.NETWORK_CARD),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
"EEE",
|
||||
"CAC",
|
||||
"EEE",
|
||||
'E', new ItemStack(RSItems.QUARTZ_ENRICHED_IRON),
|
||||
'C', new ItemStack(RSItems.NETWORK_CARD),
|
||||
'A', new ItemStack(RSItems.PROCESSOR, 1, ItemProcessor.TYPE_ADVANCED)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -793,6 +794,18 @@ public class ProxyCommon {
|
||||
try {
|
||||
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);
|
||||
} catch (InstantiationException | IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
package com.raoulvdberge.refinedstorage.tile;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
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 {
|
||||
@Override
|
||||
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();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemGridHandler getItemGridHandler() {
|
||||
return itemGridHandler;
|
||||
@@ -798,7 +803,7 @@ public class TileController extends TileBase implements INetworkMaster, IRedston
|
||||
if (container instanceof ICraftingPatternContainer) {
|
||||
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) {
|
||||
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;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
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 {
|
||||
@Override
|
||||
public INetworkNode createNode() {
|
||||
return new NetworkNodeBasic(this, RS.INSTANCE.config.networkReceiverUsage, true);
|
||||
return new NetworkNodeNetworkReceiver();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.raoulvdberge.refinedstorage.tile;
|
||||
|
||||
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.INetworkNodeRegistry;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.API;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.network.node.NetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.proxy.CapabilityNetworkNodeProxy;
|
||||
@@ -40,12 +40,12 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN
|
||||
public void invalidate() {
|
||||
super.invalidate();
|
||||
|
||||
if (getWorld() != null && !getWorld().isRemote) {
|
||||
if (getWorld() != null) {
|
||||
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();
|
||||
}
|
||||
}
|
||||
@@ -107,12 +107,12 @@ public abstract class TileNode extends TileBase implements INetworkNodeProxy, IN
|
||||
|
||||
@Override
|
||||
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) {
|
||||
registry.setNode(pos, node = createNode());
|
||||
provider.setNode(pos, node = createNode());
|
||||
}
|
||||
|
||||
return node;
|
||||
|
||||
Reference in New Issue
Block a user