patch up missing rod recipes, fix andesite alloy voiding bug, update geckolib, add butchery mod

This commit is contained in:
2025-06-30 20:10:21 +02:00
parent ce717ad665
commit e8322eed47
7 changed files with 115 additions and 29 deletions

View File

@ -109,4 +109,15 @@ ServerEvents.recipes(event => {
'#forge:ender_pearls',
'#kubejs:grist/build/improved'
);
['red', 'orange', 'yellow', 'green', 'blue', 'purple', 'magenta', 'white', 'black', 'light_gray', 'gray', 'brown', 'cyan', 'pink'].forEach(color => {
// Create colored blocks from the mixer.
// TODO: This is required due to disabling all automatic crafting recipes, maybe these can just be re-enabled somehow?
event.recipes.create.mixing(`8x minecraft:${color}_concrete_powder`, [`minecraft:${color}_dye`, '4x #forge:sand', '4x minecraft:gravel']);
event.recipes.create.mixing(`8x minecraft:${color}_concrete`, [`minecraft:${color}_dye`, '4x #forge:sand', '4x minecraft:gravel', Fluid.of('minecraft:water', 250 * 8)]);
event.recipes.create.mixing(`8x minecraft:${color}_terracotta`, [`minecraft:${color}_dye`, '8x minecraft:terracotta']);
event.recipes.create.mixing(`minecraft:${color}_concrete`, [`minecraft:${color}_concrete_powder`, Fluid.of('minecraft:water', 250)]);
event.recipes.create.mixing(`minecraft:${color}_wool`, [`minecraft:${color}_dye`, '#minecraft:wool']);
event.recipes.create.mixing(`minecraft:${color}_stained_glass`, [`minecraft:${color}_dye`, '#forge:glass/colorless']).heated();
});
});

View File

