aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockEnergy.java
blob: 3e9892d3bd332b56e40a78a689f904e6c1db81c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package gregtech.api.multitileentity.interfaces;

import gregtech.api.multitileentity.multiblock.base.MultiBlockPart;

interface IMultiBlockEnergy {
    boolean isUniversalEnergyStored     (MultiBlockPart aPart, long aEnergyAmount);
    long getUniversalEnergyStored       (MultiBlockPart aPart);
    long getUniversalEnergyCapacity     (MultiBlockPart aPart);
    long getOutputAmperage              (MultiBlockPart aPart);
    long getOutputVoltage               (MultiBlockPart aPart);
    long getInputAmperage               (MultiBlockPart aPart);
    long getInputVoltage                (MultiBlockPart aPart);
    boolean decreaseStoredEnergyUnits   (MultiBlockPart aPart, long aEnergy, boolean aIgnoreTooLittleEnergy);
    boolean increaseStoredEnergyUnits   (MultiBlockPart aPart, long aEnergy, boolean aIgnoreTooMuchEnergy);
    boolean drainEnergyUnits            (MultiBlockPart aPart, byte aSide, long aVoltage, long aAmperage);
    long injectEnergyUnits              (MultiBlockPart aPart, byte aSide, long aVoltage, long aAmperage);
    long getAverageElectricInput        (MultiBlockPart aPart);
    long getAverageElectricOutput       (MultiBlockPart aPart);
    long getStoredEU                    (MultiBlockPart aPart);
    long getEUCapacity                  (MultiBlockPart aPart);
    boolean inputEnergyFrom             (MultiBlockPart aPart, byte aSide);
    boolean outputsEnergyTo             (MultiBlockPart aPart, byte aSide);
}