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

114 lines
6.9 KiB
JavaScript

Ponder.registry(event => {
let steps = [
[[4, 14, 11, 11, 14, 11], 0], [[4, 14, 10, 11, 14, 10], 7], [[4, 13, 10, 11, 13, 10], 0], [[4, 12, 10, 11, 12, 10], 0],
[[4, 11, 10, 11, 11, 10], 0], [[4, 10, 10, 11, 10, 10], 0], [[4, 10, 9, 11, 10, 9], 7], [[4, 9, 9, 11, 9, 9], 0],
[[4, 8, 9, 11, 8, 9], 0], [[4, 7, 9, 11, 7, 9], 0], [[4, 7, 9, 11, 7, 9], 0], [[4, 7, 8, 11, 7, 8], 7],
[[4, 6, 8, 11, 6, 8], 0], [[4, 6, 7, 11, 6, 7], 7], [[4, 5, 7, 11, 5, 7], 0], [[4, 5, 6, 11, 5, 6], 7],
[[4, 4, 6, 11, 4, 6], 0], [[4, 4, 5, 11, 4, 5], 7], [[4, 3, 5, 11, 3, 5], 0], [[4, 2, 5, 11, 2, 5], 0],
[[4, 2, 4, 11, 2, 4], 0], [[4, 2, 3, 11, 2, 3], 0], [[4, 2, 2, 11, 2, 2], 7], [[4, 1, 2, 11, 1, 2], 0]
]
event.create([
"createdelight:hydropower_station",
"createdelight:wooden_fan",
"createdelight:steel_fan",
"createdelight:forge_steel_fan",
"createdelight:dragon_steel_fan"
])
.scene(
"createdelight:hydropower_station",
"大坝!水利工程的巅峰之作!",
"createdelight:ponder_hydropower_station",
(builder, util) => {
let scene = new $CreateSceneBuilder(builder)
scene.showBasePlate()
scene.scaleSceneView(0.45)
scene.idle(20)
scene.text(40, "先让我们快速的搭建一下基础结构").attachKeyFrame()
scene.idle(40)
for (let i = 0; i < 14; i++) {
scene.world.showSection([3, i + 1, 2, 12, i + 1, 13], Direction.DOWN)
scene.idle(10)
}
scene.text(40, "OK,搭建完毕!").attachKeyFrame()
scene.idle(40)
scene.text(120, "现在让我们看看全貌")
scene.rotateCameraY(90)
scene.idle(40)
scene.rotateCameraY(90)
scene.idle(40)
scene.rotateCameraY(-90)
scene.idle(40)
scene.text(40, "§4注意: 这里要放置大坝以作为控制器组件").attachKeyFrame()
scene.showControls(40, [13, 2, 8.5], "up").rightClick()
scene.idle(40)
scene.rotateCameraY(-90)
scene.idle(60)
scene.overlay.showOutline("green", {}, [4, 14, 11, 11, 14, 11], 40)
scene.text(40, "想让大坝产出应力, 你需要在顶端倒入水").attachKeyFrame()
scene.idle(20)
let water = Blocks.WATER.getBlockStates()
steps.forEach(([coords, idx]) => {
scene.world.setBlocks(coords, water[idx], false)
scene.idle(3)
})
PonderUtil.setKineticSpeed(scene, [3, 3, 4, 12, 3, 4], 32)
scene.idle(40)
steps.forEach(([coords, idx]) => {
scene.world.setBlocks(coords, Block.id("air"), false)
})
PonderUtil.setKineticSpeed(scene, [3, 3, 4, 12, 3, 4], 0)
scene.idle(20)
scene.overlay.showOutline("green", {}, [4, 14, 11, 11, 14, 11], 40)
scene.text(40, "或者你也可以倒入灵质").attachKeyFrame()
scene.idle(20)
let ectoplasm = Block.id("netherexp:ectoplasm").blockState
steps.forEach(([coords, idx]) => {
scene.world.setBlocks(coords, ectoplasm, false)
scene.idle(3)
})
PonderUtil.setKineticSpeed(scene, [3, 3, 4, 12, 3, 4], 32)
scene.idle(40)
steps.forEach(([coords, idx]) => {
scene.world.setBlocks(coords, water[idx], false)
scene.idle(3)
})
scene.idle(20)
scene.overlay.showOutline("green", {}, [3, 1, 2, 12, 14, 13], 60)
scene.text(60, "大坝结构内所有的陨石方块均可替换为陨石类方块", [3, 15, 13]).attachKeyFrame()
scene.idle(60)
scene.overlay.showOutline("green", {}, [4, 3, 4, 11, 3, 4], 80)
scene.text(80, "§4注意: 不同等级的单个转子产出的应力§r\n§4从低到高分别为: 16384su, 65536su,§r\n§4131072su, 262144su", [8, 3, 4])
scene.text(80, "大坝的涡轮转子转速固定为32RPM, 且存在四个等级, 依次为木, 钢, 锻造钢, 龙钢")
scene.world.replaceBlocks([8, 3, 4, 9, 3, 4], Block.id("createdelight:steel_fan").blockState.setValue($BlockStateProperties.HORIZONTAL_FACING, Direction.WEST), true)
scene.world.replaceBlocks([6, 3, 4, 7, 3, 4], Block.id("createdelight:forge_steel_fan").blockState.setValue($BlockStateProperties.HORIZONTAL_FACING, Direction.WEST), true)
scene.world.replaceBlocks([4, 3, 4, 5, 3, 4], Block.id("createdelight:dragon_steel_fan").blockState.setValue($BlockStateProperties.HORIZONTAL_FACING, Direction.WEST), true)
PonderUtil.setKineticSpeed(scene, [3, 3, 4, 12, 3, 4], 32)
scene.idle(40)
scene.world.replaceBlocks([8, 3, 4, 9, 3, 4], Block.id("createdelight:wooden_fan").blockState.setValue($BlockStateProperties.HORIZONTAL_FACING, Direction.WEST), true)
scene.world.replaceBlocks([6, 3, 4, 7, 3, 4], Block.id("createdelight:wooden_fan").blockState.setValue($BlockStateProperties.HORIZONTAL_FACING, Direction.WEST), true)
scene.world.replaceBlocks([4, 3, 4, 5, 3, 4], Block.id("createdelight:wooden_fan").blockState.setValue($BlockStateProperties.HORIZONTAL_FACING, Direction.WEST), true)
PonderUtil.setKineticSpeed(scene, [3, 3, 4, 12, 3, 4], 32)
scene.idle(40)
scene.text(140, "当然, 大坝也支持横向拓展, 最少1个转子, 最多13个转子, 且每个转子均可单独输出应力").attachKeyFrame()
scene.world.hideSection([5, 1, 2, 11, 14, 13], Direction.SOUTH)
scene.idle(20)
let side = scene.world.makeSectionIndependent([3, 1, 2, 4, 14, 13])
scene.world.moveSection(side, [7, 0, 0], 30)
scene.idle(40)
scene.world.moveSection(side, [-7, 0, 0], 20)
scene.idle(20)
scene.world.showSection([5, 1, 2, 11, 14, 13], Direction.NORTH)
scene.idle(20)
let west = scene.world.makeSectionIndependent([4, 1, 2, 7, 14, 13])
let east = scene.world.makeSectionIndependent([8, 1, 2, 12, 14, 13])
scene.world.moveSection(side, [-2, 0, 0], 15)
scene.world.moveSection(west, [-2, 0, 0], 15)
scene.world.moveSection(east, [3, 0, 0], 15)
scene.idle(20)
scene.world.showSection([6, 1, 2, 10, 14, 13], Direction.NORTH)
scene.idle(20)
scene.markAsFinished()
})
})