Initial commit
This commit is contained in:
		
							
								
								
									
										54
									
								
								kubejs/server_scripts/grist.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										54
									
								
								kubejs/server_scripts/grist.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| ServerEvents.recipes(event => { | ||||
|     // The four elements of malloc | ||||
| 	// Farming - Plants, foods, cooking, etc | ||||
| 	// Build - Placing blocks, destroying blocks, processing ores | ||||
| 	// Energetic - Energy production, redstone, mechanisms, pistons | ||||
| 	// Magnetic - enchanting, magic items, etc | ||||
|  | ||||
| 	// Grist groups | ||||
| 	// Primordeal - used in nearly all tier'd recipes | ||||
| 	// Farming - For organics, fertilizer, usage in insolator, hoe/scythe parts for silentgear? | ||||
| 	// Build - For creating building gadgets, construction paste, modular routers, darkutilities parts...? usage in pulverizer? | ||||
| 	// Energetic - Power production, redstone gadgets, anything that needs RF | ||||
| 	// Intelligent - Enchanting, magic items, teleportation, item storage, automation | ||||
| 	// Universal - combination of all top tiers from all groups, works like all other types in machines, recipes, etc | ||||
|  | ||||
|     /* | ||||
|     Progression recipes | ||||
|         Primordeal grist - just a combination of each of the four elements | ||||
|          | ||||
|         Side story lines / mod exploration lines: | ||||
|             Exploration: | ||||
|                 Transportation: waystones, summoning horses, immersive aircraft, warp plates, tempad, warp scrolls, warp stone | ||||
|                 Dog training: vanilla dog achievement, treats, dog training achievement, beds, collars, healing, armors | ||||
|                 Survival: heartstones, scaling health, sleeping bags, caupona portable jar + aspics, auto-feeding backpack | ||||
|                 Exploration: bounty boards, visiting dungeons galore, biomes, finding shack achievement, finding tablets, tablet table, visiting biomes, collecting items and achievements | ||||
|                 Tools and equipment: apotheosis, exposure, silent gear tools + armor, flux drill, flux saw, backpacks, chalk, ...? | ||||
|                 Combat: attack dummy, silent gear weapons, attack ars runes, gateway orbs, spawners, apotheosis bosses | ||||
|             Base building: | ||||
|                 Aesthetics: comforts, chimneys, chipped, chisel, furniture | ||||
|                 Infrastructure: sophisticated storage, refined storage, elevators, mighty mail, chimes, cooking for blockheads, caupona spas | ||||
|                 Base building: chimes, iron furnaces, cooking for blockheads | ||||
|                 Fine Dining: neopolitan, Croptopia, Sushi Go Crafting, Farmer's Delight, Caupona, Vinery, brewery, bakery, candelight, teas, sandwich mod | ||||
|                 Creative mode: angel ring, ...? | ||||
|             Achievements: killed xxx zombies, visited all alex's biomes, looted xxx chests, visited every dungeon, 8x compressed blocks, grist tiers, spice of life achievements | ||||
|     */ | ||||
|  | ||||
|     /*event.custom({ | ||||
|         type: "apotheosis:enchanting", | ||||
|         input: { | ||||
|             item: "kubejs:unstable_grist_capacitor" | ||||
|         }, | ||||
|         requirements: { | ||||
|             eterna: 40, | ||||
|             quanta: 15, | ||||
|             arcana: 60 | ||||
|         }, | ||||
|         max_requirements: { | ||||
|             eterna: -1, | ||||
|             quanta: 25, | ||||
|             arcana: -1 | ||||
|         }, | ||||
|         result: Item.of('kubejs:grist_energetic_improved').toJson() | ||||
|     });*/ | ||||
| }); | ||||
							
								
								
									
										140
									
								
								kubejs/server_scripts/grist/agricultural.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										140
									
								
								kubejs/server_scripts/grist/agricultural.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,140 @@ | ||||
