Upload files to "src/kubejs/client_scripts/ponder"

Part 2 cause github upload limit
This commit is contained in:
ButterDog 2023-11-17 21:09:10 +00:00
parent 1623ec1acd
commit 9566dd137d
5 changed files with 518 additions and 0 deletions

View file

@ -0,0 +1,78 @@
Ponder.registry((event) => {
event.create([
'mekanismgenerators:fusion_reactor_frame',
'mekanismgenerators:fusion_reactor_port',
'mekanismgenerators:fusion_reactor_controller',
'mekanismgenerators:fusion_reactor_logic_adapter'
])
.scene('fusion_reactor','Mekanism Fusion Reactor', 'kubejs:fusion_mek',
(scene, util) => {
scene.world.showSection([0, 0, 0, 4, 4, 4], Facing.down);
scene.idle(10);
scene.text(60, 'The Fusion Reactor can be used to generate millions of RF per tick.', [0, 2.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(80)
scene.text(60, 'Ports Can Be Changed Using A Configurator', [1.5, 2.5, 0]).placeNearTarget().attachKeyFrame();
scene.showControls(60, [1.5, 3.5, 0], 'down').rightClick().withItem('mekanism:configurator').whileSneaking();
scene.idle(10);
scene.world.modifyBlock([1, 2, 0], (curState) => curState.with("active", "true"), true);
scene.idle(20);
scene.world.modifyBlock([1, 2, 0], (curState) => curState.with("active", "false"), true);
scene.idle(40);
//hide front
scene.world.hideSection([0, 0, 0, 4, 4, 3], Facing.up);
scene.idle(10);
scene.text(80, 'The Fusion Reactor is built using this pattern for each face.', [2.5, 2, 4.5]).attachKeyFrame();
scene.idle(90);
//east face
scene.world.showSection([4, 0, 0, 4, 4, 3], Facing.down);
scene.idle(10);
//power port
scene.text(60, 'You will need a port for exporting power.', [4, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(70);
//west face
scene.world.showSection([0, 0, 0, 0, 4, 3], Facing.down);
scene.idle(30);
//Laser
scene.text(60, 'The Laser Matrix is used to kickstart the reactor.', [0, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(70);
//bottom face
scene.world.showSection([1, 0, 0, 3, 0, 3], Facing.down);
scene.idle(30);
//top face
scene.world.showSection([0, 4, 0, 3, 4, 3], Facing.down);
scene.idle(30);
//controller
scene.text(60, 'The Fusion Reactor Controller must be placed in the middle of the top face.', [2.5, 4.5, 3.5]).placeNearTarget().attachKeyFrame();
scene.idle(70);
//north face
scene.world.showSection([1, 1, 0, 3, 3, 0], Facing.down);
scene.idle(30);
//fuel input
scene.text(30, 'You will need two ports for inputting Deuterium', [3.5, 2.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(40);
scene.text(40, 'and Tritium.', [1.5, 2.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(50);
});
});

View file

@ -0,0 +1,135 @@
Ponder.registry((event) => {
event.create([
'mekanism:induction_casing',
'mekanism:induction_port'
])
.scene('induction_mek','Mekanism: Induction Matrix', 'kubejs:induction_matrix',
(scene, util) => {
//Show main build
scene.world.showSection([0, 0, 0, 4, 4, 4], Facing.down);
scene.idle(10);
scene.text(80, 'The Induction Matrix is used to store tons of Power.', [0, 4.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
//Hide and build
scene.world.hideSection([0, 0, 0, 4, 4, 4], Facing.up);
scene.idle(10);
scene.world.showSection([4, 0, 4], Facing.down);
scene.idle(5);
[1, 2, 3, 4].forEach(num => {
scene.world.showSection([4, num, 4], Facing.down);
scene.world.showSection([4, 0, 4 - num], Facing.down);
scene.world.showSection([4 - num, 0, 4], Facing.down);
scene.idle(5)
});
[1, 2, 3].forEach(num => {
scene.world.showSection([4, 4, 4 - num], Facing.down);
scene.world.showSection([4 - num, 4, 4], Facing.down);
scene.world.showSection([0, 0, 4 - num], Facing.down);
scene.world.showSection([4 - num, 0, 0], Facing.down);
scene.world.showSection([0, num, 4], Facing.down);
scene.world.showSection([4, num, 0], Facing.down);
scene.idle(5);
});
scene.text(80, 'The Edges Must Be Casings', [0, 4.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(5);
scene.world.showSection([4, 4, 0], Facing.down);
scene.world.showSection([0, 4, 4], Facing.down);
scene.world.showSection([0, 0, 0], Facing.down);
scene.idle(5);
[1, 2, 3].forEach(num => {
scene.world.showSection([0, num, 0], Facing.down);
scene.world.showSection([0, 4, 4 - num], Facing.down);
scene.world.showSection([4 - num, 4, 0], Facing.down);
scene.idle(5)
});
scene.world.showSection([0, 4, 0], Facing.down);
scene.idle(60);
scene.text(80, 'The Faces Can Be Either Casings Or Structural Glass.', [0, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
//Side Sections
//top glass
scene.world.showSection([1, 4, 1, 3, 4, 3], Facing.down);
scene.idle(5)
// bottom glass
scene.world.showSection([1, 0, 1, 3, 0, 3], Facing.up);
scene.idle(5)
// north glass
scene.world.showSection([1, 1, 0, 3, 3, 0], Facing.south);
scene.idle(5)
// south glass
scene.world.showSection([1, 1, 4, 3, 3, 4], Facing.north);
scene.idle(5)
// west glass
scene.world.showSection([0, 1, 1, 0, 3, 3], Facing.east);
scene.idle(5)
// east glass
scene.world.showSection([4, 1, 1, 4, 3, 3], Facing.west);
scene.idle(80);
//Talk about Ports
scene.text(60, 'Ports Are Used To Transfer Power.', [1.5, 1.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(80);
scene.text(80, 'Ports Can Be Changed Using A Configurator.', [1.5, 1.5, 0]).placeNearTarget().attachKeyFrame();
scene.showControls(80, [1.5, 2.5, 0], 'down').rightClick().withItem('mekanism:configurator').whileSneaking();
scene.world.modifyBlock([1, 1, 0], (curState) => curState.with("active", "false"), true);
scene.idle(20);
scene.world.modifyBlock([1, 1, 0], (curState) => curState.with("active", "true"), true);
scene.idle(60);
// Inside Part
scene.world.hideSection([0, 1, 0, 3, 4, 0], Facing.up)
scene.world.hideSection([0, 1, 0, 0, 4, 3], Facing.up)
scene.world.hideSection([1, 4, 1, 3, 4, 3], Facing.up)
scene.idle(20);
scene.text(60, 'Induction Cells Are Used To Increase Power Storage.', [2.5, 1.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.world.setBlock([2, 1, 2], 'mekanism:basic_induction_cell', false);
scene.world.showSection([2, 1, 2], Facing.down)
scene.idle(65);
scene.text(60, 'Induction Providers Are Used To Increase Power Transfer Rate.', [2.5, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.world.setBlock([2, 2, 2], 'mekanism:basic_induction_provider', false);
scene.world.showSection([2, 2, 2], Facing.down)
scene.idle(65)
scene.text(60, 'The Matrix Must Have One Cell and One Provider.', [2, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(65)
//Show All
scene.world.showSection([0, 1, 0, 3, 4, 0], Facing.up)
scene.world.showSection([0, 1, 0, 0, 4, 3], Facing.up)
scene.world.showSection([1, 4, 1, 3, 4, 3], Facing.up)
scene.idle(10);
});
});

View file

@ -0,0 +1,88 @@
Ponder.registry((event) => {
event.create("pylons:harvester_pylon")
.scene("harvest1", "Using the Harvester Pylon", "farm", (scene, util) => {
scene.showBasePlate()
scene.overlay.showText(40).text("The Harvester Pylon").independent(20).placeNearTarget()
scene.idle(10)
scene.overlay.showText(40).text("is placed in the water").independent(36).placeNearTarget()
scene.idle(10)
scene.overlay.showText(40).text("block for the farm").independent(52).placeNearTarget()
scene.idle(10)
scene.world.hideSection([0, 0, 0, 9, 0, 3], Facing.DOWN)
scene.idle(10)
scene.showControls(20, [4.5, 1, 4.5], "down")
.rightClick()
.withItem("pylons:harvester_pylon")
scene.idle(10)
scene.world.modifyBlock([4, 0, 4], () => Block.id("pylons:harvester_pylon").with("waterlogged", "true"), false)
scene.idle(20)
scene.addLazyKeyframe()
scene.overlay.showText(40).text("The Harvester Pylon").independent(20).placeNearTarget()
scene.idle(10)
scene.overlay.showText(40).text("needs a hoe in it's").independent(36).placeNearTarget()
scene.idle(10)
scene.overlay.showText(40).text("inventory to operate").independent(52).placeNearTarget()
scene.idle(10)
scene.showControls(20, [4.5, 1, 4.5], "down")
.withItem("minecraft:stone_hoe")
scene.idle(10)
scene.overlay.showText(40).text("it's durability will be").independent(68).placeNearTarget()
scene.idle(10)
scene.overlay.showText(40).text("used during harvesting").independent(84).placeNearTarget()
scene.idle(30)
scene.addLazyKeyframe()
scene.overlay.showText(40).text("The Harvester Pylon").independent(20).placeNearTarget()
scene.idle(10)
scene.overlay.showText(40).text("needs storage above it").independent(36).placeNearTarget()
scene.idle(10)
scene.overlay.showText(40).text("to place harvested items into").independent(52).placeNearTarget()
scene.idle(10)
scene.showControls(20, [4.5, 2, 4.5], "down")
.rightClick()
.withItem("minecraft:barrel")
scene.idle(10)
scene.world.showSection([4, 1, 4], Facing.down)
scene.idle(20)
scene.addLazyKeyframe()
scene.world.showSection([0, 0, 0, 9, 0, 3], Facing.UP)
scene.idle(10)
let threeby = util.select.fromTo(3, 1, 3, 5, 1, 5).substract(util.select.position(4,1,4))
let fiveby = util.select.fromTo(2, 1, 2, 6, 1, 6).substract(util.select.position(4,1,4))
let sevenby = util.select.fromTo(1, 1, 1, 7, 1, 7).substract(util.select.position(4,1,4))
let nineby = util.select.fromTo(0, 1, 0, 8, 1, 8).substract(util.select.position(4,1,4))
scene.world.setBlocks(nineby, Block.id("minecraft:wheat",{age:"7"}),false)
scene.world.showSection(nineby, Facing.UP)
scene.idle(10)
scene.overlay.showText(60).text("The Harvester Pylon").independent(20).placeNearTarget()
scene.idle(10)
scene.overlay.showText(60).text("can be set to harvest").independent(36).placeNearTarget()
scene.idle(10)
scene.overlay.showText(60).text("in an area of:").independent(52).placeNearTarget()
scene.idle(10)
scene.overlay.showText(20).text("3x3").independent(68).placeNearTarget()
scene.idle(10)
scene.overlay.showOutline(PonderPalette.GREEN, "threeby", threeby, 30)
scene.idle(10)
scene.world.modifyBlocks(threeby, (curState) => curState.with("age",0), false)
scene.idle(10)
scene.overlay.showText(20).text("5x5").independent(68).placeNearTarget()
scene.idle(10)
scene.overlay.showOutline(PonderPalette.GREEN, "fiveby", fiveby, 30)
scene.idle(10)
scene.world.modifyBlocks(fiveby, (curState) => curState.with("age",0), false)
scene.idle(10)
scene.overlay.showText(20).text("7x7").independent(68).placeNearTarget()
scene.idle(10)
scene.overlay.showOutline(PonderPalette.GREEN, "sevenby", sevenby, 30)
scene.idle(10)
scene.world.modifyBlocks(sevenby, (curState) => curState.with("age",0), false)
scene.idle(10)
scene.overlay.showText(20).text("9x9").independent(68).placeNearTarget()
scene.idle(10)
scene.overlay.showOutline(PonderPalette.GREEN, "nineby", nineby, 30)
scene.idle(10)
scene.world.modifyBlocks(nineby, (curState) => curState.with("age",0), false)
scene.idle(10)
})
})

View file

@ -0,0 +1,76 @@
Ponder.registry((event) => {
event.create([
'mekanism:sps_casing',
'mekanism:sps_port',
'mekanism:supercharged_coil'])
.scene('sps','Mekanism Supercritical Phase Shifter (SPS)', 'kubejs:sps',
(scene, util) => {
scene.world.showSection([0, 0, 0, 6, 7, 6], Facing.down);
scene.setSceneOffsetY(-1);
scene.idle(20);
scene.text(60, 'The SPS converts Polonium into Antimatter Gas using a large amount of power', [0, 3.5, 6.5]).placeNearTarget();
scene.addKeyframe();
scene.idle(80)
scene.addKeyframe()
scene.text(60, 'Ports Can Be Changed Using A Configurator', [2.5, 1.5, 0]).placeNearTarget();
scene.showControls(60, [2.5, 2.5, 0], 'down').rightClick().withItem('mekanism:configurator').whileSneaking();
scene.idle(10);
scene.world.modifyBlock([2, 1, 0], (curState) => curState.with("active", "true"), false);
scene.idle(20);
scene.world.modifyBlock([2, 1, 0], (curState) => curState.with("active", "false"), false);
scene.idle(40);
scene.world.hideSection([0, 0, 0, 6, 6, 5], Facing.up);
scene.idle(10);
scene.text(60, 'The SPS is built using this pattern for each face.', [2.5, 4, 5]).placeNearTarget().attachKeyFrame();
scene.idle(60);
//east face
scene.world.showSection([6, 0, 0, 6, 7, 5], Facing.down);
scene.idle(10);
scene.text(60, 'On one side, you will need a Port in the middle to input power.', [5.5, 4, 3]).placeNearTarget().attachKeyFrame();
scene.idle(70);
scene.world.showSection([5, 3, 3], Facing.down);
scene.text(60, 'On the inside, place a Supercharged Coil on the Port.', [5, 4, 3]).placeNearTarget().attachKeyFrame();
scene.idle(80);
//west face
scene.world.showSection([0, 0, 0, 0, 6, 5], Facing.down);
scene.idle(30);
scene.world.showSection([1, 3, 3], Facing.down);
scene.text(60, 'You can also use two Supercharged Coils for max power usage.', [0, 4, 3]).placeNearTarget().attachKeyFrame();
scene.idle(80);
//bottom face
scene.world.showSection([1, 0, 0, 5, 0, 5], Facing.down);
scene.idle(30);
//top face
scene.world.showSection([1, 6, 0, 5, 6, 5], Facing.down);
scene.idle(30);
//north face
scene.world.showSection([1, 1, 0, 5, 5, 0], Facing.down);
scene.idle(30);
scene.text(60, 'You will need one Port for inputting Polonium.', [4.5, 1.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(70);
scene.world.modifyBlock([2, 1, 0], (curState) => curState.with("active", "true"), true);
scene.text(60, 'And another for exporting Antimatter Gas.', [2.5, 1.5, 0]).placeNearTarget().attachKeyFrame();
scene.idle(70);
});
});

View file

@ -0,0 +1,141 @@
Ponder.registry((event) => {
event.create([
'mekanismgenerators:turbine_casing',
'mekanismgenerators:turbine_valve',
'mekanismgenerators:turbine_vent',
'mekanismgenerators:turbine_rotor',
'mekanismgenerators:turbine_blade',
'mekanismgenerators:rotational_complex',
'mekanismgenerators:saturating_condenser',
'mekanism:pressure_disperser',
'mekanismgenerators:electromagnetic_coil',
])
.scene('turbine_mek','Mekanism: Industrial Turbine', 'kubejs:turbine_mek',
(scene, util) => {
scene.showStructure();
scene.idle(5);
scene.text(60, 'The Industrial Turbine uses Heated Coolant to create Power.', [0, 4.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
scene.text(60, 'The edges must be made of Turbine Casings.', [0, 4.5, 4.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
scene.text(60, 'The faces can be Turbine Casings, Structural Glass, Valves, or Vents.', [0, 2.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
scene.text(60, 'Turbine Valves pump in Steam, or export Power.', [0, 1.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
//hide top
scene.world.hideSection([0, 4, 0, 4, 6, 4], Facing.up);
scene.idle(5);
//hide walls
scene.world.hideSection([0, 4, 0, 4, 6, 4], Facing.up);
scene.world.hideSection([0, 1, 0, 3, 6, 0], Facing.up);
scene.world.hideSection([0, 1, 0, 0, 6, 3], Facing.up);
scene.idle(10);
//Turbine Rotor
scene.text(80, 'Turbine Rotors must be placed in the middle. Each Rotor uses 2 Turbine Blades.', [2, 3.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
//show next layer
scene.world.showSection([2, 4, 2], Facing.up);
scene.idle(10);
scene.text(80, 'A Rotational Complex must be placed on top of the Turbine Rotor.', [2, 4.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
scene.world.showSection([1, 4, 1, 3, 4, 1], Facing.up);
scene.world.showSection([3, 4, 2], Facing.up);
scene.world.showSection([1, 4, 2], Facing.up);
scene.world.showSection([1, 4, 3, 3, 4, 3], Facing.up);
scene.idle(10);
scene.text(80, 'Pressure Dispersers must fill the layer around the Rotational Complex.', [1, 4.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
//Show Layer Vents
scene.world.showSection([0, 4, 0, 4, 4, 0], Facing.up);
scene.world.showSection([0, 4, 4, 4, 4, 4], Facing.up);
scene.world.showSection([0, 4, 1, 0, 4, 3], Facing.up);
scene.world.showSection([4, 4, 0, 4, 4, 4], Facing.up);
scene.world.showSection([0, 1, 0, 3, 3, 0], Facing.up);
scene.world.showSection([0, 1, 1, 0, 3, 3], Facing.up);
scene.text(120, 'Starting on this layer, Turbine Vents can be used for the outer faces. These also export Water from the Turbine.', [0, 4.5, 3.5]).placeNearTarget().attachKeyFrame();
scene.idle(125);
//Show Electromagnetic Coil
scene.world.showSection([2, 5, 2], Facing.up);
scene.idle(5);
scene.text(60, 'Electromagnetic Coils are placed on top of the Rotational Complex.', [2, 5.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(65);
scene.world.setBlock([2, 5, 1], 'mekanismgenerators:electromagnetic_coil', true);
scene.world.setBlock([1, 5, 2], 'mekanismgenerators:electromagnetic_coil', true);
scene.world.setBlock([2, 5, 3], 'mekanismgenerators:electromagnetic_coil', true);
scene.world.setBlock([3, 5, 2], 'mekanismgenerators:electromagnetic_coil', true);
scene.world.showSection([2, 5, 1], Facing.up);
scene.world.showSection([1, 5, 2], Facing.up);
scene.world.showSection([2, 5, 3], Facing.up);
scene.world.showSection([3, 5, 2], Facing.up);
scene.idle(10);
scene.text(100, 'A max of 5 can be placed. They either must connect to each other, or be touching the Rotational Complex.', [2, 5.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(105);
//Saturating Condensers
scene.world.showSection([3, 5, 3], Facing.up);
scene.world.showSection([1, 5, 1], Facing.up);
scene.world.showSection([1, 5, 3], Facing.up);
scene.world.showSection([3, 5, 1], Facing.up);
scene.text(120, 'Saturating Condensers are used to convert Steam back into Water. These are not required, but must be placed on or above the Coil Layer.', [1, 5.5, 1.5]).placeNearTarget().attachKeyFrame();
scene.idle(130);
//Show other layers
scene.world.showSection([0, 5, 0, 4, 5, 0], Facing.up);
scene.world.showSection([0, 5, 4, 4, 5, 4], Facing.up);
scene.world.showSection([0, 5, 1, 0, 5, 3], Facing.up);
scene.world.showSection([4, 5, 0, 4, 5, 3], Facing.up);
scene.idle(5);
scene.world.showSection([0, 6, 0, 4, 6, 4], Facing.up);
scene.idle(20);
scene.world.hideSection([1, 6, 1, 3, 6, 3], Facing.up);
scene.idle(15);
scene.world.setBlock([1, 6, 1], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([2, 6, 1], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([3, 6, 1], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([1, 6, 2], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([2, 6, 2], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([3, 6, 2], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([1, 6, 3], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([2, 6, 3], 'mekanismgenerators:turbine_vent', false);
scene.world.setBlock([3, 6, 3], 'mekanismgenerators:turbine_vent', false);
scene.idle(10);
scene.world.showSection([1, 6, 1, 3, 6, 3], Facing.down);
scene.idle(10);
scene.text(80, 'The Top Face can be replaced with Turbine Vents, if needed.', [2.5, 6.5, 2.5]).placeNearTarget().attachKeyFrame();
scene.idle(85);
});
});