aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/interfaces/IMultiBlockEnergy.java
blob: 4ffd725df5b06f85dc948b5a7599c646f9b49894 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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);
}