192 lines
8.5 KiB
JavaScript
192 lines
8.5 KiB
JavaScript
Ponder.registry((event) => {
|
||
event
|
||
.create(["kubejs:blasting_compressor", "ad_astra:steel_block", "ad_astra:steel_plate", "minecraft:diamond"])
|
||
.tag("kubejs:machine_and_multiblock")
|
||
.scene(
|
||
"kubejs:use_blasting_compressor",
|
||
"使用爆破压缩机",
|
||
"kubejs:blasting_compressor",
|
||
(scene, utils) => {
|
||
scene.configureBasePlate(0, 0, 9);
|
||
scene.showStructure(7);
|
||
scene.scaleSceneView(0.5);
|
||
scene.idle(20);
|
||
scene.addKeyframe();
|
||
scene.text(80, "爆破压缩机可以将金属块压制成金属板,或是提供需要高温高压的环境");
|
||
scene.idle(120);
|
||
scene.addKeyframe();
|
||
scene.text(60, "首先,爆破压缩机核心附近必须拥有正确的基础结构,其应当朝向容器端口:");
|
||
scene.idle(80);
|
||
scene.addKeyframe();
|
||
scene.text(60, "接着,你应当提供256 rpm的转速,所有传动杆都可以套上机壳!");
|
||
scene.overlay.showOutline("blue", {}, [2, 6, 4, 6, 6, 4], 60);
|
||
scene.world.modifyTileNBT([2, 6, 4, 6, 6, 4], (nbt) => { nbt.Speed = 256.0 });
|
||
for (let i = 2; i < 7; i++) {
|
||
scene.idle(15);
|
||
scene.effects.rotationDirectionIndicator([i, 6, 4])
|
||
}
|
||
scene.addKeyframe();
|
||
scene.text(60, "接下来利用机械手等物件在指定位置放置好输入的材料");
|
||
scene.overlay.showOutline("green", {}, [3, 8, 3, 5, 9, 5], 60);
|
||
for (let i1 = 0; i1 < 9; i1++) {
|
||
scene.world.setBlock([3 + (Math.floor(i1 / 3)) % 3, 9, 3 + (i1 % 3)], "ad_astra:steel_block", true);
|
||
scene.world.showSection([3 + (Math.floor(i1 / 3)) % 3, 9, 3 + (i1 % 3)], Direction.down);
|
||
scene.idle(5);
|
||
}
|
||
scene.idle(35);
|
||
scene.addKeyframe();
|
||
scene.text(60, "最后将所需的爆破药在红色区域内激活!");
|
||
scene.overlay.showOutline("red", {}, [3, 9, 3, 5, 10, 5], 60);
|
||
scene.idle(20);
|
||
const TNT2 = scene.world.createEntity("tnt", [3, 11.5, 4])
|
||
scene.idle(1);
|
||
const TNT5 = scene.world.createEntity("tnt", [4, 11.5, 4])
|
||
scene.idle(1);
|
||
const TNT8 = scene.world.createEntity("tnt", [5, 11.5, 4])
|
||
scene.idle(9);
|
||
scene.world.removeEntity(TNT2)
|
||
scene.world.removeEntity(TNT5)
|
||
scene.world.removeEntity(TNT8)
|
||
scene.world.setBlocks([3, 9, 3, 5, 9, 5],true,"minecraft:air")
|
||
scene.idle(10);
|
||
scene.rotateCameraY(45);
|
||
scene.idle(20);
|
||
scene.world.setBlock([4,6,2],"create:brass_funnel",false)
|
||
scene.world.flapFunnel([4,6,2], false);
|
||
scene.world.createItemEntity([4.5,6.5,2.5], Direction.north, "64x ad_astra:steel_plate");
|
||
scene.world.flapFunnel([4,6,2], false);
|
||
scene.idle(5);
|
||
scene.world.createItemEntity([4.5,6.5,2.5], Direction.north, "36x ad_astra:steel_plate");
|
||
scene.idle(20);
|
||
}
|
||
)
|
||
.scene(
|
||
"kubejs:blasting_compressor",
|
||
"建造爆破压缩机",
|
||
"kubejs:blasting_compressor",
|
||
(scene, utils) => {
|
||
scene.configureBasePlate(0, 0, 9);
|
||
scene.showStructure(7);
|
||
scene.scaleSceneView(0.4);
|
||
scene.text(60, "你需要在爆破压缩机核心附近建造结构来完成爆破压缩机");
|
||
scene.idle(80);
|
||
scene.addKeyframe();
|
||
scene.text(30, "...建造如下结构");
|
||
scene.world.hideSection([0, 1, 0, 8, 7, 8], Direction.up);
|
||
scene.idle(40);
|
||
scene.text(60, "如果你对方块种类有疑问,可以点击放大镜图标");
|
||
scene.idle(40);
|
||
scene.addKeyframe(); const Layer1 = [[4, 1, 2], [3, 1, 3], [4, 1, 3], [5, 1, 3], [2, 1, 4], [3, 1, 4], [4, 1, 4], [5, 1, 4], [6, 1, 4], [3, 1, 5], [4, 1, 5], [5, 1, 5], [4, 1, 6],]
|
||
const Layer2 = [[4, 2, 2], [2, 2, 4], [4, 2, 4], [6, 2, 4], [4, 2, 6],]
|
||
const Layer3 = [[4, 3, 2], [2, 3, 4], [4, 3, 4], [6, 3, 4], [4, 3, 6],]
|
||
const Layer4 = [[3, 4, 2], [4, 4, 2], [5, 4, 2], [2, 4, 4], [4, 4, 4], [6, 4, 4], [3, 4, 6], [4, 4, 6], [5, 4, 6],]
|
||
const Layer5 = [[3, 5, 2], [5, 5, 2], [2, 5, 3], [3, 5, 3], [4, 5, 3], [5, 5, 3], [6, 5, 3], [2, 5, 4], [3, 5, 4], [4, 5, 4], [5, 5, 4], [6, 5, 4], [2, 5, 5], [3, 5, 5], [4, 5, 5], [5, 5, 5], [6, 5, 5], [3, 5, 6], [5, 5, 6],]
|
||
const Layer6 = [[3, 6, 2], [5, 6, 2], [2, 6, 3], [3, 6, 3], [4, 6, 3], [5, 6, 3], [6, 6, 3], [2, 6, 4], [3, 6, 4], [4, 6, 4], [5, 6, 4], [6, 6, 4], [2, 6, 5], [3, 6, 5], [4, 6, 5], [5, 6, 5], [6, 6, 5], [3, 6, 6], [5, 6, 6],]
|
||
const Layer7 = [[3, 7, 2], [4, 7, 2], [5, 7, 2], [2, 7, 3], [3, 7, 3], [4, 7, 3], [5, 7, 3], [6, 7, 3], [2, 7, 4], [3, 7, 4], [4, 7, 4], [5, 7, 4], [6, 7, 4], [2, 7, 5], [3, 7, 5], [4, 7, 5], [5, 7, 5], [6, 7, 5], [3, 7, 6], [4, 7, 6], [5, 7, 6],]
|
||
scene.addKeyframe();
|
||
scene.text(30, "第 1 层:", [3, 1, 3])
|
||
for (let i of Layer1) {
|
||
scene.idle(2);
|
||
scene.world.showSection(i, Direction.down);
|
||
};
|
||
scene.idle(40);
|
||
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.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);
|
||
scene.addKeyframe();
|
||
scene.text(30, "第 5 层:", [3, 5, 3])
|
||
for (let i of Layer5) {
|
||
scene.idle(2);
|
||
scene.world.showSection(i, Direction.down);
|
||
};
|
||
scene.idle(40);
|
||
scene.addKeyframe();
|
||
scene.text(30, "第 6 层:", [3, 6, 3])
|
||
for (let i of Layer6) {
|
||
scene.idle(2);
|
||
scene.world.showSection(i, Direction.down);
|
||
};
|
||
scene.idle(40);
|
||
scene.addKeyframe();
|
||
scene.text(30, "第 7 层:", [3, 7, 3])
|
||
for (let i of Layer7) {
|
||
scene.idle(2);
|
||
scene.world.showSection(i, Direction.down);
|
||
};
|
||
scene.idle(40);
|
||
})
|
||
.scene(
|
||
"kubejs:mystery_compressor",
|
||
"*&#$*#($^(*@",
|
||
"kubejs:blasting_compressor",
|
||
(scene, utils) => {
|
||
scene.configureBasePlate(0, 0, 9);
|
||
scene.showStructure(7);
|
||
scene.scaleSceneView(0.5);
|
||
scene.idle(20);
|
||
scene.world.modifyTileNBT([2, 6, 4, 6, 6, 4], (nbt) => { nbt.Speed = 256.0 });
|
||
scene.idle(20);
|
||
scene.addKeyframe();
|
||
for (let i1 = 0; i1 < 9; i1++) {
|
||
scene.world.setBlock([3 + (Math.floor(i1 / 3)) % 3, 9, 3 + (i1 % 3)], "ad_astra:steel_block", true);
|
||
scene.world.showSection([3 + (Math.floor(i1 / 3)) % 3, 9, 3 + (i1 % 3)], Direction.down);
|
||
scene.idle(5);
|
||
}
|
||
scene.idle(35);
|
||
const creeper1 = scene.world.createEntity("creeper", [3, 10, 4])
|
||
scene.idle(1);
|
||
const creeper2 = scene.world.createEntity("creeper", [4, 10, 4])
|
||
scene.idle(1);
|
||
const creeper3 = scene.world.createEntity("creeper", [5, 10, 4])
|
||
scene.idle(9);
|
||
scene.world.removeEntity(creeper1)
|
||
scene.world.removeEntity(creeper2)
|
||
scene.world.removeEntity(creeper3)
|
||
scene.world.setBlocks([3, 9, 3, 5, 9, 5],true,"minecraft:air")
|
||
scene.idle(10);
|
||
|
||
scene.addKeyframe();
|
||
for (let i1 = 0; i1 < 9; i1++) {
|
||
scene.world.setBlock([3 + (Math.floor(i1 / 3)) % 3, 9, 3 + (i1 % 3)], "ad_astra:steel_block", true);
|
||
scene.idle(5);
|
||
}
|
||
scene.idle(35);
|
||
const crystal = scene.world.createEntity("end_crystal", [4, 10, 4])
|
||
scene.idle(9);
|
||
scene.world.removeEntity(crystal)
|
||
scene.world.setBlocks([3, 9, 3, 5, 9, 5],true,"minecraft:air")
|
||
scene.idle(10);
|
||
|
||
scene.addKeyframe();
|
||
for (let i1 = 0; i1 < 9; i1++) {
|
||
scene.world.setBlock([3 + (Math.floor(i1 / 3)) % 3, 9, 3 + (i1 % 3)], "ad_astra:steel_block", true);
|
||
scene.idle(5);
|
||
}
|
||
scene.idle(35);
|
||
const propellant = scene.world.createEntity("createbigcannons:primed_propellant", [4, 11.5, 4])
|
||
scene.idle(9);
|
||
scene.world.removeEntity(propellant)
|
||
scene.world.setBlocks([3, 9, 3, 5, 9, 5],true,"minecraft:air")
|
||
scene.idle(10);
|
||
scene.idle(20);
|
||
}
|
||
)
|
||
}); |