Files
sevtech-ages-1.12.2/scripts/crafttweaker/integrations/mods/horsepower.zs
2025-07-23 08:37:00 +03:00

206 lines
7.5 KiB
Plaintext

/*
SevTech: Ages Horse Power Script
This script handles custom integration control to a mod.
Note: These scripts are created and for the usage in SevTech: Ages and other
modpacks curated by DarkPacks. You can use these scripts for reference and for
learning but not for copying and pasting and claiming as your own.
*/
import crafttweaker.item.IItemStack;
import crafttweaker.item.IIngredient;
/*
Grinder Recipes
Layout of the map should be the following:
int (time): [[output IItemStack, input IItemStack]]
*/
static grinderRecipes as IIngredient[][][int] = {
12: [
[<minecraft:clay_ball:0> * 4, <minecraft:clay:0>],
[<ore:dyeRed>.firstItem, <minecraft:double_plant:4>],
[<ore:dyeRed>.firstItem, <minecraft:red_flower:4>],
[<ore:dyeRed>.firstItem, <minecraft:red_flower:0>],
[<ore:dyeLightGray>.firstItem, <minecraft:red_flower:3>],
[<ore:dyeLightGray>.firstItem, <minecraft:red_flower:6>],
[<ore:dyeLightGray>.firstItem, <minecraft:red_flower:8>],
[<ore:dyePink>.firstItem, <minecraft:double_plant:5>],
[<ore:dyePink>.firstItem, <minecraft:red_flower:7>],
[<ore:dyeYellow>.firstItem, <minecraft:double_plant:0>],
[<ore:dyeYellow>.firstItem, <minecraft:yellow_flower:0>],
[<ore:dyeLightBlue>.firstItem, <minecraft:red_flower:1>],
[<ore:dyeMagenta>.firstItem, <minecraft:double_plant:1>],
[<ore:dyeMagenta>.firstItem, <minecraft:red_flower:2>],
[<ore:dyeOrange>.firstItem, <minecraft:red_flower:5>],
[<minecraft:sand:0> * 2, <minecraft:sandstone:0>],
[<minecraft:sugar:0> * 1, <minecraft:reeds:0>],
[<horsepower:flour:0>, <natura:materials:0>],
[<ore:dyeYellow>.firstItem * 2, <minecraft:dye:11>],
[<ore:dyeBlue>.firstItem * 2, <ferdinandsflowers:block_cff_flowers:4>],
[<ore:dyeBlue>.firstItem * 2, <ferdinandsflowers:block_cff_flowersc:6>],
[<ore:dyeBlue>.firstItem * 2, <minecraft:dye:4>],
[<betterwithmods:material:44>, <minecraft:dye:3>],
[<ore:dyeGreen>.firstItem * 2, <minecraft:dye:2>],
[<ore:dyeRed>.firstItem * 2, <minecraft:dye:1>],
[<ore:dyeBlack>.firstItem * 2, <actuallyadditions:block_black_lotus:0>],
[<ore:dyeBlack>.firstItem * 2, <minecraft:dye:0>],
[<ore:dyeWhite>.firstItem * 2, <minecraft:dye:15>]
],
16: [
[<ore:dustWood>.firstItem * 4, <ore:logWood>],
[<abyssalcraft:shadowfragment:0> * 9, <abyssalcraft:shadowshard:0>],
[<actuallyadditions:item_dust:7>, <actuallyadditions:block_misc:3>],
[<betterwithaddons:japanmat:4>, <actuallyadditions:item_food:16>],
[<horsepower:flour:0>, <minecraft:wheat:0>],
[<pickletweaks:coal_piece:1> * 8, <minecraft:coal:1>],
[<ore:dyeRed>.firstItem, <rustic:wildberries:0>],
[<primal:bone_knapp:0> * 2, <minecraft:bone:0>],
[<primal:tannin_ground:0> * 2, <ore:barkWood>]
],
24: [
[<abyssalcraft:shadowshard:0> * 9, <abyssalcraft:shadowgem:0>],
[<minecraft:coal:1> * 4, <primal_tech:charcoal_block>],
[<minecraft:coal:1> * 9, <charcoalblock:charcoal_block:0>],
[<minecraft:coal:0> * 9, <minecraft:coal_block:0>],
[<minecraft:dye:15> * 9, <minecraft:bone_block:0>],
[<minecraft:gravel:0>, <minecraft:cobblestone:0>],
[<pickletweaks:coal_piece:0> * 8, <minecraft:coal:0>],
[<primal:salt_dust_rock:0>, <minecraft:sand:0>],
// Salt Grinding
[<primal:salt_dust_netjry:0> * 4, <primal:salt_netjry_block:0>],
[<primal:salt_dust_rock:0> * 4, <primal:ore_salt:0>],
[<primal:salt_dust_fire:0> * 4, <primal:ore_salt:1>],
[<mekanism:salt:0> * 4, <mekanism:saltblock:0>]
],
32: [
[<tconstruct:stone_stick:0>, <minecraft:cobblestone:0>],
[<minecraft:dye:15> * 2, <primal:shark_tooth:0>],
[<minecraft:dye:15> * 2, <death_compass:death_compass>.withTag({})], // Death Compass -> Bone Meal
[<minecraft:prismarine_shard:0> * 4, <minecraft:prismarine:0>]
]
};
/*
Press Recipes
IItemStack output: IIngredient input
*/
static pressRecipes as IIngredient[IItemStack] = {
<abyssalcraft:shadowgem:0>: <abyssalcraft:shadowshard:0> * 9,
<abyssalcraft:shadowshard:0>: <abyssalcraft:shadowfragment:0> * 9,
<betterwithaddons:japanmat:11>: <betterwithaddons:japanmat:10>,
<charcoalblock:charcoal_block:0>: <minecraft:coal:1> * 9,
<minecraft:clay:0>: <minecraft:clay_ball:0> * 4,
<minecraft:coal:1>: <pickletweaks:coal_piece:1> * 8,
<minecraft:coal:0>: <pickletweaks:coal_piece:0> * 8,
<minecraft:coal_block:0>: <minecraft:coal:0> * 9,
<minecraft:prismarine_crystals:0>: <minecraft:prismarine_shard:0> * 4,
// Salt Pressing
<primal:salt_netjry_block:0>: <primal:salt_dust_netjry:0> * 4,
<primal:ore_salt:0>: <primal:salt_dust_rock:0> * 4,
<primal:ore_salt:1>: <primal:salt_dust_fire:0> * 4,
<mekanism:saltblock:0>: <mekanism:salt:0> * 4,
<minecraft:diamond_block:0>: <minecraft:diamond:0> * 9,
<minecraft:lapis_block:0>: <minecraft:dye:4> * 9,
<minecraft:redstone_block:0>: <minecraft:redstone:0> * 9,
<minecraft:emerald_block:0>: <minecraft:emerald:0> * 9
};
var plankWoodCopy = <ore:plankWoodCopy>; // Create an oreDict to hold our plank clone.
plankWoodCopy.addAll(<ore:plankWood>); // Clone the main oreDict.
// Array containing all the betweenland planks we want to remove from the main cloned one.
var betweenlandPlanks as IItemStack[] = [
<thebetweenlands:weedwood_planks:0>
];
// Remove the planks in the array from the cloned oreDict.
for plank in betweenlandPlanks {
plankWoodCopy.remove(plank);
}
/*
Chopping Block Recipes
"Standardized" Recipes for manual and automatic. 4 for manual, 2 automatic. If not desired, do recipe manually.
*/
static choppingRecipes as IIngredient[][IItemStack] = {
<ore:stickWood>.firstItem * 4 : [
<ore:plankWoodCopy>
],
<thebetweenlands:items_misc:20> * 4: [
<thebetweenlands:weedwood_planks:0>
],
<thebetweenlands:nibblestick:0> * 4: [
<thebetweenlands:nibbletwig_planks:0>
],
<primal:thin_slab_acacia:0> * 2 : [
<minecraft:wooden_slab:4>
],
<primal:thin_slab_bigoak:0> * 2 : [
<minecraft:wooden_slab:5>
],
<primal:thin_slab_birch:0> * 2 : [
<minecraft:wooden_slab:2>
],
<primal:thin_slab_corypha:0> * 2 : [
<primal:slab_corypha:0>
],
<primal:thin_slab_ironwood:0> * 2 : [
<rustic:ironwood_slab_item:0>
],
<primal:thin_slab_jungle:0> * 2 : [
<minecraft:wooden_slab:3>
],
<primal:thin_slab_lacquer:0> * 2 : [
<primal:slab_lacquer:0>
],
<primal:thin_slab_oak:0> * 2 : [
<minecraft:wooden_slab:0>
],
<primal:thin_slab_spruce:0> * 2 : [
<minecraft:wooden_slab:1>
],
<primal:thin_slab_thatch:0> * 2 : [
<primal:thatch:0>
]
};
function init() {
// Add the Grindstone Recipes.
for time, grindRecipes in grinderRecipes {
for itemRecipe in grindRecipes {
for item in itemRecipe[0].items {
horsePower.addGrindstone(item, itemRecipe[1], time, false);
}
}
}
// Recipes with Secondary Outputs
horsePower.addGrindstone(<minecraft:dye:15>, <primal:bone_knapp:0>, 16, false, <minecraft:dye:15>, 20);
horsePower.addGrindstone(<minecraft:dye:15>, <primal:bone_point:0>, 16, false, <minecraft:dye:15>, 20);
horsePower.addGrindstone(<minecraft:dye:15>, <primal_tech:bone_shard>, 16, false, <minecraft:dye:15>, 20);
// Add the Press Recipes.
for output, input in pressRecipes {
horsePower.addPress(input, output);
}
// Add the Press Recipes for Seeds.
var seedOreDict = <ore:thisIsWhatHappensWhenYouDontFollowOreDictionariesForSeeds>;
for seed in seedOreDict.items {
horsePower.addPress(<minecraft:dirt:0>, seed * 12);
}
// Add the Chopping Block Recipes.
for output, inputs in choppingRecipes {
for input in inputs {
// Add recipe for manual and automatic with different times for each. Makes it consistent for all
horsePower.addChopping(output, input, 4, true);
horsePower.addChopping(output, input, 2, false);
}
}
}