create-the-brass-oncerto/kubejs/client_scripts/Ponder/multiblock_structure/steam_generator.js

156 lines
7.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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