diff --git a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java index 698b6d530..1c727e16c 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/apiimpl/network/node/NetworkNodeCraftingMonitor.java @@ -3,7 +3,6 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.node; import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.RSUtils; import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask; -import com.raoulvdberge.refinedstorage.inventory.IItemHandlerListener; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFilter; import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode; import com.raoulvdberge.refinedstorage.item.filter.Filter; @@ -29,16 +28,12 @@ public class NetworkNodeCraftingMonitor extends NetworkNode implements ICrafting private boolean viewAutomated = true; private List filters = new ArrayList<>(); - private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), new IItemHandlerListener() { - private ItemHandlerListenerNetworkNode base = new ItemHandlerListenerNetworkNode(NetworkNodeCraftingMonitor.this); + private ItemHandlerListenerNetworkNode filterListener = new ItemHandlerListenerNetworkNode(this); + private ItemHandlerFilter filter = new ItemHandlerFilter(filters, new ArrayList<>(), slot -> { + filterListener.accept(slot); - @Override - public void onChanged(int slot) { - base.onChanged(slot); - - if (network != null) { - network.sendCraftingMonitorUpdate(); - } + if (network != null) { + network.sendCraftingMonitorUpdate(); } }); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/CyclopsComparer.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/CyclopsComparer.java deleted file mode 100644 index 90be857f0..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/CyclopsComparer.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.cyclopscore; - -import com.raoulvdberge.refinedstorage.api.util.IComparer; -import org.cyclops.commoncapabilities.api.capability.itemhandler.ItemMatch; - -public class CyclopsComparer { - public static int comparerFlagsToItemMatch(int flags) { - return comparerFlagsToItemMatch(flags, false); - } - - public static int comparerFlagsToItemMatch(int flags, boolean oredictWildcard) { - int itemMatch = 0; - if (!oredictWildcard) { - if ((flags & IComparer.COMPARE_DAMAGE) == IComparer.COMPARE_DAMAGE) { - itemMatch |= ItemMatch.DAMAGE; - } - if ((flags & IComparer.COMPARE_NBT) == IComparer.COMPARE_NBT) { - itemMatch |= ItemMatch.NBT; - } - } - if ((flags & IComparer.COMPARE_QUANTITY) == IComparer.COMPARE_QUANTITY) { - itemMatch |= ItemMatch.STACKSIZE; - } - return itemMatch; - } - - public static int itemMatchToComparerFlags(int itemMatch) { - int flags = 0; - if ((itemMatch & ItemMatch.DAMAGE) == ItemMatch.DAMAGE) { - flags |= IComparer.COMPARE_DAMAGE; - } - if ((itemMatch & ItemMatch.NBT) == ItemMatch.NBT) { - flags |= IComparer.COMPARE_NBT; - } - if ((itemMatch & ItemMatch.STACKSIZE) == ItemMatch.STACKSIZE) { - flags |= IComparer.COMPARE_QUANTITY; - } - return flags; - } -} \ No newline at end of file diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/SlotlessItemHandlerHelper.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/SlotlessItemHandlerHelper.java index 3e3b82c24..366d93ae7 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/SlotlessItemHandlerHelper.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/cyclopscore/SlotlessItemHandlerHelper.java @@ -57,7 +57,7 @@ public class SlotlessItemHandlerHelper { } public static ItemStack extractItem(ISlotlessItemHandler handler, @Nonnull ItemStack stack, int size, int flags, boolean simulate) { - int compare = CyclopsComparer.comparerFlagsToItemMatch(flags, stack.getMetadata() == OreDictionary.WILDCARD_VALUE); + int compare = comparerFlagsToItemMatch(flags, stack.getMetadata() == OreDictionary.WILDCARD_VALUE); stack = ItemHandlerHelper.copyStackWithSize(stack, size); if ((flags & IComparer.COMPARE_STRIP_NBT) == IComparer.COMPARE_STRIP_NBT) { stack = Comparer.stripTags(stack); @@ -102,4 +102,38 @@ public class SlotlessItemHandlerHelper { public static ItemStack extractItem(ISlotlessItemHandler slotlessItemHandler, int size, boolean simulate) { return slotlessItemHandler.extractItem(size, simulate); } + + public static int comparerFlagsToItemMatch(int flags) { + return comparerFlagsToItemMatch(flags, false); + } + + public static int comparerFlagsToItemMatch(int flags, boolean oredictWildcard) { + int itemMatch = 0; + if (!oredictWildcard) { + if ((flags & IComparer.COMPARE_DAMAGE) == IComparer.COMPARE_DAMAGE) { + itemMatch |= ItemMatch.DAMAGE; + } + if ((flags & IComparer.COMPARE_NBT) == IComparer.COMPARE_NBT) { + itemMatch |= ItemMatch.NBT; + } + } + if ((flags & IComparer.COMPARE_QUANTITY) == IComparer.COMPARE_QUANTITY) { + itemMatch |= ItemMatch.STACKSIZE; + } + return itemMatch; + } + + public static int itemMatchToComparerFlags(int itemMatch) { + int flags = 0; + if ((itemMatch & ItemMatch.DAMAGE) == ItemMatch.DAMAGE) { + flags |= IComparer.COMPARE_DAMAGE; + } + if ((itemMatch & ItemMatch.NBT) == ItemMatch.NBT) { + flags |= IComparer.COMPARE_NBT; + } + if ((itemMatch & ItemMatch.STACKSIZE) == ItemMatch.STACKSIZE) { + flags |= IComparer.COMPARE_QUANTITY; + } + return flags; + } } \ No newline at end of file diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ControllerEnergyForge.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ControllerEnergyForge.java index 9160f9d0a..03e198c59 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ControllerEnergyForge.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ControllerEnergyForge.java @@ -8,12 +8,10 @@ public class ControllerEnergyForge extends EnergyStorage { super(RS.INSTANCE.config.controllerCapacity, Integer.MAX_VALUE, 0); } - public int extractEnergyInternal(int maxExtract, boolean simulate) { + public int extractEnergyInternal(int maxExtract) { int energyExtracted = Math.min(energy, maxExtract); - if (!simulate) { - energy -= energyExtracted; - } + energy -= energyExtracted; return energyExtracted; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ReaderWriterHandlerForgeEnergy.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ReaderWriterHandlerForgeEnergy.java index 33ed9b1a0..d8963d671 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ReaderWriterHandlerForgeEnergy.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ReaderWriterHandlerForgeEnergy.java @@ -36,12 +36,10 @@ public class ReaderWriterHandlerForgeEnergy implements IReaderWriterHandler { @Override public void update(IReaderWriterChannel channel) { - // NO OP } @Override public void onWriterDisabled(IWriter writer) { - // NO OP } @Override @@ -106,7 +104,7 @@ public class ReaderWriterHandlerForgeEnergy implements IReaderWriterHandler { private IEnergyStorage parent; private boolean canExtract, canReceive; - public EnergyStorageReaderWriter(IEnergyStorage parent, boolean canExtract, boolean canReceive) { + EnergyStorageReaderWriter(IEnergyStorage parent, boolean canExtract, boolean canReceive) { this.canExtract = canExtract; this.canReceive = canReceive; this.parent = parent; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ControllerEnergyTesla.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ControllerEnergyTesla.java index de70b7129..fa311ebb4 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ControllerEnergyTesla.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ControllerEnergyTesla.java @@ -1,13 +1,13 @@ package com.raoulvdberge.refinedstorage.integration.tesla; -import com.raoulvdberge.refinedstorage.integration.forgeenergy.ControllerEnergyForge; import net.darkhax.tesla.api.ITeslaConsumer; import net.darkhax.tesla.api.ITeslaHolder; +import net.minecraftforge.energy.IEnergyStorage; public class ControllerEnergyTesla implements ITeslaHolder, ITeslaConsumer { - private ControllerEnergyForge energy; + private IEnergyStorage energy; - public ControllerEnergyTesla(ControllerEnergyForge energy) { + public ControllerEnergyTesla(IEnergyStorage energy) { this.energy = energy; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/IntegrationTesla.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/IntegrationTesla.java index 84f0c54ed..663f99d3a 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/IntegrationTesla.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/IntegrationTesla.java @@ -1,9 +1,14 @@ package com.raoulvdberge.refinedstorage.integration.tesla; +import com.raoulvdberge.refinedstorage.apiimpl.API; import net.minecraftforge.fml.common.Loader; public final class IntegrationTesla { public static boolean isLoaded() { return Loader.isModLoaded("tesla"); } + + public static void register() { + API.instance().getReaderWriterHandlerRegistry().add(ReaderWriterHandlerTesla.ID, ReaderWriterHandlerTesla::new); + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ReaderWriterHandlerTesla.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ReaderWriterHandlerTesla.java index 13c561d20..5ae173a64 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ReaderWriterHandlerTesla.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/tesla/ReaderWriterHandlerTesla.java @@ -40,12 +40,10 @@ public class ReaderWriterHandlerTesla implements IReaderWriterHandler { @Override public void update(IReaderWriterChannel channel) { - // NO OP } @Override public void onWriterDisabled(IWriter writer) { - // NO OP } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java index 150881479..a347bc107 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/proxy/ProxyCommon.java @@ -22,7 +22,6 @@ import com.raoulvdberge.refinedstorage.gui.GuiHandler; import com.raoulvdberge.refinedstorage.integration.craftingtweaks.IntegrationCraftingTweaks; import com.raoulvdberge.refinedstorage.integration.forgeenergy.ReaderWriterHandlerForgeEnergy; import com.raoulvdberge.refinedstorage.integration.tesla.IntegrationTesla; -import com.raoulvdberge.refinedstorage.integration.tesla.ReaderWriterHandlerTesla; import com.raoulvdberge.refinedstorage.item.*; import com.raoulvdberge.refinedstorage.network.*; import com.raoulvdberge.refinedstorage.tile.*; @@ -54,10 +53,6 @@ public class ProxyCommon { protected List cableTypes = new ArrayList<>(); public void preInit(FMLPreInitializationEvent e) { - if (IntegrationCraftingTweaks.isLoaded()) { - IntegrationCraftingTweaks.register(); - } - CapabilityNetworkNodeProxy.register(); API.deliver(e.getAsmData()); @@ -88,8 +83,12 @@ public class ProxyCommon { API.instance().getReaderWriterHandlerRegistry().add(ReaderWriterHandlerRedstone.ID, tag -> new ReaderWriterHandlerRedstone()); API.instance().getReaderWriterHandlerRegistry().add(ReaderWriterHandlerForgeEnergy.ID, ReaderWriterHandlerForgeEnergy::new); + if (IntegrationCraftingTweaks.isLoaded()) { + IntegrationCraftingTweaks.register(); + } + if (IntegrationTesla.isLoaded()) { - API.instance().getReaderWriterHandlerRegistry().add(ReaderWriterHandlerTesla.ID, ReaderWriterHandlerTesla::new); + IntegrationTesla.register(); } int id = 0; diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java index b94ec507e..254d841c1 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/TileController.java @@ -250,7 +250,7 @@ public class TileController extends TileBase implements INetworkMaster, IRedston if (!RS.INSTANCE.config.controllerUsesEnergy) { energy.setEnergyStored(energy.getMaxEnergyStored()); } else if (energy.getEnergyStored() - getEnergyUsage() >= 0) { - energy.extractEnergyInternal(getEnergyUsage(), false); + energy.extractEnergyInternal(getEnergyUsage()); } else { energy.setEnergyStored(0); }