Fluid External Storage
This commit is contained in:
@@ -51,8 +51,6 @@ public final class RefinedStorage {
|
||||
public int detectorUsage;
|
||||
public int diskDriveUsage;
|
||||
public int diskDrivePerDiskUsage;
|
||||
public int fluidDiskDriveUsage;
|
||||
public int fluidDiskDrivePerDiskUsage;
|
||||
public int externalStorageUsage;
|
||||
public int externalStoragePerStorageUsage;
|
||||
public int exporterUsage;
|
||||
@@ -99,8 +97,6 @@ public final class RefinedStorage {
|
||||
detectorUsage = config.getInt("detector", "energy", 2, 0, Integer.MAX_VALUE, "The energy used by Detectors");
|
||||
diskDriveUsage = config.getInt("diskDrive", "energy", 0, 0, Integer.MAX_VALUE, "The base energy used by Disk Drives");
|
||||
diskDrivePerDiskUsage = config.getInt("diskDrivePerDisk", "energy", 1, 0, Integer.MAX_VALUE, "The additional energy used by Storage Disks in Disk Drives");
|
||||
fluidDiskDriveUsage = config.getInt("fluidDiskDrive", "energy", 0, 0, Integer.MAX_VALUE, "The base energy used by Fluid Disk Drives");
|
||||
fluidDiskDrivePerDiskUsage = config.getInt("fluidDiskDrivePerDisk", "energy", 1, 0, Integer.MAX_VALUE, "The additional energy used by Fluid Storage Disks in Fluid Disk Drives");
|
||||
externalStorageUsage = config.getInt("externalStorage", "energy", 0, 0, Integer.MAX_VALUE, "The base energy used by External Storages");
|
||||
externalStoragePerStorageUsage = config.getInt("externalStoragePerStorage", "energy", 1, 0, Integer.MAX_VALUE, "The additional energy used per connected storage to an External Storage");
|
||||
exporterUsage = config.getInt("exporter", "energy", 1, 0, Integer.MAX_VALUE, "The energy used by Exporters");
|
||||
|
||||
@@ -13,6 +13,10 @@ public final class FluidUtils {
|
||||
return copy;
|
||||
}
|
||||
|
||||
public static FluidStack copy(FluidStack stack) {
|
||||
return stack == null ? null : stack.copy();
|
||||
}
|
||||
|
||||
public static FluidStack getFluidFromStack(ItemStack stack, boolean simulate) {
|
||||
if (stack.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null)) {
|
||||
return stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null).drain(Fluid.BUCKET_VOLUME, !simulate);
|
||||
|
||||
@@ -3,7 +3,7 @@ package refinedstorage.container;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import refinedstorage.container.slot.SlotSpecimen;
|
||||
import refinedstorage.container.slot.SlotSpecimenType;
|
||||
import refinedstorage.tile.externalstorage.TileExternalStorage;
|
||||
|
||||
public class ContainerExternalStorage extends ContainerBase {
|
||||
@@ -11,7 +11,7 @@ public class ContainerExternalStorage extends ContainerBase {
|
||||
super(tile, player);
|
||||
|
||||
for (int i = 0; i < 9; ++i) {
|
||||
addSlotToContainer(new SlotSpecimen(tile.getFilters(), i, 8 + (18 * i), 20));
|
||||
addSlotToContainer(new SlotSpecimenType(tile, i, 8 + (18 * i), 20));
|
||||
}
|
||||
|
||||
addPlayerInventory(8, 129);
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
package refinedstorage.tile;
|
||||
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
public interface IStorageGui {
|
||||
String getGuiTitle();
|
||||
|
||||
IItemHandler getFilters();
|
||||
|
||||
TileDataParameter<Integer> getTypeParameter();
|
||||
|
||||
TileDataParameter<Integer> getRedstoneModeParameter();
|
||||
|
||||
@@ -59,6 +59,7 @@ import refinedstorage.tile.config.RedstoneMode;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.RefinedStorageSerializers;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
import refinedstorage.tile.externalstorage.FluidStorageExternal;
|
||||
import refinedstorage.tile.externalstorage.ItemStorageExternal;
|
||||
import refinedstorage.tile.grid.IGrid;
|
||||
|
||||
@@ -624,6 +625,10 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
for (IFluidStorage storage : this.fluidStorage.getStorages()) {
|
||||
remainder = storage.insertFluid(remainder, size, simulate);
|
||||
|
||||
if (storage instanceof FluidStorageExternal && !simulate) {
|
||||
((FluidStorageExternal) storage).updateCacheForcefully();
|
||||
}
|
||||
|
||||
if (remainder == null) {
|
||||
break;
|
||||
} else {
|
||||
@@ -652,6 +657,10 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR
|
||||
FluidStack took = storage.extractFluid(stack, requested - received, flags);
|
||||
|
||||
if (took != null) {
|
||||
if (storage instanceof FluidStorageExternal) {
|
||||
((FluidStorageExternal) storage).updateCacheForcefully();
|
||||
}
|
||||
|
||||
if (newStack == null) {
|
||||
newStack = took;
|
||||
} else {
|
||||
|
||||
@@ -352,11 +352,6 @@ public class TileDiskDrive extends TileNode implements IItemStorageProvider, IFl
|
||||
return "block.refinedstorage:disk_drive.name";
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemHandler getFilters() {
|
||||
return itemFilters;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileDataParameter<Integer> getTypeParameter() {
|
||||
return TYPE;
|
||||
|
||||
@@ -3,7 +3,6 @@ package refinedstorage.tile;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.RefinedStorageBlocks;
|
||||
@@ -199,11 +198,6 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor
|
||||
return "block.refinedstorage:storage." + getType().getId() + ".name";
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemHandler getFilters() {
|
||||
return filters;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileDataParameter<Integer> getTypeParameter() {
|
||||
return null;
|
||||
@@ -241,6 +235,10 @@ public class TileStorage extends TileNode implements IItemStorageProvider, IStor
|
||||
return storage;
|
||||
}
|
||||
|
||||
public ItemHandlerBasic getFilters() {
|
||||
return filters;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return priority;
|
||||
|
||||
93
src/main/java/refinedstorage/tile/externalstorage/FluidStorageExternal.java
Executable file
93
src/main/java/refinedstorage/tile/externalstorage/FluidStorageExternal.java
Executable file
@@ -0,0 +1,93 @@
|
||||
package refinedstorage.tile.externalstorage;
|
||||
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.IFluidTankProperties;
|
||||
import refinedstorage.api.storage.CompareUtils;
|
||||
import refinedstorage.api.storage.fluid.IFluidStorage;
|
||||
import refinedstorage.apiimpl.storage.fluid.FluidUtils;
|
||||
import refinedstorage.tile.config.IFilterable;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class FluidStorageExternal implements IFluidStorage {
|
||||
private FluidStack cache;
|
||||
|
||||
private TileExternalStorage externalStorage;
|
||||
private IFluidHandler handler;
|
||||
private IFluidTankProperties properties;
|
||||
|
||||
public FluidStorageExternal(TileExternalStorage externalStorage, IFluidHandler handler, IFluidTankProperties properties) {
|
||||
this.externalStorage = externalStorage;
|
||||
this.handler = handler;
|
||||
this.properties = properties;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FluidStack> getStacks() {
|
||||
return properties.getContents() == null ? Collections.emptyList() : Collections.singletonList(properties.getContents().copy());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public FluidStack insertFluid(@Nonnull FluidStack stack, int size, boolean simulate) {
|
||||
if (IFilterable.canTakeFluids(externalStorage.getFluidFilters(), externalStorage.getMode(), externalStorage.getCompare(), stack) && properties.canFillFluidType(stack)) {
|
||||
int filled = handler.fill(FluidUtils.copyStackWithSize(stack, size), !simulate);
|
||||
|
||||
if (filled == size) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return FluidUtils.copyStackWithSize(stack, size - filled);
|
||||
}
|
||||
|
||||
return FluidUtils.copyStackWithSize(stack, size);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public FluidStack extractFluid(@Nonnull FluidStack stack, int size, int flags) {
|
||||
FluidStack toDrain = FluidUtils.copyStackWithSize(stack, size);
|
||||
|
||||
if (CompareUtils.compareStack(properties.getContents(), toDrain, flags)) {
|
||||
return handler.drain(toDrain, true);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getStored() {
|
||||
return properties.getContents() != null ? properties.getContents().amount : 0;
|
||||
}
|
||||
|
||||
public int getCapacity() {
|
||||
return properties.getCapacity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getPriority() {
|
||||
return externalStorage.getPriority();
|
||||
}
|
||||
|
||||
public boolean updateCache() {
|
||||
FluidStack stack = properties.getContents();
|
||||
|
||||
if (cache == null) {
|
||||
cache = FluidUtils.copy(stack);
|
||||
} else if (!CompareUtils.compareStack(stack, cache, CompareUtils.COMPARE_NBT)) {
|
||||
cache = FluidUtils.copy(stack);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void updateCacheForcefully() {
|
||||
cache = FluidUtils.copy(properties.getContents());
|
||||
}
|
||||
}
|
||||
@@ -35,7 +35,7 @@ public class ItemStorageDSU extends ItemStorageExternal {
|
||||
|
||||
@Override
|
||||
public ItemStack insertItem(@Nonnull ItemStack stack, int size, boolean simulate) {
|
||||
if (IFilterable.canTake(externalStorage.getFilters(), externalStorage.getMode(), externalStorage.getCompare(), stack)) {
|
||||
if (IFilterable.canTake(externalStorage.getItemFilters(), externalStorage.getMode(), externalStorage.getCompare(), stack)) {
|
||||
if (unit.getStoredItemType() != null) {
|
||||
if (CompareUtils.compareStackNoQuantity(unit.getStoredItemType(), stack)) {
|
||||
if (getStored() + size > unit.getMaxStoredCount()) {
|
||||
|
||||
@@ -39,7 +39,7 @@ public class ItemStorageDrawer extends ItemStorageExternal {
|
||||
|
||||
@Override
|
||||
public ItemStack insertItem(ItemStack stack, int size, boolean simulate) {
|
||||
if (IFilterable.canTake(externalStorage.getFilters(), externalStorage.getMode(), externalStorage.getCompare(), stack) && drawer.canItemBeStored(stack)) {
|
||||
if (IFilterable.canTake(externalStorage.getItemFilters(), externalStorage.getMode(), externalStorage.getCompare(), stack) && drawer.canItemBeStored(stack)) {
|
||||
if (!drawer.isEmpty()) {
|
||||
if (getStored() + size > drawer.getMaxCapacity(stack)) {
|
||||
int remainingSpace = getCapacity() - getStored();
|
||||
|
||||
@@ -38,7 +38,7 @@ public class ItemStorageItemHandler extends ItemStorageExternal {
|
||||
|
||||
@Override
|
||||
public ItemStack insertItem(ItemStack stack, int size, boolean simulate) {
|
||||
if (IFilterable.canTake(externalStorage.getFilters(), externalStorage.getMode(), externalStorage.getCompare(), stack)) {
|
||||
if (IFilterable.canTake(externalStorage.getItemFilters(), externalStorage.getMode(), externalStorage.getCompare(), stack)) {
|
||||
return ItemHandlerHelper.insertItem(handler, ItemHandlerHelper.copyStackWithSize(stack, size), simulate);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,35 +6,46 @@ import mcmultipart.microblock.IMicroblock;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.datasync.DataSerializers;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
import net.minecraftforge.fluids.capability.IFluidTankProperties;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
import powercrystals.minefactoryreloaded.api.IDeepStorageUnit;
|
||||
import refinedstorage.RefinedStorage;
|
||||
import refinedstorage.api.network.INetworkMaster;
|
||||
import refinedstorage.api.storage.fluid.IFluidStorage;
|
||||
import refinedstorage.api.storage.fluid.IFluidStorageProvider;
|
||||
import refinedstorage.api.storage.item.IItemStorage;
|
||||
import refinedstorage.api.storage.item.IItemStorageProvider;
|
||||
import refinedstorage.inventory.ItemHandlerBasic;
|
||||
import refinedstorage.inventory.ItemHandlerFluid;
|
||||
import refinedstorage.tile.IStorageGui;
|
||||
import refinedstorage.tile.TileMultipartNode;
|
||||
import refinedstorage.tile.config.IComparable;
|
||||
import refinedstorage.tile.config.IFilterable;
|
||||
import refinedstorage.tile.config.IPrioritizable;
|
||||
import refinedstorage.tile.config.IType;
|
||||
import refinedstorage.tile.data.ITileDataProducer;
|
||||
import refinedstorage.tile.data.TileDataParameter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TileExternalStorage extends TileMultipartNode implements IItemStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable {
|
||||
public class TileExternalStorage extends TileMultipartNode implements IItemStorageProvider, IFluidStorageProvider, IStorageGui, IComparable, IFilterable, IPrioritizable, IType {
|
||||
public static final TileDataParameter<Integer> PRIORITY = IPrioritizable.createParameter();
|
||||
public static final TileDataParameter<Integer> COMPARE = IComparable.createParameter();
|
||||
public static final TileDataParameter<Integer> MODE = IFilterable.createParameter();
|
||||
public static final TileDataParameter<Integer> TYPE = IType.createParameter();
|
||||
|
||||
public static final TileDataParameter<Integer> STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer<Integer, TileExternalStorage>() {
|
||||
@Override
|
||||
public Integer getValue(TileExternalStorage tile) {
|
||||
int stored = 0;
|
||||
|
||||
for (ItemStorageExternal storage : tile.storages) {
|
||||
for (ItemStorageExternal storage : tile.itemStorages) {
|
||||
stored += storage.getStored();
|
||||
}
|
||||
|
||||
for (FluidStorageExternal storage : tile.fluidStorages) {
|
||||
stored += storage.getStored();
|
||||
}
|
||||
|
||||
@@ -47,7 +58,11 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
public Integer getValue(TileExternalStorage tile) {
|
||||
int capacity = 0;
|
||||
|
||||
for (ItemStorageExternal storage : tile.storages) {
|
||||
for (ItemStorageExternal storage : tile.itemStorages) {
|
||||
capacity += storage.getCapacity();
|
||||
}
|
||||
|
||||
for (FluidStorageExternal storage : tile.fluidStorages) {
|
||||
capacity += storage.getCapacity();
|
||||
}
|
||||
|
||||
@@ -58,14 +73,19 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
private static final String NBT_PRIORITY = "Priority";
|
||||
private static final String NBT_COMPARE = "Compare";
|
||||
private static final String NBT_MODE = "Mode";
|
||||
private static final String NBT_TYPE = "Type";
|
||||
|
||||
private ItemHandlerBasic filters = new ItemHandlerBasic(9, this);
|
||||
private ItemHandlerBasic itemFilters = new ItemHandlerBasic(9, this);
|
||||
private ItemHandlerFluid fluidFilters = new ItemHandlerFluid(9, this);
|
||||
|
||||
private int priority = 0;
|
||||
private int compare = 0;
|
||||
private int mode = IFilterable.WHITELIST;
|
||||
private int type = IType.ITEMS;
|
||||
|
||||
private List<ItemStorageExternal> itemStorages = new ArrayList<>();
|
||||
private List<FluidStorageExternal> fluidStorages = new ArrayList<>();
|
||||
|
||||
private List<ItemStorageExternal> storages = new ArrayList<>();
|
||||
private int lastDrawerCount;
|
||||
|
||||
public TileExternalStorage() {
|
||||
@@ -74,6 +94,7 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
dataManager.addWatchedParameter(MODE);
|
||||
dataManager.addWatchedParameter(STORED);
|
||||
dataManager.addWatchedParameter(CAPACITY);
|
||||
dataManager.addWatchedParameter(TYPE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,7 +104,7 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
|
||||
@Override
|
||||
public int getEnergyUsage() {
|
||||
return RefinedStorage.INSTANCE.externalStorageUsage + (storages.size() * RefinedStorage.INSTANCE.externalStoragePerStorageUsage);
|
||||
return RefinedStorage.INSTANCE.externalStorageUsage + ((itemStorages.size() + fluidStorages.size()) * RefinedStorage.INSTANCE.externalStoragePerStorageUsage);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -97,23 +118,35 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
updateStorage(network);
|
||||
|
||||
network.getItemStorage().rebuild();
|
||||
network.getFluidStorage().rebuild();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
if (!worldObj.isRemote && network != null) {
|
||||
boolean changeDetected = false;
|
||||
boolean itemChangeDetected = false, fluidChangeDetected = false;
|
||||
|
||||
for (ItemStorageExternal storage : storages) {
|
||||
for (ItemStorageExternal storage : itemStorages) {
|
||||
if (storage.updateCache()) {
|
||||
changeDetected = true;
|
||||
itemChangeDetected = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (changeDetected) {
|
||||
for (FluidStorageExternal storage : fluidStorages) {
|
||||
if (storage.updateCache()) {
|
||||
fluidChangeDetected = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (itemChangeDetected) {
|
||||
network.getItemStorage().rebuild();
|
||||
}
|
||||
|
||||
// @TODO: This is broken?
|
||||
if (fluidChangeDetected) {
|
||||
network.getFluidStorage().rebuild();
|
||||
}
|
||||
|
||||
if (getFacingTile() instanceof IDrawerGroup && lastDrawerCount != ((IDrawerGroup) getFacingTile()).getDrawerCount()) {
|
||||
lastDrawerCount = ((IDrawerGroup) getFacingTile()).getDrawerCount();
|
||||
|
||||
@@ -128,7 +161,8 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
public void read(NBTTagCompound tag) {
|
||||
super.read(tag);
|
||||
|
||||
readItems(filters, 0, tag);
|
||||
readItems(itemFilters, 0, tag);
|
||||
readItems(fluidFilters, 1, tag);
|
||||
|
||||
if (tag.hasKey(NBT_PRIORITY)) {
|
||||
priority = tag.getInteger(NBT_PRIORITY);
|
||||
@@ -141,17 +175,23 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
if (tag.hasKey(NBT_MODE)) {
|
||||
mode = tag.getInteger(NBT_MODE);
|
||||
}
|
||||
|
||||
if (tag.hasKey(NBT_TYPE)) {
|
||||
type = tag.getInteger(NBT_TYPE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBTTagCompound write(NBTTagCompound tag) {
|
||||
super.write(tag);
|
||||
|
||||
writeItems(filters, 0, tag);
|
||||
writeItems(itemFilters, 0, tag);
|
||||
writeItems(fluidFilters, 1, tag);
|
||||
|
||||
tag.setInteger(NBT_PRIORITY, priority);
|
||||
tag.setInteger(NBT_COMPARE, compare);
|
||||
tag.setInteger(NBT_MODE, mode);
|
||||
tag.setInteger(NBT_TYPE, type);
|
||||
|
||||
return tag;
|
||||
}
|
||||
@@ -193,7 +233,8 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
}
|
||||
|
||||
public void updateStorage(INetworkMaster network) {
|
||||
storages.clear();
|
||||
itemStorages.clear();
|
||||
fluidStorages.clear();
|
||||
|
||||
TileEntity facing = getFacingTile();
|
||||
|
||||
@@ -202,27 +243,41 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
|
||||
for (int i = 0; i < group.getDrawerCount(); ++i) {
|
||||
if (group.isDrawerEnabled(i)) {
|
||||
storages.add(new ItemStorageDrawer(this, group.getDrawer(i)));
|
||||
itemStorages.add(new ItemStorageDrawer(this, group.getDrawer(i)));
|
||||
}
|
||||
}
|
||||
} else if (facing instanceof IDrawer) {
|
||||
storages.add(new ItemStorageDrawer(this, (IDrawer) facing));
|
||||
itemStorages.add(new ItemStorageDrawer(this, (IDrawer) facing));
|
||||
} else if (facing instanceof IDeepStorageUnit) {
|
||||
storages.add(new ItemStorageDSU(this, (IDeepStorageUnit) facing));
|
||||
itemStorages.add(new ItemStorageDSU(this, (IDeepStorageUnit) facing));
|
||||
} else {
|
||||
IItemHandler handler = getItemHandler(facing, getDirection().getOpposite());
|
||||
IItemHandler itemHandler = getItemHandler(facing, getDirection().getOpposite());
|
||||
|
||||
if (handler != null) {
|
||||
storages.add(new ItemStorageItemHandler(this, handler));
|
||||
if (itemHandler != null) {
|
||||
itemStorages.add(new ItemStorageItemHandler(this, itemHandler));
|
||||
}
|
||||
|
||||
IFluidHandler fluidHandler = getFluidHandler(facing, getDirection().getOpposite());
|
||||
|
||||
if (fluidHandler != null) {
|
||||
for (IFluidTankProperties property : fluidHandler.getTankProperties()) {
|
||||
fluidStorages.add(new FluidStorageExternal(this, fluidHandler, property));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
network.getItemStorage().rebuild();
|
||||
network.getFluidStorage().rebuild();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addItemStorages(List<IItemStorage> storages) {
|
||||
storages.addAll(this.storages);
|
||||
storages.addAll(this.itemStorages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addFluidStorages(List<IFluidStorage> storages) {
|
||||
storages.addAll(this.fluidStorages);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -261,13 +316,33 @@ public class TileExternalStorage extends TileMultipartNode implements IItemStora
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemHandler getFilters() {
|
||||
return filters;
|
||||
public TileDataParameter<Integer> getTypeParameter() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
// @TODO: Implement
|
||||
|
||||
@Override
|
||||
public TileDataParameter<Integer> getTypeParameter() {
|
||||
return null;
|
||||
public int getType() {
|
||||
return worldObj.isRemote ? TYPE.getValue() : type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setType(int type) {
|
||||
this.type = type;
|
||||
|
||||
markDirty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemHandler getFilterInventory() {
|
||||
return getType() == IType.ITEMS ? itemFilters : fluidFilters;
|
||||
}
|
||||
|
||||
public ItemHandlerBasic getItemFilters() {
|
||||
return itemFilters;
|
||||
}
|
||||
|
||||
public ItemHandlerFluid getFluidFilters() {
|
||||
return fluidFilters;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,6 @@ gui.refinedstorage:network_transmitter.distance=%d blocks
|
||||
gui.refinedstorage:network_transmitter.dimension=Dimension %d
|
||||
gui.refinedstorage:network_transmitter.missing_card=Missing Network Card
|
||||
gui.refinedstorage:network_transmitter.missing_upgrade=Insert upgrade
|
||||
gui.refinedstorage:fluid_disk_drive=Fluid Disk Drive
|
||||
gui.refinedstorage:fluid_interface=Fluid Interface
|
||||
gui.refinedstorage:fluid_interface.in=In
|
||||
gui.refinedstorage:fluid_interface.out=Out
|
||||
@@ -134,7 +133,6 @@ block.refinedstorage:crafter.name=Crafter
|
||||
block.refinedstorage:processing_pattern_encoder.name=Processing Pattern Encoder
|
||||
block.refinedstorage:network_receiver.name=Network Receiver
|
||||
block.refinedstorage:network_transmitter.name=Network Transmitter
|
||||
block.refinedstorage:fluid_disk_drive.name=Fluid Disk Drive
|
||||
block.refinedstorage:fluid_interface.name=Fluid Interface
|
||||
|
||||
item.refinedstorage:storage_disk.0.name=1k Storage Disk
|
||||
|
||||
Reference in New Issue
Block a user