lots of changes, I lsot track
This commit is contained in:
@ -29,6 +29,17 @@ ServerEvents.recipes(event => {
|
||||
'#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'
|
||||
);
|
||||
|
||||
// Allow certus quartz to be used for rose quartz
|
||||
event.replaceInput({output: 'create:rose_quartz'},
|
||||
'minecraft:quartz',
|
||||
|
@ -33,12 +33,12 @@ ServerEvents.recipes(event => {
|
||||
event.recipes.thermal.pulverizer_catalyst('kubejs:grist_build_radiant').primaryMod(5.0).secondaryMod(6.0).energyMod(1.1).useChance(0.1);
|
||||
|
||||
// Steel is used mostly for early solar, it shouldn't be so hard to make
|
||||
event.recipes.thermal.smelter('4x thermal:steel_ingot', ["minecraft:charcoal", global.ingotItem('iron', 4)]);
|
||||
/*event.recipes.thermal.smelter('4x thermal:steel_ingot', ["minecraft:charcoal", global.ingotItem('iron', 4)]);
|
||||
event.recipes.thermal.smelter('4x thermal:steel_ingot', ["minecraft:charcoal", '4x #forge:dusts/iron']);
|
||||
event.recipes.thermal.smelter('thermal:steel_ingot', ["#minecraft:logs_that_burn", global.ingotItem('iron')]);
|
||||
event.recipes.thermal.smelter('thermal:steel_ingot', ["#minecraft:logs_that_burn", '#forge:dusts/iron']);
|
||||
event.recipes.thermal.smelter('thermal:steel_block', ['thermal:charcoal_block', global.ingotItem('iron', 9)]);
|
||||
event.recipes.thermal.smelter('thermal:steel_block', ['thermal:charcoal_block', '9x #forge:dusts/iron']);
|
||||
event.recipes.thermal.smelter('thermal:steel_block', ['thermal:charcoal_block', '9x #forge:dusts/iron']);*/
|
||||
|
||||
// The flux tools can be very easily OP after upgrades and enchants, make them mid-game
|
||||
event.replaceInput(
|
||||
@ -131,7 +131,16 @@ ServerEvents.recipes(event => {
|
||||
|
||||
event.replaceInput(
|
||||
{id: 'thermal:device_fisher'},
|
||||
'forge:gears/copper',
|
||||
'#forge:gears/copper',
|
||||
'#kubejs:grist/agricultural/basic'
|
||||
);
|
||||
|
||||
// Pulverizer is gated behind brass, which requires create
|
||||
/*event.replaceInput(
|
||||
{id: 'thermal:machine_pulverizer'},
|
||||
'#forge:gears/brass',
|
||||
'#kubejs:grist/agricultural/basic'
|
||||
);*/
|
||||
|
||||
// Centrifuge comes already gated behind constantan
|
||||
});
|
@ -1,7 +1,8 @@
|
||||
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
|
||||
// gold, silver, lead - gated behind crushing wheels
|
||||
// platinum, 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
|
||||
|
||||
@ -26,13 +27,445 @@ ServerEvents.recipes(event => {
|
||||
return itemType;
|
||||
}
|
||||
|
||||
// Progression
|
||||
// Vanilla age -> Ore hammer for crushing tin to make andesite alloy
|
||||
// Andesite age -> Mixer from andesite allow allows creating early alloys: bronze, brass, invar, constantan
|
||||
// Invar age -> induction smelter from invar gears (which now require grist) allows higher level alloys: constantan
|
||||
// Alloy age -> Higher level alloys unlock the rest of Thermal
|
||||
|
||||
// New metal tiers:
|
||||
// Primitive: Copper - The only ore you can smelt directly in an oven. Also can be processed in a crafting table.
|
||||
// Vanilla: Iron, tin, nickel, gold, zinc, brass, bronze, invar - The ores require a ore hammer to create 2x crushed ore, which can be smelted into ingots. The metals can be processed in a crafting table.
|
||||
// Modded (requires build grist): invar
|
||||
|
||||
// Progression recipes:
|
||||
// Constantan:
|
||||
|
||||
/*
|
||||
|
||||
Metal progression:
|
||||
Primitive tier: Stone pickaxe to mine, raw ore can be immediately smelted
|
||||
Copper
|
||||
Vanilla tier: Stone pickaxe to mine, ore hammer to crush, then smelted. Only one alloy, and it can be crated on the crafting table
|
||||
Iron, Tin, Gold, Zinc: Ores
|
||||
Andesite alloy: 2x andesite + tin dust
|
||||
Progression: Find tin, crush it, create andesite alloy to start making create mod items
|
||||
Andesite age: Iron pickaxe to mine, crushing wheels to crush, then the crushed ore is smelted normally. Alloys require the create mixer. Ore washing to double crushed ore is unlocked, but fans require invar instead of iron. Gears can be crafted on a crafting table
|
||||
Silver, Aluminium, Lead: Ores
|
||||
Bronze - tin + copper
|
||||
Brass - tin + 3x copper
|
||||
Rose gold - copper + gold
|
||||
Progression: Make some brass, craft a gear on the crafting table with build grist, create an induction furnace
|
||||
Mechanical/grist age: Ores require diamond pick, crushed in the pulverizer, and crushed ore is smelted normally. Alloys require the induction furnace. 4x ore centrifuge is unlocked after creating a constantan gear on the crafting table. Other gears require the press.
|
||||
Uranium, Platinum, Iridium?, Nickel, Osmium
|
||||
Electrum - gold + silver
|
||||
Invar - 2x iron + nickel
|
||||
Constantan - Copper + nickel
|
||||
Netherite - 4x netherite scrap, 4x gold
|
||||
Progression: Create the gear die
|
||||
Industrial age: Alloys require basic grists, gears can only be made with a gear die
|
||||
Redium - 4x redstone powder, 2x obsidian powder, 2x iron dust, 1x blaze
|
||||
Lapium - 4x lapis powder, 2x gold dust, 2x obsidian powder, 1x quartz powder
|
||||
Gemium - 2x diamond, 1x prismarine powder, 2x emerald dust, 4x obsidian powder
|
||||
Trilium - 2x lapium, 4x gemium, 1x ender powder, 2x redium
|
||||
Signalum - silver + 3x copper + 4x redstone
|
||||
Lumium - silver + 3x tin + 2x glowstone dust
|
||||
Progression: Make it to the nether
|
||||
Modern age: Alloys require improved grist
|
||||
Gobber - gobber glob + diamond + iron + gold
|
||||
nether gobber - nether glob + 2x gobber + netherite scrap
|
||||
Quadrilium - 4x trilium, 4x netherite scrpa, 1x ghast tear
|
||||
Progression: Make it to the end
|
||||
Age of Legends:
|
||||
Enderium - 1x diamond + 3x lead + 2x ender pearl = 2 ingot
|
||||
end gobber - end glob + 2x nether gobber + chorus flower
|
||||
Progression: That's it, that's the end. You won the game.
|
||||
*/
|
||||
|
||||
let progression = {
|
||||
// Primitive tier: Stone pickaxe to mine, raw ore can be immediately smelted
|
||||
primitive: {
|
||||
copper: []
|
||||
},
|
||||
// Vanilla tier: Stone pickaxe to mine, ore hammer to crush, then smelted. Only one alloy, and it can be crated on the crafting table
|
||||
vanilla: {
|
||||
iron: [],
|
||||
tin: [],
|
||||
gold: [],
|
||||
zinc: [],
|
||||
// FIXME: Need to add create:andesite_alloy to #forge:ingots/andesite_alloy
|
||||
andesite_alloy: [4, '2x minecraft:andesite', 'tin']
|
||||
},
|
||||
// Andesite age: Iron pickaxe to mine, crushing wheels to crush, then the crushed ore is smelted normally. Alloys require the create mixer. Ore washing to double crushed ore is unlocked, but fans require invar instead of iron. Gears can be crafted on a crafting table
|
||||
andesite: {
|
||||
silver: [],
|
||||
aluminum: [],
|
||||
lead: [],
|
||||
rose_gold: [2, 'copper', 'gold'],
|
||||
bronze: [2, 'tin', 'copper'],
|
||||
constantan: [2, 'copper', 'nickel'],
|
||||
brass: [2, 'zinc', 'copper']
|
||||
},
|
||||
// Mechanical/grist age: Ores require diamond pick, crushed in the pulverizer, and crushed ore is smelted normally. Alloys require the induction furnace. 4x ore centrifuge is unlocked after creating a constantan gear on the crafting table. Other gears require the press.
|
||||
mechanical: {
|
||||
nickel: [],
|
||||
invar: [3, '2x iron', 'nickel'],
|
||||
electrum: [2, 'gold', 'silver'],
|
||||
netherite: [1, '4x minecraft:netherite_scrap', '4x gold'],
|
||||
},
|
||||
// Industrial age: Alloys require basic grists, gears can only be made with a gear die
|
||||
industrial: {
|
||||
steel: [2, '2x iron', '#minecraft:coals'],
|
||||
uranium: [],
|
||||
platinum: [],
|
||||
osmium: [],
|
||||
signalum: [4, 'silver', '3x copper', '4x minecraft:redstone'],
|
||||
lumium: [4, 'silver', '3x tin', '2x minecraft:glowstone_dust'],
|
||||
redium: [4, '4x powder_power:powder_redstone', '2x #forge:dusts/obsidian', '2x #forge:dusts/iron', 'minecraft:blaze_powder'],
|
||||
lapium: [4, '4x powder_power:powder_lapis', '2x #forge:dusts/gold', '2x #forge:dusts/obsidian', 'powder_power:powder_nether_quartz'],
|
||||
gemium: [4, '4x #forge:dusts/obsidian', '2x #forge:dusts/diamond', '2x #forge:dusts/emerald', 'powder_power:powder_prismarine'],
|
||||
trilium: [4, '2x lapium', '2x gemium', '2x redium', 'powder_power:powder_end_pearl']
|
||||
},
|
||||
// Modern age: Alloys require improved grist
|
||||
modern: {
|
||||
gobber: [3, 'gobber2:gobber2_glob', 'platinum', 'osmium'],
|
||||
nether_gobber: [3, 'gobber2:gobber2_glob_nether', 'minecraft:netherite_scrap', '2x gobber'],
|
||||
quadrilium: [3, '3x trilium', '4x minecraft:netherite_scrap', 'powder_power:powder_ghast_tear']
|
||||
},
|
||||
// Age of Legends: The end game
|
||||
legends: {
|
||||
//enderium: [],
|
||||
end_gobber: [3, 'gobber2:gobber2_glob_end', '2x nether_gobber', '2x #kubejs:grist/build/improved']
|
||||
}
|
||||
};
|
||||
|
||||
// Basic rules for all materials
|
||||
for (const [key, metals] of Object.entries(progression)) {
|
||||
for (const [metal, ingredients] of Object.entries(metals)) {
|
||||
let rawType = metalForm(metal, 'raw_materials', 'ore');
|
||||
let crushedType = Item.of(`create:crushed_raw_${metal}`);
|
||||
|
||||
let dustType = metalForm(metal, 'dusts', 'dust');
|
||||
let nuggetType = metalForm(metal, 'nuggets', 'nugget');
|
||||
let ingotType = metalForm(metal, 'ingots', 'ingot');
|
||||
let blockType = metalForm(metal, 'storage_blocks', 'block');
|
||||
let rawBlockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block');
|
||||
|
||||
let plateType = metalForm(metal, 'plates', 'plate');
|
||||
let gearType = metalForm(metal, 'gears', 'gear');
|
||||
let rodType = metalForm(metal, 'rods', 'rod');
|
||||
|
||||
console.log(`Wiping out stock ore processing for ${metal}...`);
|
||||
|
||||
// Wipe out all the stock recipes
|
||||
event.remove({output: gearType});
|
||||
event.remove({output: dustType});
|
||||
event.remove({output: blockType});
|
||||
event.remove({output: rodType});
|
||||
event.remove({output: plateType});
|
||||
event.remove({output: ingotType});
|
||||
event.remove({output: rawBlockType});
|
||||
event.remove({output: nuggetType});
|
||||
event.remove({output: crushedType});
|
||||
event.remove({input: crushedType});
|
||||
|
||||
// All dusts and crushed ores can be smelted to ingots, and made with ore hammers
|
||||
if (dustType.id != 'minecraft:air') {
|
||||
event.smelting(ingotType, dustType);
|
||||
event.shapeless(dustType, [ingotType, '#alltheores:ore_hammers']);
|
||||
}
|
||||
|
||||
// Plates can always be smelted back into their original ingot
|
||||
if (plateType.id != 'minecraft:air') {
|
||||
event.smelting(ingotType, plateType);
|
||||
// 1 plate = 1 ingot in presses
|
||||
event.recipes.thermal.press(plateType, [ingotType]);
|
||||
event.recipes.create.pressing([plateType], [ingotType]);
|
||||
}
|
||||
|
||||
// 4 ingots = 1 gear
|
||||
if (gearType.id != 'minecraft:air') {
|
||||
event.recipes.thermal.press(gearType, [ingotType.withCount(4), 'thermal:press_gear_die']);
|
||||
}
|
||||
|
||||
// 9 Nuggets == 1 ingot, for every material
|
||||
if (nuggetType.id != 'minecraft:air') {
|
||||
event.shapeless(ingotType, [nuggetType.withCount(9)]);
|
||||
event.shapeless(nuggetType.withCount(9), [ingotType]);
|
||||
}
|
||||
// 9 ore = 1 ore block
|
||||
if (rawType.id != 'minecraft:air') {
|
||||
event.shapeless(rawBlockType, [rawType.withCount(9)]);
|
||||
event.shapeless(rawType.withCount(9), [rawBlockType]);
|
||||
}
|
||||
// 9 ingots = 1 block
|
||||
if (blockType.id != 'minecraft:air') {
|
||||
event.shapeless(blockType, [ingotType.withCount(9)]);
|
||||
event.shapeless(ingotType.withCount(9), [blockType]);
|
||||
}
|
||||
|
||||
// All alloys can be created in the smelter, or a superheated mixer
|
||||
if (ingredients.length > 0) {
|
||||
for (const form of ['ingots', 'dusts']) {
|
||||
let real_ingredients = [];
|
||||
for (const ingredient of ingredients.slice(1)) {
|
||||
let real_item = Item.of(ingredient);
|
||||
if (real_item.id == 'minecraft:air') {
|
||||
let parts = ingredient.split(' ');
|
||||
if (parts.length == 1) {
|
||||
real_item = metalForm(parts[0], form);
|
||||
} else {
|
||||
real_item = metalForm(parts[1], form).withCount(parts[0].split('x')[0]);
|
||||
}
|
||||
}
|
||||
|
||||
if (real_item.id == 'minecraft:air') {
|
||||
console.error(`Unknown or invalid ${metal} alloy ingredient: ${ingredient}`);
|
||||
}
|
||||
real_ingredients.push(real_item);
|
||||
}
|
||||
|
||||
if (real_ingredients.length > 0) {
|
||||
if (real_ingredients.length <= 3) {
|
||||
event.recipes.thermal.smelter(ingotType.withCount(ingredients[0]), real_ingredients);
|
||||
} else {
|
||||
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).superheated();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// TODO: Create saw, 3x3 packing/unpacking dies, mechanical press
|
||||
}
|
||||
}
|
||||
|
||||
// Primitive tier: Ores can be immediately smelted
|
||||
for (const [metal, ingredients] of Object.entries(progression.primitive)) {
|
||||
let ingotType = metalForm(metal, 'ingots', 'ingot');
|
||||
let rawType = metalForm(metal, 'raw_materials', 'ore');
|
||||
let rawBlockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block');
|
||||
let blockType = metalForm(metal, 'storage_blocks', 'block');
|
||||
|
||||
console.log(`Building primitive processing for ${metal}...`);
|
||||
|
||||
if (rawType.id != 'minecraft:air') {
|
||||
event.smelting(ingotType, rawType);
|
||||
event.smelting(blockType, rawBlockType);
|
||||
} else {
|
||||
console.error(`No ${metal} smelting available!`);
|
||||
}
|
||||
|
||||
// There are no alloys here to handle...
|
||||
}
|
||||
// The progression item is simply creating a copper ore hammer
|
||||
|
||||
// Vanilla tier: Ores need an ore hammer, and alloys can be crafted on the crafting table
|
||||
for (const tier of ['primitive', 'vanilla']) {
|
||||
for (const [metal, ingredients] of Object.entries(progression[tier])) {
|
||||
let rawType = metalForm(metal, 'raw_materials', 'ore');
|
||||
let dustType = metalForm(metal, 'dusts', 'dust');
|
||||
let ingotType = metalForm(metal, 'ingots', 'ingot');
|
||||
let rawBlockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block');
|
||||
|
||||
console.log(`Building vanilla processing for ${metal}...`);
|
||||
|
||||
// Crush raw ore into dust with an ore hammer, in crafting table and in the deployer
|
||||
if (rawType.id != 'minecraft:air') {
|
||||
event.shapeless(dustType, [rawType, '#alltheores:ore_hammers']);
|
||||
event.shapeless(dustType.withCount(9), [rawBlockType, '#alltheores:ore_hammers']);
|
||||
event.recipes.create.deploying([dustType], [rawType, '#alltheores:ore_hammers']).keepHeldItem();
|
||||
event.recipes.create.deploying([dustType.withCount(9)], [rawBlockType, '#alltheores:ore_hammers']).keepHeldItem();
|
||||
} else {
|
||||
console.error(`No ${metal} ore hammer smashing available!`);
|
||||
}
|
||||
|
||||
// TODO: alloy ingredients
|
||||
for (const form of ['ingots', 'dusts']) {
|
||||
let real_ingredients = [];
|
||||
for (const ingredient of ingredients.slice(1)) {
|
||||
let real_item = Item.of(ingredient);
|
||||
if (real_item.id == 'minecraft:air') {
|
||||
let parts = ingredient.split(' ');
|
||||
if (parts.length == 1) {
|
||||
real_item = metalForm(parts[0], form);
|
||||
} else {
|
||||
real_item = metalForm(parts[1], form).withCount(parts[0].split('x')[0]);
|
||||
}
|
||||
}
|
||||
|
||||
if (real_item.id == 'minecraft:air') {
|
||||
console.error(`Unknown or invalid ${metal} alloy ingredient: ${ingredient}`);
|
||||
} else {
|
||||
real_ingredients.push(real_item);
|
||||
}
|
||||
}
|
||||
|
||||
if (real_ingredients.length > 0) {
|
||||
event.shapeless(ingotType.withCount(ingredients[0]), real_ingredients);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Andesite alloy is the progression item, as it unlocks most of the next tier of create
|
||||
event.shapeless('create:andesite_alloy', [global.dustItem('tin'), '2x minecraft:andesite']);
|
||||
|
||||
// Andesite age: Crushing wheels to crush, then the crushed ore is smelted normally. Alloys require the create mixer. Ore washing to double crushed ore is unlocked, but fans require invar instead of iron. Gears can be crafted on a crafting table
|
||||
for (const tier of ['primitive', 'vanilla', 'andesite']) {
|
||||
for (const [metal, ingredients] of Object.entries(progression[tier])) {
|
||||
let rawType = metalForm(metal, 'raw_materials', 'ore');
|
||||
let crushedType = Item.of(`create:crushed_raw_${metal}`);
|
||||
let dustType = metalForm(metal, 'dusts', 'dust');
|
||||
let ingotType = metalForm(metal, 'ingots', 'ingot');
|
||||
let rawBlockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block');
|
||||
let gearType = metalForm(metal, 'gears', 'gear');
|
||||
let plateType = metalForm(metal, 'plates', 'plate');
|
||||
|
||||
console.log(`Building andesite processing for ${metal}...`);
|
||||
|
||||
if (rawType.id != 'minecraft:air') {
|
||||
if (crushedType.id != 'minecraft:air') {
|
||||
event.recipes.create.crushing([crushedType.withCount(2)], rawType);
|
||||
event.recipes.create.crushing([crushedType.withCount(18)], rawBlockType);
|
||||
event.recipes.create.milling([crushedType.withCount(2)], rawType);
|
||||
event.recipes.create.milling([crushedType.withCount(18)], rawBlockType);
|
||||
event.smelting(ingotType, crushedType);
|
||||
|
||||
if (dustType.id != 'minecraft:air') {
|
||||
event.recipes.create.splashing([dustType.withCount(2)], crushedType);
|
||||
} else {
|
||||
console.error(`No ${metal} ore washing available!`);
|
||||
}
|
||||
} else {
|
||||
console.error(`No ${metal} ore crushing available!`);
|
||||
}
|
||||
}
|
||||
|
||||
if (gearType.id != 'minecraft:air') {
|
||||
event.shaped(gearType, [
|
||||
' A ',
|
||||
'ABA',
|
||||
' A '
|
||||
], {
|
||||
'A': ingotType,
|
||||
'B': '#forge:gems'
|
||||
});
|
||||
} else {
|
||||
console.error(`No ${metal} gears available!`);
|
||||
}
|
||||
|
||||
if (plateType.id != 'minecraft:air') {
|
||||
event.shapeless(plateType, [ingotType.withCount(2), '#alltheores:ore_hammers']);
|
||||
} else {
|
||||
console.error(`No ${metal} plates available!`);
|
||||
}
|
||||
|
||||
// TODO: alloy ingredients
|
||||
for (const form of ['ingots', 'dusts']) {
|
||||
let real_ingredients = [];
|
||||
for (const ingredient of ingredients.slice(1)) {
|
||||
let real_item = Item.of(ingredient);
|
||||
if (real_item.id == 'minecraft:air') {
|
||||
let parts = ingredient.split(' ');
|
||||
if (parts.length == 1) {
|
||||
real_item = metalForm(parts[0], form);
|
||||
} else {
|
||||
real_item = metalForm(parts[1], form).withCount(parts[0].split('x')[0]);
|
||||
}
|
||||
}
|
||||
|
||||
if (real_item.id == 'minecraft:air') {
|
||||
console.error(`Unknown or invalid ${metal} alloy ingredient: ${ingredient}`);
|
||||
}
|
||||
real_ingredients.push(real_item);
|
||||
}
|
||||
|
||||
if (real_ingredients.length > 0) {
|
||||
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).heated();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Most machines from here on out require nickel, so we unlock the pulverizer behind our early alloys
|
||||
event.replaceInput(
|
||||
{output: 'thermal:machine_pulverizer'},
|
||||
'#forge:gears/copper',
|
||||
global.gearItem('brass')
|
||||
);
|
||||
|
||||
// Mechanical/grist age: Ores require diamond pick, crushed in the pulverizer, and crushed ore is smelted normally. Alloys require blending dusts in a heated mixer, then smelting the blend. 4x ore centrifuge is unlocked after creating a constantan gear on the crafting table. Other gears require the press.
|
||||
for (const tier of ['primitive', 'vanilla', 'andesite', 'mechanical']) {
|
||||
for (const [metal, ingredients] of Object.entries(progression[tier])) {
|
||||
let rawType = metalForm(metal, 'raw_materials', 'ore');
|
||||
let crushedType = Item.of(`create:crushed_raw_${metal}`);
|
||||
let dustType = metalForm(metal, 'dusts', 'dust');
|
||||
let ingotType = metalForm(metal, 'ingots', 'ingot');
|
||||
|
||||
console.log(`Building mechanical processing for ${metal}...`);
|
||||
|
||||
if (rawType.id != 'minecraft:air') {
|
||||
if (crushedType.id != 'minecraft:air') {
|
||||
// Crushed ores are created in the industrial tier code, but mechanical tier and below are the only ones that don't need a centrifuge first
|
||||
// This allows Nickel to be processed into a constantan gear, which unlocks the centrifuge
|
||||
event.smelting(ingotType, [crushedType]);
|
||||
} else {
|
||||
console.error(`No ${metal} ore pulverizing available! Falling back to dust-based processing line`);
|
||||
}
|
||||
}
|
||||
|
||||
for (const form of ['dusts']) {
|
||||
let real_ingredients = [];
|
||||
for (const ingredient of ingredients.slice(1)) {
|
||||
let real_item = Item.of(ingredient);
|
||||
if (real_item.id == 'minecraft:air') {
|
||||
let parts = ingredient.split(' ');
|
||||
if (parts.length == 1) {
|
||||
real_item = metalForm(parts[0], form);
|
||||
} else {
|
||||
real_item = metalForm(parts[1], form).withCount(parts[0].split('x')[0]);
|
||||
}
|
||||
}
|
||||
|
||||
if (real_item.id == 'minecraft:air') {
|
||||
console.error(`Unknown or invalid ${metal} alloy ingredient: ${ingredient}`);
|
||||
}
|
||||
real_ingredients.push(real_item);
|
||||
}
|
||||
|
||||
if (real_ingredients.length > 0) {
|
||||
event.recipes.create.mixing(dustType.withCount(ingredients[0]), real_ingredients).heated();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Constantan gear is the progression item to get to the industrial tier, as it unlocks the press (and therefore other gears)
|
||||
|
||||
// Industrial age: Ores require centrifuging, alloys require basic grists, gears can only be made with a gear die
|
||||
for (const tier of ['primitive', 'vanilla', 'andesite', 'mechanical', 'industrial']) {
|
||||
for (const [metal, ingredients] of Object.entries(progression[tier])) {
|
||||
let rawType = metalForm(metal, 'raw_materials', 'ore');
|
||||
let crushedType = Item.of(`create:crushed_raw_${metal}`);
|
||||
let dustType = metalForm(metal, 'dusts', 'dust');
|
||||
let rawBlockType = metalForm(`raw_${metal}`, 'storage_blocks', 'block');
|
||||
if (rawType.id != 'minecraft:air') {
|
||||
if (crushedType.id != 'minecraft:air') {
|
||||
event.recipes.thermal.pulverizer([crushedType.withCount(4), crushedType.withChance(0.25)], rawType);
|
||||
event.recipes.thermal.pulverizer([crushedType.withCount(4 * 9), crushedType.withChance(0.25)], rawBlockType);
|
||||
event.recipes.thermal.centrifuge([dustType.withCount(4), dustType.withChance(0.25)], crushedType);
|
||||
} else {
|
||||
console.error(`No ${metal} ore centrifuing available!`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function foobar() {
|
||||
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/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...`);
|
||||
console.log(`Setting up Tier 3 ${metal} processing...`);
|
||||
|
||||
let gearType = metalForm(metal, 'gears', 'gear');
|
||||
let dustType = metalForm(metal, 'dusts', 'dust');
|
||||
@ -338,4 +771,4 @@ ServerEvents.recipes(event => {
|
||||
],
|
||||
experience: 0.5
|
||||
});
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user