Remove sidedness on fluid interface, fixes #801
This commit is contained in:
@@ -4,10 +4,7 @@ import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSUtils;
|
||||
import com.raoulvdberge.refinedstorage.api.network.INetworkNodeHolder;
|
||||
import com.raoulvdberge.refinedstorage.api.util.IComparer;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerBasic;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerFluid;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerListenerNetworkNode;
|
||||
import com.raoulvdberge.refinedstorage.inventory.ItemHandlerUpgrade;
|
||||
import com.raoulvdberge.refinedstorage.inventory.*;
|
||||
import com.raoulvdberge.refinedstorage.item.ItemUpgrade;
|
||||
import com.raoulvdberge.refinedstorage.tile.TileFluidInterface;
|
||||
import com.raoulvdberge.refinedstorage.tile.config.IComparable;
|
||||
@@ -55,6 +52,8 @@ public class NetworkNodeFluidInterface extends NetworkNode implements IComparabl
|
||||
}
|
||||
};
|
||||
|
||||
private FluidHandlerFluidInterface tank = new FluidHandlerFluidInterface(tankIn, tankOut);
|
||||
|
||||
private ItemHandlerBasic in = new ItemHandlerBasic(1, new ItemHandlerListenerNetworkNode(this));
|
||||
private ItemHandlerFluid out = new ItemHandlerFluid(1, new ItemHandlerListenerNetworkNode(this));
|
||||
|
||||
@@ -213,6 +212,10 @@ public class NetworkNodeFluidInterface extends NetworkNode implements IComparabl
|
||||
return out;
|
||||
}
|
||||
|
||||
public FluidHandlerFluidInterface getTank() {
|
||||
return tank;
|
||||
}
|
||||
|
||||
public FluidTank getTankIn() {
|
||||
return tankIn;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.raoulvdberge.refinedstorage.inventory;
|
||||
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTank;
|
||||
import net.minecraftforge.fluids.capability.FluidTankPropertiesWrapper;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.IFluidTankProperties;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class FluidHandlerFluidInterface implements IFluidHandler {
|
||||
private FluidTank input;
|
||||
private FluidTank output;
|
||||
private IFluidTankProperties[] properties;
|
||||
|
||||
public FluidHandlerFluidInterface(FluidTank input, FluidTank output) {
|
||||
this.input = input;
|
||||
this.output = output;
|
||||
this.properties = new IFluidTankProperties[]{
|
||||
new FluidTankPropertiesWrapper(input),
|
||||
new FluidTankPropertiesWrapper(output)
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFluidTankProperties[] getTankProperties() {
|
||||
return properties;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int fill(FluidStack resource, boolean doFill) {
|
||||
return input.fill(resource, doFill);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public FluidStack drain(FluidStack resource, boolean doDrain) {
|
||||
return output.drain(resource, doDrain);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public FluidStack drain(int maxDrain, boolean doDrain) {
|
||||
return output.drain(maxDrain, doDrain);
|
||||
}
|
||||
}
|
||||
@@ -13,13 +13,13 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemHandlerGridFilterInGrid extends ItemHandlerBasic {
|
||||
private List<GridFilter> filteredItems;
|
||||
private List<GridFilter> filters;
|
||||
private List<GridTab> tabs;
|
||||
|
||||
public ItemHandlerGridFilterInGrid(List<GridFilter> filteredItems, List<GridTab> tabs) {
|
||||
public ItemHandlerGridFilterInGrid(List<GridFilter> filters, List<GridTab> tabs) {
|
||||
super(4, new ItemValidatorBasic(RSItems.GRID_FILTER));
|
||||
|
||||
this.filteredItems = filteredItems;
|
||||
this.filters = filters;
|
||||
this.tabs = tabs;
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ public class ItemHandlerGridFilterInGrid extends ItemHandlerBasic {
|
||||
protected void onContentsChanged(int slot) {
|
||||
super.onContentsChanged(slot);
|
||||
|
||||
filteredItems.clear();
|
||||
filters.clear();
|
||||
tabs.clear();
|
||||
|
||||
for (int i = 0; i < getSlots(); ++i) {
|
||||
@@ -51,7 +51,7 @@ public class ItemHandlerGridFilterInGrid extends ItemHandlerBasic {
|
||||
ItemStack icon = ItemGridFilter.getIcon(filter);
|
||||
|
||||
if (icon.isEmpty()) {
|
||||
filteredItems.addAll(filters);
|
||||
this.filters.addAll(filters);
|
||||
} else {
|
||||
tabs.add(new GridTab(filters, ItemGridFilter.getName(filter), icon));
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public class TileFluidInterface extends TileNode<NetworkNodeFluidInterface> {
|
||||
@Override
|
||||
public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing) {
|
||||
if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
|
||||
return CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY.cast(facing == EnumFacing.DOWN ? getNode().getTankOut() : getNode().getTankIn());
|
||||
return CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY.cast(getNode().getTank());
|
||||
}
|
||||
|
||||
return super.getCapability(capability, facing);
|
||||
|
||||
Reference in New Issue
Block a user