package universalelectricity.core.block; import net.minecraftforge.common.ForgeDirection; import universalelectricity.core.electricity.ElectricityPack; /** * Applied to all TileEntities that can interact with electricity. * * @author Calclavia, King_Lemming * */ public interface IElectrical extends IConnector { /** * Adds electricity to an block. Returns the quantity of electricity that was accepted. This * should always return 0 if the block cannot be externally charged. * * @param from Orientation the electricity is sent in from. * @param receive Maximum amount of electricity to be sent into the block. * @param doReceive If false, the charge will only be simulated. * @return Amount of energy that was accepted by the block. */ public float receiveElectricity(ForgeDirection from, ElectricityPack receive, boolean doReceive); /** * Adds electricity to an block. Returns the ElectricityPack, the electricity provided. This * should always return null if the block cannot be externally discharged. * * @param from Orientation the electricity is requested from. * @param energy Maximum amount of energy to be sent into the block. * @param doReceive If false, the charge will only be simulated. * @return Amount of energy that was given out by the block. */ public ElectricityPack provideElectricity(ForgeDirection from, ElectricityPack request, boolean doProvide); /** * @return How much energy does this TileEntity want? */ public float getRequest(ForgeDirection direction); /** * @return How much energy does this TileEntity want to provide? */ public float getProvide(ForgeDirection direction); /** * Gets the voltage of this TileEntity. * * @return The amount of volts. E.g 120v or 240v */ public float getVoltage(); }