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

186 lines
11 KiB
JavaScript

Ponder.registry(event => {
event.create([
"createdelight:big_centrifuge",
"createdelight:centrifuge_rotor"
])
.scene(
"createdelight:big_centrifuge",
"大型离心机",
"createdelight:ponder_big_centrifuge",
(builder, util) => {
let scene = new $CreateSceneBuilder(builder)
scene.showBasePlate()
scene.idle(20)
scene.text(40, "先让我们快速的搭建一下基础结构").attachKeyFrame()
scene.idle(40)
for (let i = 0; i < 7; i++) {
scene.world.showSection([2, i + 1, 2, 6, i + 1, 6], Direction.DOWN)
scene.idle(10)
}
scene.text(40, "OK,搭建完毕!").attachKeyFrame()
scene.idle(40)
scene.text(40, "在这个多方块结构中, 任意的钢制机壳都可以被钢制输入/输出总线代替", [2, 3.5, 4.5]).attachKeyFrame()
scene.world.replaceBlocks([2, 3, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.WEST), true)
scene.world.replaceBlocks([2, 6, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.WEST), true)
scene.idle(40)
scene.rotateCameraY(90)
scene.text(40, "在这个多方块结构中, 任意的钢制机壳都可以被钢制输入/输出总线代替", [7, 3.5, 4.5])
scene.world.replaceBlocks([6, 3, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.EAST), true)
scene.world.replaceBlocks([6, 6, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.EAST), true)
scene.idle(40)
scene.rotateCameraY(90)
scene.text(40, "在这个多方块结构中, 任意的钢制机壳都可以被钢制输入/输出总线代替", [4.5, 3.5, 7])
scene.world.replaceBlocks([4, 3, 6], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.SOUTH), true)
scene.world.replaceBlocks([4, 6, 6], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.SOUTH), true)
scene.idle(40)
scene.rotateCameraY(180)
scene.idle(40)
scene.addKeyframe()
scene.text(40, "此处为应力输入口, 转速至少为32", [4.5, 3, 4.5])
scene.world.hideSection([2, 3, 2, 6, 7, 6], Direction.UP)
scene.idle(40)
scene.text(40, "配方速度随转速增加而线性增加, 当转速达到256时配方速度*4", [4.5, 3, 4.5])
scene.idle(40)
scene.world.showSection([2, 3, 2, 6, 7, 6], Direction.DOWN)
scene.idle(25)
scene.addKeyframe()
scene.overlay.showOutline("blue", {}, [3, 3, 2, 5, 6, 2], 40)
scene.overlay.showOutline("blue", {}, [2, 4, 3, 2, 5, 5], 40)
scene.overlay.showOutline("blue", {}, [6, 4, 3, 6, 5, 5], 40)
scene.overlay.showOutline("blue", {}, [2, 3, 3], 40)
scene.overlay.showOutline("blue", {}, [2, 6, 3], 40)
scene.overlay.showOutline("blue", {}, [2, 3, 5], 40)
scene.overlay.showOutline("blue", {}, [2, 6, 5], 40)
scene.overlay.showOutline("blue", {}, [6, 3, 3], 40)
scene.overlay.showOutline("blue", {}, [6, 6, 3], 40)
scene.overlay.showOutline("blue", {}, [6, 3, 5], 40)
scene.overlay.showOutline("blue", {}, [6, 6, 5], 40)
scene.text(40, "其中的钢制通透玻璃机壳也可以使用钢制玻璃机壳/普通钢制机壳", [4, 4.5, 2.5])
scene.world.replaceBlocks([3, 3, 2, 5, 6, 2], Block.id("createdelightcore:steel_glass_casing").blockState, true)
scene.world.replaceBlocks([2, 4, 3, 2, 5, 5], Block.id("createdelightcore:steel_casing").blockState, true)
scene.world.replaceBlocks([2, 3, 3], Block.id("createdelightcore:steel_casing").blockState, true)
scene.world.replaceBlocks([2, 6, 3], Block.id("createdelightcore:steel_casing").blockState, true)
scene.world.replaceBlocks([2, 3, 5], Block.id("createdelightcore:steel_casing").blockState, true)
scene.world.replaceBlocks([2, 6, 5], Block.id("createdelightcore:steel_casing").blockState, true)
scene.idle(40)
scene.world.replaceBlocks([3, 3, 2, 5, 6, 2], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
scene.world.replaceBlocks([2, 4, 3, 2, 5, 5], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
scene.world.replaceBlocks([2, 3, 3], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
scene.world.replaceBlocks([2, 6, 3], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
scene.world.replaceBlocks([2, 3, 5], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
scene.world.replaceBlocks([2, 6, 5], Block.id("createdelightcore:steel_clear_glass_casing").blockState, false)
scene.idle(40)
scene.addKeyframe()
scene.world.hideSection([3, 3, 2, 5, 7, 2], Direction.NORTH)
scene.world.hideSection([2, 3, 3, 2, 7, 5], Direction.WEST)
scene.world.hideSection([3, 6, 3, 5, 7, 5], Direction.UP)
// scene.world.hideSection([6, 3, 3, 5, 7, 5], Direction.EAST)
// scene.world.hideSection([3, 3, 6, 5, 7, 5], Direction.SOUTH)
scene.text(40, "注意, 离心机转子扭矩为64", [4.5, 4.5, 4.5])
scene.idle(40)
scene.text(140, "离心机基础并行数为16")
scene.text(140, "其中离心机转子可以叠加, 最少一层, 最多三层, 每层离心机转子使得配方速度*4, 且可与转速叠加", [4.5, 4.5, 4.5])
scene.idle(20)
let top = scene.world.makeSectionIndependent([4, 5, 4, 4, 5, 4])
scene.world.hideSection([4, 4, 4], Direction.EAST)
scene.idle(20)
scene.world.moveSection(top, [0, -1, 0], 15)
scene.idle(40)
scene.world.moveSection(top, [0, 2, 0], 15)
scene.idle(20)
scene.world.showSection([4, 4, 4, 4, 5, 4], Direction.EAST)
scene.idle(40)
scene.world.hideSection([4, 3, 4, 4, 5, 4], Direction.UP)
scene.world.hideIndependentSection(top, Direction.UP)
scene.idle(20)
scene.world.showSection([3, 3, 2, 5, 7, 2], Direction.SOUTH)
scene.world.showSection([2, 3, 3, 2, 7, 5], Direction.EAST)
scene.world.showSection([3, 3, 3, 5, 7, 5], Direction.DOWN)
scene.idle(20)
scene.markAsFinished()
})
.scene(
"createdelight:using_big_centrifuge",
"大型离心机的使用",
"createdelight:ponder_big_centrifuge_use",
(builder, util) => {
let scene = new $CreateSceneBuilder(builder)
scene.showBasePlate()
scene.idle(20)
scene.text(40, "现在让我们来学习一下如何使用大型离心机").attachKeyFrame()
scene.idle(40)
scene.world.showSection([2, 1, 2, 6, 7, 6], Direction.DOWN)
scene.idle(20)
scene.text(40, "首先你需要几个输入/输出总线...", [2, 2.5, 4.5]).attachKeyFrame()
scene.world.replaceBlocks([2, 2, 4], Block.id("createdelight:steel_export_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.WEST), true)
scene.idle(20)
scene.rotateCameraY(90)
scene.idle(20)
scene.world.replaceBlocks([6, 2, 4], Block.id("createdelight:steel_import_bus").blockState.trySetValue($BlockStateProperties.FACING, Direction.EAST), true)
scene.idle(20)
scene.rotateCameraY(-90)
scene.idle(20)
scene.text(40, "然后将输入/输出总线接入你的工厂").attachKeyFrame()
scene.world.showSection([1, 2, 4], Direction.EAST)
scene.idle(20)
scene.rotateCameraY(90)
scene.idle(20)
scene.world.showSection([7, 2, 4, 9, 1, 5], Direction.WEST)
scene.idle(20)
scene.text(40, "输入你要离心的材料(这里用污浊铁粉做示范)").attachKeyFrame()
scene.idle(45)
scene.showControls(40, [8.5, 1.5, 4.6], "up").withItem("createmetallurgy:dirty_iron_dust")
scene.text(40, "输入污浊铁粉")
let dirty_iron_dust = scene.world.createItemEntity(
[8.5, 4, 4.5],
[0, 0, 0],
"64x createmetallurgy:dirty_iron_dust"
)
scene.idle(10)
PonderUtil.removeEntity(scene, dirty_iron_dust)
PonderUtil.createItemOnBelt(scene, [8, 1, 4], Direction.UP, Item.of("64x createmetallurgy:dirty_iron_dust"))
scene.idle(20)
PonderUtil.flapFunnel(scene, [7, 2, 4], false)
PonderUtil.setKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 128)
PonderUtil.removeItemsFromBelt(scene, [7, 1, 4])
scene.idle(40)
scene.rotateCameraY(-90)
scene.idle(40)
PonderUtil.multiplyKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 1/2)
scene.idle(2)
PonderUtil.multiplyKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 1/2)
scene.idle(2)
PonderUtil.multiplyKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 1/2)
scene.idle(2)
PonderUtil.multiplyKineticSpeed(scene, [4, 2, 4, 4, 5, 4], 0)
scene.text(40, "等待一段时间后, 产出铁粉及其副产物").attachKeyFrame()
scene.idle(20)
scene.showControls(40, [1.5, 2.5, 4.6], "down").withItem('createmetallurgy:iron_dust')
PonderUtil.flapFunnel(scene, [1, 2, 4], true)
scene.world.createItemEntity(
[1.5, 2.3, 4.5],
[0, 0, 0],
"64x createmetallurgy:iron_dust"
)
scene.idle(20)
PonderUtil.flapFunnel(scene, [1, 2, 4], true)
scene.world.createItemEntity(
[1.5, 2.3, 4.5],
[0, 0, 0],
"16x createmetallurgy:iron_dust"
)
scene.idle(20)
PonderUtil.flapFunnel(scene, [1, 2, 4], true)
scene.world.createItemEntity(
[1.5, 2.3, 4.5],
[0, 0, 0],
"48x minecraft:redstone"
)
scene.idle(5)
scene.showControls(20, [1.5, 2.5, 4.6], "down").withItem('minecraft:redstone')
scene.idle(20)
scene.markAsFinished()
})
})