| ServerEvents.recipes(event => { | ||||
|     /* | ||||
|     Agricultural grist | ||||
|     none -> basic: plant some wheat, make dough, cook with veggies and meat -> unlock early mob farming, botany pots, kitchen parts | ||||
|         basic grist comes from flour + primordeal grist + veggies cooked in a pot with a block of basic primordeal | ||||
|         after you get basic grist, you can smelt basic grist with dough..? | ||||
|         basic grist comes from basic grist + block of primordeal + dough + yeast | ||||
|         your first basic grist comes from chutney + primordeal + meat + dough + yeast | ||||
|         chutney comes from primordeal grist + sugar + fruit + caupona vinegar + chives | ||||
|     */ | ||||
|     event.custom({ | ||||
|         type: 'farmersdelight:cooking', | ||||
|         cookingtime: 400, | ||||
|         experience: 5.0, | ||||
|         ingredients: [ | ||||
|             {item: 'kubejs:grist_primordeal_basic_block'}, | ||||
|             {item: 'minecraft:sugar'}, | ||||
|             {item: 'caupona:vinegar_spice_jar'}, | ||||
|             {tag: 'forge:fruits'}, | ||||
|             {tag: 'forge:fruits'}, | ||||
|             {item: 'caupona:chives_spice_jar'}, | ||||
|         ], | ||||
|         result: {item: 'kubejs:grist_chutney'} | ||||
|     }); | ||||
|     event.custom({ | ||||
|         type: 'farmersdelight:cooking', | ||||
|         cookingtime: 600, | ||||
|         experience: 1.0, | ||||
|         ingredients: [ | ||||
|             {item: 'kubejs:grist_primordeal_basic_block'}, | ||||
|             {item: 'kubejs:grist_chutney'}, | ||||
|             {tag: 'forge:foods/meat/cooked'}, | ||||
|             {tag: 'forge:doughs'}, | ||||
|             {item: 'bakery:yeast'} | ||||
|         ], | ||||
|         result: {item: 'kubejs:grist_agricultural_basic', count: 2} | ||||
|     }); | ||||
|     event.custom({ | ||||
|         type: 'farmersdelight:cooking', | ||||
|         cookingtime: 200, | ||||
|         experience: 2.0, | ||||
|         ingredients: [ | ||||
|             {item: 'kubejs:grist_primordeal_basic_block'}, | ||||
|             {tag: 'kubejs:grist/agricultural/basic'}, | ||||
|             {tag: 'forge:doughs'}, | ||||
|             {item: 'bakery:yeast'} | ||||
|         ], | ||||
|         result: {item: 'kubejs:grist_agricultural_basic', count: 2} | ||||
|     }); | ||||
|  | ||||
|     /* | ||||
|     improved grist comes from cooking improved grist with primordeal and dough | ||||
|     your first improved grist comes from cooking grist treat with grist chutney and improved primordeal block | ||||
|     grist treats come from coating collectorsreap gummies in grist spice | ||||
|     grist spice blend comes from grist morsels + asafoeteda + basic grist resting in a dolum | ||||
|     grist morsels come from dissolving complicated dishes in the dissolution chamber | ||||
|     */ | ||||
|     event.custom({ | ||||
|         type: 'farmersdelight:cooking', | ||||
|         cookingtime: 500, | ||||
|         experience: 1.0, | ||||
|         ingredients: [ | ||||
|             {item: 'kubejs:grist_primordeal_improved_block'}, | ||||
|             {tag: 'kubejs:grist/agricultural/improved'}, | ||||
|             {item: 'kubejs:grist_primordeal_improved_block'}, | ||||
|             {tag: 'kubejs:grist/agricultural/improved'}, | ||||
|         ], | ||||
|         result: {item: 'kubejs:grist_agricultural_improved', count: 4} | ||||
|     }); | ||||
|     event.custom({ | ||||
|         type: 'farmersdelight:cooking', | ||||
|         cookingtime: 500, | ||||
|         experience: 1.0, | ||||
|         ingredients: [ | ||||
|             {item: 'kubejs:grist_primordeal_basic_block'}, | ||||
|             {item: 'kubejs:grist_treats'}, | ||||
|             {item: 'kubejs:grist_treats'}, | ||||
|             {item: 'kubejs:grist_treats'}, | ||||
|             {item: 'kubejs:grist_chutney'}, | ||||
|             {item: 'kubejs:grist_chutney'}, | ||||
|         ], | ||||
|         result: {item: 'kubejs:grist_agricultural_improved'} | ||||
|     }); | ||||
|     event.shaped('kubejs:grist_treats', [ | ||||
|         'AAA', | ||||
|         'ABA', | ||||
|         'AAA' | ||||
|     ], { | ||||
|         'A': 'kubejs:spiced_grist_blend', | ||||
|         'B': 'croptopia:lemon_coconut_bar' | ||||
|     }); | ||||
|     event.custom({ | ||||
|         type: 'caupona:dolium', | ||||
|         amount: 1000, | ||||
|         density: 0.0, | ||||
|         items: [ | ||||
|             {item: {item: 'kubejs:grist_morsels'}, count:2}, | ||||
|             {item: {item: 'kubejs:grist_agricultural_basic_block'}, count:3}, | ||||
|             {item: {item: 'caupona:asafoetida'}, count:1} | ||||
|         ], | ||||
|         fluid: "kubejs:grist_primordeal_improved_fluid", | ||||
|         keepInfo: false, | ||||
|         output: { | ||||
|             type: 'forge:nbt', | ||||
|             count: 1, | ||||
|             item: 'kubejs:spiced_grist_blend' | ||||
|         } | ||||
|     }); | ||||
|     event.custom({ | ||||
|         type: "industrialforegoing:dissolution_chamber", | ||||
|         input: [ | ||||
|             {tag: 'forge:blts'}, | ||||
|             {item: 'kubejs:grist_primordeal_improved'}, | ||||
|             {tag: 'forge:apple_pies'}, | ||||
|             {tag: 'forge:fruit_smoothies'}, | ||||
|             {tag: 'forge:cheeseburgers'}, | ||||
|             {item: 'caupona:okroshka'}, | ||||
|             {item: 'candlelight:pasta_bolognese'}, | ||||
|             {item: 'collectorsreap:prawn_po_boy'}, | ||||
|         ], | ||||
|         inputFluid: "{Amount:5000,FluidName:\"kubejs:grist_agricultural_basic_fluid\"}", | ||||
|         output: { | ||||
|             count: 1, | ||||
|             item: 'kubejs:grist_morsels' | ||||
|         }, | ||||
|         processingTime: 3000 | ||||
|     }); | ||||
|  | ||||
|     /* | ||||
|     radiant grist should require: | ||||
|             more advanced rituals with harder to grab mobs | ||||
|             cooking some pink slime ingots | ||||
|             processing liquid meat | ||||
|             processing some of the vinery fluids | ||||
|             all of the vinery wines in the dissolution chamber | ||||
|             fish? | ||||
|             890101 HNN predictions | ||||
|             emeralds, because villagers? | ||||
|     */ | ||||
| }); | ||||
							
								
								
									
										143
									
								
								kubejs/server_scripts/grist/build.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										143
									
								
								kubejs/server_scripts/grist/build.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,143 @@ | ||||
