From 6ff8fd8aea785b0050c6b16b413c399d219c8b16 Mon Sep 17 00:00:00 2001
From: Korewa_Li
Date: Sat, 11 Mar 2023 00:38:49 +0700
Subject: [PATCH] Implementing Module system for PipeFluidExtractor,
PipeFluidInsertion, PipeFluidSatellite, PipeFluidSupplierMk2,
PipeItemsFluidSupplier. Change conditions stuff in
PipeItemsSatelliteLogistics (Commit for:
https://github.com/RS485/LogisticsPipes/issues/1679)
---
.../modules/ModuleFluidExtractor.java | 62 +++++++
.../modules/ModuleFluidInsertion.java | 108 +++++++++++
.../modules/ModuleFluidSupplier.java | 151 +++++++++++++++-
.../modules/ModuleFluidSupplierMK2.java | 31 ++++
.../pipes/PipeFluidExtractor.java | 60 ++-----
.../pipes/PipeFluidInsertion.java | 100 +----------
.../pipes/PipeFluidSatellite.java | 46 ++---
.../pipes/PipeFluidSupplierMk2.java | 67 +++----
.../pipes/PipeItemsFluidSupplier.java | 167 ++----------------
.../pipes/PipeItemsSatelliteLogistics.java | 3 +-
.../pipes/basic/CoreRoutedPipe.java | 2 +-
11 files changed, 425 insertions(+), 372 deletions(-)
create mode 100644 common/logisticspipes/modules/ModuleFluidExtractor.java
create mode 100644 common/logisticspipes/modules/ModuleFluidInsertion.java
create mode 100644 common/logisticspipes/modules/ModuleFluidSupplierMK2.java
diff --git a/common/logisticspipes/modules/ModuleFluidExtractor.java b/common/logisticspipes/modules/ModuleFluidExtractor.java
new file mode 100644
index 000000000..4a8fd89cd
--- /dev/null
+++ b/common/logisticspipes/modules/ModuleFluidExtractor.java
@@ -0,0 +1,62 @@
+package logisticspipes.modules;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.jetbrains.annotations.NotNull;
+
+import net.minecraft.util.EnumFacing;
+
+import net.minecraftforge.fluids.FluidStack;
+
+import logisticspipes.interfaces.ITankUtil;
+import logisticspipes.pipes.PipeFluidUtil;
+import logisticspipes.transport.PipeFluidTransportLogistics;
+import logisticspipes.utils.FluidIdentifierStack;
+import network.rs485.logisticspipes.property.IntListProperty;
+import network.rs485.logisticspipes.property.Property;
+
+public class ModuleFluidExtractor extends ModuleFluidInsertion {
+
+ private static final int flowRate = 500;
+ private static final int energyPerFlow = 5;
+
+ public final IntListProperty liquidToExtract = new IntListProperty("liquidToExtract");
+
+ @NotNull
+ @Override
+ public String getLPName() {
+ throw new RuntimeException("Cannot get LP name for " + this);
+ }
+
+ @NotNull
+ @Override
+ public List> getProperties() {
+ return Collections.singletonList(liquidToExtract);
+ }
+
+ @Override
+ public void tick() {
+ PipeFluidUtil.INSTANCE.getAdjacentTanks(fluidPipe, false)
+ .forEach(tankData -> extractFrom(tankData.getValue2(), tankData.getValue1().getDirection()));
+ }
+
+ private void extractFrom(ITankUtil container, EnumFacing side) {
+ int sideID = side.ordinal();
+ FluidStack contained = ((PipeFluidTransportLogistics) fluidPipe.transport).getTankProperties(side)[0].getContents();
+ int amountMissing = ((PipeFluidTransportLogistics) fluidPipe.transport).getSideCapacity() - (contained != null ? contained.amount : 0);
+ if (liquidToExtract.get(sideID) < Math.min(ModuleFluidExtractor.flowRate, amountMissing)) {
+ if (fluidPipe.useEnergy(ModuleFluidExtractor.energyPerFlow)) {
+ liquidToExtract.set(sideID, Math.min(ModuleFluidExtractor.flowRate, amountMissing));
+ }
+ }
+ FluidIdentifierStack extracted = container.drain(Math.min(liquidToExtract.get(sideID), ModuleFluidExtractor.flowRate), false);
+
+ int inserted = 0;
+ if (extracted != null) {
+ inserted = ((PipeFluidTransportLogistics) fluidPipe.transport).fill(side, extracted.makeFluidStack(), true);
+ container.drain(inserted, true);
+ }
+ liquidToExtract.increase(sideID, -inserted);
+ }
+}
diff --git a/common/logisticspipes/modules/ModuleFluidInsertion.java b/common/logisticspipes/modules/ModuleFluidInsertion.java
new file mode 100644
index 000000000..83bfa2d24
--- /dev/null
+++ b/common/logisticspipes/modules/ModuleFluidInsertion.java
@@ -0,0 +1,108 @@
+package logisticspipes.modules;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+import com.google.common.collect.ImmutableList;
+import org.jetbrains.annotations.NotNull;
+
+import net.minecraft.util.EnumFacing;
+
+import net.minecraftforge.fluids.FluidStack;
+
+import logisticspipes.logisticspipes.IRoutedItem;
+import logisticspipes.pipes.basic.fluid.FluidRoutedPipe;
+import logisticspipes.proxy.SimpleServiceLocator;
+import logisticspipes.transport.PipeFluidTransportLogistics;
+import logisticspipes.utils.FluidIdentifierStack;
+import logisticspipes.utils.FluidSinkReply;
+import logisticspipes.utils.item.ItemIdentifierStack;
+import logisticspipes.utils.tuples.Pair;
+import network.rs485.logisticspipes.property.IntListProperty;
+import network.rs485.logisticspipes.property.Property;
+
+public class ModuleFluidInsertion extends LogisticsModule {
+
+ protected final FluidRoutedPipe fluidPipe = (FluidRoutedPipe) Objects.requireNonNull(_service, "service object was null in " + this);
+ public final IntListProperty nextSendMax = new IntListProperty("nextSendMax");
+ public final IntListProperty nextSendMin = new IntListProperty("nextSendMin");
+
+ @NotNull
+ @Override
+ public String getLPName() {
+ throw new RuntimeException("Cannot get LP name for " + this);
+ }
+
+ @NotNull
+ @Override
+ public List> getProperties() {
+ return ImmutableList.>builder()
+ .add(nextSendMax)
+ .add(nextSendMin)
+ .build();
+ }
+
+ @Override
+ public void tick() {
+ PipeFluidTransportLogistics transport = (PipeFluidTransportLogistics) fluidPipe.transport;
+ for (EnumFacing dir : EnumFacing.VALUES) {
+ FluidStack stack = transport.sideTanks[dir.ordinal()].getFluid();
+ if (stack == null) {
+ continue;
+ }
+ stack = stack.copy();
+
+ if (this.nextSendMax.get(dir.ordinal()) > 0 && stack.amount < transport.sideTanks[dir.ordinal()].getCapacity()) {
+ this.nextSendMax.increase(dir.ordinal(), -1);
+ continue;
+ }
+ if (nextSendMin.get(dir.ordinal()) > 0) {
+ this.nextSendMin.increase(dir.ordinal(), -1);
+ continue;
+ }
+
+ Pair result = SimpleServiceLocator.logisticsFluidManager.getBestReply(FluidIdentifierStack.getFromStack(stack), fluidPipe.getRouter(), new ArrayList<>());
+ if (result == null || result.getValue2().sinkAmount <= 0) {
+ this.nextSendMax.set(dir.ordinal(), 100);
+ this.nextSendMin.set(dir.ordinal(), 10);
+ continue;
+ }
+
+ if (!fluidPipe.useEnergy((int) (0.01 * result.getValue2().getSinkAmountInt()))) {
+ this.nextSendMax.set(dir.ordinal(), 100);
+ this.nextSendMin.set(dir.ordinal(), 10);
+ continue;
+ }
+
+ FluidStack toSend = transport.sideTanks[dir.ordinal()].drain(result.getValue2().getSinkAmountInt(), true);
+ ItemIdentifierStack liquidContainer = SimpleServiceLocator.logisticsFluidManager.getFluidContainer(FluidIdentifierStack.getFromStack(toSend));
+ IRoutedItem routed = SimpleServiceLocator.routedItemHelper.createNewTravelItem(liquidContainer);
+ routed.setDestination(result.getValue1());
+ routed.setTransportMode(IRoutedItem.TransportMode.Passive);
+ fluidPipe.queueRoutedItem(routed, dir);
+ this.nextSendMax.set(dir.ordinal(), 100);
+ this.nextSendMin.set(dir.ordinal(), 5);
+ }
+ }
+
+ @Override
+ public boolean hasGenericInterests() {
+ return false;
+ }
+
+ @Override
+ public boolean interestedInAttachedInventory() {
+ return false;
+ }
+
+ @Override
+ public boolean interestedInUndamagedID() {
+ return false;
+ }
+
+ @Override
+ public boolean receivePassive() {
+ return false;
+ }
+}
diff --git a/common/logisticspipes/modules/ModuleFluidSupplier.java b/common/logisticspipes/modules/ModuleFluidSupplier.java
index 2b901b833..1a94aad90 100644
--- a/common/logisticspipes/modules/ModuleFluidSupplier.java
+++ b/common/logisticspipes/modules/ModuleFluidSupplier.java
@@ -1,33 +1,52 @@
package logisticspipes.modules;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
import javax.annotation.Nonnull;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+
+import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.fluids.FluidUtil;
import logisticspipes.interfaces.IClientInformationProvider;
import logisticspipes.interfaces.IPipeServiceProvider;
+import logisticspipes.interfaces.ITankUtil;
+import logisticspipes.interfaces.routing.IRequestItems;
import logisticspipes.network.NewGuiHandler;
import logisticspipes.network.abstractguis.ModuleCoordinatesGuiProvider;
import logisticspipes.network.abstractguis.ModuleInHandGuiProvider;
import logisticspipes.network.guis.module.inpipe.FluidSupplierSlot;
import logisticspipes.pipefxhandlers.Particles;
import logisticspipes.pipes.PipeLogisticsChassis.ChassiTargetInformation;
+import logisticspipes.pipes.PipeItemsFluidSupplier;
+import logisticspipes.pipes.basic.fluid.FluidRoutedPipe;
+import logisticspipes.request.RequestTree;
+import logisticspipes.utils.item.ItemIdentifierStack;
+import logisticspipes.utils.FluidIdentifier;
+import logisticspipes.utils.FluidIdentifierStack;
import logisticspipes.utils.SinkReply;
import logisticspipes.utils.SinkReply.FixedPriority;
import logisticspipes.utils.item.ItemIdentifier;
import logisticspipes.utils.item.ItemIdentifierInventory;
+
+import network.rs485.logisticspipes.connection.LPNeighborTileEntityKt;
+import network.rs485.logisticspipes.connection.NeighborTileEntity;
import network.rs485.logisticspipes.module.Gui;
+import network.rs485.logisticspipes.property.BooleanProperty;
import network.rs485.logisticspipes.property.InventoryProperty;
import network.rs485.logisticspipes.property.Property;
public class ModuleFluidSupplier extends LogisticsModule implements IClientInformationProvider, Gui {
- private final InventoryProperty filterInventory = new InventoryProperty(
+ protected final FluidRoutedPipe fluidPipe = (FluidRoutedPipe) Objects.requireNonNull(_service, "service object was null in " + this);
+
+ private final HashMap _requestedItems = new HashMap<>();
+
+ public final InventoryProperty filterInventory = new InventoryProperty(
new ItemIdentifierInventory(9, "Requested liquids", 1), "");
+ public final BooleanProperty _requestPartials = new BooleanProperty(false, "requestpartials");
private SinkReply _sinkReply;
@@ -78,7 +97,129 @@ public SinkReply sinksItem(@Nonnull ItemStack stack, ItemIdentifier item, int be
}
@Override
- public void tick() {}
+ public void tick() {
+ for (NeighborTileEntity neighbor : fluidPipe.getAdjacent().fluidTanks()) {
+ final ITankUtil tankUtil = LPNeighborTileEntityKt.getTankUtil(neighbor);
+ if (tankUtil == null || !tankUtil.containsTanks()) {
+ continue;
+ }
+
+ //How much do I want?
+ Map wantContainers = this.filterInventory.getItemsAndCount();
+ HashMap wantFluids = new HashMap<>();
+ for (Map.Entry item : wantContainers.entrySet()) {
+ ItemStack wantItem = item.getKey().unsafeMakeNormalStack(1);
+ FluidStack liquidstack = FluidUtil.getFluidContained(wantItem);
+ if (liquidstack == null) {
+ continue;
+ }
+ wantFluids.put(FluidIdentifier.get(liquidstack), item.getValue() * liquidstack.amount);
+ }
+
+ //How much do I have?
+ HashMap haveFluids = new HashMap<>();
+
+ tankUtil.tanks()
+ .map(tank -> FluidIdentifierStack.getFromStack(tank.getContents()))
+ .filter(Objects::nonNull)
+ .forEach(fluid -> {
+ if (wantFluids.containsKey(fluid.getFluid())) {
+ haveFluids.merge(fluid.getFluid(), fluid.getAmount(), Integer::sum);
+ }
+ });
+
+ //HashMap needFluids = new HashMap();
+ //Reduce what I have and what have been requested already
+ for (Map.Entry liquidId : wantFluids.entrySet()) {
+ Integer haveCount = haveFluids.get(liquidId.getKey());
+ if (haveCount != null) {
+ liquidId.setValue(liquidId.getValue() - haveCount);
+ }
+ }
+ for (Map.Entry requestedItem : _requestedItems.entrySet()) {
+ ItemStack wantItem = requestedItem.getKey().unsafeMakeNormalStack(1);
+ FluidStack requestedFluidId = FluidUtil.getFluidContained(wantItem);
+ if (requestedFluidId == null) {
+ continue;
+ }
+ FluidIdentifier requestedFluid = FluidIdentifier.get(requestedFluidId);
+ Integer want = wantFluids.get(requestedFluid);
+ if (want != null) {
+ wantFluids.put(requestedFluid, want - requestedItem.getValue() * requestedFluidId.amount);
+ }
+ }
+
+ ((PipeItemsFluidSupplier) Objects.requireNonNull(fluidPipe.container).pipe).setRequestFailed(false);
+
+ //Make request
+
+ for (ItemIdentifier need : wantContainers.keySet()) {
+ FluidStack requestedFluidId = FluidUtil.getFluidContained(need.unsafeMakeNormalStack(1));
+ if (requestedFluidId == null) {
+ continue;
+ }
+ if (!wantFluids.containsKey(FluidIdentifier.get(requestedFluidId))) {
+ continue;
+ }
+ int countToRequest = wantFluids.get(FluidIdentifier.get(requestedFluidId)) / requestedFluidId.amount;
+ if (countToRequest < 1) {
+ continue;
+ }
+
+ if (!fluidPipe.useEnergy(11)) {
+ break;
+ }
+
+ boolean success = false;
+
+ if (this._requestPartials.getValue()) {
+ countToRequest = RequestTree.requestPartial(need.makeStack(countToRequest), (IRequestItems) fluidPipe.container.pipe, null);
+ if (countToRequest > 0) {
+ success = true;
+ }
+ } else {
+ success = RequestTree.request(need.makeStack(countToRequest), (IRequestItems) fluidPipe.container.pipe, null, null);
+ }
+
+ if (success) {
+ Integer currentRequest = _requestedItems.get(need);
+ if (currentRequest == null) {
+ _requestedItems.put(need, countToRequest);
+ } else {
+ _requestedItems.put(need, currentRequest + countToRequest);
+ }
+ } else {
+ ((PipeItemsFluidSupplier) fluidPipe.container.pipe).setRequestFailed(true);
+ }
+ }
+ }
+ }
+
+ public void decreaseRequested(ItemIdentifierStack item) {
+ int remaining = item.getStackSize();
+ //see if we can get an exact match
+ Integer count = _requestedItems.get(item.getItem());
+ if (count != null) {
+ _requestedItems.put(item.getItem(), Math.max(0, count - remaining));
+ remaining -= count;
+ }
+ if (remaining <= 0) {
+ return;
+ }
+ //still remaining... was from fuzzyMatch on a crafter
+ for (Map.Entry e : _requestedItems.entrySet()) {
+ if (e.getKey().item == item.getItem().item && e.getKey().itemDamage == item.getItem().itemDamage) {
+ int expected = e.getValue();
+ e.setValue(Math.max(0, expected - remaining));
+ remaining -= expected;
+ }
+ if (remaining <= 0) {
+ return;
+ }
+ }
+ //we have no idea what this is, log it.
+ fluidPipe.debug.log("liquid supplier got unexpected item " + item);
+ }
@Override
public @Nonnull
diff --git a/common/logisticspipes/modules/ModuleFluidSupplierMK2.java b/common/logisticspipes/modules/ModuleFluidSupplierMK2.java
new file mode 100644
index 000000000..856ec96ec
--- /dev/null
+++ b/common/logisticspipes/modules/ModuleFluidSupplierMK2.java
@@ -0,0 +1,31 @@
+package logisticspipes.modules;
+
+import java.util.List;
+
+import com.google.common.collect.ImmutableList;
+import org.jetbrains.annotations.NotNull;
+
+import logisticspipes.pipes.PipeFluidSupplierMk2;
+import logisticspipes.utils.item.ItemIdentifierInventory;
+import network.rs485.logisticspipes.property.*;
+
+public class ModuleFluidSupplierMK2 extends ModuleFluidSupplier {
+
+ public final InventoryProperty dummyInventory = new InventoryProperty(
+ new ItemIdentifierInventory(1, "Fluid to keep stocked", 127, true), "");
+ public final IntegerProperty amount = new IntegerProperty(0, "amount");
+ public final BooleanProperty _requestPartials = new BooleanProperty(false, "requestpartials");
+ public final EnumProperty _bucketMinimum = new EnumProperty<>(PipeFluidSupplierMk2.MinMode.ONEBUCKET,
+ "_bucketMinimum", PipeFluidSupplierMk2.MinMode.values());
+
+ @NotNull
+ @Override
+ public List> getProperties() {
+ return ImmutableList.>builder()
+ .add(dummyInventory)
+ .add(amount)
+ .add(_requestPartials)
+ .add(_bucketMinimum)
+ .build();
+ }
+}
diff --git a/common/logisticspipes/pipes/PipeFluidExtractor.java b/common/logisticspipes/pipes/PipeFluidExtractor.java
index 9b2344254..1f33cb77c 100644
--- a/common/logisticspipes/pipes/PipeFluidExtractor.java
+++ b/common/logisticspipes/pipes/PipeFluidExtractor.java
@@ -1,26 +1,22 @@
package logisticspipes.pipes;
import net.minecraft.item.Item;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.EnumFacing;
-import net.minecraftforge.fluids.FluidStack;
-
-import logisticspipes.interfaces.ITankUtil;
+import logisticspipes.modules.LogisticsModule;
+import logisticspipes.modules.ModuleFluidExtractor;
+import logisticspipes.pipes.basic.fluid.FluidRoutedPipe;
import logisticspipes.textures.Textures;
import logisticspipes.textures.Textures.TextureType;
-import logisticspipes.transport.PipeFluidTransportLogistics;
-import logisticspipes.utils.FluidIdentifierStack;
-
-public class PipeFluidExtractor extends PipeFluidInsertion {
- private int[] liquidToExtract = new int[6];
+public class PipeFluidExtractor extends FluidRoutedPipe {
- private static final int flowRate = 500;
- private static final int energyPerFlow = 5;
+ private final ModuleFluidExtractor moduleFluidExtractor;
public PipeFluidExtractor(Item item) {
super(item);
+ moduleFluidExtractor = new ModuleFluidExtractor();
+ moduleFluidExtractor.registerHandler(this, this);
+ moduleFluidExtractor.registerPosition(LogisticsModule.ModulePositionType.IN_PIPE, 0);
}
@Override
@@ -29,46 +25,26 @@ public void enabledUpdateEntity() {
if (!isNthTick(10)) {
return;
}
- PipeFluidUtil.INSTANCE.getAdjacentTanks(this, false)
- .forEach(tankData -> extractFrom(tankData.getValue2(), tankData.getValue1().getDirection()));
+ moduleFluidExtractor.tick();
}
- private void extractFrom(ITankUtil container, EnumFacing side) {
- int sideID = side.ordinal();
- FluidStack contained = ((PipeFluidTransportLogistics) transport).getTankProperties(side)[0].getContents();
- int amountMissing = ((PipeFluidTransportLogistics) transport).getSideCapacity() - (contained != null ? contained.amount : 0);
- if (liquidToExtract[sideID] < Math.min(PipeFluidExtractor.flowRate, amountMissing)) {
- if (this.useEnergy(PipeFluidExtractor.energyPerFlow)) {
- liquidToExtract[sideID] += Math.min(PipeFluidExtractor.flowRate, amountMissing);
- }
- }
- FluidIdentifierStack extracted = container.drain(Math.min(liquidToExtract[sideID], PipeFluidExtractor.flowRate), false);
-
- int inserted = 0;
- if (extracted != null) {
- inserted = ((PipeFluidTransportLogistics) transport).fill(side, extracted.makeFluidStack(), true);
- container.drain(inserted, true);
- }
- liquidToExtract[sideID] -= inserted;
+ @Override
+ public TextureType getCenterTexture() {
+ return Textures.LOGISTICSPIPE_LIQUID_EXTRACTOR;
}
@Override
- public void writeToNBT(NBTTagCompound nbttagcompound) {
- super.writeToNBT(nbttagcompound);
- nbttagcompound.setIntArray("liquidToExtract", liquidToExtract);
+ public boolean canInsertToTanks() {
+ return false;
}
@Override
- public void readFromNBT(NBTTagCompound nbttagcompound) {
- super.readFromNBT(nbttagcompound);
- liquidToExtract = nbttagcompound.getIntArray("liquidToExtract");
- if (liquidToExtract.length < 6) {
- liquidToExtract = new int[6];
- }
+ public boolean canInsertFromSideToTanks() {
+ return false;
}
@Override
- public TextureType getCenterTexture() {
- return Textures.LOGISTICSPIPE_LIQUID_EXTRACTOR;
+ public boolean canReceiveFluid() {
+ return true;
}
}
diff --git a/common/logisticspipes/pipes/PipeFluidInsertion.java b/common/logisticspipes/pipes/PipeFluidInsertion.java
index 2cc6d78e5..47ae022cb 100644
--- a/common/logisticspipes/pipes/PipeFluidInsertion.java
+++ b/common/logisticspipes/pipes/PipeFluidInsertion.java
@@ -1,114 +1,28 @@
package logisticspipes.pipes;
-import java.util.ArrayList;
-import java.util.List;
-import javax.annotation.Nonnull;
-
import net.minecraft.item.Item;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.EnumFacing;
-
-import net.minecraftforge.fluids.FluidStack;
-import logisticspipes.logisticspipes.IRoutedItem;
-import logisticspipes.logisticspipes.IRoutedItem.TransportMode;
+import logisticspipes.modules.LogisticsModule;
+import logisticspipes.modules.ModuleFluidInsertion;
import logisticspipes.pipes.basic.fluid.FluidRoutedPipe;
-import logisticspipes.proxy.SimpleServiceLocator;
import logisticspipes.textures.Textures;
import logisticspipes.textures.Textures.TextureType;
-import logisticspipes.transport.PipeFluidTransportLogistics;
-import logisticspipes.utils.FluidIdentifierStack;
-import logisticspipes.utils.FluidSinkReply;
-import logisticspipes.utils.item.ItemIdentifierStack;
-import logisticspipes.utils.tuples.Pair;
public class PipeFluidInsertion extends FluidRoutedPipe {
- private final List> localJamList = new ArrayList<>();
- private int[] nextSendMax = new int[EnumFacing.VALUES.length];
- private int[] nextSendMin = new int[EnumFacing.VALUES.length];
+ private final ModuleFluidInsertion moduleFluidInsertion;
public PipeFluidInsertion(Item item) {
super(item);
+ moduleFluidInsertion = new ModuleFluidInsertion();
+ moduleFluidInsertion.registerHandler(this, this);
+ moduleFluidInsertion.registerPosition(LogisticsModule.ModulePositionType.IN_PIPE, 0);
}
@Override
public void enabledUpdateEntity() {
super.enabledUpdateEntity();
- List tempJamList = new ArrayList<>();
- if (!localJamList.isEmpty()) {
- List> toRemove = new ArrayList<>();
- for (Pair part : localJamList) {
- part.setValue2(part.getValue2() - 1);
- if (part.getValue2() <= 0) {
- toRemove.add(part);
- } else {
- tempJamList.add(part.getValue1());
- }
- }
- if (!toRemove.isEmpty()) {
- localJamList.removeAll(toRemove);
- }
- }
- PipeFluidTransportLogistics transport = (PipeFluidTransportLogistics) this.transport;
- for (EnumFacing dir : EnumFacing.VALUES) {
- FluidStack stack = transport.sideTanks[dir.ordinal()].getFluid();
- if (stack == null) {
- continue;
- }
- stack = stack.copy();
-
- if (nextSendMax[dir.ordinal()] > 0 && stack.amount < transport.sideTanks[dir.ordinal()].getCapacity()) {
- nextSendMax[dir.ordinal()]--;
- continue;
- }
- if (nextSendMin[dir.ordinal()] > 0) {
- nextSendMin[dir.ordinal()]--;
- continue;
- }
-
- Pair result = SimpleServiceLocator.logisticsFluidManager.getBestReply(FluidIdentifierStack.getFromStack(stack), getRouter(), tempJamList);
- if (result == null || result.getValue2().sinkAmount <= 0) {
- nextSendMax[dir.ordinal()] = 100;
- nextSendMin[dir.ordinal()] = 10;
- continue;
- }
-
- if (!useEnergy((int) (0.01 * result.getValue2().getSinkAmountInt()))) {
- nextSendMax[dir.ordinal()] = 100;
- nextSendMin[dir.ordinal()] = 10;
- continue;
- }
-
- FluidStack toSend = transport.sideTanks[dir.ordinal()].drain(result.getValue2().getSinkAmountInt(), true);
- ItemIdentifierStack liquidContainer = SimpleServiceLocator.logisticsFluidManager.getFluidContainer(FluidIdentifierStack.getFromStack(toSend));
- IRoutedItem routed = SimpleServiceLocator.routedItemHelper.createNewTravelItem(liquidContainer);
- routed.setDestination(result.getValue1());
- routed.setTransportMode(TransportMode.Passive);
- this.queueRoutedItem(routed, dir);
- nextSendMax[dir.ordinal()] = 100;
- nextSendMin[dir.ordinal()] = 5;
- }
- }
-
- @Override
- public void writeToNBT(@Nonnull NBTTagCompound tag) {
- super.writeToNBT(tag);
- tag.setIntArray("nextSendMax", nextSendMax);
- tag.setIntArray("nextSendMin", nextSendMin);
- }
-
- @Override
- public void readFromNBT(@Nonnull NBTTagCompound tag) {
- super.readFromNBT(tag);
- nextSendMax = tag.getIntArray("nextSendMax");
- if (nextSendMax.length < 6) {
- nextSendMax = new int[6];
- }
- nextSendMin = tag.getIntArray("nextSendMin");
- if (nextSendMin.length < 6) {
- nextSendMin = new int[6];
- }
+ moduleFluidInsertion.tick();
}
@Override
diff --git a/common/logisticspipes/pipes/PipeFluidSatellite.java b/common/logisticspipes/pipes/PipeFluidSatellite.java
index aa263281d..d7e2de188 100644
--- a/common/logisticspipes/pipes/PipeFluidSatellite.java
+++ b/common/logisticspipes/pipes/PipeFluidSatellite.java
@@ -16,9 +16,6 @@
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
-import net.minecraft.nbt.NBTTagCompound;
-
-import lombok.Getter;
import logisticspipes.LogisticsPipes;
import logisticspipes.gui.hud.HUDSatellite;
@@ -48,6 +45,8 @@
import logisticspipes.utils.item.ItemIdentifierStack;
import network.rs485.logisticspipes.SatellitePipe;
+import org.jetbrains.annotations.NotNull;
+
public class PipeFluidSatellite extends FluidRoutedPipe implements IRequestFluid, IRequireReliableFluidTransport, IHeadUpDisplayRendererProvider, IChestContentReceiver, SatellitePipe {
// from baseLogicLiquidSatellite
@@ -65,9 +64,6 @@ public static void cleanup() {
protected final Map _lostItems = new HashMap<>();
private final ModuleSatellite moduleSatellite;
- @Getter
- private String satellitePipeName = "";
-
public PipeFluidSatellite(Item item) {
super(item);
throttleTime = 40;
@@ -150,7 +146,8 @@ public void stopWatching() {
public void playerStartWatching(EntityPlayer player, int mode) {
if (mode == 1) {
localModeWatchers.add(player);
- final ModernPacket packet = PacketHandler.getPacket(SyncSatelliteNamePacket.class).setString((this).satellitePipeName).setPosX(getX()).setPosY(getY()).setPosZ(getZ());
+ final ModernPacket packet = PacketHandler.getPacket(SyncSatelliteNamePacket.class)
+ .setString(this.moduleSatellite.satellitePipeName.getValue()).setPosX(getX()).setPosY(getY()).setPosZ(getZ());
MainProxy.sendPacketToPlayer(packet, player);
updateInv(true);
} else {
@@ -164,28 +161,8 @@ public void playerStopWatching(EntityPlayer player, int mode) {
localModeWatchers.remove(player);
}
- @Override
- public void readFromNBT(NBTTagCompound nbttagcompound) {
- super.readFromNBT(nbttagcompound);
- if (nbttagcompound.hasKey("satelliteid")) {
- int satelliteId = nbttagcompound.getInteger("satelliteid");
- satellitePipeName = Integer.toString(satelliteId);
- } else {
- satellitePipeName = nbttagcompound.getString("satellitePipeName");
- }
- if (MainProxy.isServer(getWorld())) {
- ensureAllSatelliteStatus();
- }
- }
-
- @Override
- public void writeToNBT(NBTTagCompound nbttagcompound) {
- nbttagcompound.setString("satellitePipeName", satellitePipeName);
- super.writeToNBT(nbttagcompound);
- }
-
public void ensureAllSatelliteStatus() {
- if (satellitePipeName.isEmpty()) {
+ if (this.moduleSatellite.satellitePipeName.isEmpty()) {
PipeFluidSatellite.AllSatellites.remove(this);
} else {
PipeFluidSatellite.AllSatellites.add(this);
@@ -195,7 +172,7 @@ public void ensureAllSatelliteStatus() {
public void updateWatchers() {
final LogisticsTileGenericPipe container = Objects.requireNonNull(getContainer());
CoordinatesPacket packet = PacketHandler.getPacket(SyncSatelliteNamePacket.class)
- .setString(satellitePipeName)
+ .setString(this.moduleSatellite.satellitePipeName.getValue())
.setTilePos(container);
MainProxy.sendToPlayerList(packet, localModeWatchers);
MainProxy.sendPacketToAllWatchingChunk(container, packet);
@@ -212,7 +189,8 @@ public void onAllowedRemoval() {
@Override
public void onWrenchClicked(EntityPlayer entityplayer) {
// Send the satellite id when opening gui
- final ModernPacket packet = PacketHandler.getPacket(SyncSatelliteNamePacket.class).setString(satellitePipeName).setPosX(getX()).setPosY(getY()).setPosZ(getZ());
+ final ModernPacket packet = PacketHandler.getPacket(SyncSatelliteNamePacket.class)
+ .setString(this.moduleSatellite.satellitePipeName.getValue()).setPosX(getX()).setPosY(getY()).setPosZ(getZ());
MainProxy.sendPacketToPlayer(packet, entityplayer);
entityplayer.openGui(LogisticsPipes.instance, GuiIDs.GUI_SatellitePipe_ID, getWorld(), getX(), getY(), getZ());
}
@@ -266,9 +244,15 @@ public Set getSatellitesOfType() {
return Collections.unmodifiableSet(AllSatellites);
}
+ @NotNull
+ @Override
+ public String getSatellitePipeName() {
+ return this.moduleSatellite.satellitePipeName.getValue();
+ }
+
@Override
public void setSatellitePipeName(@Nonnull String satellitePipeName) {
- this.satellitePipeName = satellitePipeName;
+ this.moduleSatellite.satellitePipeName.setValue(satellitePipeName);
}
@Nonnull
diff --git a/common/logisticspipes/pipes/PipeFluidSupplierMk2.java b/common/logisticspipes/pipes/PipeFluidSupplierMk2.java
index 9c8e1d766..71f86cb04 100644
--- a/common/logisticspipes/pipes/PipeFluidSupplierMk2.java
+++ b/common/logisticspipes/pipes/PipeFluidSupplierMk2.java
@@ -8,7 +8,6 @@
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
-import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.fluids.FluidTank;
@@ -17,6 +16,8 @@
import logisticspipes.LogisticsPipes;
import logisticspipes.interfaces.routing.IRequestFluid;
import logisticspipes.interfaces.routing.IRequireReliableFluidTransport;
+import logisticspipes.modules.LogisticsModule;
+import logisticspipes.modules.ModuleFluidSupplierMK2;
import logisticspipes.network.GuiIDs;
import logisticspipes.network.PacketHandler;
import logisticspipes.network.packets.pipe.FluidSupplierAmount;
@@ -28,7 +29,6 @@
import logisticspipes.transport.PipeFluidTransportLogistics;
import logisticspipes.utils.FluidIdentifier;
import logisticspipes.utils.FluidIdentifierStack;
-import logisticspipes.utils.item.ItemIdentifierInventory;
import logisticspipes.utils.item.ItemIdentifierStack;
public class PipeFluidSupplierMk2 extends FluidRoutedPipe implements IRequestFluid, IRequireReliableFluidTransport {
@@ -49,9 +49,14 @@ public enum MinMode {
}
}
+ private final ModuleFluidSupplierMK2 moduleFluidSupplierMK2;
+
public PipeFluidSupplierMk2(Item item) {
super(item);
throttleTime = 100;
+ moduleFluidSupplierMK2 = new ModuleFluidSupplierMK2();
+ moduleFluidSupplierMK2.registerHandler(this, this);
+ moduleFluidSupplierMK2.registerPosition(LogisticsModule.ModulePositionType.IN_PIPE, 0);
}
@Override
@@ -94,14 +99,8 @@ public boolean hasGenericInterests() {
}
//from PipeFluidSupplierMk2
- private ItemIdentifierInventory dummyInventory = new ItemIdentifierInventory(1, "Fluid to keep stocked", 127, true);
- private int amount = 0;
-
private final Map _requestedItems = new HashMap<>();
- private boolean _requestPartials = false;
- private MinMode _bucketMinimum = MinMode.ONEBUCKET;
-
@Override
public void throttledUpdateEntity() {
if (!isEnabled()) {
@@ -111,7 +110,7 @@ public void throttledUpdateEntity() {
return;
}
super.throttledUpdateEntity();
- if (dummyInventory.getIDStackInSlot(0) == null) {
+ if (moduleFluidSupplierMK2.dummyInventory.getIDStackInSlot(0) == null) {
return;
}
@@ -122,10 +121,10 @@ public void throttledUpdateEntity() {
//How much do I want?
Map wantFluids = new HashMap<>();
- ItemIdentifierStack stack = dummyInventory.getIDStackInSlot(0);
+ ItemIdentifierStack stack = moduleFluidSupplierMK2.dummyInventory.getIDStackInSlot(0);
if (stack == null) return;
FluidIdentifier fIdent = FluidIdentifier.get(stack.getItem());
- wantFluids.put(fIdent, amount);
+ wantFluids.put(fIdent, moduleFluidSupplierMK2.amount.getValue());
//How much do I have?
HashMap haveFluids = new HashMap<>();
@@ -174,7 +173,8 @@ public void throttledUpdateEntity() {
if (countToRequest < 1) {
continue;
}
- if (_bucketMinimum.getAmount() != 0 && countToRequest < _bucketMinimum.getAmount()) {
+ if (moduleFluidSupplierMK2._bucketMinimum.getValue().getAmount() != 0
+ && countToRequest < moduleFluidSupplierMK2._bucketMinimum.getValue().getAmount()) {
continue;
}
@@ -184,7 +184,7 @@ public void throttledUpdateEntity() {
boolean success = false;
- if (_requestPartials) {
+ if (moduleFluidSupplierMK2._requestPartials.getValue()) {
countToRequest = RequestTree.requestFluidPartial(need, countToRequest, this, null);
if (countToRequest > 0) {
success = true;
@@ -207,24 +207,6 @@ public void throttledUpdateEntity() {
});
}
- @Override
- public void readFromNBT(NBTTagCompound nbttagcompound) {
- super.readFromNBT(nbttagcompound);
- dummyInventory.readFromNBT(nbttagcompound, "");
- _requestPartials = nbttagcompound.getBoolean("requestpartials");
- amount = nbttagcompound.getInteger("amount");
- _bucketMinimum = MinMode.values()[nbttagcompound.getByte("_bucketMinimum")];
- }
-
- @Override
- public void writeToNBT(NBTTagCompound nbttagcompound) {
- super.writeToNBT(nbttagcompound);
- dummyInventory.writeToNBT(nbttagcompound, "");
- nbttagcompound.setBoolean("requestpartials", _requestPartials);
- nbttagcompound.setInteger("amount", amount);
- nbttagcompound.setByte("_bucketMinimum", (byte) _bucketMinimum.ordinal());
- }
-
private void decreaseRequested(FluidIdentifier liquid, int remaining) {
//see if we can get an exact match
Integer count = _requestedItems.get(liquid);
@@ -265,19 +247,19 @@ public void liquidArrived(FluidIdentifier item, int amount) {
public void liquidNotInserted(FluidIdentifier item, int amount) {}
public boolean isRequestingPartials() {
- return _requestPartials;
+ return moduleFluidSupplierMK2._requestPartials.getValue();
}
public void setRequestingPartials(boolean value) {
- _requestPartials = value;
+ moduleFluidSupplierMK2._requestPartials.setValue(value);
}
public MinMode getMinMode() {
- return _bucketMinimum;
+ return moduleFluidSupplierMK2._bucketMinimum.getValue();
}
public void setMinMode(MinMode value) {
- _bucketMinimum = value;
+ moduleFluidSupplierMK2._bucketMinimum.setValue(value);
}
@Override
@@ -286,25 +268,26 @@ public void onWrenchClicked(EntityPlayer entityplayer) {
}
public IInventory getDummyInventory() {
- return dummyInventory;
+ return moduleFluidSupplierMK2.dummyInventory;
}
public int getAmount() {
- return amount;
+ return moduleFluidSupplierMK2.amount.getValue();
}
public void setAmount(int amount) {
if (MainProxy.isClient(Objects.requireNonNull(container).getWorld())) {
- this.amount = amount;
+ moduleFluidSupplierMK2.amount.setValue(amount);
}
}
public void changeFluidAmount(int change, EntityPlayer player) {
- amount += change;
- if (amount <= 0) {
- amount = 0;
+ moduleFluidSupplierMK2.amount.increase(change);
+ if (moduleFluidSupplierMK2.amount.getValue() <= 0) {
+ moduleFluidSupplierMK2.amount.setValue(0);
}
- MainProxy.sendPacketToPlayer(PacketHandler.getPacket(FluidSupplierAmount.class).setInteger(amount).setPosX(getX()).setPosY(getY()).setPosZ(getZ()), player);
+ MainProxy.sendPacketToPlayer(PacketHandler.getPacket(FluidSupplierAmount.class)
+ .setInteger(moduleFluidSupplierMK2.amount.getValue()).setPosX(getX()).setPosY(getY()).setPosZ(getZ()), player);
}
@Override
diff --git a/common/logisticspipes/pipes/PipeItemsFluidSupplier.java b/common/logisticspipes/pipes/PipeItemsFluidSupplier.java
index 8e149f0cc..cb9ce3085 100644
--- a/common/logisticspipes/pipes/PipeItemsFluidSupplier.java
+++ b/common/logisticspipes/pipes/PipeItemsFluidSupplier.java
@@ -1,8 +1,5 @@
package logisticspipes.pipes;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
import java.util.Objects;
import javax.annotation.Nullable;
@@ -10,11 +7,9 @@
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
-import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidUtil;
import logisticspipes.LogisticsPipes;
@@ -23,33 +18,25 @@
import logisticspipes.interfaces.routing.IRequestItems;
import logisticspipes.interfaces.routing.IRequireReliableTransport;
import logisticspipes.modules.LogisticsModule;
+import logisticspipes.modules.ModuleFluidSupplier;
import logisticspipes.network.GuiIDs;
import logisticspipes.pipes.basic.CoreRoutedPipe;
import logisticspipes.proxy.MainProxy;
import logisticspipes.proxy.SimpleServiceLocator;
-import logisticspipes.request.RequestTree;
import logisticspipes.textures.Textures;
import logisticspipes.textures.Textures.TextureType;
import logisticspipes.transport.LPTravelingItem.LPTravelingItemServer;
import logisticspipes.transport.PipeTransportLogistics;
import logisticspipes.utils.CacheHolder.CacheTypes;
-import logisticspipes.utils.FluidIdentifier;
import logisticspipes.utils.FluidIdentifierStack;
-import logisticspipes.utils.item.ItemIdentifier;
-import logisticspipes.utils.item.ItemIdentifierInventory;
import logisticspipes.utils.item.ItemIdentifierStack;
-import network.rs485.logisticspipes.connection.LPNeighborTileEntityKt;
-import network.rs485.logisticspipes.connection.NeighborTileEntity;
import network.rs485.logisticspipes.inventory.IItemIdentifierInventory;
public class PipeItemsFluidSupplier extends CoreRoutedPipe implements IRequestItems, IRequireReliableTransport {
private boolean _lastRequestFailed = false;
- private boolean _requestPartials = false;
- private ItemIdentifierInventory dummyInventory = new ItemIdentifierInventory(9, "Fluids to keep stocked", 127);
-
- private final HashMap _requestedItems = new HashMap<>();
+ private final ModuleFluidSupplier moduleFluidSupplier;
public PipeItemsFluidSupplier(Item item) {
super(new PipeTransportLogistics(true) {
@@ -68,6 +55,9 @@ public boolean canPipeConnect(TileEntity tile, EnumFacing dir) {
}, item);
throttleTime = 100;
+ moduleFluidSupplier = new ModuleFluidSupplier();
+ moduleFluidSupplier.registerHandler(this, this);
+ moduleFluidSupplier.registerPosition(LogisticsModule.ModulePositionType.IN_PIPE, 0);
}
@Override
@@ -143,161 +133,26 @@ public void throttledUpdateEntity() {
return;
}
super.throttledUpdateEntity();
-
- for (NeighborTileEntity neighbor : getAdjacent().fluidTanks()) {
- final ITankUtil tankUtil = LPNeighborTileEntityKt.getTankUtil(neighbor);
- if (tankUtil == null || !tankUtil.containsTanks()) {
- continue;
- }
-
- //How much do I want?
- Map wantContainers = dummyInventory.getItemsAndCount();
- HashMap wantFluids = new HashMap<>();
- for (Entry item : wantContainers.entrySet()) {
- ItemStack wantItem = item.getKey().unsafeMakeNormalStack(1);
- FluidStack liquidstack = FluidUtil.getFluidContained(wantItem);
- if (liquidstack == null) {
- continue;
- }
- wantFluids.put(FluidIdentifier.get(liquidstack), item.getValue() * liquidstack.amount);
- }
-
- //How much do I have?
- HashMap haveFluids = new HashMap<>();
-
- tankUtil.tanks()
- .map(tank -> FluidIdentifierStack.getFromStack(tank.getContents()))
- .filter(Objects::nonNull)
- .forEach(fluid -> {
- if (wantFluids.containsKey(fluid.getFluid())) {
- haveFluids.merge(fluid.getFluid(), fluid.getAmount(), Integer::sum);
- }
- });
-
- //HashMap needFluids = new HashMap();
- //Reduce what I have and what have been requested already
- for (Entry liquidId : wantFluids.entrySet()) {
- Integer haveCount = haveFluids.get(liquidId.getKey());
- if (haveCount != null) {
- liquidId.setValue(liquidId.getValue() - haveCount);
- }
- }
- for (Entry requestedItem : _requestedItems.entrySet()) {
- ItemStack wantItem = requestedItem.getKey().unsafeMakeNormalStack(1);
- FluidStack requestedFluidId = FluidUtil.getFluidContained(wantItem);
- if (requestedFluidId == null) {
- continue;
- }
- FluidIdentifier requestedFluid = FluidIdentifier.get(requestedFluidId);
- Integer want = wantFluids.get(requestedFluid);
- if (want != null) {
- wantFluids.put(requestedFluid, want - requestedItem.getValue() * requestedFluidId.amount);
- }
- }
-
- ((PipeItemsFluidSupplier) Objects.requireNonNull(container).pipe).setRequestFailed(false);
-
- //Make request
-
- for (ItemIdentifier need : wantContainers.keySet()) {
- FluidStack requestedFluidId = FluidUtil.getFluidContained(need.unsafeMakeNormalStack(1));
- if (requestedFluidId == null) {
- continue;
- }
- if (!wantFluids.containsKey(FluidIdentifier.get(requestedFluidId))) {
- continue;
- }
- int countToRequest = wantFluids.get(FluidIdentifier.get(requestedFluidId)) / requestedFluidId.amount;
- if (countToRequest < 1) {
- continue;
- }
-
- if (!useEnergy(11)) {
- break;
- }
-
- boolean success = false;
-
- if (_requestPartials) {
- countToRequest = RequestTree.requestPartial(need.makeStack(countToRequest), (IRequestItems) container.pipe, null);
- if (countToRequest > 0) {
- success = true;
- }
- } else {
- success = RequestTree.request(need.makeStack(countToRequest), (IRequestItems) container.pipe, null, null);
- }
-
- if (success) {
- Integer currentRequest = _requestedItems.get(need);
- if (currentRequest == null) {
- _requestedItems.put(need, countToRequest);
- } else {
- _requestedItems.put(need, currentRequest + countToRequest);
- }
- } else {
- ((PipeItemsFluidSupplier) container.pipe).setRequestFailed(true);
- }
- }
- }
- }
-
- @Override
- public void readFromNBT(NBTTagCompound nbttagcompound) {
- super.readFromNBT(nbttagcompound);
- dummyInventory.readFromNBT(nbttagcompound, "");
- _requestPartials = nbttagcompound.getBoolean("requestpartials");
- }
-
- @Override
- public void writeToNBT(NBTTagCompound nbttagcompound) {
- super.writeToNBT(nbttagcompound);
- dummyInventory.writeToNBT(nbttagcompound, "");
- nbttagcompound.setBoolean("requestpartials", _requestPartials);
- }
-
- private void decreaseRequested(ItemIdentifierStack item) {
- int remaining = item.getStackSize();
- //see if we can get an exact match
- Integer count = _requestedItems.get(item.getItem());
- if (count != null) {
- _requestedItems.put(item.getItem(), Math.max(0, count - remaining));
- remaining -= count;
- }
- if (remaining <= 0) {
- return;
- }
- //still remaining... was from fuzzyMatch on a crafter
- for (Entry e : _requestedItems.entrySet()) {
- if (e.getKey().item == item.getItem().item && e.getKey().itemDamage == item.getItem().itemDamage) {
- int expected = e.getValue();
- e.setValue(Math.max(0, expected - remaining));
- remaining -= expected;
- }
- if (remaining <= 0) {
- return;
- }
- }
- //we have no idea what this is, log it.
- debug.log("liquid supplier got unexpected item " + item);
+ moduleFluidSupplier.tick();
}
@Override
public void itemLost(ItemIdentifierStack item, IAdditionalTargetInformation info) {
- decreaseRequested(item);
+ moduleFluidSupplier.decreaseRequested(item);
}
@Override
public void itemArrived(ItemIdentifierStack item, IAdditionalTargetInformation info) {
- decreaseRequested(item);
+ moduleFluidSupplier.decreaseRequested(item);
delayThrottle();
}
public boolean isRequestingPartials() {
- return _requestPartials;
+ return this.moduleFluidSupplier._requestPartials.getValue();
}
public void setRequestingPartials(boolean value) {
- _requestPartials = value;
+ this.moduleFluidSupplier._requestPartials.setValue(value);
}
@Override
@@ -307,6 +162,6 @@ public void onWrenchClicked(EntityPlayer entityplayer) {
/*** GUI ***/
public IItemIdentifierInventory getDummyInventory() {
- return dummyInventory;
+ return this.moduleFluidSupplier.filterInventory;
}
}
diff --git a/common/logisticspipes/pipes/PipeItemsSatelliteLogistics.java b/common/logisticspipes/pipes/PipeItemsSatelliteLogistics.java
index b820a2fcd..d24e4a6fe 100644
--- a/common/logisticspipes/pipes/PipeItemsSatelliteLogistics.java
+++ b/common/logisticspipes/pipes/PipeItemsSatelliteLogistics.java
@@ -167,8 +167,7 @@ public IHeadUpDisplayRenderer getRenderer() {
public void ensureAllSatelliteStatus() {
if (this.moduleSatellite.satellitePipeName.isEmpty()) {
PipeItemsSatelliteLogistics.AllSatellites.remove(this);
- }
- if (!this.moduleSatellite.satellitePipeName.isEmpty()) {
+ } else {
PipeItemsSatelliteLogistics.AllSatellites.add(this);
}
}
diff --git a/common/logisticspipes/pipes/basic/CoreRoutedPipe.java b/common/logisticspipes/pipes/basic/CoreRoutedPipe.java
index 823cfd80d..7179b2e31 100644
--- a/common/logisticspipes/pipes/basic/CoreRoutedPipe.java
+++ b/common/logisticspipes/pipes/basic/CoreRoutedPipe.java
@@ -180,7 +180,7 @@ public abstract class CoreRoutedPipe extends CoreUnroutedPipe
* @return the adjacent cache directly.
*/
@Nonnull
- protected Adjacent getAdjacent() {
+ public Adjacent getAdjacent() {
return adjacent;
}