package uk.njdart.orbitcraft.energy;

public interface IEnergySource extends IEnergyCapacity {

    /**
     * gets the output rate from the producer
     * @return Rate in units/tick
     */
    public int getOutput();
    /**
     * Gets the energy currently stored in the storage of the producer
     * @return The amount of energy being held by the block/item
     */
    public int getStored();

    /**
     * Requests energy from the block/ite
     * @param amount The amount requested to be drawn from the internal capacity
     * @return the actual amount deducted from the capacity of the block/item
     */
    public int drawEnergy(int amount);

}
