BatteryBankBlockEntity now expose mekanism energy capability

Fixes #155
This commit is contained in:
DBotThePony 2022-11-27 17:47:39 +07:00
parent ddf44d11c2
commit a6d020bdab
Signed by: DBot
GPG Key ID: DCC23B5715498507

View File

@ -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()
}