package buildcraft.api.power; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.ForgeDirection; import buildcraft.api.core.SafeTimeTracker; public interface IPowerProvider { int getLatency(); int getMinEnergyReceived(); int getMaxEnergyReceived(); int getMaxEnergyStored(); int getActivationEnergy(); float getEnergyStored(); void configure(int latency, int minEnergyReceived, int maxEnergyReceived, int minActivationEnergy, int maxStoredEnergy); void configurePowerPerdition(int powerLoss, int powerLossRegularity); boolean update(IPowerReceptor receptor); boolean preConditions(IPowerReceptor receptor); float useEnergy(float min, float max, boolean doUse); void readFromNBT(NBTTagCompound nbttagcompound); void writeToNBT(NBTTagCompound nbttagcompound); void receiveEnergy(float quantity, ForgeDirection from); boolean isPowerSource(ForgeDirection from); SafeTimeTracker getTimeTracker(); }