fix mekanism wrapper getting above imatteryenergy, update battery bank
This commit is contained in:
parent
a1405272f5
commit
8c09f72726
@ -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)
|
||||
}
|
||||
}
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user