@ -10,7 +10,7 @@ ServerEvents.recipes(event => {
'A': 'powah:dielectric_paste',
'B': '#chipped:iron_bars',
'C': '#kubejs:grist/intelligent/improved'
})
});
// Dielectric casings are used in nearly every powah recipe, so lets require energetic grist
event.shaped('powah:dielectric_casing', [
@ -39,8 +39,42 @@ ServerEvents.recipes(event => {
'thermal:rf_coil'
]);
event.recipes.powah.energizing(['minecraft:diamond', '#kubejs:grist/energetic/improved'], 'powah:crystal_niotic', 180000);
event.recipes.powah.energizing(['minecraft:emerald', '2x #kubejs:grist/energetic/improved'], 'powah:crystal_spirited', 1000000);
event.replaceInput({output: 'powah:thermoelectric_plate'},
'minecraft:blaze_powder',
'#kubejs:grist/energetic/basic'
);
event.replaceInput({output: 'powah:thermoelectric_plate'},
'minecraft:redstone',
'#kubejs:grist/build/basic'
);
event.replaceInput({mod: 'powah'},
'minecraft:quartz',
Ingredient.of('minecraft:quartz').or('ae2:certus_quartz_crystal')
);
event.replaceInput({mod: 'powah'},
'minecraft:quartz_block',
Ingredient.of('minecraft:quartz_block').or('ae2:quartz_block')
);
// Nitro and spirited require radiant grist
event.remove({output: 'powah:crystal_nitro'});
event.recipes.powah.energizing(['3x #kubejs:grist/energetic/radiant/block'], '2x powah:crystal_nitro', 20000000);
event.remove({output: 'powah:crystal_spirited'});
event.recipes.powah.energizing(['powah:crystal_niotic', '2x #kubejs:grist/energetic/radiant'], '2x powah:crystal_spirited', 1000000);
// Niotic and blazing are at the improved tier
event.remove({output: 'powah:crystal_niotic'});
event.recipes.powah.energizing(['3x #kubejs:grist/energetic/improved/block'], '2x powah:crystal_niotic', 180000);
event.remove({output: 'powah:crystal_blazing'});
event.recipes.powah.energizing(['3x #kubejs:grist/energetic/improved'], '2x powah:crystal_blazing', 90000);
// Energized steel (aka hardened tier) require basic grist
event.remove({output: 'powah:steel_energized'});
event.recipes.powah.energizing(['minecraft:iron', 'minecraft:gold', '3x #kubejs:grist/energetic/basic'], '2x powah:steel_energized', 10000);
// Dielectric paste can be crafted with basic grist, and scaled up through machines
event.shapeless('6x powah:dielectric_paste', [
'kubejs:grist_primordeal_basic',
'kubejs:grist_energetic_basic',
@ -48,4 +82,16 @@ ServerEvents.recipes(event => {
'minecraft:clay_ball',
'#alltheores:ore_hammers'
]);
// TODO: Add create mixing and thermal alloy smelting versions for dialectric paste
event.recipes.thermal.smelter('24x powah:dielectric_paste', [
'kubejs:grist_energetic_basic',
'minecraft:clay_ball',
'minecraft:redstone'
]);
event.recipes.create.mixing('12x powah:dielectric_paste', [
'kubejs:grist_energetic_basic',
'minecraft:clay_ball',
'minecraft:redstone'
]).heated();
// TODO: create a crystalizer recipe with destabilized redstone? liquid grist?
});

View File

@ -1,4 +1,7 @@
// FIXME: Cannot process alltheores:raw_nickel
//FIXME: broken andesite mixing recipe creates no output
//FIXME: test create shaft and cog recipes again
//FIXME: Figure out what the original create wool and concrete coloring recipes were, add mixer variants
//FIXME: Create a water mixer route to turn concrete powder to concrete
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
@ -128,7 +131,6 @@ ServerEvents.recipes(event => {
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
@ -264,7 +266,8 @@ ServerEvents.recipes(event => {
// 4 ingots = 1 gear in the press
if (gearType.id != 'minecraft:air') {
event.recipes.thermal.press(gearType, [ingotType.withCount(4), 'thermal:press_gear_die']).id(`kubejs:${metal}_gear_in_thermal_press`);
// TODO: would be fun to have a special 'high efficiency' gear press?
event.recipes.thermal.press(gearType.withCount(2), [ingotType.withCount(4), 'thermal:press_gear_die']).id(`kubejs:${metal}_gear_in_thermal_press`);
}
// 9 Nuggets == 1 ingot, for every material
@ -289,6 +292,16 @@ ServerEvents.recipes(event => {
event.recipes.thermal.press(ingotType.withCount(9), [blockType, 'thermal:press_unpacking_die']).id(`kubejs:${metal}_ingots_from_block_in_thermal_press`);
}
if (rodType.id != 'minecraft:air') {
// All metals can waste one ingot to create a rod in the crafting table
event.shapeless(rodType, [ingotType.withCount(2), '#alltheores:ore_hammers']);
// Or create two rods from one ingot in the create cutter
event.recipes.create.cutting(rodType.withCount(2), ingotType);
// Or create four rods from the thermal sawmill
event.recipes.thermal.sawmill(rodType.withCount(4), ingotType);
// TODO: Isn't there also a thermal press we can use?
}
// All alloys can be created in the thermal smelter, or a superheated create mixer
if (ingredients.length > 0) {
let real_ingredients = alloyIngredients(['ingots', 'dusts'], ingredients);
@ -298,15 +311,13 @@ ServerEvents.recipes(event => {
} else {
// If we have 3 or fewer ingredients, we can create it in the 3-slot thermal smelter
if (real_ingredients.length <= 3) {
event.recipes.thermal.smelter(ingotType.withCount(ingredients[0]), real_ingredients);
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).heated();
event.recipes.thermal.smelter(ingotType.withCount(ingredients[0]), real_ingredients).id(`kubejs:metals/smelting/${metal}`);
} else {
// Materials with 4 or more require superheating, and can only be made in the mixer
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).superheated();
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).superheated().id(`kubejs:metals/superheated_mixing/${metal}`);
}
}
}
// TODO: Create saw, 3x3 packing/unpacking dies, mechanical press
}
}
@ -413,10 +424,10 @@ ServerEvents.recipes(event => {
console.warn(`No ${metal} plates available!`);
}
let real_ingredients = alloyIngredients(['ingots', 'dusts'], ingredients);
// These ones can simply have their dusts mixed in a cold mixer to create the "alloy" ingot, which for the andesite tier is only andesite alloy.
let real_ingredients = alloyIngredients(['dusts'], ingredients);
if (real_ingredients.length > 0) {
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).heated();
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).id(`kubejs:metals/cold_mixing/${metal}`);
}
}
}
@ -444,10 +455,10 @@ ServerEvents.recipes(event => {
console.error(`No ${metal} ore pulverizing available! Falling back to dust-based processing line`);
}
let real_ingredients = alloyIngredients(['dusts'], ingredients);
// Mechanical alloys can produce whole ingots from heated mixing
let real_ingredients = alloyIngredients(['ingots', 'dusts'], ingredients);
if (real_ingredients.length > 0) {
event.recipes.create.mixing(dustType.withCount(ingredients[0]), real_ingredients).heated();
event.recipes.create.mixing(ingotType.withCount(ingredients[0]), real_ingredients).heated().id(`kubejs:metals/hot_mixing/${metal}`);
}
}
}