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 b33e3f97c..5aa350db8 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 @@ -23,6 +23,7 @@ import ru.dbotthepony.mc.otm.block.BatteryBankBlock import ru.dbotthepony.mc.otm.block.IDroppableContainer import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock import ru.dbotthepony.mc.otm.capability.* +import ru.dbotthepony.mc.otm.compat.mekanism.Mattery2MekanismEnergyWrapper import ru.dbotthepony.mc.otm.container.MatteryContainer import ru.dbotthepony.mc.otm.container.MatteryContainerHooks import ru.dbotthepony.mc.otm.core.* @@ -211,6 +212,10 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte private var resolverEnergyExtractor = LazyOptional.of { energyExtractor } private var resolverEnergy = LazyOptional.of { energy } + private var mekanismResolverEnergyReceiver = LazyOptional.of { Mattery2MekanismEnergyWrapper(energyReceiver) } + private var mekanismResolverEnergyExtractor = LazyOptional.of { Mattery2MekanismEnergyWrapper(energyExtractor) } + private var mekanismResolverEnergy = LazyOptional.of { Mattery2MekanismEnergyWrapper(energy) } + private var resolverItemHandler = LazyOptional.of { itemHandler } private var valid = true @@ -239,6 +244,9 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte resolverEnergyExtractor.invalidate() resolverEnergy.invalidate() resolverItemHandler.invalidate() + mekanismResolverEnergyReceiver.invalidate() + mekanismResolverEnergyExtractor.invalidate() + mekanismResolverEnergy.invalidate() } override fun reviveCaps() { @@ -248,6 +256,10 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte resolverEnergyExtractor = LazyOptional.of { energyExtractor } resolverEnergy = LazyOptional.of { energy } resolverItemHandler = LazyOptional.of { itemHandler } + + mekanismResolverEnergyReceiver = LazyOptional.of { Mattery2MekanismEnergyWrapper(energyReceiver) } + mekanismResolverEnergyExtractor = LazyOptional.of { Mattery2MekanismEnergyWrapper(energyExtractor) } + mekanismResolverEnergy = LazyOptional.of { Mattery2MekanismEnergyWrapper(energy) } } override fun setLevel(p_155231_: Level) { @@ -266,6 +278,15 @@ class BatteryBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matte return resolverEnergyReceiver.cast() } + if (cap == MatteryCapability.MEKANISM_ENERGY) { + if (side == null) return mekanismResolverEnergy.cast() + + if (side == blockState.getValue(RotatableMatteryBlock.FACING)) + return mekanismResolverEnergyExtractor.cast() + else + return mekanismResolverEnergyReceiver.cast() + } + if (cap == ForgeCapabilities.ITEM_HANDLER) { return resolverItemHandler.cast() }