Ponder.registry((event) => { event .create(["kubejs:steam_generator"]) .tag("kubejs:machine_and_multiblock") .scene( "kubejs:use_steam_generator", "使用大型蒸汽机", "kubejs:9x9base", (scene, utils) => { function setBlock(block, pos) { scene.world.setBlock(pos, block, false); scene.world.showSection(pos, Direction.down) } function modifyBlock(state1, value, pos) { scene.world.modifyBlock(pos, state => state.with(state1, value), false) } scene.configureBasePlate(0, 0, 9); scene.showStructure(0); scene.scaleSceneView(0.6); scene.world.showSection([4, 5, 4], Direction.down) scene.idle(20); scene.addKeyframe(); scene.text(60, "与其它的多方块机器不同,蒸汽发电机周围的结构可以设计的更加自由,并且直接影响其效率"); scene.idle(80); scene.addKeyframe(); scene.text(60, "首先,蒸汽发电机周围的方框处不能是空气"); scene.overlay.showOutline("green", {}, [3, 3, 4, 5, 3, 4], 30); scene.overlay.showOutline("green", {}, [3, 7, 4, 5, 7, 4], 30); scene.overlay.showOutline("blue", {}, [6, 4, 4, 6, 6, 4], 30); scene.overlay.showOutline("blue", {}, [2, 4, 4, 2, 6, 4], 30); setBlock("minecraft:iron_block", [3, 3, 4]); scene.idle(5); setBlock("minecraft:gold_block", [4, 3, 4]); scene.idle(5); setBlock("minecraft:copper_block", [5, 3, 4]); scene.idle(5); setBlock("minecraft:diamond_block", [6, 4, 4]); scene.idle(5); setBlock("minecraft:coal_block", [6, 5, 4]); scene.idle(5); setBlock("minecraft:redstone_block", [6, 6, 4]); scene.idle(5); setBlock("minecraft:lapis_block", [5, 7, 4]); scene.idle(5); setBlock("minecraft:netherite_block", [4, 7, 4]); scene.idle(5); setBlock("minecraft:emerald_block", [3, 7, 4]); scene.idle(5); setBlock("create:andesite_alloy_block", [2, 6, 4]); scene.idle(5); setBlock("create:zinc_block", [2, 5, 4]); scene.idle(5); setBlock("create:brass_block", [2, 4, 4]); scene.idle(25); scene.addKeyframe(); scene.text(60, "接着,你需要在发电机周围3*3内输入加压蒸汽,并为发电机提供润滑油"); scene.overlay.showOutline("fast", {}, [3, 4, 4, 5, 6, 4], 60); scene.idle(20); scene.showControls(15, [4, 5, 4], "up").withItem("create:mechanical_pump") scene.showControls(15, [4, 6, 4], "left").withItem("kubejs:lube_oil_bucket") scene.idle(20); setBlock("kubejs:pressurized_steam", [4, 4, 4]) scene.idle(40); scene.addKeyframe(); scene.text(60, "在配方开始时会消耗润滑油,同时每一格加压蒸汽都会被转化为水,并提供8192FE/t的电力"); scene.idle(20); setBlock("minecraft:water", [4, 4, 4]) scene.idle(60); scene.addKeyframe(); scene.text(60, "但同时需要注意的是,配方开始时在范围每存在一格水,都会使提供的电力大幅衰减!"); setBlock("kubejs:pressurized_steam", [3, 4, 4]) scene.idle(30); setBlock("minecraft:air", [4, 4, 4]) setBlock("minecraft:water", [3, 4, 4]) scene.text(30, "发电效率减半", [4, 5, 4]); scene.idle(50); scene.addKeyframe(); scene.text(60, "输入的润滑油和产出的电力可以被蒸汽发电机自动传递到前方一格处"); scene.overlay.showOutline("green", {}, [4, 5, 3], 40); scene.idle(80); scene.text(40, "也就是说,一系列蒸汽发电机可以被串联起来!"); scene.idle(60); scene.text(60, "总体来说,蒸汽式发电机的最低效率为1024FE/t,而最高效率为65536FE/t"); scene.idle(60); scene.world.hideSection([3, 3, 4, 5, 4, 4], Direction.up) scene.world.hideSection([3, 7, 4, 5, 7, 4], Direction.up) scene.world.hideSection([6, 4, 4, 6, 6, 4], Direction.up) scene.world.hideSection([2, 4, 4, 2, 6, 4], Direction.up) scene.idle(20); scene.addKeyframe(); scene.text(60, "下面是一种可行的结构:"); setBlock("create:mechanical_pump", [3, 3, 4]); modifyBlock("facing", "up", [3, 3, 4]); scene.idle(5); setBlock("create:smart_fluid_pipe", [4, 3, 4]); modifyBlock("facing", "north", [4, 3, 4]); modifyBlock("face", "wall", [4, 3, 4]); scene.world.modifyTileNBT([4, 3, 4], (nbt) => { nbt.Filter = { Count: 1, id: "minecraft:water_bucket" } }); scene.idle(5); setBlock("create:smart_fluid_pipe", [5, 3, 4]); modifyBlock("facing", "north", [5, 3, 4]); modifyBlock("face", "wall", [5, 3, 4]); scene.world.modifyTileNBT([5, 3, 4], (nbt) => { nbt.Filter = { Count: 1, id: "minecraft:water_bucket" } }); scene.idle(5); setBlock("create:mechanical_pump", [6, 4, 4]); modifyBlock("facing", "west", [6, 4, 4]); scene.idle(5); setBlock("create:smart_fluid_pipe", [6, 5, 4]); modifyBlock("facing", "west", [6, 5, 4]); modifyBlock("face", "floor", [6, 5, 4]); scene.world.modifyTileNBT([6, 5, 4], (nbt) => { nbt.Filter = { Count: 1, id: "minecraft:water_bucket" } }); scene.idle(5); setBlock("create:mechanical_pump", [6, 6, 4]); modifyBlock("facing", "west", [6, 6, 4]); scene.idle(5); setBlock("create:mechanical_pump", [5, 7, 4]); modifyBlock("facing", "down", [5, 7, 4]); scene.idle(5); setBlock("create:smart_fluid_pipe", [4, 7, 4]); modifyBlock("facing", "north", [4, 7, 4]); modifyBlock("face", "wall", [4, 7, 4]); scene.world.modifyTileNBT([4, 7, 4], (nbt) => { nbt.Filter = { Count: 1, id: "minecraft:water_bucket" } }); scene.idle(5); setBlock("create:smart_fluid_pipe", [3, 7, 4]); modifyBlock("facing", "north", [3, 7, 4]); modifyBlock("face", "wall", [3, 7, 4]); scene.world.modifyTileNBT([3, 7, 4], (nbt) => { nbt.Filter = { Count: 1, id: "minecraft:water_bucket" } }); scene.idle(5); setBlock("create:mechanical_pump", [2, 6, 4]); modifyBlock("facing", "east", [2, 6, 4]); scene.idle(5); setBlock("create:smart_fluid_pipe", [2, 5, 4]); modifyBlock("facing", "east", [2, 5, 4]); modifyBlock("face", "floor", [2, 5, 4]); scene.world.modifyTileNBT([2, 5, 4], (nbt) => { nbt.Filter = { Count: 1, id: "minecraft:water_bucket" } }); scene.idle(5); setBlock("create:mechanical_pump", [2, 4, 4]); modifyBlock("facing", "east", [2, 4, 4]); scene.idle(5); setBlock("create:encased_fluid_pipe", [3, 4, 4]); modifyBlock("east", "true", [3, 4, 4]); modifyBlock("west", "true", [3, 4, 4]); modifyBlock("up", "true", [3, 4, 4]); modifyBlock("down", "true", [3, 4, 4]); scene.idle(5); setBlock("create:encased_fluid_pipe", [5, 6, 4]); modifyBlock("west", "true", [5, 6, 4]); modifyBlock("east", "true", [5, 6, 4]); modifyBlock("up", "true", [5, 6, 4]); modifyBlock("down", "true", [5, 6, 4]); scene.idle(5); scene.idle(30); } ); });