137 lines
4.6 KiB
JavaScript
137 lines
4.6 KiB
JavaScript
// priority:950
|
|
// Written by EnigmaQuip as a post almost unified recipe generation script for missing recipes
|
|
|
|
ServerEvents.recipes(event => {
|
|
if (global.devLogging) {
|
|
console.log('Finishing Unifying on Dusts')
|
|
}
|
|
|
|
let dustCount = {
|
|
occult: 0,
|
|
ftbic: 0
|
|
}
|
|
|
|
global.auTags.dusts.forEach(material => {
|
|
let dust = global.itemFromTag('dusts', material)
|
|
if (dust.isEmpty()) {
|
|
console.log(`${material} does not have a dust tag entry`)
|
|
return
|
|
}
|
|
|
|
let ingotTag = Ingredient.of(`#forge:ingots/${material}`)
|
|
let oreTag = Ingredient.of(`#forge:ores/${material}`)
|
|
let rawTag = Ingredient.of(`#forge:raw_materials/${material}`)
|
|
|
|
// Occultism Crusher
|
|
if (global.loaded.Occult_Loaded) {
|
|
let crush = {
|
|
ingot: false,
|
|
ore: false,
|
|
raw: false
|
|
}
|
|
event.forEachRecipe({ type: "occultism:crushing" }, recipe => {
|
|
let recipeJson = recipe.json
|
|
if (dust.equalsIgnoringCount(Item.of(recipeJson.get('result')))) {
|
|
let input = recipeJson.get('ingredient')
|
|
if (ingotTag.test(Ingredient.of(input))) {
|
|
crush.ingot = true
|
|
} else if (oreTag.test(Ingredient.of(input))) {
|
|
crush.ore = true
|
|
} else if (rawTag.test(Ingredient.of(input))) {
|
|
crush.raw = true
|
|
}
|
|
}
|
|
})
|
|
let recipe = {
|
|
type: "occultism:crushing",
|
|
ingredient: {},
|
|
result: {},
|
|
crushing_time: 200,
|
|
ignore_crushing_multiplier: true
|
|
}
|
|
if (!ingotTag.getFirst().isEmpty() && !crush.ingot) {
|
|
let ingotRecipe = recipe
|
|
ingotRecipe.ingredient = ingotTag.toJson()
|
|
ingotRecipe.result = dust.withCount(1).toJson()
|
|
event.custom(ingotRecipe).id(`kubejs:occultism/crushing/${material}_dust_from_ingot`)
|
|
dustCount.occult++
|
|
}
|
|
if (!rawTag.getFirst().isEmpty() && !crush.raw) {
|
|
let rawRecipe = recipe
|
|
rawRecipe.ingredient = rawTag.toJson()
|
|
rawRecipe.result = dust.withCount(2).toJson()
|
|
rawRecipe.ignore_crushing_multiplier = false
|
|
event.custom(rawRecipe).id(`kubejs:occultism/crushing/${material}_dust_from_raw_material`)
|
|
dustCount.occult++
|
|
}
|
|
if (!oreTag.getFirst().isEmpty() && !crush.ore) {
|
|
let oreRecipe = recipe
|
|
oreRecipe.ingredient = oreTag.toJson()
|
|
oreRecipe.result = dust.withCount(2).toJson()
|
|
oreRecipe.crushing_time = 300
|
|
oreRecipe.ignore_crushing_multiplier = false
|
|
event.custom(oreRecipe).id(`kubejs:occultism/crushing/${material}_dust`)
|
|
dustCount.occult++
|
|
}
|
|
}
|
|
|
|
// FTBIC Macerating
|
|
if (global.loaded.FTBIC_Loaded) {
|
|
let macerate = {
|
|
ingot: false,
|
|
ore: false,
|
|
raw: false,
|
|
}
|
|
event.forEachRecipe({ type: 'ftbic:macerating' }, recipe => {
|
|
let recipeJson = recipe.json
|
|
recipeJson.get('outputItems').forEach(item => {
|
|
if (dust.equalsIgnoringCount(Item.of(item))) {
|
|
recipeJson.get('inputItems').forEach(inputJson => {
|
|
let input = inputJson.get('ingredient')
|
|
if (ingotTag.test(Ingredient.of(input))) {
|
|
macerate.ingot = true
|
|
} else if (oreTag.test(Ingredient.of(input))) {
|
|
macerate.ore = true
|
|
} else if (rawTag.test(Ingredient.of(input))) {
|
|
macerate.raw = true
|
|
}
|
|
})
|
|
}
|
|
})
|
|
})
|
|
if (!ingotTag.getFirst().isEmpty() && !macerate.ingot) {
|
|
event.custom({
|
|
"type": "ftbic:macerating",
|
|
"inputItems": [{ count: 1, ingredient: ingotTag.toJson() }],
|
|
"outputItems": [dust.toJson()]
|
|
}).id(`kubejs:ftbic/macerating/ingots/${material}_to_dust`)
|
|
dustCount.ftbic++
|
|
}
|
|
if (!oreTag.getFirst().isEmpty() && !macerate.ore) {
|
|
event.custom({
|
|
"type": "ftbic:macerating",
|
|
"inputItems": [{ count: 1, ingredient: oreTag.toJson() }],
|
|
"outputItems": [dust.withCount(2).toJson()]
|
|
}).id(`kubejs:ftbic/macerating/ores/${material}_to_dust`)
|
|
dustCount.ftbic++
|
|
}
|
|
if (!rawTag.getFirst().isEmpty() && !macerate.raw) {
|
|
event.custom({
|
|
"type": "ftbic:macerating",
|
|
"inputItems": [{ count: 1, ingredient: rawTag.toJson() }],
|
|
"outputItems": [
|
|
dust.toJson(),
|
|
{ chance: 0.35, item: dust.id }
|
|
]
|
|
}).id(`kubejs:ftbic/macerating/raw_materials/${material}_to_dust`)
|
|
dustCount.ftbic++
|
|
}
|
|
}
|
|
})
|
|
|
|
if (global.devLogging) {
|
|
console.log(`Added Dust Recipes - FTBIC: ${dustCount.ftbic}, Occultism: ${dustCount.occult}`)
|
|
// Added Dust Recipes - FTBIC: 60, Occultism: 5
|
|
}
|
|
})
|