Files
malloc-s4/kubejs/server_scripts/mods/create.js

123 lines
4.8 KiB
JavaScript

ServerEvents.recipes(event => {
event.shapeless('2x create:cogwheel', [
'thermal:tin_gear',
'#minecraft:planks',
]);
// Cart assembler is gated behind mid-game grist
event.replaceInput({output: 'create:cart_assembler'},
'#forge:dusts/redstone',
'#kubejs:grist/build/improved'
);
// Gate wireless stuff behind intelligent grist
event.replaceInput({output: 'create:transmitter'},
'#forge:dusts/redstone',
'#kubejs:grist/intelligent/basic'
);
// Gate the mixer behind aluminum
event.replaceInput({output: 'create:whisk'},
'#forge:plates/iron',
'#forge:plates/aluminum'
);
event.replaceInput({output: 'create:propeller'},
'#forge:plates/iron',
'#forge:plates/invar'
);
event.remove({output: 'create:windmill_bearing'});
event.shaped('create:windmill_bearing', [
' A ',
'DBD',
'DCD'
], {
'A': '#minecraft:wooden_slabs',
'B': '#forge:stone',
'C': 'create:shaft',
'D': '#kubejs:grist/energetic/basic'
});
// Gate the backpack behind mid-game energetic grist
event.replaceInput({output: 'create:copper_backtank'},
'minecraft:copper_block',
'kubejs:grist_energetic_basic_block'
)
event.replaceInput({output: 'create:schematicannon'},
'minecraft:iron_block',
'kubejs:grist_build_basic_block'
)
// Allow certus quartz to be used for rose quartz
event.replaceInput({output: 'create:rose_quartz'},
'minecraft:quartz',
'#forge:gems/quartz',
);
event.shapeless('create:rose_quartz', [
'ae2:certus_quartz_crystal',
'8x minecraft:redstone',
]);
// Crushing wheels can come from build grist
event.remove({output: 'create:crushing_wheel'});
event.shaped('create:crushing_wheel', [
'CBC',
'BAB',
'CBC'
], {
'A': '#kubejs:grist/build/basic',
'B': 'thermal:tin_gear',
'C': 'create:andesite_alloy',
});
// Melt down XP nuggets and blocks into raw XP
// 1 nugget == 60mb cognitium
event.recipes.createMixing(Fluid.of('experienceobelisk:cognitium', 60), 'create:experience_nugget').heated();
event.recipes.createMixing(Fluid.of('experienceobelisk:cognitium', 60 * 9), 'create:experience_block').heated();
// Precision mechanisms should require intelligent grist
event.recipes.createSequencedAssembly([
Item.of('create:precision_mechanism'),
], '#forge:ingots/brass', [
event.recipes.createDeploying('create:incomplete_precision_mechanism', ['create:incomplete_precision_mechanism', '#kubejs:grist/intelligent/basic']),
event.recipes.createDeploying('create:incomplete_precision_mechanism', ['create:incomplete_precision_mechanism', 'create:cogwheel']),
event.recipes.createDeploying('create:incomplete_precision_mechanism', ['create:incomplete_precision_mechanism', '#forge:gears/copper'])
]).transitionalItem('create:incomplete_precision_mechanism').loops(3);
// Factory automation should require some intelligent grist
event.replaceInput({output: 'create:stock_ticker'},
'minecraft:gold_ingot',
'#kubejs:grist/intelligent/basic'
);
event.remove({output: 'create:stock_link'});
event.shaped('create:stock_link', [
' A ',
' B ',
' C '
], {
'A': 'create:transmitter',
'B': 'create:item_vault',
'C': '#kubejs:grist/intelligent/basic',
});
// Gate the symmetry wand behind build grist
event.replaceInput({output: 'create:wand_of_symmetry'},
'#forge:ender_pearls',
'#kubejs:grist/build/improved'
);
['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'magenta', 'white', 'black', 'light_gray', 'gray', 'brown', 'cyan', 'pink'].forEach(color => {
// Create colored blocks from the mixer.
// TODO: This is required due to disabling all automatic crafting recipes, maybe these can just be re-enabled somehow?
event.recipes.create.mixing(`8x minecraft:${color}_concrete_powder`, [`minecraft:${color}_dye`, '4x #forge:sand', '4x minecraft:gravel']);
event.recipes.create.mixing(`8x minecraft:${color}_concrete`, [`minecraft:${color}_dye`, '4x #forge:sand', '4x minecraft:gravel', Fluid.of('minecraft:water', 250 * 8)]);
event.recipes.create.mixing(`8x minecraft:${color}_terracotta`, [`minecraft:${color}_dye`, '8x minecraft:terracotta']);
event.recipes.create.mixing(`minecraft:${color}_concrete`, [`minecraft:${color}_concrete_powder`, Fluid.of('minecraft:water', 250)]);
event.recipes.create.mixing(`minecraft:${color}_wool`, [`minecraft:${color}_dye`, '#minecraft:wool']);
event.recipes.create.mixing(`minecraft:${color}_stained_glass`, [`minecraft:${color}_dye`, '#forge:glass/colorless']).heated();
});
});