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 class BlockEntityMatteryPowered(p_155228_: BlockEntityType<*>, p_155229_: BlockPos, p_155230_: BlockState) : BlockEntityMattery(p_155228_, p_155229_, p_155230_) {
|
||||||
abstract val energy: EnergyStorageImpl
|
abstract val energy: EnergyStorageImpl
|
||||||
private var resolverEnergy = LazyOptional.of { energy }
|
|
||||||
private var valid = true
|
private var valid = true
|
||||||
val batteryContainer = MatteryContainer(this::setChangedLight, 1)
|
val batteryContainer = MatteryContainer(this::setChangedLight, 1)
|
||||||
|
|
||||||
@ -47,19 +46,19 @@ abstract class BlockEntityMatteryPowered(p_155228_: BlockEntityType<*>, p_155229
|
|||||||
|
|
||||||
override fun invalidateCaps() {
|
override fun invalidateCaps() {
|
||||||
super.invalidateCaps()
|
super.invalidateCaps()
|
||||||
|
energy.invalidate()
|
||||||
valid = false
|
valid = false
|
||||||
resolverEnergy.invalidate()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun reviveCaps() {
|
override fun reviveCaps() {
|
||||||
super.reviveCaps()
|
super.reviveCaps()
|
||||||
|
energy.revive()
|
||||||
valid = true
|
valid = true
|
||||||
resolverEnergy = LazyOptional.of { energy }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <T> getCapability(cap: Capability<T>, side: Direction?): LazyOptional<T> {
|
override fun <T> getCapability(cap: Capability<T>, side: Direction?): LazyOptional<T> {
|
||||||
if (valid && (cap === MatteryCapability.ENERGY || cap === CapabilityEnergy.ENERGY))
|
if (valid && (cap === MatteryCapability.ENERGY || cap === CapabilityEnergy.ENERGY))
|
||||||
return resolverEnergy.cast()
|
return energy.resolver.cast()
|
||||||
|
|
||||||
return super.getCapability(cap, side)
|
return super.getCapability(cap, side)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user