package pneumaticCraft.api.tileentity; import net.minecraftforge.common.util.ForgeDirection; public interface ISidedPneumaticMachine{ /** * In your TileEntity class which is implementing this interface you should keep a reference of an IAirHandler. * You can retrieve one by calling {@link AirHandlerSupplier#getAirHandler(net.minecraft.tileentity.TileEntity, float, float, float, float)}. * Do this when your TileEntity is initialized, i.e. xCoord,yCoord,zCoord and worldObj have a value. * In this method you need to return this reference. * * IMPORTANT: You need to forward the {@link net.minecraft.tileentity.TileEntity#updateEntity()}, * {@link net.minecraft.tileentity.TileEntity#writeToNBT(net.minecraft.nbt.NBTTagCompound)} , * {@link net.minecraft.tileentity.TileEntity#readFromNBT(net.minecraft.nbt.NBTTagCompound)} and * {@link net.minecraft.tileentity.TileEntity#validate()} (with the implementing TileEntity as additional parameter) * to the IAirHandler. * Apart from that you'll need to forward {@link net.minecraft.block.Block#onNeighborChange(net.minecraft.world.IBlockAccess, int, int, int, int, int, int)} * from the implementing block to the IAirHandler. * @return a valid IAirHandler when connectable on this side. If not, return null. */ public IAirHandler getAirHandler(ForgeDirection side); }