Version 5.4
This commit is contained in:
109
minecraft/kubejs/server_scripts/Unification/sawing.js
Normal file
109
minecraft/kubejs/server_scripts/Unification/sawing.js
Normal file
@@ -0,0 +1,109 @@
|
||||
// This File has been authored by AllTheMods Staff, or a Community contributor for use in AllTheMods - AllTheMods 10.
|
||||
// As all AllTheMods packs are licensed under All Rights Reserved, this file is not allowed to be used in any public packs not released by the AllTheMods Team, without explicit permission.
|
||||
|
||||
ServerEvents.tags('item', allthemods => {
|
||||
//regions_unexplored
|
||||
allthemods.add('regions_unexplored:magnolia_logs', [
|
||||
'regions_unexplored:magnolia_log',
|
||||
'regions_unexplored:stripped_magnolia_log',
|
||||
'regions_unexplored:magnolia_wood',
|
||||
'regions_unexplored:stripped_magnolia_wood',
|
||||
])
|
||||
allthemods.add('regions_unexplored:alpha_logs', [
|
||||
'regions_unexplored:alpha_log'
|
||||
])
|
||||
allthemods.add('regions_unexplored:silver_birch_logs', [
|
||||
'regions_unexplored:silver_birch_log',
|
||||
'regions_unexplored:silver_birch_wood',
|
||||
])
|
||||
|
||||
//allthemodium
|
||||
allthemods.add('allthemodium:ancient_logs', [
|
||||
'allthemodium:ancient_log_0',
|
||||
'allthemodium:ancient_log_1',
|
||||
'allthemodium:ancient_log_2',
|
||||
'allthemodium:stripped_ancient_log'
|
||||
])
|
||||
allthemods.add('allthemodium:soul_logs', [
|
||||
'allthemodium:soul_log',
|
||||
'allthemodium:soul_log_0',
|
||||
'allthemodium:soul_log_1',
|
||||
'allthemodium:soul_log_2',
|
||||
'allthemodium:stripped_soul_log'
|
||||
])
|
||||
allthemods.add('allthemodium:demonic_logs', [
|
||||
'allthemodium:demonic_log',
|
||||
'allthemodium:stripped_demonic_log',
|
||||
])
|
||||
allthemods.add('regions_unexplored:alpha_logs', [
|
||||
'regions_unexplored:alpha_log'
|
||||
])
|
||||
|
||||
// completing #minecraft:logs
|
||||
allthemods.add('minecraft:logs', [
|
||||
'#integrateddynamics:menril_logs',
|
||||
'#deeperdarker:bloom_stems',
|
||||
"#deeperdarker:echo_logs",
|
||||
"#evilcraft:undead_logs",
|
||||
"aquaculture:driftwood",
|
||||
"allthemodium:stripped_ancient_log"
|
||||
])
|
||||
})
|
||||
|
||||
const $Collectors = Java.loadClass('java.util.stream.Collectors')
|
||||
|
||||
ServerEvents.recipes(allthemods => {
|
||||
let logsTag = Ingredient.of("#minecraft:logs")
|
||||
|
||||
/** @type {$HashMap_<string, $UnknownKubeRecipe_>}} */
|
||||
let prodSawmillRecipes = allthemods.findRecipes({type: "productivetrees:sawmill"}).stream().collect($Collectors.toMap(r => r.json.asMap().output.get("id").asString, r => r))
|
||||
/** @type {$HashMap_<string, $UnknownKubeRecipe_>}} */
|
||||
let mekSawmillRecipes = allthemods.findRecipes({type: "mekanism:sawing"}).stream().filter(r => r.json.asMap().main_output != undefined && logsTag["matches(dev.latvian.mods.kubejs.recipe.filter.RecipeMatchContext,net.minecraft.world.item.crafting.Ingredient,boolean)"](null, Ingredient.of(r.json.asMap().input.has("ingredient") ? r.json.asMap().input.get("ingredient") : r.json.asMap().input), false)).collect($Collectors.toMap(r => r.json.asMap().main_output.get("id").asString, r => r))
|
||||
|
||||
function mekSawing(output, input, extraOutput, id) {
|
||||
if (mekSawmillRecipes.containsKey(output.id)) {
|
||||
// console.info("Already exists a mek recipe for " + output.id)
|
||||
return
|
||||
}
|
||||
let recipe = {
|
||||
"type": "mekanism:sawing",
|
||||
"input": input,
|
||||
"main_output": output,
|
||||
"secondary_chance": extraOutput.chance,
|
||||
"secondary_output": Item.of(extraOutput.item)
|
||||
};
|
||||
|
||||
allthemods.custom(recipe).id(`allthemods:mekanism/sawing/${id}`);
|
||||
}
|
||||
|
||||
function prodSawing(log, planks, secondary, id) {
|
||||
if (prodSawmillRecipes.containsKey(planks.id)) {
|
||||
// console.info("Already exists a prod tree recipe for " + planks.id)
|
||||
return
|
||||
}
|
||||
allthemods.custom({
|
||||
"type": "productivetrees:sawmill",
|
||||
"input": log,
|
||||
"output": planks,
|
||||
"secondary": secondary
|
||||
}).id(`allthemods:productivetrees/sawing/${id}`);
|
||||
}
|
||||
|
||||
allthemods.forEachRecipe({type: "minecraft:crafting_shapeless", output: "#minecraft:planks"}, recipe => {
|
||||
/** @type {$Ingredient_} */
|
||||
let firstIngredient = recipe.get("ingredients").getFirst()
|
||||
/** @type {$ItemStackKJS_} */
|
||||
let output = recipe.get("result")
|
||||
if (!logsTag["matches(dev.latvian.mods.kubejs.recipe.filter.RecipeMatchContext,net.minecraft.world.item.crafting.Ingredient,boolean)"](null, firstIngredient, false)){
|
||||
console.info("Ingredient is not a log tag: " + Ingredient.of(firstIngredient).toJson())
|
||||
return
|
||||
}
|
||||
|
||||
mekSawing(output.withCount(6), firstIngredient, {chance: 0.25, item: "mekanism:sawdust"}, recipe.getId().split(":")[0] + "/" + recipe.getId().split(":")[1])
|
||||
prodSawing(firstIngredient, output.withCount(6), Item.of("2x productivetrees:sawdust"), recipe.getId().split(":")[0] + "/" + recipe.getId().split(":")[1])
|
||||
})
|
||||
})
|
||||
|
||||
// This File has been authored by AllTheMods Staff, or a Community contributor for use in AllTheMods - AllTheMods 10.
|
||||
// As all AllTheMods packs are licensed under All Rights Reserved, this file is not allowed to be used in any public packs not released by the AllTheMods Team, without explicit permission.
|
||||
|
||||
Reference in New Issue
Block a user