Files
2025-07-23 08:37:00 +03:00

310 lines
10 KiB
Plaintext

#priority 10
/*
SevTech: Ages Dye Integration Script
This script handles changing how dyes are worked in the pack.
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.IIngredient;
import crafttweaker.item.IItemStack;
import crafttweaker.oredict.IOreDictEntry;
import scripts.crafttweaker.utils;
/*
Map contaning the Dyes and the flowers which can be turned into the Dye.
Notes: Thanks to Neosghost for pairing ferdinands flowers!
*/
static dyeCrushingRecipes as IItemStack[][IItemStack] = {
// White
<ore:dyeWhite>.firstItem : [
<ferdinandsflowers:block_cff_desert:11>,
<ferdinandsflowers:block_cff_doublesb:1>,
<ferdinandsflowers:block_cff_doublesb:0>,
<ferdinandsflowers:block_cff_flowers:13>,
<ferdinandsflowers:block_cff_flowersb:8>,
<ferdinandsflowers:block_cff_flowersd:6>,
<ferdinandsflowers:block_cff_flowersd:8>,
<minecraft:dye:15>
],
// Orange
<ore:dyeOrange>.firstItem : [
<ferdinandsflowers:block_cff_desert:5>,
<ferdinandsflowers:block_cff_desert:12>,
<ferdinandsflowers:block_cff_doublesc:1>,
<ferdinandsflowers:block_cff_doublesc:2>,
<ferdinandsflowers:block_cff_doublesc:3>,
<ferdinandsflowers:block_cff_doublesd:5>,
<ferdinandsflowers:block_cff_doubless:4>,
<ferdinandsflowers:block_cff_flowers:1>,
<ferdinandsflowers:block_cff_flowers:6>,
<ferdinandsflowers:block_cff_flowersb:1>,
<ferdinandsflowers:block_cff_flowersb:2>,
<ferdinandsflowers:block_cff_flowersb:4>,
<ferdinandsflowers:block_cff_flowersb:9>,
<ferdinandsflowers:block_cff_flowersc:1>,
<ferdinandsflowers:block_cff_flowersd:4>,
<ferdinandsflowers:block_cff_flowerse:12>,
<ferdinandsflowers:block_cff_flowerse:14>,
<ferdinandsflowers:block_cff_flowerse:14>,
<ferdinandsflowers:block_cff_fungus:4>,
<ferdinandsflowers:block_cff_fungus:5>,
<ferdinandsflowers:block_cff_fungus:6>,
<minecraft:red_flower:5>
],
// Magenta
<ore:dyeMagenta>.firstItem : [
<ferdinandsflowers:block_cff_doublesp:3>,
<ferdinandsflowers:block_cff_doublesp:4>,
<ferdinandsflowers:block_cff_flowers:8>,
<ferdinandsflowers:block_cff_flowers:0>,
<ferdinandsflowers:block_cff_flowersc:10>,
<ferdinandsflowers:block_cff_flowersc:11>,
<ferdinandsflowers:block_cff_flowersd:15>,
<ferdinandsflowers:block_cff_flowersd:0>,
<ferdinandsflowers:block_cff_flowerse:5>,
<ferdinandsflowers:block_cff_flowerse:13>,
<minecraft:double_plant:1>,
<minecraft:red_flower:2>
],
// Light Blue
<ore:dyeLightBlue>.firstItem : [
<ferdinandsflowers:block_cff_desert:8>,
<ferdinandsflowers:block_cff_doublesc:5>,
<ferdinandsflowers:block_cff_flowers:15>,
<ferdinandsflowers:block_cff_flowersc:14>,
<ferdinandsflowers:block_cff_flowersc:15>,
<ferdinandsflowers:block_cff_flowersd:11>,
<ferdinandsflowers:block_cff_flowersd:12>,
<ferdinandsflowers:block_cff_flowerse:6>,
<ferdinandsflowers:block_cff_flowerse:11>,
<ferdinandsflowers:block_cff_fungus:12>,
<minecraft:red_flower:1>
],
// Yellow
<ore:dyeYellow>.firstItem : [
<ferdinandsflowers:block_cff_desert:3>,
<ferdinandsflowers:block_cff_desert:4>,
<ferdinandsflowers:block_cff_doubless:1>,
<ferdinandsflowers:block_cff_doubless:2>,
<ferdinandsflowers:block_cff_doubless:3>,
<ferdinandsflowers:block_cff_doubless:5>,
<ferdinandsflowers:block_cff_flowers:11>,
<ferdinandsflowers:block_cff_flowers:12>,
<ferdinandsflowers:block_cff_flowersb:6>,
<ferdinandsflowers:block_cff_flowersb:11>,
<ferdinandsflowers:block_cff_flowersb:12>,
<ferdinandsflowers:block_cff_flowersb:13>,
<ferdinandsflowers:block_cff_flowersc:7>,
<ferdinandsflowers:block_cff_flowersd:5>,
<ferdinandsflowers:block_cff_fungus:0>,
<minecraft:double_plant:0>,
<minecraft:dye:11>,
<minecraft:yellow_flower:0>
],
// Lime
<ore:dyeLime>.firstItem : [
<ferdinandsflowers:block_cff_flowersd:7>
],
// Pink
<ore:dyePink>.firstItem : [
<ferdinandsflowers:block_cff_desert:7>,
<ferdinandsflowers:block_cff_doubles:0>,
<ferdinandsflowers:block_cff_doublesb:2>,
<ferdinandsflowers:block_cff_doublesb:3>,
<ferdinandsflowers:block_cff_doublesb:4>,
<ferdinandsflowers:block_cff_doublesc:0>,
<ferdinandsflowers:block_cff_doublesp:5>,
<ferdinandsflowers:block_cff_flowers:3>,
<ferdinandsflowers:block_cff_flowers:5>,
<ferdinandsflowers:block_cff_flowersb:3>,
<ferdinandsflowers:block_cff_flowersc:3>,
<ferdinandsflowers:block_cff_flowersc:9>,
<ferdinandsflowers:block_cff_flowersc:12>,
<ferdinandsflowers:block_cff_flowersc:0>,
<ferdinandsflowers:block_cff_flowersd:3>,
<ferdinandsflowers:block_cff_flowerse:0>,
<ferdinandsflowers:block_cff_ouch:3>,
<minecraft:double_plant:5>,
<minecraft:red_flower:7>
],
// Gray
<ore:dyeGray>.firstItem : [
],
// Light Gray
<ore:dyeLightGray>.firstItem : [
<ferdinandsflowers:block_cff_doublesd:4>,
<minecraft:red_flower:3>,
<minecraft:red_flower:6>,
<minecraft:red_flower:8>
],
// Cyan
<ore:dyeCyan>.firstItem : [
<ferdinandsflowers:block_cff_flowersd:10>,
<ferdinandsflowers:block_cff_fungus:13>
],
// Purple
<ore:dyePurple>.firstItem : [
<ferdinandsflowers:block_cff_desert:6>,
<ferdinandsflowers:block_cff_desert:9>,
<ferdinandsflowers:block_cff_desert:13>,
<ferdinandsflowers:block_cff_desert:15>,
<ferdinandsflowers:block_cff_doubles:1>,
<ferdinandsflowers:block_cff_doubles:2>,
<ferdinandsflowers:block_cff_doubles:5>,
<ferdinandsflowers:block_cff_doublesp:2>,
<ferdinandsflowers:block_cff_flowers:2>,
<ferdinandsflowers:block_cff_flowers:7>,
<ferdinandsflowers:block_cff_flowers:9>,
<ferdinandsflowers:block_cff_flowers:10>,
<ferdinandsflowers:block_cff_flowers:14>,
<ferdinandsflowers:block_cff_flowersb:10>,
<ferdinandsflowers:block_cff_flowersb:14>,
<ferdinandsflowers:block_cff_flowersb:15>,
<ferdinandsflowers:block_cff_flowersb:0>,
<ferdinandsflowers:block_cff_flowersc:4>,
<ferdinandsflowers:block_cff_flowersd:1>,
<ferdinandsflowers:block_cff_flowersd:9>,
<ferdinandsflowers:block_cff_flowerse:1>,
<ferdinandsflowers:block_cff_flowerse:2>,
<ferdinandsflowers:block_cff_flowerse:3>,
<ferdinandsflowers:block_cff_flowerse:4>,
<ferdinandsflowers:block_cff_fungus:10>,
<ferdinandsflowers:block_cff_fungus:11>
],
// Blue
<ore:dyeBlue>.firstItem : [
<ferdinandsflowers:block_cff_desert:10>,
<ferdinandsflowers:block_cff_doublesd:3>,
<ferdinandsflowers:block_cff_doublesp:0>,
<ferdinandsflowers:block_cff_doublesp:1>,
<ferdinandsflowers:block_cff_flowers:4>,
<ferdinandsflowers:block_cff_flowersb:7>,
<ferdinandsflowers:block_cff_flowersc:5>,
<ferdinandsflowers:block_cff_flowersc:6>,
<ferdinandsflowers:block_cff_flowersd:13>,
<ferdinandsflowers:block_cff_flowersd:14>,
<ferdinandsflowers:block_cff_flowerse:7>,
<ferdinandsflowers:block_cff_flowerse:8>,
<ferdinandsflowers:block_cff_flowerse:9>,
<ferdinandsflowers:block_cff_flowerse:10>,
<minecraft:dye:4>
],
// Brown
<ore:dyeBrown>.firstItem : [
<betterwithmods:material:44>,
<ferdinandsflowers:block_cff_desert:2>,
<ferdinandsflowers:block_cff_doubles:3>,
<ferdinandsflowers:block_cff_fungus:7>,
<ferdinandsflowers:block_cff_fungus:8>,
<ferdinandsflowers:block_cff_fungus:9>,
<ferdinandsflowers:block_cff_ouch:4>
],
// Green
<ore:dyeGreen>.firstItem : [
<ferdinandsflowers:block_cff_desert:14>,
<ferdinandsflowers:block_cff_desert:0>,
<ferdinandsflowers:block_cff_doublesc:4>,
<ferdinandsflowers:block_cff_doublesd:1>,
<ferdinandsflowers:block_cff_doublesd:0>,
<ferdinandsflowers:block_cff_flowersc:2>,
<ferdinandsflowers:block_cff_ouch:1>,
<ferdinandsflowers:block_cff_ouch:2>,
<ferdinandsflowers:block_cff_ouch:0>,
<minecraft:dye:2>
],
// Red
<ore:dyeRed>.firstItem : [
<ferdinandsflowers:block_cff_desert:1>,
<ferdinandsflowers:block_cff_doubles:4>,
<ferdinandsflowers:block_cff_doublesb:5>,
<ferdinandsflowers:block_cff_doublesd:2>,
<ferdinandsflowers:block_cff_doubless:0>,
<ferdinandsflowers:block_cff_flowersb:5>,
<ferdinandsflowers:block_cff_flowersc:8>,
<ferdinandsflowers:block_cff_flowersc:13>,
<ferdinandsflowers:block_cff_flowersd:2>,
<ferdinandsflowers:block_cff_fungus:1>,
<ferdinandsflowers:block_cff_fungus:2>,
<ferdinandsflowers:block_cff_fungus:3>,
<minecraft:double_plant:4>,
<minecraft:dye:1>,
<minecraft:red_flower:4>,
<minecraft:red_flower:0>,
<rustic:wildberries:0>
],
// Black
<ore:dyeBlack>.firstItem : [
<actuallyadditions:block_black_lotus:0>,
<minecraft:dye:0>,
<nex:wither_dust:0>
]
};
function init() {
// ==================================
// Loop over the Vanilla Dyes and remove all recipes for them.
for minecraftDye in minecraftDyes {
// Remove Vanilla recipes.
recipes.remove(minecraftDye);
// Remove AA Crusher recipes.
actuallyAdditions.removeCrusher(minecraftDye);
}
var IE_CRUSHER_ENERGY as int = 3200;
var HP_GRINDSTONE_TIME as int = 12;
// ==================================
// Loop over the Crushing recipes to create the correct recipes based on our Dye setup.
for dye, items in scripts.crafttweaker.integrations.dye.dyeCrushingRecipes {
// Re-create wool -> string/dye recipe
if (dye.metadata == 0) {
// White wool doesn't output dye.
immersiveEngineering.addCrusher(<minecraft:string:0> * 4, <minecraft:wool:0>.definition.makeStack(dye.metadata), IE_CRUSHER_ENERGY);
} else {
immersiveEngineering.addCrusher(<minecraft:string:0> * 4, <minecraft:wool:0>.definition.makeStack(dye.metadata), IE_CRUSHER_ENERGY, dye, 0.05);
}
for item in items {
actuallyAdditions.addCrusher(dye * 2, item);
betterWithMods.addMilling([item], [dye * 2]);
immersiveEngineering.addCrusher(dye * 2, item, IE_CRUSHER_ENERGY);
horsePower.addGrindstone(dye, item, HP_GRINDSTONE_TIME, false);
mekanism.addCrusher(item, dye * 2);
}
// ==================================
// Re-create Minecraft Wool Dying Recipes
var dyeName as string = minecraftDyeIdTable[15 - dye.metadata];
var dyeOredict as IOreDictEntry = oreDict.get("dye" ~ utils.capitalize(dyeName));
recipes.addShaped("dye_wool_" ~ dyeName,
<minecraft:wool:0>.definition.makeStack(dye.metadata) * 8, [
[<ore:wool>, <ore:wool>, <ore:wool>],
[<ore:wool>, dyeOredict, <ore:wool>],
[<ore:wool>, <ore:wool>, <ore:wool>]
]
);
}
<ore:dyeSilver>.add(<ore:dyeLightGray>.firstItem); // TODO: remove when AE2 accepts dyeLightGray
}