| ServerEvents.recipes(event => { | ||||
|     /* | ||||
|             Build grist | ||||
|         none -> basic: create a pulverizer, grind sand into grist -> make basic tier of machines and tools (pulverizer, redstone furnace, alloy smelter, ) | ||||
|             basic grist only comes from pulverizing sand into grist, or you get 4x from pulverizing improved grist | ||||
|             pulverizer would require a tin gear which requires four tin ingots plus either one build grist or diamond in the center | ||||
|         basic -> improved: create cobble to gravel to sand to grist generator (with basic power + basic automation) -> overcome the cost of newer machines, world building gadgets, automate food production | ||||
|             full machine would require some pipes automation (intelligent), power (energetic), and food to harvest the materials (agricultural) | ||||
|             all machines required would need gears made from one build grist in the center | ||||
|                 machines: pulverizier, sequential crafter...? | ||||
|             after you get improved, you can make the gear die and make gears without grist | ||||
|                 3x improved grist can also come from alloy smelting cobblestone, gravel, sand in the right quantities | ||||
|     */ | ||||
|  | ||||
|     /* | ||||
|     2x Basic build grist comes from smelting build grist with primordeal | ||||
|     Your first build grist comes from smelting refined aggregate | ||||
|     refined aggregate comes from pulverizing reduced aggregate, which comes from coarse aggregate | ||||
|     coarse aggregate comes from combining sand, clay, gravel, primordeal with an ore hammer | ||||
|     */ | ||||
|     event.recipes.thermal.smelter( | ||||
|         '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.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.shapeless( | ||||
|         'kubejs:reduced_grist_aggregate', [ | ||||
|         '#alltheores:ore_hammers', | ||||
|         'minecraft:granite', | ||||
|         'kubejs:grist_primordeal_basic', | ||||
|         '6x kubejs:coarse_grist_aggregate' | ||||
|     ]); | ||||
|     event.recipes.shapeless( | ||||
|         '2x kubejs:refined_grist_aggregate', [ | ||||
|         '#alltheores:ore_hammers', | ||||
|         'kubejs:grist_primordeal_basic', | ||||
|         '5x kubejs:reduced_grist_aggregate' | ||||
|     ]); | ||||
|  | ||||
|     event.custom( | ||||
|         { | ||||
|             type: "thermal:pulverizer", | ||||
|             ingredients: [ | ||||
|                 {item: "kubejs:coarse_grist_aggregate"}, | ||||
|             ], | ||||
|             result: [ | ||||
|                 { | ||||
|                     item: "kubejs:reduced_grist_aggregate", | ||||
|                     chance: 0.9 | ||||
|                 }, | ||||
|                 { | ||||
|                     item: "kubejs:refined_grist_aggregate", | ||||
|                     chance: 0.1 | ||||
|                 } | ||||
|             ] | ||||
|         } | ||||
|     ); | ||||
|  | ||||
|     event.custom( | ||||
|         { | ||||
|             type: "thermal:pulverizer", | ||||
|             ingredients: [ | ||||
|                 {item: "kubejs:reduced_grist_aggregate"}, | ||||
|             ], | ||||
|             result: [ | ||||
|                 { | ||||
|                     item: "kubejs:reduced_grist_aggregate", | ||||
|                     chance: 0.3 | ||||
|                 }, | ||||
|                 { | ||||
|                     item: "kubejs:refined_grist_aggregate", | ||||
|                     chance: 0.5 | ||||
|                 } | ||||
|             ] | ||||
|         } | ||||
|     ); | ||||
|  | ||||
|     /* | ||||
|     improved grist comes from crystalizing clay + improved + primordeal liquid | ||||
|     your first improved comes from crystalizing 32 reinforced grist ingots with improved primordeal liquid | ||||
|     grist ingots come from 9 grist nuggets in a servo press | ||||
|     reinforced grist nuggets come from grist blend in a centrifugal separator | ||||
|     grist blend comes from basic + improved primordeal block + sulfur in induction smelter | ||||
|     */ | ||||
|     event.recipes.thermal.crystallizer( | ||||
|         '4x kubejs:grist_build_improved', | ||||
|         ['4x minecraft:clay', '2x #kubejs:grist/build/improved', Fluid.of('kubejs:grist_primordeal_improved_fluid', 4500)] | ||||
|     ); | ||||
|     event.recipes.thermal.crystallizer( | ||||
|         'kubejs:grist_build_improved', | ||||
|         ['32x kubejs:reinforced_grist_ingot', Fluid.of('kubejs:grist_primordeal_improved_fluid', 4000)] | ||||
|     ); | ||||
|  | ||||
|     event.custom({ | ||||
|         type: "thermal:press", | ||||
|         ingredients: [ | ||||
|             { item: 'kubejs:reinforced_grist_nugget', count: 9 }, | ||||
|             { item: "thermal:press_packing_3x3_die" } | ||||
|         ], | ||||
|         result: [{item: 'kubejs:reinforced_grist_ingot'}] | ||||
|     }); | ||||
|  | ||||
|     event.custom({ | ||||
|         type: "thermal:centrifuge", | ||||
|         ingredients: [ | ||||
|             { item: 'kubejs:reinforced_grist_blend' }, | ||||
|         ], | ||||
|         result: [{item: 'kubejs:reinforced_grist_nugget', chance: 0.3}] | ||||
|     }); | ||||
|  | ||||
|     event.recipes.thermal.smelter( | ||||
|         'kubejs:reinforced_grist_blend', | ||||
|         ['32x #kubejs:grist/build/basic', '3x kubejs:grist_primordeal_improved_block', '2x #forge:dusts/sulfur'] | ||||
|     ); | ||||
|  | ||||
|     /* | ||||
|     improved -> radiant: process ores with power generation, new machines, and tool enchants into smelting up grist alloys -> near creative mode world shaping tools, crafting any block | ||||
|             three grades of grist alloy ingots: tempered, perfect, and flawed | ||||
|             radiant grist requires energizing a block of tempered alloy | ||||
|  | ||||
|             block of tempered alloy comes from 9 tempered ingots | ||||
|             tempered ingot comes from 9 tempered nuggets + grist paste in a smelter | ||||
|             tempered nuggets come from centrifuing a filled crucible | ||||
|             filled crucibles come from chilling a hot filled crucible | ||||
|             hot filled crucibles come from energizing tempered nuggets with 1x lumium, 1x signalum, 1x improved build block, 1x crucible | ||||
|  | ||||
|             perfect alloy comes from smelting perfect alloy nuggets with intelligent catalysts + advanced powder power powder (gemium?) | ||||
|             perfect alloy nugget comes from solidifying 1000mb of liquid alloy in blast chiller with ingot mold | ||||
|             100mb liquid alloy comes from melting one flawed ingot | ||||
|  | ||||
|             flawed ingots come from energizing 9 flawed nuggets with tremendous power | ||||
|             flawed nuggets come from ars enchanting with 8x advanced powders around 1x improved build | ||||
|     */ | ||||
| }); | ||||
							
								
								
									
										107
									
								
								kubejs/server_scripts/grist/energetic.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										107
									
								
								kubejs/server_scripts/grist/energetic.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,107 @@ | ||||
