package buildcraft.api.transport.pipe_bc8; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; /** Provides a simple abstraction for items and fluids. This is intended to be useful for pipes which cover both kinds, * without having lots of <code>if (item) ... else ... </code> */ public interface IPipeContents { EnumContentsJourneyPart getJourneyPart(); EnumFacing getDirection(); /** This should NEVER return numbers less than or equal to 0! * * @return The number of minecraft blocks this contents moves per minecraft ticks */ double getSpeed(); public interface IPipeContentsItem extends IPipeContents { ItemStack cloneItemStack(); IPipePropertyProvider getProperties(); } public interface IPipeContentsFluid extends IPipeContents { int getAmount(); Fluid getFluid(); NBTTagCompound getNBT(); FluidStack cloneFluidStack(); } }