25 lines
1.0 KiB
JavaScript
25 lines
1.0 KiB
JavaScript
|
|
CapabilityEvents.dynamicItem(e => {
|
|
e.add(item => (item.item instanceof $ModularItem) && TetraUtil.itemHasEffect(item, "createdelight:charge"),
|
|
CapabilityBuilder.ENERGY.customItemStack()
|
|
.canReceive(i => i.nbt.getInt("energy") < 1000000)
|
|
.getEnergyStored(i =>
|
|
i.nbt.getInt("energy")
|
|
)
|
|
.getMaxEnergyStored(i => {
|
|
if (i.nbt.getInt("maxEnergy") == 0)
|
|
i.nbt.putInt("maxEnergy", 1000000)
|
|
return i.nbt.getInt("maxEnergy")
|
|
})
|
|
.receiveEnergy((item, amount, simulate) => {
|
|
if (item.nbt.getInt("maxEnergy") == 0)
|
|
item.nbt.putInt("maxEnergy", 1000000)
|
|
let energy = item.nbt.getInt("energy")
|
|
let received = Math.min(item.nbt.getInt("maxEnergy") - energy, amount)
|
|
if (!simulate) {
|
|
item.nbt.putInt("energy", energy + received)
|
|
}
|
|
return received
|
|
})
|
|
)
|
|
}) |