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

116 lines
6.5 KiB
JavaScript
Raw Permalink Normal View History

2025-04-11 17:07:29 +08:00
Ponder.registry((event) => {
event
.create(["kubejs:infinity_fetching_pool", "kubejs:saline_water_bucket", "kubejs:cryogen_bucket", "minecraft:lava_bucket"])
.tag("kubejs:machine_and_multiblock")
.scene(
"kubejs:use_infinity_fetching_pool",
"无限取液",
"kubejs:infinity_fetching_pool",
(scene, utils) => {
scene.configureBasePlate(0, 0, 9);
scene.showStructure(0);
scene.scaleSceneView(0.7);
const Layer = [[2, 1, 2], [3, 1, 2], [4, 1, 2], [5, 1, 2], [6, 1, 2], [2, 1, 3], [3, 1, 3], [4, 1, 3], [5, 1, 3], [6, 1, 3], [2, 1, 4], [3, 1, 4], [4, 1, 4], [5, 1, 4], [6, 1, 4], [2, 1, 5], [3, 1, 5], [4, 1, 5], [5, 1, 5], [6, 1, 5], [2, 1, 6], [3, 1, 6], [4, 1, 6], [5, 1, 6], [6, 1, 6], [2, 2, 2], [4, 2, 2], [6, 2, 2], [4, 2, 3], [2, 2, 4], [3, 2, 4], [4, 2, 4], [5, 2, 4], [6, 2, 4], [4, 2, 5], [2, 2, 6], [4, 2, 6], [6, 2, 6], [3, 3, 3], [4, 3, 3], [5, 3, 3], [3, 3, 4], [4, 3, 4], [5, 3, 4], [3, 3, 5], [4, 3, 5], [5, 3, 5], [3, 4, 2], [4, 4, 2], [5, 4, 2], [2, 4, 3], [6, 4, 3], [2, 4, 4], [6, 4, 4], [2, 4, 5], [6, 4, 5], [3, 4, 6], [4, 4, 6], [5, 4, 6]]
for (let i of Layer) {
scene.world.showSection(i, Direction.down);
}
scene.idle(20);
scene.addKeyframe();
scene.text(60, "你也许已经厌倦了建造一万格流体池,那么无限取液池会是你的好选择!");
scene.idle(80);
scene.addKeyframe();
scene.text(60, "首先,核心附近必须修建正确的结构");
scene.idle(80);
scene.addKeyframe();
scene.text(60, "接着,你需要将对应的液体桶放入核心的过滤槽中");
scene.overlay.showOutline("green", {}, [4, 2, 4], 60);
scene.showControls(15, [4, 2, 4], "up").withItem("kubejs:saline_water_bucket")
scene.idle(30);
scene.showControls(15, [4, 2, 4], "up").withItem("kubejs:cryogen_bucket")
scene.idle(30);
scene.showControls(15, [4, 2, 4], "up").withItem("minecraft:lava_bucket")
scene.idle(50);
scene.addKeyframe();
scene.text(60, "最后你需要向蓄电池提供的电力如果电力充足那么可以以3倍的速度产生流体");
scene.idle(40);
scene.overlay.showOutline("green", {}, [3, 1, 3, 5, 1, 5], 60);
scene.world.setBlock([3, 2, 3], "createaddition:creative_energy", true);
scene.world.showSection([3, 2, 3], Direction.down);
scene.idle(15);
for (let i of [[5, 4, 3], [5, 4, 4], [5, 4, 5], [4, 4, 3], [4, 4, 4], [4, 4, 5], [3, 4, 3], [3, 4, 4], [3, 4, 5]]) {
scene.world.showSection(i, Direction.down);
scene.idle(1);
}
scene.addKeyframe();
scene.text(60, "...如此,无限取液池便会在其上方产生对应流体");
scene.overlay.showOutline("green", {}, [3, 4, 3, 5, 4, 5], 60);
scene.idle(80);
scene.text(60, "你可以在液池上方修建用于取出液体的管道,从而达成自动化");
scene.world.showSection([3, 5, 3, 5, 7, 5], Direction.down);
scene.idle(20);
scene.world.hideSection([3, 4, 3, 5, 4, 5], Direction.up);
scene.idle(20);
scene.world.hideSection([3, 5, 3, 5, 7, 5], Direction.up);
scene.idle(40);
}
)
.scene(
"kubejs:infinity_fetching_pool",
"建造无限取液池",
"kubejs:infinity_fetching_pool",
(scene, utils) => {
scene.configureBasePlate(0, 0, 9);
scene.showStructure(0);
scene.scaleSceneView(0.7);
const Layer = [[2, 1, 2], [3, 1, 2], [4, 1, 2], [5, 1, 2], [6, 1, 2], [2, 1, 3], [3, 1, 3], [4, 1, 3], [5, 1, 3], [6, 1, 3], [2, 1, 4], [3, 1, 4], [4, 1, 4], [5, 1, 4], [6, 1, 4], [2, 1, 5], [3, 1, 5], [4, 1, 5], [5, 1, 5], [6, 1, 5], [2, 1, 6], [3, 1, 6], [4, 1, 6], [5, 1, 6], [6, 1, 6], [2, 2, 2], [4, 2, 2], [6, 2, 2], [4, 2, 3], [2, 2, 4], [3, 2, 4], [4, 2, 4], [5, 2, 4], [6, 2, 4], [4, 2, 5], [2, 2, 6], [4, 2, 6], [6, 2, 6], [3, 3, 3], [4, 3, 3], [5, 3, 3], [3, 3, 4], [4, 3, 4], [5, 3, 4], [3, 3, 5], [4, 3, 5], [5, 3, 5], [3, 4, 2], [4, 4, 2], [5, 4, 2], [2, 4, 3], [6, 4, 3], [2, 4, 4], [6, 4, 4], [2, 4, 5], [6, 4, 5], [3, 4, 6], [4, 4, 6], [5, 4, 6]]
for (let i of Layer) {
scene.world.showSection(i, Direction.down);
}
const Layer1 = [[2, 1, 2], [3, 1, 2], [4, 1, 2], [5, 1, 2], [6, 1, 2], [2, 1, 3], [3, 1, 3], [4, 1, 3], [5, 1, 3], [6, 1, 3], [2, 1, 4], [3, 1, 4], [4, 1, 4], [5, 1, 4], [6, 1, 4], [2, 1, 5], [3, 1, 5], [4, 1, 5], [5, 1, 5], [6, 1, 5], [2, 1, 6], [3, 1, 6], [4, 1, 6], [5, 1, 6], [6, 1, 6]]
const Layer2 = [[2, 2, 2], [4, 2, 2], [6, 2, 2], [4, 2, 3], [2, 2, 4], [3, 2, 4], [4, 2, 4], [5, 2, 4], [6, 2, 4], [4, 2, 5], [2, 2, 6], [4, 2, 6], [6, 2, 6]]
const Layer3 = [[3, 3, 3], [4, 3, 3], [5, 3, 3], [3, 3, 4], [4, 3, 4], [5, 3, 4], [3, 3, 5], [4, 3, 5], [5, 3, 5]]
const Layer4 = [[3, 4, 2], [4, 4, 2], [5, 4, 2], [2, 4, 3], [6, 4, 3], [2, 4, 4], [6, 4, 4], [2, 4, 5], [6, 4, 5], [3, 4, 6], [4, 4, 6], [5, 4, 6]]
scene.text(60, "你需要在无限取液池核心附近建造结构来完成无限取液池");
scene.idle(80);
scene.addKeyframe();
scene.text(30, "...建造如下结构");
for (let i of Layer) {
scene.world.hideSection(i, Direction.up);
}
scene.idle(40);
scene.text(60, "如果你对方块种类有疑问,可以点击放大镜图标");
scene.idle(80);
scene.addKeyframe();
scene.text(30, "第 1 层:", [3, 1, 3])
for (let i of Layer1) {
scene.idle(1);
scene.world.showSection(i, Direction.down);
};
scene.idle(48);
scene.addKeyframe();
scene.text(30, "第 2 层:", [3, 2, 3])
for (let i of Layer2) {
scene.idle(2);
scene.world.showSection(i, Direction.down);
};
scene.idle(40);
scene.text(40, "核心在此(朝向任意!)", [4, 2, 4]);
scene.overlay.showOutline("green", {}, [4, 2, 4], 40);
scene.idle(60);
scene.addKeyframe();
scene.text(30, "第 3 层:", [3, 3, 3])
for (let i of Layer3) {
scene.idle(2);
scene.world.showSection(i, Direction.down);
};
scene.idle(40);
scene.addKeyframe();
scene.text(30, "第 4 层:", [3, 4, 3])
for (let i of Layer4) {
scene.idle(2);
scene.world.showSection(i, Direction.down);
};
scene.idle(40);
}
);
});