LTDV10/packet/kubejs/server_scripts/mbd2/hydropower_station.js
2026-04-14 18:20:56 +08:00

35 lines
1.2 KiB
JavaScript

const $MBDKineticMachineBlockEntity = Java.loadClass("com.lowdragmc.mbd2.integration.create.machine.MBDKineticMachineBlockEntity")
MBDMachineEvents.onStructureFormed("createdelight:hydropower_station", e => {
const{machine} = e.event
/** @type {Internal.MBDMultiblockMachine} */
let multiblock = machine
let fan_poses = []
multiblock.parts.forEach(part => {
let fan_pos = [part.pos.x, part.pos.y, part.pos.z]
fan_poses.push(fan_pos)
/** @type {Internal.MBDKineticMachineBlockEntity} */
let fan = part.machineHolder
fan.stopWorking()
fan.scheduleWorkingRPM(-32, false)
})
machine.customData.putInt("fan_count", fan_poses.length)
for(let i = 0; i <= fan_poses.length-1; i++) {
machine.customData.putIntArray(`fan_pos_${i}`, fan_poses[i])
}
})
MBDMachineEvents.onStructureInvalid("createdelight:hydropower_station", e => {
const{machine} = e.event
const{level,customData} = machine
let fan_count = customData.getInt("fan_count")
for(let i = 0; i <= fan_count; i++){
let intArray = customData.getIntArray(`fan_pos_${i}`)
/** @type {Internal.MBDKineticMachineBlockEntity} */
let fan = level.getBlockEntity([intArray[0], intArray[1], intArray[2]])
try {
fan.stopWorking()
} catch (error) {}
}
})