Make use of builtin LazyOptional of energy impl
This commit is contained in:
parent
6e02402f06
commit
c62836fa04
@ -17,7 +17,6 @@ import ru.dbotthepony.mc.otm.set
|
||||
|
||||
abstract class BlockEntityMatteryPowered(p_155228_: BlockEntityType<*>, p_155229_: BlockPos, p_155230_: BlockState) : BlockEntityMattery(p_155228_, p_155229_, p_155230_) {
|
||||
abstract val energy: EnergyStorageImpl
|
||||
private var resolverEnergy = LazyOptional.of { energy }
|
||||
private var valid = true
|
||||
val batteryContainer = MatteryContainer(this::setChangedLight, 1)
|
||||
|
||||
@ -47,19 +46,19 @@ abstract class BlockEntityMatteryPowered(p_155228_: BlockEntityType<*>, p_155229
|
||||
|
||||
override fun invalidateCaps() {
|
||||
super.invalidateCaps()
|
||||
energy.invalidate()
|
||||
valid = false
|
||||
resolverEnergy.invalidate()
|
||||
}
|
||||
|
||||
override fun reviveCaps() {
|
||||
super.reviveCaps()
|
||||
energy.revive()
|
||||
valid = true
|
||||
resolverEnergy = LazyOptional.of { energy }
|
||||
}
|
||||
|
||||
override fun <T> getCapability(cap: Capability<T>, side: Direction?): LazyOptional<T> {
|
||||
if (valid && (cap === MatteryCapability.ENERGY || cap === CapabilityEnergy.ENERGY))
|
||||
return resolverEnergy.cast()
|
||||
return energy.resolver.cast()
|
||||
|
||||
return super.getCapability(cap, side)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user