124 lines
6.2 KiB
JavaScript
124 lines
6.2 KiB
JavaScript
Ponder.registry((event) => {
|
|
event
|
|
.create(["kubejs:satellite_station", "kubejs:satellite", "kubejs:satellite_mining_module", "kubejs:satellite_scanning_module"])
|
|
.tag("kubejs:machine_and_multiblock")
|
|
.scene(
|
|
"kubejs:build_satellite_station",
|
|
"建造轨道卫星收发站",
|
|
"kubejs:satellite_station",
|
|
(scene, utils) => {
|
|
scene.configureBasePlate(0, 0, 9);
|
|
scene.showStructure(9);
|
|
scene.scaleSceneView(0.75);
|
|
scene.text(60, "你需要在收发站控制器附近建造结构来完成轨道卫星收发站");
|
|
scene.idle(80);
|
|
scene.addKeyframe();
|
|
scene.text(30, "...建造如下结构");
|
|
scene.world.hideSection([0, 1, 0, 8, 9, 8], Direction.up);
|
|
scene.idle(40);
|
|
scene.text(60, "如果你对方块种类有疑问,可以点击放大镜图标");
|
|
scene.idle(80);
|
|
const Layer1 = [[3, 1, 1], [4, 1, 1], [5, 1, 1], [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, 1, 7], [3, 1, 7], [4, 1, 7], [5, 1, 7], [6, 1, 7], [2, 1, 8], [3, 1, 8], [4, 1, 8], [5, 1, 8], [6, 1, 8],]
|
|
const Layer2 = [[4, 2, 1], [3, 2, 2], [4, 2, 2], [5, 2, 2], [2, 2, 3], [3, 2, 3], [4, 2, 3], [5, 2, 3], [6, 2, 3], [2, 2, 4], [3, 2, 4], [4, 2, 4], [5, 2, 4], [6, 2, 4], [2, 2, 5], [3, 2, 5], [4, 2, 5], [5, 2, 5], [6, 2, 5], [2, 2, 6], [3, 2, 6], [4, 2, 6], [5, 2, 6], [6, 2, 6], [2, 2, 7], [3, 2, 7], [4, 2, 7], [5, 2, 7], [6, 2, 7], [2, 2, 8], [3, 2, 8], [4, 2, 8], [5, 2, 8], [6, 2, 8],]
|
|
const Layer3 = [[3, 3, 2], [4, 3, 2], [5, 3, 2], [2, 3, 4], [3, 3, 4], [4, 3, 4], [5, 3, 4], [6, 3, 4], [2, 3, 5], [6, 3, 5], [2, 3, 6], [6, 3, 6], [2, 3, 7], [6, 3, 7], [2, 3, 8], [3, 3, 8], [4, 3, 8], [5, 3, 8], [6, 3, 8],]
|
|
scene.addKeyframe();
|
|
scene.text(30, "第 1 层:", [3, 1, 4])
|
|
for (let i of Layer1) {
|
|
scene.idle(1);
|
|
scene.world.showSection(i, Direction.down);
|
|
};
|
|
scene.idle(74);
|
|
scene.addKeyframe();
|
|
scene.text(30, "第 2 层:", [3, 2, 4])
|
|
for (let i of Layer2) {
|
|
scene.idle(1);
|
|
scene.world.showSection(i, Direction.down);
|
|
};
|
|
scene.idle(40);
|
|
scene.text(60, "请注意:控制器应面向前方", [4, 2, 1]);
|
|
scene.overlay.showOutline("red", {}, [4, 2, 1], 30);
|
|
scene.idle(80);
|
|
scene.addKeyframe();
|
|
scene.text(30, "第 3 层:", [3, 3, 4])
|
|
for (let i of Layer3) {
|
|
scene.idle(2);
|
|
scene.world.showSection(i, Direction.down);
|
|
};
|
|
scene.idle(40);
|
|
|
|
}
|
|
)
|
|
.scene(
|
|
"kubejs:get_data",
|
|
"使用人造卫星",
|
|
"kubejs:satellite_station",
|
|
(scene, utils) => {
|
|
scene.configureBasePlate(0, 0, 9);
|
|
scene.showStructure(15);
|
|
scene.scaleSceneView(0.75);
|
|
scene.idle(20);
|
|
scene.addKeyframe();
|
|
scene.text(60, "轨道卫星收发站兼顾发射、接收和维护卫星的功能");
|
|
scene.idle(80);
|
|
scene.text(40, "以获取火箭导航数据为例:");
|
|
scene.idle(60);
|
|
scene.addKeyframe();
|
|
scene.text(60, "在发射时,你首先需要为发射台控制器提供卫星");
|
|
scene.showControls(15, [4, 2, 1], "up").withItem("kubejs:satellite")
|
|
scene.overlay.showOutline("green", {}, [4, 2, 1], 15);
|
|
scene.idle(80);
|
|
scene.text(60, "接着提供卫星探测模块和用于让卫星分辨目标的星球仪");
|
|
scene.showControls(15, [4, 2, 1], "up").withItem("kubejs:satellite_scanning_module")
|
|
scene.overlay.showOutline("green", {}, [4, 2, 1], 60);
|
|
scene.idle(30);
|
|
scene.showControls(15, [4, 2, 1], "up").withItem("ad_astra:earth_globe")
|
|
scene.idle(50);
|
|
scene.addKeyframe();
|
|
scene.text(60, "最后提供计算数据和空导航数据芯片就能发射卫星了!");
|
|
scene.showControls(15, [4, 2, 1], "up").withItem("kubejs:brass_hard_disk")
|
|
scene.overlay.showOutline("green", {}, [4, 2, 1], 60);
|
|
scene.idle(30);
|
|
scene.showControls(15, [4, 2, 1], "up").withItem("kubejs:navigate_data_empty")
|
|
scene.idle(50);
|
|
const Satellite1 = scene.world.createEntity("armor_stand", [4.5, 2.5, 6.5])
|
|
scene.world.modifyEntity(Satellite1, entity => {
|
|
entity.mergeNbt('{Invisible:1b,ArmorItems:[{},{},{},{Count:1b,id:"kubejs:satellite",tags:{}}]}')
|
|
})
|
|
const Satellite2 = scene.world.createEntity("armor_stand", [4.5, 8.5, 6.5])
|
|
scene.world.modifyEntity(Satellite2, entity => {
|
|
entity.mergeNbt('{Invisible:1b,ArmorItems:[{},{},{},{Count:1b,id:"kubejs:satellite",tags:{}}]}')
|
|
})
|
|
scene.idle(20);
|
|
for (let i = 1; i < 31; i++) {
|
|
scene.world.modifyEntity(Satellite1, entity => {
|
|
entity.addDeltaMovement([0, 0.002 * i, 0]);
|
|
entity.move("self", entity.getDeltaMovement());
|
|
});
|
|
scene.idle(1);
|
|
}
|
|
scene.world.removeEntity(Satellite1)
|
|
scene.idle(20);
|
|
for (let i1 = 1; i1 < 31; i1++) {
|
|
scene.world.modifyEntity(Satellite2, entity => {
|
|
entity.setDeltaMovement([0, -0.2, 0]);
|
|
entity.move("self", entity.getDeltaMovement());
|
|
});
|
|
scene.idle(1);
|
|
}
|
|
scene.world.removeEntity(Satellite2)
|
|
scene.addKeyframe();
|
|
scene.text(60, "卫星将会同时产出目标星球的着陆信息和入轨信息");
|
|
scene.showControls(15, [4, 2, 1], "down").withItem("kubejs:navigate_data_moon_orbit")
|
|
scene.overlay.showOutline("green", {}, [4, 2, 1], 60);
|
|
scene.idle(30);
|
|
scene.showControls(15, [4, 2, 1], "down").withItem("kubejs:navigate_data_moon")
|
|
scene.idle(50);
|
|
scene.addKeyframe();
|
|
scene.text(60, "发射台控制器可以自动从接触的容器中提取物品,也可以自动将物品输出到旁边的容器中");
|
|
scene.idle(80);
|
|
scene.addKeyframe();
|
|
scene.text(60, "最后需要注意的是——卫星只能在轨道中发射");
|
|
scene.idle(80);
|
|
}
|
|
)
|
|
}); |