Files
sevtech-ages-1.12.2/scripts/crafttweaker/classes/integration/dryingUnit.zs
2025-07-23 08:37:00 +03:00

93 lines
2.9 KiB
Plaintext

#priority 3400
/*
SevTech: Ages Drying Unit Script
This script is a zenClass to allow easy interation with the MM Drying Machine.
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;
import crafttweaker.oredict.IOreDictEntry;
import mods.modularmachinery.RecipeBuilder;
import mods.modularmachinery.RecipePrimer;
import scripts.crafttweaker.utils.createRecipeName;
import scripts.crafttweaker.utils.squareNum;
/*
TODO: Look into making this class generic for possible conversion from other MM machines.
*/
zenClass DryingUnit {
var machineName as string = "industrial_drying_unit";
var energyScalingMultiplier as int[] = [1, 4, 8];
var tickTimeValue as int = 600;
zenConstructor() {
}
/*
Forms the basic recipe.
*/
function formBaseRecipe(tier as int, name as string) as RecipePrimer {
var machineSlug = tier > 1 ? machineName ~ "_mk" ~ tier : machineName;
var timeScaler = (tier + 1) > 2 ? squareNum(2, tier - 1) : tier + 1;
var builder = RecipeBuilder.newBuilder(
createRecipeName(machineName ~ "_mk" ~ tier, name),
machineSlug, tickTimeValue / timeScaler
)
.addEnergyPerTickInput(5 * energyScalingMultiplier[tier - 1]);
return builder;
}
/*
Forms the basic via the arguments given the function.
*/
function formBaseRecipe(tier as int, input as IOreDictEntry, inAmount as int, output as IOreDictEntry, outAmount as int) {
var builder = formBaseRecipe(tier, input.name);
builder
.addItemInput(input, inAmount)
.addItemOutput(output, outAmount)
.build();
}
function formBaseRecipe(tier as int, input as IOreDictEntry, inAmount as int, output as IItemStack) {
var builder = formBaseRecipe(tier, input.name);
builder
.addItemInput(input, inAmount)
.addItemOutput(output)
.build();
}
function formBaseRecipe(tier as int, input as IItemStack, output as IItemStack) {
var builder = formBaseRecipe(tier, input.name);
builder
.addItemInput(input)
.addItemOutput(output)
.build();
}
/*
Create the builder/recipes based on the arguments given to the function.
*/
function addAllTiers(input as IOreDictEntry, inAmount as int, output as IOreDictEntry, outAmount as int) {
formBaseRecipe(1, input, inAmount, output, outAmount);
formBaseRecipe(2, input, inAmount, output, outAmount);
formBaseRecipe(3, input, inAmount, output, outAmount);
}
function addAllTiers(input as IOreDictEntry, inAmount as int, output as IItemStack) {
formBaseRecipe(1, input, inAmount, output);
formBaseRecipe(2, input, inAmount, output);
formBaseRecipe(3, input, inAmount, output);
}
function addAllTiers(input as IItemStack, output as IItemStack) {
formBaseRecipe(1, input, output);
formBaseRecipe(2, input, output);
formBaseRecipe(3, input, output);
}
}