| ServerEvents.recipes(event => { | ||||
|     /* | ||||
|     Energetic grist | ||||
|         none -> basic: plant some trees, make charcoal, collect copper + lapis, visit the nether, make basic solar power and fluxducts | ||||
|             powah solar panels require dielectric paste | ||||
|             starter solar panel should generate enough power to smelt 3 stacks of logs in parallel, plus basic storage grid | ||||
|             dielectric paste requires hammer + energetic grist + primordeal + redstone dust + clay | ||||
|             energetic grist comes from smelting gristy paste, or blast chilling improved energetic grist | ||||
|             gristy paste is block of primordeal basic grist block wrapped in redstone block + copper blocks | ||||
|         basic -> improved: build up basic energizer, dump a ton of energy into things -> mid game energy generation | ||||
|             ++blazing crystals require blaze powder plus either infused grist capacitors or improved grist | ||||
|             infused grist capcitors are infused in the ars infuser from activated grist capacitors | ||||
|             activated grist capacitors come from crystalzing destabilized grist into basic powah capacitors | ||||
|             destabilized grist comes from magma crucible with inert grist nuggets, 5mb each | ||||
|             inert grist nuggets come from energizing storage parts? + glass + phyto-gro | ||||
|  | ||||
|             build grist provides the huge quantity of sand neeed for glass | ||||
|             agricultural grist provides the phyto-gro and source | ||||
|             intelligent grist provides the storage parts | ||||
|         improved -> radiant: build first niotic tier power generator -> unlock end game power | ||||
|             niotic crystal requires either radiant grist or ..? | ||||
|             ..? requires  | ||||
|     */ | ||||
|     /* | ||||
|     energetic grist comes from energizing energetic + primordeal | ||||
|     your first energetic comes from smelting grist paste | ||||
|     grist paste comes from redstone, obsidian, and primordeal grist | ||||
|     */ | ||||
|     event.smelting('kubejs:grist_energetic_basic', 'kubejs:grist_paste'); | ||||
|     event.shaped('18x kubejs:grist_paste', [ | ||||
|         'ADA', | ||||
|         'BCB', | ||||
|         'AAA' | ||||
|     ], { | ||||
|         'A': 'minecraft:redstone', | ||||
|         'B': '#forge:storage_blocks/copper', | ||||
|         'C': 'kubejs:grist_primordeal_basic_block', | ||||
|         'D': '#alltheores:ore_hammers' | ||||
|     }); | ||||
|     event.recipes.powah.energizing( | ||||
|         ['kubejs:grist_primordeal_basic_block', '#kubejs:grist/energetic/basic'], | ||||
|         '2x kubejs:grist_energetic_basic', | ||||
|         3000 | ||||
|     ); | ||||
|  | ||||
|     /* | ||||
|     improved comes from energizing improved grist with primordeal | ||||
|     your first improved comes from apotheosis infusing an unstable grist capacitor | ||||
|     unstable capacitors come from filling an infused capacitor with improved liquid | ||||
|     infused grist capcitors are infused in the ars infuser from activated grist capacitors | ||||
|     activated grist capacitors come from crystalzing destabilized grist into basic powah capacitors | ||||
|     destabilized grist comes from magma crucible with inert grist nuggets, 5mb each | ||||
|     inert grist nuggets come from energizing storage parts? + glass + phyto-gro | ||||
|  | ||||
|             blazing crystals require blaze powder plus either infused grist capacitors or improved grist | ||||
|     */ | ||||
|     event.recipes.powah.energizing([ | ||||
|         'kubejs:grist_energetic_improved', | ||||
|         'kubejs:grist_energetic_improved', | ||||
|         'kubejs:grist_primordeal_improved_block', | ||||
|         'kubejs:grist_primordeal_improved_block', | ||||
|     ], '4x kubejs:grist_energetic_improved', | ||||
|         20000 | ||||
|     ); | ||||
|     event.recipes.powah.energizing([ | ||||
|         '#forge:glass', | ||||
|         'thermal:phytogrow', | ||||
|         '#forge:dusts/redstone', | ||||
|         'thermal:rf_coil', | ||||
|         global.nuggetItem('steel'), | ||||
|         'powah:dielectric_paste' | ||||
|     ], 'kubejs:inert_grist_nugget', 50000) | ||||
|  | ||||
|     event.recipes.thermal.crucible( | ||||
|         Fluid.of('kubejs:destabilized_grist', 15), | ||||
|         'kubejs:inert_grist_nugget' | ||||
|     ); | ||||
|      | ||||
|     event.recipes.thermal.crystallizer( | ||||
|         'kubejs:activated_grist_capacitor', | ||||
|         ['powah:capacitor_hardened', Fluid.of('kubejs:destabilized_grist', 1750)] | ||||
|     ); | ||||
|     event.recipes.ars_nouveau.imbuement( | ||||
|         'kubejs:activated_grist_capacitor', | ||||
|         'kubejs:infused_grist_capacitor', | ||||
|         3000, | ||||
|         [] | ||||
|     ); | ||||
|     event.recipes.thermal.bottler( | ||||
|         Item.of('kubejs:unstable_grist_capacitor'), | ||||
|         [Fluid.of('kubejs:destabilized_grist', 1250), | ||||
|         Item.of('kubejs:infused_grist_capacitor')] | ||||
|     ); | ||||
|     event.recipes.powah.energizing([ | ||||
|         'kubejs:unstable_grist_capacitor', | ||||
|         'kubejs:unstable_grist_capacitor', | ||||
|         'kubejs:unstable_grist_capacitor', | ||||
|         'kubejs:unstable_grist_capacitor', | ||||
|         'kubejs:unstable_grist_capacitor', | ||||
|     ], 'kubejs:grist_energetic_improved', | ||||
|         50000 | ||||
|     ); | ||||
|  | ||||
|     /* | ||||
|     radiant comes from niotic crystals? | ||||
|     */ | ||||
| }); | ||||
							
								
								
									
										170
									
								
								kubejs/server_scripts/grist/intelligent.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										170
									
								
								kubejs/server_scripts/grist/intelligent.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,170 @@ | ||||
