fix mekanism wrapper getting above imatteryenergy, update battery bank

This commit is contained in:
DBotThePony 2022-09-04 20:05:05 +07:00
parent a1405272f5
commit 8c09f72726
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 26 additions and 6 deletions

View File

@ -299,17 +299,25 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte
val newExtract = energy.extractEnergyInner(diff, true)
val newReceive = it.receiveEnergy(newExtract, true)
if (newReceive == newExtract) {
val extracted = energy.extractEnergyInner(diff, false)
var pass = newReceive == newExtract
if (!pass) {
if (newReceive < newExtract) {
pass = newExtract - newReceive < ImpreciseFraction("0.00001")
}
}
if (pass) {
val extracted = energy.extractEnergyInner(newReceive, false)
val received = it.receiveEnergy(extracted, false)
if (received != extracted) {
LOGGER.error("ENERGY DUPE ALERT: Battery Bank at $blockPos extracted $extracted energy from it's batteries, yet $it received only $received of it.")
//if (received != extracted) {
// LOGGER.warn("ENERGY DUPE ALERT: Battery Bank at $blockPos extracted $extracted energy from it's batteries, yet $it received only $received of it.")
if (received < extracted) {
energy.receiveEnergyInner(extracted - received, false)
}
}
//}
}
}
}

View File

@ -65,6 +65,12 @@ val isMekanismLoaded by lazy { ModList.get().isLoaded("mekanism") }
* Shortcut for getting [IEnergyStorage], including wrappers for it
*/
val ICapabilityProvider.energy: IEnergyStorage? get() {
val mattery = getCapability(MatteryCapability.ENERGY)
if (mattery.isPresent) {
return mattery.orNull()
}
if (isMekanismLoaded) {
val mekanismEnergy = mekanismEnergy
@ -80,6 +86,12 @@ val ICapabilityProvider.energy: IEnergyStorage? get() {
* Shortcut for getting [IMatteryEnergyStorage], including wrappers for it
*/
val ICapabilityProvider.matteryEnergy: IMatteryEnergyStorage? get() {
val mattery = getCapability(MatteryCapability.ENERGY)
if (mattery.isPresent) {
return mattery.orNull()
}
if (isMekanismLoaded) {
val mekanismEnergy = mekanismEnergy
@ -88,7 +100,7 @@ val ICapabilityProvider.matteryEnergy: IMatteryEnergyStorage? get() {
}
}
return getCapability(MatteryCapability.ENERGY).orNull()
return null
}
/**