diff --git a/src/main/java/refinedstorage/RefinedStorage.java b/src/main/java/refinedstorage/RefinedStorage.java index 70df829b6..4a1265527 100755 --- a/src/main/java/refinedstorage/RefinedStorage.java +++ b/src/main/java/refinedstorage/RefinedStorage.java @@ -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"); diff --git a/src/main/java/refinedstorage/apiimpl/storage/fluid/FluidUtils.java b/src/main/java/refinedstorage/apiimpl/storage/fluid/FluidUtils.java index 382d62173..2845370d9 100755 --- a/src/main/java/refinedstorage/apiimpl/storage/fluid/FluidUtils.java +++ b/src/main/java/refinedstorage/apiimpl/storage/fluid/FluidUtils.java @@ -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); diff --git a/src/main/java/refinedstorage/container/ContainerExternalStorage.java b/src/main/java/refinedstorage/container/ContainerExternalStorage.java index d147b750d..248cb990e 100755 --- a/src/main/java/refinedstorage/container/ContainerExternalStorage.java +++ b/src/main/java/refinedstorage/container/ContainerExternalStorage.java @@ -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); diff --git a/src/main/java/refinedstorage/tile/IStorageGui.java b/src/main/java/refinedstorage/tile/IStorageGui.java index 3f5071497..62b962f7c 100755 --- a/src/main/java/refinedstorage/tile/IStorageGui.java +++ b/src/main/java/refinedstorage/tile/IStorageGui.java @@ -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 getTypeParameter(); TileDataParameter getRedstoneModeParameter(); diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index 5c03467bf..f056e7b19 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -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 { diff --git a/src/main/java/refinedstorage/tile/TileDiskDrive.java b/src/main/java/refinedstorage/tile/TileDiskDrive.java index 95e63f5af..c25982b79 100755 --- a/src/main/java/refinedstorage/tile/TileDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileDiskDrive.java @@ -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 getTypeParameter() { return TYPE; diff --git a/src/main/java/refinedstorage/tile/TileStorage.java b/src/main/java/refinedstorage/tile/TileStorage.java index c041207e3..5e07fa8bd 100755 --- a/src/main/java/refinedstorage/tile/TileStorage.java +++ b/src/main/java/refinedstorage/tile/TileStorage.java @@ -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 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; diff --git a/src/main/java/refinedstorage/tile/externalstorage/FluidStorageExternal.java b/src/main/java/refinedstorage/tile/externalstorage/FluidStorageExternal.java new file mode 100755 index 000000000..d78cbd3b7 --- /dev/null +++ b/src/main/java/refinedstorage/tile/externalstorage/FluidStorageExternal.java @@ -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 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()); + } +} diff --git a/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDSU.java b/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDSU.java index 5ebc46d65..4523fe739 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDSU.java +++ b/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDSU.java @@ -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()) { diff --git a/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDrawer.java b/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDrawer.java index e1342d3ee..c40f38c22 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDrawer.java +++ b/src/main/java/refinedstorage/tile/externalstorage/ItemStorageDrawer.java @@ -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(); diff --git a/src/main/java/refinedstorage/tile/externalstorage/ItemStorageItemHandler.java b/src/main/java/refinedstorage/tile/externalstorage/ItemStorageItemHandler.java index a1dac4773..efa400c2a 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/ItemStorageItemHandler.java +++ b/src/main/java/refinedstorage/tile/externalstorage/ItemStorageItemHandler.java @@ -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); } diff --git a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java index 0691ceabc..cd0e2cf66 100755 --- a/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java +++ b/src/main/java/refinedstorage/tile/externalstorage/TileExternalStorage.java @@ -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 PRIORITY = IPrioritizable.createParameter(); public static final TileDataParameter COMPARE = IComparable.createParameter(); public static final TileDataParameter MODE = IFilterable.createParameter(); + public static final TileDataParameter TYPE = IType.createParameter(); public static final TileDataParameter STORED = new TileDataParameter<>(DataSerializers.VARINT, 0, new ITileDataProducer() { @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 itemStorages = new ArrayList<>(); + private List fluidStorages = new ArrayList<>(); - private List 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 storages) { - storages.addAll(this.storages); + storages.addAll(this.itemStorages); + } + + @Override + public void addFluidStorages(List 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 getTypeParameter() { + return TYPE; } - // @TODO: Implement + @Override - public TileDataParameter 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; } } diff --git a/src/main/resources/assets/refinedstorage/lang/en_US.lang b/src/main/resources/assets/refinedstorage/lang/en_US.lang index 002841704..deaac37c7 100755 --- a/src/main/resources/assets/refinedstorage/lang/en_US.lang +++ b/src/main/resources/assets/refinedstorage/lang/en_US.lang @@ -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