From 8c09f72726323edb55240e6f41c0e81f5adc9289 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 4 Sep 2022 20:05:05 +0700 Subject: [PATCH] fix mekanism wrapper getting above imatteryenergy, update battery bank --- .../otm/block/entity/BatteryBankBlockEntity.kt | 18 +++++++++++++----- .../ru/dbotthepony/mc/otm/capability/Ext.kt | 14 +++++++++++++- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/BatteryBankBlockEntity.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/BatteryBankBlockEntity.kt index e3774cf8e..ceb42db6b 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/BatteryBankBlockEntity.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/entity/BatteryBankBlockEntity.kt @@ -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) } - } + //} } } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/Ext.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/Ext.kt index 49f341a1f..b0c7f8844 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/capability/Ext.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/capability/Ext.kt @@ -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 } /**