diff --git a/src/main/java/refinedstorage/container/ContainerStorage.java b/src/main/java/refinedstorage/container/ContainerStorage.java index 87ed97ea4..da577ee27 100755 --- a/src/main/java/refinedstorage/container/ContainerStorage.java +++ b/src/main/java/refinedstorage/container/ContainerStorage.java @@ -4,9 +4,9 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandler; -import refinedstorage.container.slot.SlotFluidFilter; +import refinedstorage.container.slot.SlotFluid; import refinedstorage.container.slot.SlotSpecimen; -import refinedstorage.inventory.ItemHandlerFluidFilter; +import refinedstorage.inventory.ItemHandlerFluid; import refinedstorage.tile.TileBase; public class ContainerStorage extends ContainerBase { @@ -22,7 +22,7 @@ public class ContainerStorage extends ContainerBase { protected void addFilterAndPlayerInventorySlots(IItemHandler filters) { for (int i = 0; i < 9; ++i) { - addSlotToContainer(filters instanceof ItemHandlerFluidFilter ? new SlotFluidFilter(!getTile().getWorld().isRemote, filters, i, 8 + (18 * i), 20) : new SlotSpecimen(filters, i, 8 + (18 * i), 20)); + addSlotToContainer(filters instanceof ItemHandlerFluid ? new SlotFluid(!getTile().getWorld().isRemote, filters, i, 8 + (18 * i), 20) : new SlotSpecimen(filters, i, 8 + (18 * i), 20)); } addPlayerInventory(8, 129); diff --git a/src/main/java/refinedstorage/container/slot/SlotFluidFilter.java b/src/main/java/refinedstorage/container/slot/SlotFluid.java similarity index 70% rename from src/main/java/refinedstorage/container/slot/SlotFluidFilter.java rename to src/main/java/refinedstorage/container/slot/SlotFluid.java index f32b051e4..4dec4bfa0 100755 --- a/src/main/java/refinedstorage/container/slot/SlotFluidFilter.java +++ b/src/main/java/refinedstorage/container/slot/SlotFluid.java @@ -3,10 +3,10 @@ package refinedstorage.container.slot; import net.minecraft.item.ItemStack; import net.minecraftforge.items.IItemHandler; -public class SlotFluidFilter extends SlotSpecimen { +public class SlotFluid extends SlotSpecimen { private boolean server; - public SlotFluidFilter(boolean server, IItemHandler handler, int id, int x, int y) { + public SlotFluid(boolean server, IItemHandler handler, int id, int x, int y) { super(handler, id, x, y); this.server = server; diff --git a/src/main/java/refinedstorage/gui/GuiBase.java b/src/main/java/refinedstorage/gui/GuiBase.java index 9bb783161..f66f66511 100755 --- a/src/main/java/refinedstorage/gui/GuiBase.java +++ b/src/main/java/refinedstorage/gui/GuiBase.java @@ -17,7 +17,7 @@ import net.minecraftforge.items.SlotItemHandler; import org.lwjgl.input.Mouse; import refinedstorage.RefinedStorage; import refinedstorage.gui.sidebutton.SideButton; -import refinedstorage.inventory.ItemHandlerFluidFilter; +import refinedstorage.inventory.ItemHandlerFluid; import java.io.IOException; import java.util.ArrayList; @@ -131,8 +131,8 @@ public abstract class GuiBase extends GuiContainer { for (int i = 0; i < inventorySlots.inventorySlots.size(); ++i) { Slot slot = inventorySlots.inventorySlots.get(i); - if (slot instanceof SlotItemHandler && ((SlotItemHandler) slot).getItemHandler() instanceof ItemHandlerFluidFilter) { - FluidStack stack = ((ItemHandlerFluidFilter) ((SlotItemHandler) slot).getItemHandler()).getFilters()[slot.getSlotIndex()]; + if (slot instanceof SlotItemHandler && ((SlotItemHandler) slot).getItemHandler() instanceof ItemHandlerFluid) { + FluidStack stack = ((ItemHandlerFluid) ((SlotItemHandler) slot).getItemHandler()).getFluids()[slot.getSlotIndex()]; if (stack != null) { FLUID_RENDERER.draw(mc, slot.xDisplayPosition, slot.yDisplayPosition, stack); diff --git a/src/main/java/refinedstorage/inventory/ItemHandlerFluid.java b/src/main/java/refinedstorage/inventory/ItemHandlerFluid.java new file mode 100755 index 000000000..d0014bf4f --- /dev/null +++ b/src/main/java/refinedstorage/inventory/ItemHandlerFluid.java @@ -0,0 +1,34 @@ +package refinedstorage.inventory; + +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.fluids.Fluid; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.CapabilityFluidHandler; + +public class ItemHandlerFluid extends ItemHandlerBasic { + private FluidStack[] fluids; + + public ItemHandlerFluid(int size, TileEntity tile) { + super(size, tile, (IItemValidator) s -> s.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null) && s.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null).drain(Fluid.BUCKET_VOLUME, false) != null); + + this.fluids = new FluidStack[size]; + } + + @Override + protected void onContentsChanged(int slot) { + super.onContentsChanged(slot); + + ItemStack stack = getStackInSlot(slot); + + if (stack == null) { + fluids[slot] = null; + } else { + fluids[slot] = stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null).drain(Fluid.BUCKET_VOLUME, false); + } + } + + public FluidStack[] getFluids() { + return fluids; + } +} diff --git a/src/main/java/refinedstorage/inventory/ItemHandlerFluidFilter.java b/src/main/java/refinedstorage/inventory/ItemHandlerFluidFilter.java deleted file mode 100755 index 90e34a23b..000000000 --- a/src/main/java/refinedstorage/inventory/ItemHandlerFluidFilter.java +++ /dev/null @@ -1,32 +0,0 @@ -package refinedstorage.inventory; - -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; - -public class ItemHandlerFluidFilter extends ItemHandlerBasic { - private FluidStack[] filters = new FluidStack[9]; - - public ItemHandlerFluidFilter(TileEntity tile) { - super(9, tile, (IItemValidator) s -> s.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null) && s.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null).drain(Fluid.BUCKET_VOLUME, false) != null); - } - - @Override - protected void onContentsChanged(int slot) { - super.onContentsChanged(slot); - - ItemStack stack = getStackInSlot(slot); - - if (stack == null) { - filters[slot] = null; - } else { - filters[slot] = stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, null).drain(Fluid.BUCKET_VOLUME, false); - } - } - - public FluidStack[] getFilters() { - return filters; - } -} diff --git a/src/main/java/refinedstorage/tile/TileFluidDiskDrive.java b/src/main/java/refinedstorage/tile/TileFluidDiskDrive.java index 9a59289e8..106e2157e 100755 --- a/src/main/java/refinedstorage/tile/TileFluidDiskDrive.java +++ b/src/main/java/refinedstorage/tile/TileFluidDiskDrive.java @@ -19,7 +19,7 @@ import refinedstorage.apiimpl.storage.fluid.FluidStorageNBT; import refinedstorage.apiimpl.storage.fluid.FluidUtils; import refinedstorage.block.EnumFluidStorageType; import refinedstorage.inventory.ItemHandlerBasic; -import refinedstorage.inventory.ItemHandlerFluidFilter; +import refinedstorage.inventory.ItemHandlerFluid; import refinedstorage.inventory.ItemValidatorBasic; import refinedstorage.tile.config.IComparable; import refinedstorage.tile.config.IFilterable; @@ -93,7 +93,7 @@ public class TileFluidDiskDrive extends TileNode implements IFluidStorageProvide } }; - private ItemHandlerFluidFilter filters = new ItemHandlerFluidFilter(this); + private ItemHandlerFluid filters = new ItemHandlerFluid(9, this); private FluidStorage storages[] = new FluidStorage[8]; diff --git a/src/main/java/refinedstorage/tile/config/IFilterable.java b/src/main/java/refinedstorage/tile/config/IFilterable.java index e14100d11..5f605f3f2 100755 --- a/src/main/java/refinedstorage/tile/config/IFilterable.java +++ b/src/main/java/refinedstorage/tile/config/IFilterable.java @@ -6,7 +6,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.items.IItemHandler; import refinedstorage.api.storage.CompareUtils; -import refinedstorage.inventory.ItemHandlerFluidFilter; +import refinedstorage.inventory.ItemHandlerFluid; import refinedstorage.tile.data.ITileDataConsumer; import refinedstorage.tile.data.ITileDataProducer; import refinedstorage.tile.data.TileDataParameter; @@ -63,12 +63,12 @@ public interface IFilterable { return false; } - static boolean canTakeFluids(ItemHandlerFluidFilter filters, int mode, int compare, FluidStack stack) { + static boolean canTakeFluids(ItemHandlerFluid filters, int mode, int compare, FluidStack stack) { if (mode == WHITELIST) { int slots = 0; for (int i = 0; i < filters.getSlots(); ++i) { - FluidStack slot = filters.getFilters()[i]; + FluidStack slot = filters.getFluids()[i]; if (slot != null) { slots++; @@ -82,7 +82,7 @@ public interface IFilterable { return slots == 0; } else if (mode == BLACKLIST) { for (int i = 0; i < filters.getSlots(); ++i) { - FluidStack slot = filters.getFilters()[i]; + FluidStack slot = filters.getFluids()[i]; if (slot != null && CompareUtils.compareStack(slot, stack, compare)) { return false;