#priority 500 import crafttweaker.api.ingredient.IIngredient; import crafttweaker.api.item.IItemStack; import crafttweaker.api.recipe.RecipeManagerWrapper; import crafttweaker.api.tag.type.KnownTag; import crafttweaker.api.text.Component; import crafttweaker.api.util.random.Percentaged; import stdlib.List; import crafttweaker.api.data.ListData; import crafttweaker.api.data.MapData; import crafttweaker.api.data.IData; import crafttweaker.api.recipe.replacement.Replacer; .remove(); .add(); .remove(); var oreBaseAmount = 1; var oreSecondaryPercent = 33; var rawSecondaryPercent = 33; function addEnderIOSagMill(input as IIngredient, output as Percentaged[], recipeID as string) as void { val results = new ListData(); for item in output { val internalItem = item.getData(); val internalData = (internalItem as IData).merge({"count" : internalItem.amount}).merge({"chance" : item.getPercentage()}); results.add(internalData); } .addJsonRecipe(recipeID, { "type": "enderio:sag_milling", "energy": 2400, "input": input, "outputs": results }); } addEnderIOSagMill(, [ * 2, % 10, % 15], "sag_mill_quartz_2"); val oresDustNoEP as Percentaged[][IIngredient] = { .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ % 100, % oreSecondaryPercent], .asIIngredient(): [ * 5 % 100, % 85], .asIIngredient(): [ * 6 % 100, % 25], .asIIngredient(): [ * 5 % 100, % 25], .asIIngredient(): [ * 8 % 100, * 4 % 75], .asIIngredient(): [ % 100, % 75] }; for input, output in oresDustNoEP { var recipeIDE = input.items[0].registryName.path; addEnderIOSagMill(input, output, "sag_mill_" + recipeIDE); } val oresDustNoEPOne as Percentaged[][IIngredient] = { .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], .asIIngredient(): [ % 100, % 33], : [ % 100], : [ % 100], : [ % 100], .asIIngredient():[ % 100], .asIIngredient():[ % 100], .asIIngredient():[ % 100], .asIIngredient():[ % 100], .asIIngredient():[ % 100], .asIIngredient():[ % 100], .asIIngredient():[ % 100], .asIIngredient():[ % 100], .asIIngredient():[ % 100], .asIIngredient():[ % 100] }; for input, output in oresDustNoEPOne { var recipeIDE2 = input.items[0].registryName.path; addEnderIOSagMill(input, output, "sag_mill_" + recipeIDE2); } val oresDust as Percentaged[][IIngredient] = { .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75] }; val oresDust2 as Percentaged[][IIngredient] = { .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], .asIIngredient(): [ * oreBaseAmount % 100, % oreSecondaryPercent, % 75], }; for input, output in oresDust { var recipeID = input.items[0].registryName.path; .addRecipe("mekanism_enriching_" + recipeID, input, output[0].data * 2); } for input, output in oresDust2 { var recipeID22 = input.items[0].registryName.path; .addRecipe("create_crushing_" + recipeID22, output, input, 400); } .addRecipe("create_obsidian_dust", [ % 100], , 400); .addRecipe("splashing_crushed_uranium", [ * 9], , 100); .addRecipe("splashing_crushed_silver", [ * 9], , 100); .addRecipe("splashing_crushed_aluminum", [ * 9], , 100); val oresGems as Percentaged[][IIngredient] = { .asIIngredient(): [ * 3 % 100, % 75, % 75], .asIIngredient(): [ * 10 % 100, % 50, % 75], .asIIngredient(): [ * 10 % 100, % 50, % 75], .asIIngredient(): [ * 2 % 100, % 25, % 75], .asIIngredient(): [ % 100, % 75, % 75], .asIIngredient(): [ % 100, % 75, % 75], .asIIngredient(): [ * 6 % 100, % 25, % 75], .asIIngredient(): [ * 5 % 100, % 25, % 75], .asIIngredient(): [ * 8 % 100, * 4 % 75, % 75] }; for input, output in oresGems { .addRecipe("create_crushing_" + input.items[0].registryName.path, output, input, 400); } val oresEnriching as IItemStack[IIngredient] = { .asIIngredient(): * 4, .asIIngredient(): * 4, .asIIngredient(): * 4, .asIIngredient(): * 4, .asIIngredient(): * 4, .asIIngredient(): * 4, .asIIngredient(): * 4, .asIIngredient(): * 4, .asIIngredient(): * 4, .asIIngredient(): * 4, .asIIngredient(): * 4, }; for input, output in oresEnriching { .addRecipe("mekanism_enriching_" + input.items[0].registryName.path, input * 3, output); } val oresEnriching2 as IItemStack[IIngredient] = { .asIIngredient(): * 12, .asIIngredient(): * 12, .asIIngredient(): * 12, .asIIngredient(): * 12, .asIIngredient(): * 12, .asIIngredient(): * 12, .asIIngredient(): * 12, .asIIngredient(): * 12, .asIIngredient(): * 12, .asIIngredient(): * 12, .asIIngredient(): , .asIIngredient(): , .asIIngredient(): , .asIIngredient(): , .asIIngredient(): , .asIIngredient(): , .asIIngredient(): }; for input, output in oresEnriching2 { .addRecipe("mekanism_enriching" + input.items[0].registryName.path, input, output); }