| ServerEvents.recipes(event => { | ||||
|     /* | ||||
|     Intelligent grist | ||||
|     none -> basic: dig up lapis, hunt down zombies, build an ars infuser, infuse some primordeal grist -> unlock rf grid + external storage, basic pipes | ||||
|         intelligent grist comes from infusing primordeal grist block with intelligent grist | ||||
|         to make the infuser, you need intelligent grist | ||||
|         your first intelligent grist can come from smelting insightful tincture | ||||
|         insightful tincture comes from cooking insightful blend via farmersdelight with a bucket of liquid primordeal grist and zombie flesh | ||||
|         insightful blend comes from combining sacred flesh, lapis, basic grist with an ore hammer | ||||
|         sacred flesh comes from primordeal grist, rotten flesh, gold dust | ||||
|     */ | ||||
|     //event.smelting('kubejs:grist_intelligent_basic', 'kubejs:insightful_tincture'); | ||||
|     event.shapeless('kubejs:insightful_blend', [ | ||||
|         '2x minecraft:rotten_flesh', | ||||
|         global.dustItem('lapis', 2), | ||||
|         'kubejs:grist_primordeal_basic', | ||||
|         '#alltheores:ore_hammers' | ||||
|     ]); | ||||
|  | ||||
|     event.custom({ | ||||
|         type: "apotheosis:enchanting", | ||||
|         input: { | ||||
|             item: "kubejs:insightful_tincture" | ||||
|         }, | ||||
|         requirements: { | ||||
|             eterna: 10, | ||||
|             quanta: 0, | ||||
|             arcana: 0 | ||||
|         }, | ||||
|         max_requirements: { | ||||
|             eterna: -1, | ||||
|             quanta: 25, | ||||
|             arcana: -1 | ||||
|         }, | ||||
|         result: Item.of('kubejs:grist_intelligent_basic', 9).toJson() | ||||
|     }); | ||||
|  | ||||
|     event.shaped('kubejs:sacred_flesh', [ | ||||
|         'CAC', | ||||
|         'ABA', | ||||
|         'CAC' | ||||
|     ], { | ||||
|         'A': 'kubejs:grist_primordeal_basic', | ||||
|         'B': 'minecraft:rotten_flesh', | ||||
|         'C': global.dustItem('gold') | ||||
|     }); | ||||
|     /*event.custom({ | ||||
|         type: 'farmersdelight:cooking', | ||||
|         cookingtime: 400, | ||||
|         experience: 5.0, | ||||
|         ingredients: [ | ||||
|             {item: 'kubejs:grist_primordeal_basic_block'}, | ||||
|             {item: 'kubejs:sacred_flesh'}, | ||||
|             {item: 'kubejs:sacred_flesh'}, | ||||
|             {item: 'kubejs:insightful_blend'}, | ||||
|             {item: 'kubejs:insightful_blend'}, | ||||
|             {item: 'kubejs:insightful_blend'} | ||||
|         ], | ||||
|         result: {item: 'kubejs:insightful_tincture', count: 2} | ||||
|     });*/ | ||||
|     event.shapeless('2x kubejs:insightful_tincture', [ | ||||
|         'kubejs:grist_primordeal_basic_block', | ||||
|         '2x kubejs:sacred_flesh', | ||||
|         '2x kubejs:insightful_blend' | ||||
|     ]); | ||||
|     event.shapeless('2x kubejs:insightful_tincture', [ | ||||
|         'kubejs:grist_primordeal_basic_block', | ||||
|         '#kubejs:grist/intelligent/basic', | ||||
|         '#alltheores:ore_hammers' | ||||
|     ]); | ||||
|  | ||||
|     event.recipes.ars_nouveau.imbuement( | ||||
|         'kubejs:grist_primordeal_basic_block', | ||||
|         'kubejs:grist_intelligent_basic', | ||||
|         900, | ||||
|         ['kubejs:grist_intelligent_basic'] | ||||
|     ); | ||||
|      | ||||
|     /*event.custom({ | ||||
|         type: "thermal:press", | ||||
|         ingredients: [ | ||||
|             { item: 'kubejs:grist_primordeal_basic_block' }, | ||||
|             { tag: "kubejs:grist/intelligent/basic" } | ||||
|         ], | ||||
|         result: [{item: 'kubejs:insightful_tincture', count: 2}] | ||||
|     });*/ | ||||
|  | ||||
|     /*event.recipes.ars_nouveau.imbuement( | ||||
|         'kubejs:grist_intelligent_basic', | ||||
|         'kubejs:insightful_blend', | ||||
|         900, | ||||
|         [] | ||||
|     );*/ | ||||
|  | ||||
|     /* | ||||
|     Improved grist should probably come from the enchanting apparatus | ||||
|     Improve grist comes from infusing priordeal improved with intelligent improved | ||||
|     first improved grist comes from a summoning ritual with sapient focus + each ars elemental lesser focus | ||||
|     sapient focus comes from apotheosis infusion with intelligent focus | ||||
|     intelligent focus comes from summoning ritual with imbued source gems with cognitive alloy | ||||
|     imbued source gems come source gems imbued with 8 intelligent catalysts | ||||
|     catalysts come from source gems crystalized with basic intelligent fluid and sacred flesh | ||||
|     */ | ||||
|     event.recipes.summoningrituals.altar("kubejs:grist_primordeal_improved") | ||||
|         .itemOutput(Item.of('kubejs:grist_intelligent_improved', 4)) | ||||
|         .input(Item.of('kubejs:grist_primordeal_improved_block', 2)) | ||||
|         .input(Item.of('kubejs:grist_intelligent_improved', 2)) | ||||
|         .blockBelow('ars_nouveau:arcane_core'); | ||||
|          | ||||
|     event.recipes.summoningrituals.altar("kubejs:sapient_focus") | ||||
|         .itemOutput('kubejs:grist_intelligent_improved') | ||||
|         .input('ars_elemental:lesser_fire_focus') | ||||
|         .input('ars_elemental:lesser_water_focus') | ||||
|         .input('ars_elemental:lesser_air_focus') | ||||
|         .input('ars_elemental:lesser_earth_focus') | ||||
|         .sacrifice('pig', 3) | ||||
|         .weather('rain') | ||||
|         .dayTime('night') | ||||
|         .blockBelow('ars_nouveau:arcane_core'); | ||||
|  | ||||
|     event.custom({ | ||||
|         type: "apotheosis:enchanting", | ||||
|         input: { | ||||
|             item: "kubejs:intelligent_focus" | ||||
|         }, | ||||
|         requirements: { | ||||
|             eterna: 40, | ||||
|             quanta: 15, | ||||
|             arcana: 60 | ||||
|         }, | ||||
|         max_requirements: { | ||||
|             eterna: -1, | ||||
|             quanta: 25, | ||||
|             arcana: -1 | ||||
|         }, | ||||
|         result: Item.of('kubejs:sapient_focus').toJson() | ||||
|     }); | ||||
|  | ||||
|     event.recipes.summoningrituals.altar('kubejs:grist_primordeal_improved') | ||||
|         .itemOutput('kubejs:intelligent_focus') | ||||
|         .input(Item.of('kubejs:imbued_source_gem', 8)) | ||||
|         .input(Item.of('experienceobelisk:cognitive_alloy_block', 3)) | ||||
|         .sacrifice('sheep', 6) | ||||
|         .blockBelow('ars_nouveau:arcane_core'); | ||||
|  | ||||
|     event.recipes.ars_nouveau.imbuement( | ||||
|         'ars_nouveau:source_gem', | ||||
|         'kubejs:imbued_source_gem', | ||||
|         15000, | ||||
|         [ | ||||
|             'kubejs:intelligent_catalyst', | ||||
|             'kubejs:intelligent_catalyst', | ||||
|             'kubejs:intelligent_catalyst', | ||||
|             'kubejs:intelligent_catalyst', | ||||
|             'kubejs:intelligent_catalyst', | ||||
|             'kubejs:intelligent_catalyst', | ||||
|             'kubejs:intelligent_catalyst', | ||||
|             'kubejs:intelligent_catalyst', | ||||
|         ] | ||||
|     ); | ||||
|  | ||||
|     event.recipes.thermal.crystallizer( | ||||
|         'kubejs:intelligent_catalyst', | ||||
|         ['4x ars_nouveau:source_gem', '16x kubejs:sacred_flesh', Fluid.of('kubejs:grist_intelligent_basic_fluid', 3000)] | ||||
|     ); | ||||
|  | ||||
|     /* | ||||
|     Radiant comes from the intelligent processors..? elemental mark of mastery? | ||||
|     */ | ||||
| }); | ||||
							
								
								
									
										121
									
								
								kubejs/server_scripts/grist/primordeal.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										121
									
								
								kubejs/server_scripts/grist/primordeal.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,121 @@ | ||||
| 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' | ||||
|     }) | ||||
| }); | ||||
							
								
								
									
										23
									
								
								kubejs/server_scripts/grist/tags.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										23
									
								
								kubejs/server_scripts/grist/tags.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,23 @@ | ||||
|  | ||||
| ServerEvents.tags('item', event => { | ||||
|     global.Grist.forEach(grist => { | ||||
|         grist.tags().forEach(tagName => { | ||||
|             event.add(tagName, grist.id()); | ||||
|         }); | ||||
|     }); | ||||
| 	/*global.GRIST_ELEMENTS.forEach(element => { | ||||
|         global.GRIST_TIERS.forEach(tier => { | ||||
|             event.add(`kubejs:grist/${element}/${tier}`, `kubejs:grist_${element}_${tier}`) | ||||
|             event.add(`kubejs:grist/${element}`, `kubejs:grist_${element}_${tier}`) | ||||
|             event.add(`kubejs:grist/${element}/${tier}`, `kubejs:grist_universal_${tier}`) | ||||
|             event.add('kubejs:grist', `kubejs:grist_${element}_${tier}`) | ||||
|         }) | ||||
| 	}) | ||||
|  | ||||
|     global.GRIST_PRIMITIVES.forEach(element => { | ||||
|         global.GRIST_TIERS.forEach(tier => { | ||||
|             event.add(`kubejs:grist/${element}/${tier}`, `kubejs:grist_${element}_${tier}`) | ||||
|             event.add('kubejs:grist', `kubejs:grist_${element}_${tier}`) | ||||
|         }) | ||||
| 	})*/ | ||||
| }); | ||||
							
								
								
									
										44
									
								
								kubejs/server_scripts/init.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								kubejs/server_scripts/init.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| // priority: 0 | ||||
