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 newExtract = energy.extractEnergyInner(diff, true)
|
||||||
val newReceive = it.receiveEnergy(newExtract, true)
|
val newReceive = it.receiveEnergy(newExtract, true)
|
||||||
|
|
||||||
if (newReceive == newExtract) {
|
var pass = newReceive == newExtract
|
||||||
val extracted = energy.extractEnergyInner(diff, false)
|
|
||||||
|
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)
|
val received = it.receiveEnergy(extracted, false)
|
||||||
|
|
||||||
if (received != extracted) {
|
//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.")
|
// 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) {
|
if (received < extracted) {
|
||||||
energy.receiveEnergyInner(extracted - received, false)
|
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
|
* Shortcut for getting [IEnergyStorage], including wrappers for it
|
||||||
*/
|
*/
|
||||||
val ICapabilityProvider.energy: IEnergyStorage? get() {
|
val ICapabilityProvider.energy: IEnergyStorage? get() {
|
||||||
|
val mattery = getCapability(MatteryCapability.ENERGY)
|
||||||
|
|
||||||
|
if (mattery.isPresent) {
|
||||||
|
return mattery.orNull()
|
||||||
|
}
|
||||||
|
|
||||||
if (isMekanismLoaded) {
|
if (isMekanismLoaded) {
|
||||||
val mekanismEnergy = mekanismEnergy
|
val mekanismEnergy = mekanismEnergy
|
||||||
|
|
||||||
@ -80,6 +86,12 @@ val ICapabilityProvider.energy: IEnergyStorage? get() {
|
|||||||
* Shortcut for getting [IMatteryEnergyStorage], including wrappers for it
|
* Shortcut for getting [IMatteryEnergyStorage], including wrappers for it
|
||||||
*/
|
*/
|
||||||
val ICapabilityProvider.matteryEnergy: IMatteryEnergyStorage? get() {
|
val ICapabilityProvider.matteryEnergy: IMatteryEnergyStorage? get() {
|
||||||
|
val mattery = getCapability(MatteryCapability.ENERGY)
|
||||||
|
|
||||||
|
if (mattery.isPresent) {
|
||||||
|
return mattery.orNull()
|
||||||
|
}
|
||||||
|
|
||||||
if (isMekanismLoaded) {
|
if (isMekanismLoaded) {
|
||||||
val mekanismEnergy = mekanismEnergy
|
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