001 package net.minecraftforge.liquids; 002 003 /** 004 * A tank is the unit of interaction with liquid inventories. 005 * 006 * @author cpw 007 */ 008 public interface ILiquidTank { 009 010 /** 011 * @return LiquidStack representing the liquid contained in the tank, null if empty. 012 */ 013 LiquidStack getLiquid(); 014 015 /** 016 * @return capacity of this tank 017 */ 018 int getCapacity(); 019 020 /** 021 * 022 * @param resource 023 * @param doFill 024 * @return Amount of liquid used for filling. 025 */ 026 int fill(LiquidStack resource, boolean doFill); 027 /** 028 * 029 * @param maxDrain 030 * @param doDrain 031 * @return Null if nothing was drained, otherwise a LiquidStack containing the drained. 032 */ 033 LiquidStack drain(int maxDrain, boolean doDrain); 034 035 /** 036 * Positive values indicate a positive liquid pressure (liquid wants to leave this tank) 037 * Negative values indicate a negative liquid pressure (liquid wants to fill this tank) 038 * Zero indicates no pressure 039 * 040 * @return a number indicating tank pressure 041 */ 042 public int getTankPressure(); 043 044 }