|  | ||||
| global.metalForm = (metal, tag, form, qty) => { | ||||
|     if (qty == undefined) { | ||||
|         qty = 1; | ||||
|     } | ||||
|     let itemType = AlmostUnified.getPreferredItemForTag(`forge:${tag}/${metal}`); | ||||
|     if (itemType.id == 'minecraft:air') { | ||||
|         console.log(`metals: ${metal} ${form} has unknown tag forge:${tag}/${metal}?`) | ||||
|         let ret = Item.of(`alltheores:${metal}_${form}`); | ||||
|         if (ret.id == "minecraft:air") { | ||||
|             return Item.of(`thermal:${metal}_${form}`); | ||||
|         } | ||||
|         return ret; | ||||
|     } | ||||
|     console.log(`metals: forge:${tag}/${metal} found`); | ||||
|     return itemType; | ||||
| } | ||||
|  | ||||
| global.dustItem = (material, qty) => { | ||||
|     return global.metalForm(material, 'dusts', 'dust', qty); | ||||
| } | ||||
|  | ||||
| global.ingotItem = (material, qty) => { | ||||
|     return global.metalForm(material, 'ingots', 'ingot', qty); | ||||
| } | ||||
|  | ||||
| global.gearItem = (material, qty) => { | ||||
|     return global.metalForm(material, 'gears', 'gear', qty); | ||||
| } | ||||
|  | ||||
| global.nuggetItem = (material, qty) => { | ||||
|     return global.metalForm(material, 'nuggets', 'nugget', qty); | ||||
| } | ||||
|  | ||||
| global.replaceInputs = (evt, filter, replaceMap) => { | ||||
|     replaceMap.forEach(mapped => { | ||||
|         evt.replaceInput( | ||||
|             filter, | ||||
|             mapped[0], | ||||
|             mapped[1] | ||||
|         ); | ||||
|     }) | ||||
| } | ||||
							
								
								
									
										0
									
								
								kubejs/server_scripts/malloc-balance.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										0
									
								
								kubejs/server_scripts/malloc-balance.js
									
									
									
									
									
										Executable file
									
								
							
							
								
								
									
										225
									
								
								kubejs/server_scripts/ore-processing.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										225
									
								
								kubejs/server_scripts/ore-processing.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,225 @@ | ||||
