Files
jgl_sunlit_patch/kubejs/client_scripts/ponders/cooking_brewing/brewingstation.js
T
2026-07-31 10:34:32 +09:00

222 lines
10 KiB
JavaScript

Ponder.registry((e) => {
e.create(["brewery:wooden_brewingstation", "brewery:copper_brewingstation", "brewery:netherite_brewingstation"]).scene('brewingstation_scene_one', "Starting the Brewing Process", (scene) => {
scene.showBasePlate();
scene.world.setBlocks([1, 1, 2], "brewery:wooden_brewingstation");
scene.world.setBlocks([1, 1, 1], "brewery:brew_timer");
scene.world.setBlocks([2, 1, 1], "brewery:brew_oven");
scene.world.setBlocks([2, 1, 2], "brewery:brew_whistle");
scene.world.setBlocks([2, 2, 2], "brewery:brew_whistle");
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south"), false);
scene.world.modifyBlock([1, 1, 1], () => Block.id("brewery:brew_timer").with("facing", "south"), false);
scene.world.modifyBlock([2, 1, 1], () => Block.id("brewery:brew_oven").with("facing", "south"), false);
scene.world.modifyBlock([2, 1, 2], () => Block.id("brewery:brew_whistle").with("facing", "south"), false);
scene.world.modifyBlock([2, 2, 2], () => Block.id("brewery:brew_whistle").with("half", "upper").with("facing", "south"), false);
global.showPonderLayer(scene, 0, 1);
scene.idle(10);
scene.text(80, "The Brewingstation is a multiblock machine for brewing beers and spirits.")
scene.idle(100);
scene.addLazyKeyframe();
scene.text(80, "To start, place your ingredients into the basin and fill with water.", [1, 2, 2])
scene.idle(30);
scene.showControls(35, [1, 2, 3], "down").rightClick().withItem('brewery:hops')
scene.idle(40);
scene.showControls(35, [1, 2, 3], "down").rightClick().withItem('minecraft:water_bucket')
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south").with("liquid", "filled"), false);
scene.idle(50);
scene.addLazyKeyframe();
scene.text(80, "Place your fuel in the oven block to begin brewing.", [2, 2, 1])
scene.idle(30);
scene.showControls(35, [2, 2, 1], "down").rightClick().withItem('minecraft:coal')
scene.world.modifyBlock([2, 1, 1], () => Block.id("brewery:brew_oven").with("facing", "south").with("heat", "lit"), false);
scene.idle(40);
});
e.create(["brewery:wooden_brewingstation", "brewery:copper_brewingstation", "brewery:netherite_brewingstation"]).scene('brewingstation_scene_two', "The Brewing Minigame", (scene, util) => {
scene.showBasePlate();
scene.world.setBlocks([1, 1, 2], "brewery:wooden_brewingstation");
scene.world.setBlocks([1, 1, 1], "brewery:brew_timer");
scene.world.setBlocks([2, 1, 1], "brewery:brew_oven");
scene.world.setBlocks([2, 1, 2], "brewery:brew_whistle");
scene.world.setBlocks([2, 2, 2], "brewery:brew_whistle");
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south").with("liquid", "filled"), false);
scene.world.modifyBlock([1, 1, 1], () => Block.id("brewery:brew_timer").with("facing", "south"), false);
scene.world.modifyBlock([2, 1, 1], () => Block.id("brewery:brew_oven").with("facing", "south").with("heat", "lit"), false);
scene.world.modifyBlock([2, 1, 2], () => Block.id("brewery:brew_whistle").with("facing", "south"), false);
scene.world.modifyBlock([2, 2, 2], () => Block.id("brewery:brew_whistle").with("half", "upper").with("facing", "south"), false);
global.showPonderLayer(scene, 0, 1);
scene.idle(10);
scene.text(80, "The brewing process is an active one, and the faster you fix issues in the brewing, the higher output you'll get.")
scene.idle(90);
scene.addLazyKeyframe();
scene.text(80, "The basin needs a constant supply of water, and sometimes drains", [1, 2, 2])
let basin = util.select.fromTo(1, 1, 2, 1, 1, 2)
scene.overlay.showOutline(PonderPalette.GREEN, "block", basin, 30)
scene.idle(10);
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south").with("liquid", "drained"), false);
scene.idle(60);
scene.showControls(35, [1, 2, 3], "down").rightClick().withItem('minecraft:water_bucket')
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south").with("liquid", "filled"), false);
scene.idle(60);
scene.addLazyKeyframe();
scene.text(80, "The basin may also overflow, requiring you to take out some water", [1, 2, 2])
scene.idle(10);
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south").with("liquid", "overflowing"), false);
scene.idle(60);
scene.showControls(35, [1, 2, 3], "down").rightClick().withItem('minecraft:bucket')
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south").with("liquid", "filled"), false);
scene.idle(60);
scene.addLazyKeyframe();
let oven = util.select.fromTo(2, 1, 1, 2, 1, 1)
scene.overlay.showOutline(PonderPalette.GREEN, "block", oven, 30)
scene.text(80, "Like the basin, the oven portion may run out of fuel", [2, 2, 1])
scene.idle(10);
scene.world.modifyBlock([2, 1, 1], () => Block.id("brewery:brew_oven").with("facing", "south").with("heat", "weak"), false);
scene.idle(60);
scene.showControls(35, [2, 2, 1], "down").rightClick().withItem('minecraft:coal')
scene.world.modifyBlock([2, 1, 1], () => Block.id("brewery:brew_oven").with("facing", "south").with("heat", "lit"), false);
scene.idle(60);
scene.addLazyKeyframe();
let timer = util.select.fromTo(1, 1, 1, 1, 1, 1)
scene.overlay.showOutline(PonderPalette.GREEN, "block", timer, 30)
scene.text(80, "Finally, the timer portion of the brewingstation may need to be reset with a right click", [2, 2, 2])
scene.idle(10);
scene.world.modifyBlock([1, 1, 1], () => Block.id("brewery:brew_timer").with("facing", "south").with("time", true), false);
scene.world.modifyBlock([1, 1, 1], () => Block.id("brewery:brew_timer").with("facing", "south").with("activated", true), false);
scene.idle(60);
scene.showControls(35, [1, 2, 1], "down").rightClick()
scene.world.modifyBlock([1, 1, 1], () => Block.id("brewery:brew_timer").with("facing", "south"), false);
scene.idle(60);
scene.addLazyKeyframe();
scene.overlay.showOutline(PonderPalette.GREEN, "block", basin, 30)
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south").with("liquid", "beer"), false);
scene.text(80, "Once finished, you can take your beer out with a Beer Mugs!", [1, 2, 2])
scene.idle(70);
scene.showControls(35, [1, 2, 3], "down").rightClick().withItem('brewery:beer_mug')
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south").with("liquid", "empty"), false);
scene.idle(60);
});
e.create(["brewery:wooden_brewingstation", "brewery:copper_brewingstation", "brewery:netherite_brewingstation"]).scene('brewingstation_scene_three', "Brewingstation Tiers", (scene) => {
scene.showBasePlate();
scene.world.setBlocks([1, 1, 2], "brewery:wooden_brewingstation");
scene.world.setBlocks([1, 1, 1], "brewery:brew_timer");
scene.world.setBlocks([2, 1, 1], "brewery:brew_oven");
scene.world.setBlocks([2, 1, 2], "brewery:brew_whistle");
scene.world.setBlocks([2, 2, 2], "brewery:brew_whistle");
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:wooden_brewingstation").with("facing", "south"), false);
scene.world.modifyBlock([1, 1, 1], () => Block.id("brewery:brew_timer").with("facing", "south"), false);
scene.world.modifyBlock([2, 1, 1], () => Block.id("brewery:brew_oven").with("facing", "south"), false);
scene.world.modifyBlock([2, 1, 2], () => Block.id("brewery:brew_whistle").with("facing", "south"), false);
scene.world.modifyBlock([2, 2, 2], () => Block.id("brewery:brew_whistle").with("half", "upper").with("facing", "south"), false);
global.showPonderLayer(scene, 0, 1);
scene.idle(10);
scene.text(60, "There are three tiers of Brewingstation:")
scene.idle(70);
scene.text(70, "Wooden is the starter tier, and can only brew beers.")
scene.idle(90);
scene.addLazyKeyframe();
scene.world.setBlocks([1, 1, 2], "brewery:copper_brewingstation");
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:copper_brewingstation").with("facing", "south").with("material", "copper"), true);
scene.world.modifyBlock([1, 1, 1], () => Block.id("brewery:brew_timer").with("facing", "south").with("material", "copper"), true);
scene.world.modifyBlock([2, 1, 1], () => Block.id("brewery:brew_oven").with("facing", "south").with("material", "copper"), true);
scene.world.modifyBlock([2, 1, 2], () => Block.id("brewery:brew_whistle").with("facing", "south").with("material", "copper"), true);
scene.world.modifyBlock([2, 2, 2], () => Block.id("brewery:brew_whistle").with("half", "upper").with("material", "copper").with("facing", "south"), true);
scene.text(60, "Copper is the second tier, capable of brewing spirits and beers. It also never spawns Elementals.")
scene.idle(90);
scene.addLazyKeyframe();
scene.world.setBlocks([1, 1, 2], "brewery:netherite_brewingstation");
scene.world.modifyBlock([1, 1, 2], () => Block.id("brewery:netherite_brewingstation").with("facing", "south").with("material", "netherite"), true);
scene.world.modifyBlock([1, 1, 1], () => Block.id("brewery:brew_timer").with("facing", "south").with("material", "netherite"), true);
scene.world.modifyBlock([2, 1, 1], () => Block.id("brewery:brew_oven").with("facing", "south").with("material", "netherite"), true);
scene.world.modifyBlock([2, 1, 2], () => Block.id("brewery:brew_whistle").with("facing", "south").with("material", "netherite"), true);
scene.world.modifyBlock([2, 2, 2], () => Block.id("brewery:brew_whistle").with("half", "upper").with("material", "netherite").with("facing", "south"), true);
scene.idle(10);
scene.text(80, "Reinforced is the final tier. It can brew every drink, and provides a minimum quality of 3.")
scene.idle(80);
});
});