ServerEvents.recipes(event => { // All grist starts from cobblestone event.shaped('2x kubejs:grist_primordeal_basic', [ 'AAA', 'ABA', 'AAA' ], { 'A': '#forge:cobblestone', 'B': '#forge:gravel' }); event.shaped('2x kubejs:grist_primordeal_basic_block', [ 'AAA', 'ABA', 'AAA' ], { 'A': '#forge:cobblestone', 'B': 'kubejs:grist_essence' }); // Conversions between fluids and items global.Grist.forEach(grist => { let id = grist.id(); let fluidID = grist.fluid().id(); let blockID = grist.block().id(); event.recipes.thermal.crucible(Fluid.of(fluidID, 250), id); event.recipes.thermal.chiller(id, Fluid.of(fluidID, 250)); // convert between block and normal item event.shapeless(blockID, [`9x ${id}`]); event.shapeless(`9x ${id}`, [blockID]); event.custom({ type: "industrialforegoing:dissolution_chamber", input: [], inputFluid: `{Amount:250,FluidName:\"${fluidID}\"}`, output: { count: 1, item: id }, "processingTime": 50 }); event.custom({ type: "industrialforegoing:dissolution_chamber", input: [ {item: id} ], inputFluid: `{Amount:250,FluidName:\"minecraft:water\"}`, output: { count: 0, item: 'minecraft:air' }, outputFluid: `{Amount:250,FluidName:\"${fluidID}\"}`, processingTime: 50 }); }); // Progression along primordeals and universals let _ = [{from: 'basic', to: 'improved'}, {from: 'improved', to: 'radiant'}].forEach(upgrade => { // Primordeal progression requires one from each element of the lower tier event.shaped(`kubejs:grist_primordeal_${upgrade.to}`, [ 'A B', ' E ', 'C D' ], { 'A': `kubejs:grist_agricultural_${upgrade.from}`, 'B': `kubejs:grist_build_${upgrade.from}`, 'C': `kubejs:grist_energetic_${upgrade.from}`, 'D': `kubejs:grist_intelligent_${upgrade.from}`, 'E': `kubejs:grist_primordeal_${upgrade.from}`, }); // After you've unlocked the next tier, you can use the elements of this tier plus one lower primordeal to make more primordeal event.shaped(`8x kubejs:grist_primordeal_${upgrade.to}_block`, [ 'AAB', 'CEB', 'CDD' ], { 'A': `kubejs:grist_agricultural_${upgrade.to}`, 'B': `kubejs:grist_build_${upgrade.to}`, 'C': `kubejs:grist_energetic_${upgrade.to}`, 'D': `kubejs:grist_intelligent_${upgrade.to}`, 'E': `kubejs:grist_primordeal_${upgrade.from}`, }); // Universal grist is cobble surrounded by lower tier universal and primordeal event.shaped(`kubejs:grist_universal_${upgrade.to}`, [ 'ABA', 'BCB', 'ABA' ], { 'A': `kubejs:grist_universal_${upgrade.from}`, 'B': `kubejs:grist_primordeal_${upgrade.from}`, 'C': '#forge:cobblestone' }); }) // Basic primordeal gets a special case.. event.shaped(`4x kubejs:grist_primordeal_basic_block`, [ 'AAB', 'CEB', 'CDD' ], { 'A': `kubejs:grist_agricultural_basic`, 'B': `kubejs:grist_build_basic`, 'C': `kubejs:grist_energetic_basic`, 'D': `kubejs:grist_intelligent_basic`, 'E': '#forge:cobblestone', }); // Finally, start creative-tier grist event.shaped('kubejs:grist_universal_basic', [ 'A B', ' E ', 'C D' ], { 'A': '#kubejs:grist/agricultural/radiant', 'B': '#kubejs:grist/build/radiant', 'C': '#kubejs:grist/energetic/radiant', 'D': '#kubejs:grist/intelligent/radiant', 'E': '#kubejs:grist/primordeal/radiant' }) });