| ServerEvents.recipes(event => { | ||||
| 	// Metal tiers: | ||||
| 	// Copper, iron, tin, nickel, gold, zinc, brass, invar, bronze - Pre-basic build tier, the only ores that don't require a pulverizer or smelter to process | ||||
| 	// silver, platinum, lead, iridum, osmium - Gated behind the pulverizer | ||||
| 	// lumium, enderium, electrum, signalum, steel - Alloys are gated behind the smelter as well | ||||
| 	// uranium - requires basic energetic grist to energize into ingots | ||||
|  | ||||
| 	// Gear tiers: | ||||
| 	// copper, iron, tin, nickel, zinc, brass, bronze - Pre-gear die tier | ||||
| 	// invar, bronze, brass - the only alloys you can make without grist | ||||
| 	// constantan - requires 1 build grist to make the dust alloy | ||||
| 	// invar, gold, silver, electrum, signalum, lead, steel - Gated behind gear die | ||||
| 	// lumium, enderium, other alloys - Gated behind heavy duty gear die | ||||
|  | ||||
| 	let metalForm = (metal, tag, form) => { | ||||
| 		let itemType = AlmostUnified.getPreferredItemForTag(`forge:${tag}/${metal}`); | ||||
| 		if (itemType.id == 'minecraft:air') { | ||||
| 			console.log(`metals: ${metal} ${form} has unknown tag forge:${tag}/${metal}?`) | ||||
| 			let ret = Item.of(`alltheores:${metal}_${form}`); | ||||
| 			if (ret.id == "minecraft:air") { | ||||
| 				return Item.of(`thermal:${metal}_${form}`); | ||||
| 			} | ||||
| 			return ret; | ||||
| 		} | ||||
| 		console.log(`metals: forge:${tag}/${metal} found`); | ||||
| 		return itemType; | ||||
| 	} | ||||
|  | ||||
| 	event.shapeless('thermal:quartz_dust', ['8x minecraft:granite', '#alltheores:ore_hammers']); | ||||
| 	event.shapeless('thermal:quartz_dust', ['minecraft:quartz', '#alltheores:ore_hammers']); | ||||
|  | ||||
| 	// All metals can be processed in the pulverizer, 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...`); | ||||
|  | ||||
| 		let gearType = metalForm(metal, 'gears', 'gear'); | ||||
| 		let dustType = metalForm(metal, 'dusts', 'dust'); | ||||
| 		let plateType = metalForm(metal, 'plates', 'plate'); | ||||
| 		let ingotType = metalForm(metal, 'ingots', 'ingot'); | ||||
| 		let rawType = metalForm(metal, 'raw_materials', 'ore'); | ||||
| 		let blockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block'); | ||||
|  | ||||
| 		event.remove({output: gearType}); | ||||
| 		event.remove({output: plateType}); | ||||
| 		 | ||||
| 		event.remove({input: `#forge:ores/${metal}`}); | ||||
| 		event.remove({input: `#forge:raw_materials/${metal}`}); | ||||
|  | ||||
| 		// By default, you can't make any blends in the crafting table. | ||||
| 		event.remove({output: dustType, type: 'minecraft:crafting'}); | ||||
| 		event.remove({output: ingotType, input: 'minecraft:fire_charge'}); | ||||
|  | ||||
| 		event.remove({id: `alltheores:${metal}_dust_from_alloy_blending`}); | ||||
|  | ||||
| 		console.log(`crushing ${rawType.toJson()} ${dustType.toJson()}`); | ||||
| 		if (rawType.id != "minecraft:air") { | ||||
| 			event.custom({ | ||||
| 				type: "thermal:pulverizer", | ||||
| 				ingredients: [ | ||||
| 					{tag: `forge:raw_materials/${metal}`} | ||||
| 				], | ||||
| 				result: [ | ||||
| 					{item: dustType.id, chance: 1.05}, | ||||
| 					{item: dustType.id, chance: 0.25} | ||||
| 				], | ||||
| 				experience: 0.5 | ||||
| 			}); | ||||
| 		} | ||||
|  | ||||
| 		if (blockType.id != "minecraft:air") { | ||||
| 			event.custom({ | ||||
| 				type: "thermal:pulverizer", | ||||
| 				ingredients: [ | ||||
| 					{tag: `forge:storage_blocks/raw_${metal}`} | ||||
| 				], | ||||
| 				result: [ | ||||
| 					{item: dustType.id, chance: 1.05 * 9}, | ||||
| 					{item: dustType.id, chance: 0.25 * 9} | ||||
| 				], | ||||
| 				experience: 0.5 | ||||
| 			}); | ||||
| 		} | ||||
|  | ||||
| 		// 1 dust = 1 ingot | ||||
| 		event.custom({ | ||||
| 			type: "thermal:pulverizer", | ||||
| 			ingredients: [ | ||||
| 				ingotType.toJson() | ||||
| 			], | ||||
| 			result: [ | ||||
| 				dustType.toJson() | ||||
| 			], | ||||
| 		}); | ||||
|  | ||||
| 		// 4 ingots = 1 gear | ||||
| 		event.custom({ | ||||
| 			type: "thermal:press", | ||||
| 			ingredients: [ | ||||
| 				ingotType.withCount(4).toJson(), | ||||
| 				{ item: "thermal:press_gear_die" } | ||||
| 			], | ||||
| 			result: [gearType.toJson()] | ||||
| 		}); | ||||
|  | ||||
| 		// 1 ingot = 1 plate | ||||
| 		event.custom({ | ||||
| 			type: "thermal:press", | ||||
| 			ingredients: [ | ||||
| 				ingotType.toJson(), | ||||
| 			], | ||||
| 			result: [plateType.toJson()] | ||||
| 		}); | ||||
| 	});} | ||||
|  | ||||
| 	// But only these metals can be processed without a machine | ||||
| 	{let _ = ['copper', 'iron', 'tin', 'nickel', 'zinc', 'brass', 'bronze', 'lead', 'aluminum'].forEach(metal => { | ||||
| 		console.log(`Setting up ${metal} manual processing...`); | ||||
| 		let gearID = metalForm(metal, 'gears', 'gear'); | ||||
| 		let plateID = metalForm(metal, 'plates', 'plate'); | ||||
| 		let dustID = metalForm(metal, 'dusts', 'dust'); | ||||
| 		event.shaped(gearID, [ | ||||
| 			' A ', | ||||
| 			'ABA', | ||||
| 			' A ' | ||||
| 		], { | ||||
| 			'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']); | ||||
| 	});} | ||||
|  | ||||
| 	// And only these ores can be hammered | ||||
| 	{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']); | ||||
| 	});} | ||||
|  | ||||
| 	// And only copper can be smelted without pulverizing | ||||
| 	event.smelting(global.ingotItem('copper'), metalForm('copper', 'raw_materials', 'ore')); | ||||
|  | ||||
| 	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)), [ | ||||
| 		global.dustItem('tin', 2),  | ||||
| 		global.dustItem('copper', 2), | ||||
| 		'#alltheores:ore_hammers' | ||||
| 	]); | ||||
| 	event.shapeless(Item.of(metalForm('brass', 'dusts', 'dust').withCount(2)), [ | ||||
| 		global.dustItem('copper', 3), | ||||
| 		global.dustItem('zinc'), | ||||
| 		'#alltheores:ore_hammers' | ||||
| 	]); | ||||
| 	event.shapeless(Item.of(metalForm('invar', 'dusts', 'dust').withCount(2)), [ | ||||
| 		global.dustItem('iron', 2), | ||||
| 		global.dustItem('nickel', 2), | ||||
| 		'#alltheores:ore_hammers' | ||||
| 	]); | ||||
|  | ||||
| 	// 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' | ||||
| 	]); | ||||
| 	// Constantan is the only metal you can't work on the bench except for gears | ||||
| 	event.shaped('thermal:constantan_gear', [ | ||||
|         ' A ', | ||||
|         'ABA', | ||||
|         ' A ' | ||||
|     ], { | ||||
|         'A': global.ingotItem('constantan'), | ||||
|         'B': '#forge:gems' | ||||
|     }); | ||||
|  | ||||
| 	event.shaped('thermal:diamond_gear', [ | ||||
| 		' A ', | ||||
| 		'ABA', | ||||
| 		' A ' | ||||
| 	], { | ||||
| 		'A': 'minecraft:diamond', | ||||
| 		'B': 'minecraft:crying_obsidian' | ||||
| 	}); | ||||
| 	 | ||||
| 	// Lapis can be pulverized and hammered. | ||||
| 	event.remove({output: 'thermal:lapis_dust', type: 'thermal:pulverizer'}); | ||||
| 	event.custom({ | ||||
| 		type: "thermal:pulverizer", | ||||
| 		ingredients: [ | ||||
| 			{ item: "minecraft:lapis_lazuli" } | ||||
| 		], | ||||
| 		result: [ | ||||
| 			{ item: "thermal:lapis_dust", chance: 1.05 }, | ||||
| 			{ item: "thermal:lapis_dust", chance: 0.25 } | ||||
| 		], | ||||
| 		experience: 0.5 | ||||
| 	}); | ||||
| 	event.shapeless("2x thermal:lapis_dust", ["minecraft:lapis_lazuli", '#alltheores:ore_hammers']); | ||||
|  | ||||
| 	// Create clay by centrifuging gravel and ash bricks | ||||
| 	event.custom({ | ||||
| 		type: "thermal:centrifuge", | ||||
| 		ingredients: [ | ||||
| 			{ item: "supplementaries:ash_brick" } | ||||
| 		], | ||||
| 		result: [ | ||||
| 			{ item: "minecraft:clay_ball", chance: 1.05 }, | ||||
| 			{ item: "minecraft:clay_ball", chance: 0.25 } | ||||
| 		], | ||||
| 		experience: 0.5 | ||||
| 	}); | ||||
|  | ||||
| 	event.custom({ | ||||
| 		type: "thermal:centrifuge", | ||||
| 		ingredients: [ | ||||
| 			{ item: "minecraft:gravel" } | ||||
| 		], | ||||
| 		result: [ | ||||
| 			{ item: "minecraft:sand", chance: 2.00 }, | ||||
| 			{ item: "minecraft:clay_ball", chance: 0.75 } | ||||
| 		], | ||||
| 		experience: 0.5 | ||||
| 	}); | ||||
| }) | ||||
							
								
								
									
										56
									
								
								kubejs/server_scripts/progression/report.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										56
									
								
								kubejs/server_scripts/progression/report.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| // priority: -9999 | ||||
