LTDV10/packet/kubejs/client_scripts/ponder/scene/ae2/pattern_provider.js
2026-04-14 18:20:56 +08:00

157 lines
7.6 KiB
JavaScript

Ponder.registry(event => {
event.create(["ae2:pattern_provider", "ae2:cable_pattern_provider"])
.scene(
"createdelight:pattern_provider",
"样板供应器的使用",
"createdelight:ponder_pattern_provider",
(builder, util) => {
let scene = new $CreateSceneBuilder(builder)
scene.world.showSection([0, 0, 0, 7, 0, 7], Direction.UP)
scene.showBasePlate()
scene.idle(10)
scene.world.showSection([4, 1, 0, 4, 1, 2], Direction.UP)
scene.idle(10)
scene.world.showSection([1, 1, 3, 4, 1, 3], Direction.UP)
scene.idle(20)
scene.world.showSection([2, 2, 3], Direction.UP)
scene.idle(10)
scene.world.showSection([4, 2, 1, 4, 3, 3], Direction.UP)
scene.idle(20)
scene.text(40, "这是一个样板供应器", [2.5, 2.5, 3.5]).attachKeyFrame()
scene.idle(60)
scene.showControls(20, [2.5, 3, 3.5], "down")
.rightClick()
.withItem("create:wrench")
scene.idle(20)
scene.world.modifyBlock([2, 2, 3], state => state.with("push_direction", "down"), false)
scene.idle(20)
scene.text(40, "使用扳手点击样板供应器可使其方向变为扳手点击的方向", [2.5, 3, 3.5]).attachKeyFrame()
scene.idle(60)
scene.text(40, "当网络下达合成请求时……").attachKeyFrame()
scene.idle(20)
let iron_ingot = scene.world.createItemOnBelt(
[2, 1, 3],
Direction.down,
"minecraft:iron_ingot"
)
scene.idle(30)
scene.world.removeItemsFromBelt([4, 1, 3])
let iron_sheet = scene.world.createItemOnBelt(
[4, 1, 3],
Direction.down,
"create:iron_sheet"
)
scene.idle(20)
scene.world.removeItemsFromBelt([4, 1, 3])
scene.world.createItemEntity(
[5, 2, 3.5],
[0.2, 0.25, 0],
"create:iron_sheet")
scene.idle(20)
scene.text(40, "样板供应器会将原料输出到临近的容器内", [2.5, 1.5, 3.5])
scene.overlay.showOutline("green", {}, [2, 1, 3], 40)
scene.idle(80)
scene.addKeyframe()
scene.text(40, "完成一次合成需要将物品返回网络", [2.5, 2.5, 3.5])
scene.idle(60)
scene.world.showSection([5, 1, 3, 5, 1, 6], Direction.DOWN)
scene.world.showSection([6, 1, 4, 0, 1, 7], Direction.DOWN)
scene.world.showSection([2, 2, 4], Direction.DOWN)
scene.idle(20)
scene.text(40, "因此你需要搭建一个回流装置")
}
)
.scene(
"createdelight:ae_crafting_parallel",
"自动合成的并行",
"createdelight:ponder_ae_crafting_parallel",
(builder, util) => {
let scene = new $CreateSceneBuilder(builder)
scene.world.showSection([1, 0, 0, 8, 0, 8], Direction.UP)
scene.idle(20)
scene.world.showSection([1, 1, 0, 1, 1, 3], Direction.DOWN)
scene.idle(10)
for (let index = 0; index < 4; index++) {
scene.world.showSection([0, index, 4], Direction.DOWN)
scene.idle(5)
}
scene.world.showSection([1, 1, 4, 1, 1, 5], Direction.DOWN)
scene.idle(10)
scene.world.showSection([1, 3, 4], Direction.DOWN)
scene.idle(40)
scene.text(60, "使用多个样板供应器可以做到多个机器的并行").attachKeyFrame()
scene.idle(80)
scene.text(60, "内存卡可以复制机器的配置以及将其中配置应用于机器,当然样板供应器也不例外")
scene.idle(80)
scene.text(60, "使用内存卡shift右击样板供应器……").attachKeyFrame()
scene.idle(20)
scene.showControls(40, [1.5, 2, 3.5], "down")
.whileSneaking()
.withItem("ae2:memory_card")
scene.idle(60)
scene.text(60, "样板供应器会将其中样板的信息也存入内存卡中")
scene.idle(60)
scene.world.showSection([2, 1, 3, 2, 1, 5], Direction.DOWN)
scene.idle(20)
scene.world.showSection([2, 3, 4], Direction.DOWN)
scene.text(60, "然后再使用内存卡右击目标的样板供应器……").attachKeyFrame()
scene.idle(40)
scene.showControls(40, [2.5, 2, 3.5], "down")
.withItem("ae2:memory_card")
scene.idle(20)
scene.world.modifyBlock([2, 1, 3], bs => bs.with("push_direction", "south"), false)
scene.idle(40)
scene.text(40, "内存卡会消耗物品栏中的空白样板,并依照其记录的样板复制到目标样板供应器中").attachKeyFrame()
scene.idle(60)
scene.text(80, "然后以此类推,建造并行")
scene.idle(20)
for (let index = 1; index <= 5; index++) {
scene.world.showSection([2 + index, 1, 3, 2 + index, 1, 5], Direction.DOWN)
scene.world.showSection([2 + index, 3, 4], Direction.DOWN)
scene.idle(5)
}
scene.idle(10)
scene.world.showSection([2, 1, 0, 7, 1, 1], Direction.DOWN)
scene.idle(10)
scene.world.showSection([1, 1, 6, 8, 1, 6], Direction.DOWN)
scene.world.showSection([8, 1, 0, 8, 1, 6], Direction.DOWN)
scene.idle(10)
scene.rotateCameraY(90)
scene.idle(40)
scene.rotateCameraY(90)
scene.idle(40)
scene.world.showSection([1, 2, 5, 7, 2, 6], Direction.DOWN)
}
)
event.create(["ae2:pattern_provider", "ae2:cable_pattern_provider", "ae2:interface", "ae2:cable_interface"])
.scene(
"createdelight:pattern_provider_interaction",
"样板供应器与ME接口的联动",
"createdelight:ponder_pattern_provider_interaction",
(builder, util) => {
let scene = new $CreateSceneBuilder(builder)
scene.showBasePlate()
scene.idle(20)
scene.world.showSection([1, 1, 0, 4, 1, 1], Direction.DOWN)
scene.idle(20)
scene.rotateCameraY(90)
scene.idle(20)
scene.overlay.showOutline("green", {}, [1, 1, 1, 2, 1, 1], 40)
scene.text(40, "当样板供应器与ME接口接触时……", [2, 1.5, 1.5])
scene.idle(60)
scene.showControls(40, [1.5, 1.5, 1.5], "down")
.withItem("ae2:certus_quartz_crystal")
scene.idle(40)
scene.world.createItemEntity(
[4.5, 1.5, 1.5],
[0, 0, 0],
"ae2:certus_quartz_crystal")
scene.idle(20)
scene.text(40, "样板供应器会直接将原料输入到ME接口所在的网络")
}
)
})