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); }