|  | ||||
| ServerEvents.recipes(event => { | ||||
|     return; | ||||
|     console.log("reporting uncraftables"); | ||||
|     global.uncraftables.uncraftable.forEach(uncraftable => { | ||||
|         console.log(`===== ${uncraftable}`); | ||||
|         event.forEachRecipe({output: uncraftable}, recipe => { | ||||
|             console.log(recipe.json.toString()); | ||||
|         }); | ||||
|         console.log('=== inputs'); | ||||
|         event.forEachRecipe({input: uncraftable}, recipe => { | ||||
|             console.log(recipe.json.get('result').toString()); | ||||
|         }); | ||||
|     }); | ||||
|  | ||||
|     let _ = ['build', 'agricultural', 'intelligent', 'energetic'].forEach(element => { | ||||
|         let __ = ['basic', 'improved', 'radiant'].forEach(tier => { | ||||
|             console.log(`===== ${tier} ${element}:`); | ||||
|             event.forEachRecipe({input: `kubejs:grist_${element}_${tier}`}, r => { | ||||
|                 if (r.json.get('result') == undefined) { | ||||
|                     console.log(r.json.toString()); | ||||
|                 } else { | ||||
|                     console.log(r.json.get('result').toString()); | ||||
|                 } | ||||
|             }); | ||||
|         });  | ||||
|     }); | ||||
|     /*event.forEachRecipe({}, recipe => { | ||||
|         global.uncraftables.uncraftable.forEach(uncrafableItem => { | ||||
|             let asJson = recipe.json; | ||||
|             let foundResults = []; | ||||
|             console.log(recipe.outputValues()); | ||||
|             console.log(asJson.toString()); | ||||
|             console.log(recipe.getType()); | ||||
|             if (recipe.getType() == 'farmersdelight:cutting') { | ||||
|                 //foundResults = [asJson.get('result').get('item')]; | ||||
|                 asJson.get('result').forEach(result => { | ||||
|                     foundResults.push(result.get('item')); | ||||
|                 }); | ||||
|             } else { | ||||
|                 foundResults = [asJson.get('result').get('item')]; | ||||
|             } | ||||
|             if (foundResults == []) { | ||||
|                 console.log(`unknown result in ${asJson.toString()}`); | ||||
|             } else { | ||||
|                 foundResults.forEach(output => { | ||||
|                     console.log(output); | ||||
|                     if (output == uncrafableItem) { | ||||
|                         console.log('found uncraftable item:', recipe.json.toString()); | ||||
|                     } | ||||
|                 }); | ||||
|             } | ||||
|         }); | ||||
|     });*/ | ||||
| }); | ||||
							
								
								
									
										78
									
								
								kubejs/server_scripts/progression/uncraftables.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										78
									
								
								kubejs/server_scripts/progression/uncraftables.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| // priority: 1 | ||||
|  | ||||
| let unusableItems = [ | ||||
|     'industrialforegoing:infinity_drill', | ||||
|     'industrialforegoing:infinity_backpack', | ||||
|     'industrialforegoing:infinity_trident', | ||||
|     'industrialforegoing:infinity_saw', | ||||
|     'industrialforegoing:infinity_hammer', | ||||
|     'industrialforegoing:infinity_launcher', | ||||
|     'industrialforegoing:infinity_nuke', | ||||
|     'industrialforegoing:infinity_charger', | ||||
|  | ||||
|     'powder_power:hammer_alchemist', | ||||
|     'powder_power:hammer_motar_pestle', | ||||
|     'powder_power:wand_alchemist', | ||||
| ]; | ||||
|  | ||||
| let uncraftableItems = [ | ||||
|     'ars_nouveau:imbuement_chamber', | ||||
|     'ars_nouveau:novice_spell_book', | ||||
|     'ars_nouveau:dominion_wand', | ||||
|     'powah:dielectric_paste', | ||||
|     'powah:spirited_crystal', | ||||
|     'powah:niotic_crystal', | ||||
|     'powah:capacitor_basic_tiny', | ||||
|     'powah:capacitor_basic', | ||||
|     'powah:dielectric_casing', | ||||
|     'powah:aerial_pearl', | ||||
|     'powah:ender_core', | ||||
|     'prettypipes:blank_module', | ||||
|     'ae2:printed_logic_processor', | ||||
|     'ae2:printed_engineering_processor', | ||||
|     'ae2:printed_calculation_processor', | ||||
|     'ae2:printed_silicon', | ||||
|     'ae2:quartz_glass', | ||||
|     'bountiful:bountyboard', | ||||
|     'bountiful:decree', | ||||
|     'miapi:modular_work_bench', | ||||
|     'immersive_aircraft:airship', | ||||
|     'immersive_aircraft:industrial_gears', | ||||
|     'ironfurnaces:augment_generator', | ||||
|     'croptopia:dough', | ||||
|     'darkutils:blank_plate', | ||||
|     'darkutils:damage_plate_player', | ||||
|     'darkutils:damage_plate', | ||||
|     'croptopia:flour', | ||||
|     "sophisticatedstorage:storage_link" | ||||
| ]; | ||||
|  | ||||
| let uncraftableVanilla = [ | ||||
|     "thermal:tomato_sauce", | ||||
|     "thermal:peanut_butter" | ||||
| ]; | ||||
|  | ||||
| global.uncraftables = {uncraftable: uncraftableItems, unusable: unusableItems} | ||||
|  | ||||
| ServerEvents.recipes(event => { | ||||
|  | ||||
|     //event.remove({id: 'industrialforegoing:iron_gear'}); | ||||
|     //event.remove({id: 'industrialforegoing:gold_gear'}); | ||||
|     //event.remove({id: 'industrialforegoing:diamond_gear'}); | ||||
|  | ||||
|     event.remove({output: 'ars_nouveau:source_gem', type: 'ars_nouveau:imbuement'}); | ||||
|  | ||||
|     uncraftableVanilla.forEach(item => { | ||||
|         event.remove({output: item, type: 'minecraft:crafting'}); | ||||
|     }) | ||||
|  | ||||
|     unusableItems.forEach(item => { | ||||
|         event.remove({output: item}); | ||||
|         event.remove({input: item}); | ||||
|     }) | ||||
|  | ||||
|     uncraftableItems.forEach(item => { | ||||
|         event.remove({output: item}); | ||||
|     }) | ||||
|  | ||||
| }); | ||||
							
								
								
									
										27
									
								
								kubejs/server_scripts/tags.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								kubejs/server_scripts/tags.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,27 @@ | ||||
|  | ||||
| /* | ||||
|  * Tag handlng that can't be done in AlmostUnified | ||||
|  */ | ||||
|  | ||||
| ServerEvents.tags('item', event => { | ||||
|  | ||||
|     // Copper hoppers should count for regular hoppers | ||||
|     /*['exposed', 'oxidized', 'weathered'].forEach(copperAge => { | ||||
|         event.add('forge:hoppers', `everythingcopper:${copperAge}_copper_hopper`) | ||||
|         event.add('forge:hoppers', `everythingcopper:waxed_${copperAge}_copper_hopper`) | ||||
|     });*/ | ||||
|  | ||||
|     // Farmer's Delight doesn't have rice seeds, you just plant rice grains to make more rice, which could let you completely break farming grist. | ||||
|     event.remove('forge:seeds/rice', ['farmersdelight:rice']); | ||||
|     event.remove('forge:rice_seeds', ['farmersdelight:rice']); | ||||
| }); | ||||
|  | ||||
| ServerEvents.recipes(event => { | ||||
|  | ||||
|     // Under soup salad sandwich theory, anything mixture including lettuce can be a salad. | ||||
|     event.replaceInput( | ||||
|         {mod: 'croptopia'}, | ||||
|         'croptopia:lettuce', | ||||
|         '#forge:salad_ingredients' | ||||
|     ); | ||||
| }); | ||||
		Reference in New Issue
	
	Block a user