Ponder.registry((event) => { event .create(["kubejs:alloy_furnace", "kubejs:industrial_iron", "kubejs:brass_bucket", "kubejs:industrial_iron_bucket"]) .tag("kubejs:machine_and_multiblock") .scene( "kubejs:use_alloy_furnace", "合金冶炼", "kubejs:alloy_furnace", (scene, utils) => { scene.configureBasePlate(0, 0, 9); scene.showStructure(12); scene.scaleSceneView(0.4); 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("fast", {}, [3, 1, 3, 5, 1, 5], 60); scene.showControls(15, [3, 0, 3], "up").withItem("kubejs:natural_gas_bucket") scene.world.modifyBlock([3, 1, 3, 5, 1, 5], state => state.with("blaze", "kindled"), false) scene.world.modifyTileNBT([3, 1, 3, 5, 1, 5], (nbt) => { nbt.fuelLevel = 1 }); scene.idle(80); scene.addKeyframe(); scene.text(60, "接着,你只需要输入所需的物品并等待配方完成"); scene.idle(40); scene.rotateCameraY(-90); scene.idle(40); scene.addKeyframe(); scene.text(120, "物品产出将留在合金炉核心中等待排出,而流体产出将被排放至后方的3x1x6的范围内"); scene.overlay.showOutline("fast", {}, [3, 2, 7, 5, 2, 12], 60); scene.idle(20); for (let i2 = 7; i2 < 9; i2++) { for (let i1 = 5; i1 > 2; i1--) { scene.world.setBlock([i1, 2, i2], "kubejs:industrial_iron", true); scene.idle(20); } } scene.addKeyframe(); scene.text(60, "你可以在液池旁边自由修建各种结构,从而达成自动化。所有的安山漏斗都可以换成黄铜漏斗"); scene.idle(30); scene.world.hideSection([3, 2, 7, 5, 2, 12], Direction.up); scene.rotateCameraY(90); scene.idle(30); } ) .scene( "kubejs:alloy_furnace", "建造合金炉", "kubejs:alloy_furnace", (scene, utils) => { scene.configureBasePlate(0, 0, 9); scene.showStructure(11); scene.scaleSceneView(0.4); scene.text(60, "你需要在合金炉核心附近建造结构来完成合金炉"); scene.idle(80); scene.addKeyframe(); scene.text(30, "...建造如下结构"); scene.world.hideSection([0,1,0,8,11,8], Direction.up); scene.idle(40); scene.text(60, "如果你对方块种类有疑问,可以点击放大镜图标"); const Layer1 = [[3, 1, 2], [5, 1, 2], [2, 1, 3], [3, 1, 3], [4, 1, 3], [5, 1, 3], [6, 1, 3], [3, 1, 4], [4, 1, 4], [5, 1, 4], [2, 1, 5], [3, 1, 5], [4, 1, 5], [5, 1, 5], [6, 1, 5], [3, 1, 6], [5, 1, 6],] const Layer2 = [[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], [3, 2, 6], [4, 2, 6], [5, 2, 6],] const Layer3 = [[2, 3, 1], [3, 3, 1], [4, 3, 1], [5, 3, 1], [6, 3, 1], [1, 3, 2], [4, 3, 2], [7, 3, 2], [1, 3, 3], [3, 3, 3], [4, 3, 3], [5, 3, 3], [7, 3, 3], [1, 3, 4], [2, 3, 4], [3, 3, 4], [4, 3, 4], [5, 3, 4], [6, 3, 4], [7, 3, 4], [1, 3, 5], [3, 3, 5], [4, 3, 5], [5, 3, 5], [7, 3, 5], [1, 3, 6], [4, 3, 6], [7, 3, 6], [2, 3, 7], [3, 3, 7], [4, 3, 7], [5, 3, 7], [6, 3, 7],] const Layer4 = [[4,4,2],[3, 4, 3], [4, 4, 3], [5, 4, 3], [2, 4, 4], [3, 4, 4], [4, 4, 4], [5, 4, 4], [6, 4, 4], [3, 4, 5], [4, 4, 5], [5, 4, 5], [4, 4, 6],] const Layer5 = [[4, 5, 2], [3, 5, 3], [4, 5, 3], [5, 5, 3], [2, 5, 4], [3, 5, 4], [4, 5, 4], [5, 5, 4], [6, 5, 4], [3, 5, 5], [4, 5, 5], [5, 5, 5], [4, 5, 6],] const Layer6 = [[4, 6, 2], [3, 6, 3], [4, 6, 3], [5, 6, 3], [2, 6, 4], [3, 6, 4], [4, 6, 4], [5, 6, 4], [6, 6, 4], [3, 6, 5], [4, 6, 5], [5, 6, 5], [4, 6, 6],] const Layer7 = [[4, 7, 2], [3, 7, 3], [4, 7, 3], [5, 7, 3], [2, 7, 4], [3, 7, 4], [4, 7, 4], [5, 7, 4], [6, 7, 4], [3, 7, 5], [4, 7, 5], [5, 7, 5], [4, 7, 6],] const Layer8 = [[4, 8, 4],] const Layer9 = [[4, 9, 3], [3, 9, 4], [4, 9, 4], [5, 9, 4], [4, 9, 5],] const Layer10 = [[4, 10, 3], [3, 10, 4], [4, 10, 4], [5, 10, 4], [4, 10, 5],] const Layer11 = [[4, 11, 3], [3, 11, 4], [4, 11, 4], [5, 11, 4], [4, 11, 5],] scene.addKeyframe(); scene.text(30, "第 1 层:", [4, 1, 4]) for (let i of Layer1) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.text(60, "请注意:燃烧室必须加装吸管",[4,1,4]); scene.overlay.showOutline("fast", {}, [3,1,3,5,1,5], 30); scene.idle(80); scene.addKeyframe(); scene.text(30, "第 2 层:", [4, 2, 4]) for (let i of Layer2) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.addKeyframe(); scene.text(30, "第 3 层:", [4, 3, 4]) for (let i of Layer3) { scene.idle(1); scene.world.showSection(i, Direction.down); }; scene.rotateCameraY(-90); scene.idle(80); scene.rotateCameraY(90); scene.idle(40); scene.addKeyframe(); scene.text(30, "第 4 层:", [4, 4, 4]) for (let i of Layer4) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.addKeyframe(); scene.text(30, "第 5 层:", [4, 5, 4]) for (let i of Layer5) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.addKeyframe(); scene.text(30, "第 6 层:", [4, 6, 4]) for (let i of Layer6) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.addKeyframe(); scene.text(30, "第 7 层:", [4, 7, 4]) for (let i of Layer7) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.addKeyframe(); scene.text(30, "第 8 层:", [4, 8, 4]) for (let i of Layer8) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.addKeyframe(); scene.text(30, "第 9 层:", [4, 9, 4]) for (let i of Layer9) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.addKeyframe(); scene.text(60, "请注意:核心的正侧应面向前方;周围的漏斗可以换成黄铜制的",[4,9,4]); scene.overlay.showOutline("red", {}, [4,9,4], 30); scene.idle(80); scene.addKeyframe(); scene.text(30, "第 10 层:", [4, 10, 4]) for (let i of Layer10) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.addKeyframe(); scene.text(30, "第 11 层:", [4, 11, 4]) for (let i of Layer11) { scene.idle(2); scene.world.showSection(i, Direction.down); }; scene.idle(40); scene.rotateCameraY(-180); scene.idle(80); scene.rotateCameraY(-180); } ); });