LTDV10/packet/kubejs/startup_scripts/attach_capability.js
2026-04-14 18:20:56 +08:00

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