diff --git a/config/almostunified/unify.json b/config/almostunified/unify.json index 54a8fcb..0643237 100755 --- a/config/almostunified/unify.json +++ b/config/almostunified/unify.json @@ -49,7 +49,8 @@ "forge:peanut_butter_and_jam", "forge:dough", "forge:steamed_rices", - "forge:rubber" + "forge:rubber", + "forge:cardboard" ], "materials": [ "aeternium", @@ -170,6 +171,7 @@ "forge:seeds/barley": ["brewery:barley_seeds"], "forge:seeds/tomato": ["candlelight:tomato_seeds"], "forge:seeds/lettuce": ["candlelight:lettuce_seeds"], + "forge:cardboard": ["dustrial_decor:cardboard", "create:cardboard"], "thermal:crafting/dies": ["ae2:silicon_press", "ae2:engineering_processor_press", "ae2:calculation_processor_press", "ae2:logic_processor_press"] }, "tagOwnerships": { diff --git a/kubejs/data/kubejs/recipes/gristdex.json b/kubejs/data/kubejs/recipes/gristdex.json index a8d9e2a..61a98a9 100755 --- a/kubejs/data/kubejs/recipes/gristdex.json +++ b/kubejs/data/kubejs/recipes/gristdex.json @@ -8,5 +8,5 @@ "item": "minecraft:book" } ], - "book": "gristdex" + "book": "patchouli:gristdex" } \ No newline at end of file diff --git a/kubejs/server_scripts/grist/build.js b/kubejs/server_scripts/grist/build.js index 6cb307f..4c5820a 100755 --- a/kubejs/server_scripts/grist/build.js +++ b/kubejs/server_scripts/grist/build.js @@ -22,16 +22,29 @@ ServerEvents.recipes(event => { '2x kubejs:grist_build_basic', ['#kubejs:grist/build/basic', 'kubejs:grist_primordeal_basic_block'] ); - event.smelting('kubejs:grist_build_basic', 'kubejs:refined_grist_aggregate'); + event.smelting('16x kubejs:grist_build_basic', 'kubejs:refined_grist_aggregate'); event.recipes.shapeless( 'kubejs:coarse_grist_aggregate', [ - '3x #forge:sand', 'minecraft:clay_ball', '3x #forge:gravel', '#alltheores:ore_hammers', 'kubejs:grist_primordeal_basic_block' ]); + event.recipes.custom( + { + type: 'create:crushing', + ingredients: [ + '3x #forge:sand', + 'minecraft:clay_ball', + '3x #forge:gravel', + 'kubejs:grist_primordeal_basic_block' + ], + results: [ + 'kubejs:coarse_grist_aggregate' + ] + } + ); event.recipes.shapeless( 'kubejs:reduced_grist_aggregate', [ '#alltheores:ore_hammers', @@ -39,12 +52,37 @@ ServerEvents.recipes(event => { 'kubejs:grist_primordeal_basic', '6x kubejs:coarse_grist_aggregate' ]); + event.recipes.custom( + { + type: 'create:crushing', + ingredients: [ + 'minecraft:granite', + 'kubejs:grist_primordeal_basic', + '6x kubejs:coarse_grist_aggregate' + ], + results: [ + 'kubejs:reduced_grist_aggregate' + ] + } + ); event.recipes.shapeless( '2x kubejs:refined_grist_aggregate', [ '#alltheores:ore_hammers', 'kubejs:grist_primordeal_basic', '5x kubejs:reduced_grist_aggregate' ]); + event.recipes.custom( + { + type: 'create:crushing', + ingredients: [ + 'kubejs:grist_primordeal_basic', + '5x kubejs:reduced_grist_aggregate' + ], + results: [ + 'kubejs:refined_grist_aggregate' + ] + } + ); event.custom( { diff --git a/kubejs/server_scripts/mods/create.js b/kubejs/server_scripts/mods/create.js new file mode 100644 index 0000000..cebbd16 --- /dev/null +++ b/kubejs/server_scripts/mods/create.js @@ -0,0 +1,45 @@ + +ServerEvents.recipes(event => { + // Gate create behind finding tin and basic ore crushing hammers + event.remove({output: 'create:andesite_alloy'}); + event.shapeless('2x create:andesite_alloy', [ + '2x minecraft:andesite', + global.dustItem('tin', 2), + ]); + + event.shapeless('2x create:cogwheel', [ + 'thermal:tin_gear', + '#minecraft:planks', + ]); + + // 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 either come from finding diamonds (expensive) or build grist (cheap, eventually) + event.shaped('create:crushing_wheel', [ + 'CBC', + 'BAB', + 'CBC' + ], { + 'A': '#kubejs:grist/build/basic', + 'B': 'thermal:tin_gear', + 'C': 'create:andesite_alloy', + }); + + event.shaped('create:crushing_wheel', [ + 'CBC', + 'BAB', + 'CBC' + ], { + 'A': 'minecraft:diamond', + 'B': 'thermal:tin_gear', + 'C': 'create:andesite_alloy', + }); +}); \ No newline at end of file diff --git a/kubejs/server_scripts/ore-processing.js b/kubejs/server_scripts/ore-processing.js index cbf9bcc..aa45690 100755 --- a/kubejs/server_scripts/ore-processing.js +++ b/kubejs/server_scripts/ore-processing.js @@ -26,10 +26,10 @@ ServerEvents.recipes(event => { return itemType; } - event.shapeless('thermal:quartz_dust', ['8x minecraft:granite', '#alltheores:ore_hammers']); - event.shapeless('thermal:quartz_dust', ['minecraft:quartz', '#alltheores:ore_hammers']); + event.shapeless('thermal:quartz_dust', ['8x minecraft:granite', '#alltheores:ore_hammers']).id('kubejs:quartz_dust_from_granit_crushing_manual_only'); + event.shapeless('thermal:quartz_dust', ['minecraft:quartz', '#alltheores:ore_hammers']).id('kubejs:quartz_dust_crushing_manual_only'); - // All metals can be processed in the pulverizer, make plates in the press, and make gears with the die + // All metals can be processed in the pulverizer/crusher, make plates in the press, and make gears with the die { let _ = ['copper', 'rose_gold', 'aluminum', 'constantan', 'iron', 'tin', 'nickel', 'gold', 'zinc', 'brass', 'invar', 'bronze', 'silver', 'platinum', 'lead', 'iridium', 'osmium', 'lumium', 'enderium', 'electrum', 'signalum', 'steel', 'uranium'].forEach(metal => { console.log(`Setting up ${metal} processing...`); @@ -66,6 +66,19 @@ ServerEvents.recipes(event => { ], experience: 0.5 }); + + event.custom({ + type: "create:crushing", + ingredients: [ + {tag: `forge:raw_materials/${metal}`} + ], + results: [ + {item: dustType.id, chance: 1.05}, + {item: dustType.id, chance: 0.25}, + {item: 'create:experience_nugget', count: 9, chance: 0.75} + ], + experience: 0.5 + }); } if (blockType.id != "minecraft:air") { @@ -80,6 +93,19 @@ ServerEvents.recipes(event => { ], experience: 0.5 }); + + event.custom({ + type: "create:crushing", + ingredients: [ + {tag: `forge:raw_materials/${metal}`} + ], + results: [ + {item: dustType.id, count: 9, chance: 1.05}, + {item: dustType.id, count: 9, chance: 0.25}, + {item: 'create:experience_nugget', count: 9 * 9, chance: 0.75} + ], + experience: 0.5 + }); } // 1 dust = 1 ingot @@ -93,6 +119,16 @@ ServerEvents.recipes(event => { ], }); + event.custom({ + type: "create:crushing", + ingredients: [ + ingotType.toJson() + ], + results: [ + dustType.toJson() + ], + }); + // 4 ingots = 1 gear event.custom({ type: "thermal:press", @@ -111,6 +147,13 @@ ServerEvents.recipes(event => { ], result: [plateType.toJson()] }); + event.custom({ + type: "create:pressing", + ingredients: [ + ingotType.toJson(), + ], + results: [plateType.toJson()] + }); });} // But only these metals can be processed without a machine @@ -127,16 +170,16 @@ ServerEvents.recipes(event => { 'A': global.ingotItem(metal), 'B': '#forge:gems' }); - event.shapeless(plateID, [global.ingotItem(metal, 2), '#alltheores:ore_hammers']); - event.shapeless(dustID, [global.ingotItem(metal), '#alltheores:ore_hammers']); + event.shapeless(plateID, [global.ingotItem(metal, 2), '#alltheores:ore_hammers']).id(`kubejs:plate_crushing_${metal}_manual_only`); + event.shapeless(dustID, [global.ingotItem(metal), '#alltheores:ore_hammers']).id(`kubejs:ore_crushing_${metal}_manual_only`); });} - // And only these ores can be hammered + // And only these ores can be hammered or crushed {let _ = ['copper', 'iron', 'tin', 'nickel', 'zinc', 'lead', 'aluminum', 'gold'].forEach(ore => { console.log(`Setting up ${ore} hammering...`); let dustType = metalForm(ore, 'dusts', 'dust'); - event.shapeless(dustType.withCount(2), [`#forge:raw_materials/${ore}`, '#alltheores:ore_hammers']); - event.shapeless(dustType.withCount(2 * 9), [`#forge:storage_blocks/raw_${ore}`, '#alltheores:ore_hammers']); + event.shapeless(dustType.withCount(2), [`#forge:raw_materials/${ore}`, '#alltheores:ore_hammers']).id(`kubejs:ore_crushing_${ore}_manual_only`); + event.shapeless(dustType.withCount(2 * 9), [`#forge:storage_blocks/raw_${ore}`, '#alltheores:ore_hammers']).id(`kubejs:ore_block_crushing_${ore}_manual_only`); });} // And only copper can be smelted without pulverizing @@ -144,26 +187,56 @@ ServerEvents.recipes(event => { console.log(`Setting up blends...`); // These are the only blends you can make by hand, aka pre-smelter alloys - event.shapeless(Item.of(metalForm('bronze', 'dusts', 'dust').withCount(2)), [ + // FIXME: Remove the hammer from the create mixer + event.shapeless(Item.of(metalForm('bronze', 'dusts', 'dust').withCount(4)), [ global.dustItem('tin', 2), global.dustItem('copper', 2), '#alltheores:ore_hammers' - ]); - event.shapeless(Item.of(metalForm('brass', 'dusts', 'dust').withCount(2)), [ + ]).id('kubejs:bronze_mixing_manual_only'); + event.custom({ + type: "create:mixing", + ingredients: [ + global.dustItem('tin', 2), + global.dustItem('copper', 2), + ], + results: [global.dustItem('tin', 4)] + }); + + event.shapeless(Item.of(metalForm('brass', 'dusts', 'dust').withCount(4)), [ global.dustItem('copper', 3), - global.dustItem('zinc'), + global.dustItem('zinc', 1), '#alltheores:ore_hammers' - ]); - event.shapeless(Item.of(metalForm('invar', 'dusts', 'dust').withCount(2)), [ + ]).id(`kubejs:brass_mixing_manual_only`); + event.custom({ + type: "create:mixing", + ingredients: [ + global.dustItem('copper', 3), + global.dustItem('zinc', 1), + ], + results: [global.dustItem('brass', 4)] + }); + + event.shapeless(Item.of(metalForm('invar', 'dusts', 'dust').withCount(4)), [ global.dustItem('iron', 2), global.dustItem('nickel', 2), '#alltheores:ore_hammers' - ]); + ]).id('kubejs:invar_mixing_manual_only'); + event.custom({ + type: "create:mixing", + ingredients: [ + global.dustItem('iron', 2), + global.dustItem('nickel', 2), + ], + results: [global.dustItem('invar', 4)] + }); // Constantan dust consumes your first build grist, and it unlocks the basic grist production line event.shapeless(Item.of(metalForm('constantan', 'dusts', 'dust').withCount(4)),[ - global.ingotItem('nickel', 2), global.ingotItem('copper', 2), '#kubejs:grist/build/basic', '#alltheores:ore_hammers' - ]); + global.ingotItem('nickel', 2), + global.ingotItem('copper', 2), + '#kubejs:grist/build/basic', + '#alltheores:ore_hammers' + ]).id('kubejs:constantan_dust_mixing_manual_only'); // Constantan is the only metal you can't work on the bench except for gears event.shaped('thermal:constantan_gear', [ ' A ', @@ -196,7 +269,7 @@ ServerEvents.recipes(event => { ], experience: 0.5 }); - event.shapeless("2x thermal:lapis_dust", ["minecraft:lapis_lazuli", '#alltheores:ore_hammers']); + event.shapeless("2x thermal:lapis_dust", ["minecraft:lapis_lazuli", '#alltheores:ore_hammers']).id('kubejs:lapis_dust_crushing_manual_only'); // Create clay by centrifuging gravel and ash bricks event.custom({