zen-flow
Version:
MineTweaker ZenScript made easy.
985 lines (964 loc) • 32.5 kB
JavaScript
'use strict';
var util = require('node:util');
const object = (x) => x !== null && !Array.isArray(x) && typeof x === "object";
const float = (n) => `${n}F`;
const literal = (x) => `"${x}"`;
const list = (n) => (arr) => {
if (arr.length > n) return `
${arr.join(",\n ")}
`;
return arr.join(", ");
};
const array = (n) => (arr) => `[${list(n)(arr)}]`;
const id = (id2) => typeof id2 === "string" ? id2 : "null";
const weight = (weight2) => (id2) => `${id2}.weight(${weight2})`;
const stack = (stack2) => `${stack2.id} * ${stack2.n}`;
const ingredient = (ingredient2) => object(ingredient2) ? stack(ingredient2) : ingredient2;
const bonus$1 = (bonus2) => `${bonus2.id} % ${Math.round(bonus2.chance * 100)}`;
const cast = (cast2) => cast2 ? [
cast2.id,
!!cast2.consume
] : [null, false];
const shaped = (recipe2) => {
const f = (...arr) => {
for (const x of arr) {
if (typeof x === "string") return x;
}
return null;
};
const matrix = [[
f(recipe2.square, recipe2.ring, recipe2.corner, recipe2[1]),
f(recipe2.square, recipe2.ring, recipe2.edge, recipe2[2]),
f(recipe2.ring, recipe2.corner, recipe2[3])
], [
f(recipe2.square, recipe2.ring, recipe2.edge, recipe2[4]),
f(recipe2.square, recipe2.center, recipe2[5]),
f(recipe2.ring, recipe2.edge, recipe2[6])
], [
f(recipe2.ring, recipe2.corner, recipe2[7]),
f(recipe2.ring, recipe2.edge, recipe2[8]),
f(recipe2.ring, recipe2.corner, recipe2[9])
]];
if (matrix[0][2] === null && matrix[1][2] === null && matrix[2].every((x) => x === null)) {
matrix[0].splice(-1);
matrix[1].splice(-1);
matrix.splice(-1);
}
return array(2)(matrix.map((row) => array(3)(row.map(id))));
};
const COLOR = {
black: "\\u00A70",
darkBlue: "\\u00A71",
darkGreen: "\\u00A72",
darkAqua: "\\u00A73",
darkRed: "\\u00A74",
darkPurple: "\\u00A75",
gold: "\\u00A76",
gray: "\\u00A77",
darkGray: "\\u00A78",
blue: "\\u00A79",
green: "\\u00A7a",
aqua: "\\u00A7b",
red: "\\u00A7c",
lightPurple: "\\u00A7d",
yellow: "\\u00A7e",
white: "\\u00A7f"
};
const STYLE = {
obfuscated: "\\u00A7k",
bold: "\\u00A7l",
strikethrough: "\\u00A7m",
underline: "\\u00A7n",
italic: "\\u00A7o"
};
const name = (...texts) => literal(texts.map((text) => {
if (typeof text === "string") return text;
return [
text.color && COLOR[text.color],
text.style && STYLE[text.style],
text.text,
(text.color ?? text.style) && "\\u00A7r"
].filter((x) => x !== void 0).join("");
}).join(""));
const tooltip = (...tooltips) => tooltips.map((tooltip2) => {
if (typeof tooltip2 === "string") return literal(tooltip2);
let out = literal(tooltip2.text);
if (tooltip2.style) out = `format.${tooltip2.style}(${out})`;
if (tooltip2.color) out = `format.${tooltip2.color}(${out})`;
return out;
}).join(" + ");
const recipe = (...args) => list(3)(args.filter((x) => x !== void 0).map((x) => {
if (Array.isArray(x)) return array(3)(x);
if (x === null) return "null";
return x;
}));
const capitalise = (x) => `${x[0].toUpperCase()}${x.slice(1)}`;
const clamp = (min, max, n) => Math.max(min, Math.min(max, n));
const addGrinder = (id, recipe$1) => {
const bonus = (bonus2) => `${bonus2.id}, ${clamp(0, 1, bonus2.chance)}`;
const out = recipe(
ingredient(recipe$1.input),
ingredient(id),
Math.max(1, recipe$1.turns),
recipe$1.bonus && bonus(recipe$1.bonus.primary),
recipe$1.bonus?.secondary && bonus(recipe$1.bonus.secondary)
);
return `mods.appeng.Grinder.addRecipe(${out});`;
};
const removeGrinder = (id) => `mods.appeng.Grinder.removeRecipe(${id});`;
const addInscriber = (id, recipe$1) => {
const out = recipe(
[recipe$1.center],
recipe$1.top,
recipe$1.bottom ?? null,
ingredient(id),
literal(capitalise(recipe$1.type))
);
return `mods.appeng.Inscriber.addRecipe(${out});`;
};
const removeInscriber = (id) => `mods.appeng.Inscriber.removeRecipe(${id});`;
const addCompressor = (id, recipe$1) => {
const out = recipe(
id,
Math.max(1, recipe$1.input.n),
recipe$1.input.id,
recipe$1.exact
);
return `mods.avaritia.Compressor.add(${out});`;
};
const removeCompressor = (id) => `mods.avaritia.Compressor.remove(${id});`;
const addExtreme = (ingredient$1, recipe$1) => {
const out = recipe(
ingredient(ingredient$1),
recipe$1.map((row) => array(9)(row.map(id)))
);
return `mods.avaritia.ExtremeCrafting.addShaped(${out});`;
};
const removeExtreme = (id) => `mods.avaritia.ExtremeCrafting.remove(${id});`;
const createBlock = (name, recipe$1) => {
const out = recipe(
literal(name),
literal(recipe$1.id),
literal(recipe$1.material),
typeof recipe$1.texture === "string" ? literal(recipe$1.texture) : literal(recipe$1.id),
typeof recipe$1.creativeTab === "string" && literal(recipe$1.creativeTab),
typeof recipe$1.renderType === "number" ? recipe$1.renderType : 1,
recipe$1.drops,
recipe$1.unbreakable,
typeof recipe$1.hardness === "number" && float(recipe$1.hardness),
typeof recipe$1.lightLevel === "number" && float(recipe$1.lightLevel),
recipe$1.opacity
);
return `mods.content.Block.registerBlock(${out});`;
};
const createItem = (name, recipe$1) => {
const out = recipe(
literal(name),
literal(recipe$1.id),
typeof recipe$1.texture === "string" ? literal(recipe$1.texture) : literal(recipe$1.id),
typeof recipe$1.creativeTab === "string" ? literal(recipe$1.creativeTab) : literal("misc"),
typeof recipe$1.damage === "number" ? recipe$1.damage : 0,
typeof recipe$1.stackSize === "number" ? recipe$1.stackSize : 64,
typeof recipe$1.toolType === "string" ? literal(recipe$1.toolType) : literal("pickaxe"),
typeof recipe$1.level === "number" ? recipe$1.level : 0,
!!recipe$1.is3d,
(recipe$1.tooltip ?? []).map(literal)
);
return `mods.content.Item.registerItem(${out});`;
};
const createLiquid = (id, recipe$1) => {
const out = recipe(
literal(id),
recipe$1.density,
!!recipe$1.gaseous,
recipe$1.luminosity,
recipe$1.temperature,
recipe$1.viscosity,
recipe$1.color,
!!recipe$1.setFire,
typeof recipe$1.castingMaterial === "number" ? recipe$1.castingMaterial : 0,
typeof recipe$1.texture?.still === "string" ? literal(recipe$1.texture.still) : null,
typeof recipe$1.texture?.flowing === "string" ? literal(recipe$1.texture.flowing) : null
);
return `mods.content.Fluid.registerFluid(${out});`;
};
const createMaterial = (material, recipe$1) => {
const out = recipe(
literal(material),
literal(recipe$1.name),
literal(recipe$1.color.name),
recipe$1.resource,
recipe$1.id,
recipe$1.level,
recipe$1.durability,
recipe$1.speed,
recipe$1.damage,
recipe$1.reinforced,
recipe$1.color.tool,
recipe$1.value,
recipe$1.modifier,
recipe$1.stonebound,
!!recipe$1.buildParts,
recipe$1.modifiers,
literal(recipe$1.tooltip),
recipe$1.arrow.mass,
recipe$1.arrow.breakChance,
recipe$1.bow.drawSpeed,
recipe$1.bow.speed,
Array.isArray(recipe$1.nativeModifiers) && array(1)([array(2)(recipe$1.nativeModifiers.map(ingredient))]),
Array.isArray(recipe$1.nativeEnchantments) && literal(recipe$1.nativeEnchantments.join(" "))
);
return `mods.content.Material.registerMaterial(${out});`;
};
const addComposter = (id, recipe$1) => {
const out = recipe(
id,
clamp(0, 1, recipe$1.n),
typeof recipe$1.color === "string" && literal(recipe$1.color)
);
return `mods.exnihilo.Composting.addRecipe(${out});`;
};
const removeComposter = (id) => `mods.exnihilo.Composting.removeRecipe(${id});`;
const addCrucible = (liquid, id) => {
const out = recipe(id, stack(liquid));
return `mods.exnihilo.Crucible.addRecipe(${out});`;
};
const removeCrucible = (id) => `mods.exnihilo.Crucible.removeRecipe(${id});`;
const addCrucibleFuel = (id, n) => {
const out = recipe(id, n);
return `mods.exnihilo.Crucible.addHeatSource(${out});`;
};
const removeCrucibleFuel = (id) => `mods.exnihilo.Crucible.removeHeatSource(${id});`;
const addHammer = (id, recipe$1) => {
const items = Object.entries(recipe$1).map((entry) => ({
id: entry[0],
chance: object(entry[1]) ? entry[1].n : entry[1],
modifier: object(entry[1]) ? entry[1].modifier : 0
})).flat();
const out = recipe(
id,
items.map((item) => item.id),
items.map((item) => item.chance),
items.map((item) => item.modifier)
);
return `mods.exnihilo.Hammer.addRecipe(${out});`;
};
const removeHammer = (id) => `mods.exnihilo.Hammer.removeRecipe(${id});`;
const addSieve = (id, recipe$1) => {
const items = Object.entries(recipe$1).map((entry) => Array.from({ length: Math.ceil(entry[1]) }).map((_, i) => ({
id: entry[0],
chance: entry[1] - i < 1 ? Math.round(1 / (entry[1] - i)) : 1
}))).flat();
const out = recipe(
id,
items.map((item) => item.id),
array(9)(items.map((item) => item.chance))
);
return `mods.exnihilo.Sieve.addRecipe(${out});`;
};
const removeSieve = (id) => `mods.exnihilo.Sieve.removeRecipe(${id});`;
const addQED = (ingredient$1, recipe$1) => {
const out = recipe(
ingredient(ingredient$1),
shaped(recipe$1)
);
return `mods.extraUtils.QED.addShapedRecipe(${out});`;
};
const removeQED = (id) => `mods.extraUtils.QED.removeRecipe(${id});`;
const addCarpenter = (id, recipe$1) => {
const out = recipe(
ingredient(id),
shaped(recipe$1.recipe),
recipe$1.liquid && stack(recipe$1.liquid),
Math.max(1, Math.round(recipe$1.ticks)),
recipe$1.top
);
return `mods.forestry.Carpenter.addRecipe(${out});`;
};
const removeCarpenter = (id, liquid) => `mods.forestry.Carpenter.removeRecipe(${recipe(id, liquid)});`;
const addCentrifuge = (id, recipe$1) => {
const out = recipe(
Object.entries(recipe$1.out).map(([id2, chance]) => bonus$1({ id: id2, chance })),
id,
recipe$1.ticks
);
return `mods.forestry.Centrifuge.addRecipe(${out});`;
};
const removeCentrifuge = (id) => `mods.forestry.Centrifuge.removeRecipe(${id});`;
const addFermenter = (liquid, recipe$1) => {
const out = recipe(
liquid.id,
recipe$1.catalyst,
recipe$1.liquid.id,
recipe$1.liquid.n,
liquid.n / recipe$1.liquid.n
);
return `mods.forestry.Fermenter.addRecipe(${out});`;
};
const removeFermenter = (id) => `mods.forestry.Fermenter.removeRecipe(${id});`;
const addFermenterFuel = (id, recipe$1) => {
const out = recipe(
id,
recipe$1.cycles,
recipe$1.burn
);
return `mods.forestry.Fermenter.addFuel(${out});`;
};
const removeFermenterFuel = (id) => `mods.forestry.Fermenter.removeFuel(${id});`;
const addMoistener = (id, recipe$1) => {
const out = recipe(
id,
recipe$1.input,
recipe$1.ticks
);
return `mods.forestry.Moistener.addRecipe(${out});`;
};
const removeMoistener = (id) => `mods.forestry.Moistener.removeRecipe(${id});`;
const addSqueezer = (liquid, recipe$1) => {
const out = recipe(
stack(liquid),
bonus$1(recipe$1.bonus),
recipe$1.input.map(ingredient),
recipe$1.ticks
);
return `mods.forestry.Squeezer.addRecipe(${out});`;
};
const removeSqueezer = (id, recipe$1) => `mods.forestry.Squeezer.removeRecipe(${recipe(id, recipe$1)});`;
const addStill = (liquid, recipe$1) => {
const out = recipe(
stack(liquid),
stack(recipe$1.liquid),
recipe$1.ticks
);
return `mods.forestry.Still.addRecipe(${out});`;
};
const removeStill = (liquid, recipe$1) => `mods.forestry.Still.removeRecipe(${recipe(liquid, recipe$1)});`;
const addFabricator = (id, recipe$1) => {
const out = recipe(
id,
shaped(recipe$1.recipe),
recipe$1.n,
recipe$1.cast
);
return `mods.forestry.ThermionicFabricator.addCast(${out});`;
};
const removeFabricator = (id) => `mods.forestry.ThermionicFabricator.removeCast(${id});`;
const addFabricatorGlass = (id, recipe$1) => {
const out = recipe(
recipe$1.n,
id,
recipe$1.temp
);
return `mods.forestry.ThermionicFabricator.addSmelting(${out});`;
};
const removeFabricatorGlass = (id) => `mods.forestry.ThermionicFabricator.removeSmelting(${id});`;
const addChestLoot = (id, recipe$1) => {
const out = recipe(
literal(recipe$1.chest),
id,
recipe$1.chance,
recipe$1.n
);
return `vanilla.loot.addChestLoot(${out});`;
};
const removeChestLoot = (id, chest) => `vanilla.loot.removeChestLoot(${recipe(literal(chest), id)});`;
const addSeed = (id) => `vanilla.seeds.addSeed(${id});`;
const removeSeed = (id) => `vanilla.seeds.removeSeed(${id});`;
const addShaped = (item, recipe$1) => {
const out = recipe(
ingredient(item),
shaped(recipe$1)
);
return `recipes.addShaped(${out});`;
};
const removeShaped = (id, recipe$1) => {
const out = recipe(
id,
recipe$1 && shaped(recipe$1)
);
return `recipes.removeShaped(${out});`;
};
const addShapeless = (item, recipe$1) => {
const out = recipe(
ingredient(item),
array(3)(recipe$1)
);
return `recipes.addShapeless(${out});`;
};
const removeShapeless = (id, recipe$1) => {
const out = recipe(
id,
recipe$1 && array(3)(recipe$1)
);
return `recipes.removeShapeless(${out});`;
};
const add = (item, recipe) => {
if (Array.isArray(recipe)) return addShapeless(item, recipe);
return addShaped(item, recipe);
};
const remove = (id) => `recipes.remove(${id});`;
const addMirror = (item, recipe$1) => {
const out = recipe(
ingredient(item),
shaped(recipe$1)
);
return `recipes.addShapedMirrored(${out});`;
};
const addFurnace = (id, recipe$1) => `furnace.addRecipe(${recipe(id, recipe$1.input, recipe$1.xp)});`;
const removeFurnace = (id, recipe$1) => {
if (typeof recipe$1 === "string") return `furnace.remove(${recipe(id, recipe$1)});`;
return `furnace.remove(${recipe(id)});`;
};
const addFurnaceFuel = (id, n) => `furnace.setFuel(${recipe(id, n)});`;
const removeFurnaceFuel = (id) => addFurnaceFuel(id, 0);
const addBlacklistAutospawner = (id) => `mods.mfr.AutoSpawner.addBlacklist(${literal(id)});`;
const removeBlacklistAutospawner = (id) => `mods.mfr.AutoSpawner.removeBlacklist(${literal(id)});`;
const HARVESTER_TYPE = {
tree: "tree",
leaf: "treeLeaf",
block: "normal",
column: "column",
treeInverse: "treeFlipped"
};
const addHarvester = (id, recipe$1) => {
const out = recipe(
id,
recipe$1.bonus && array(3)(recipe$1.bonus.map((x) => {
if (typeof x === "string") return x;
if ("n" in x) return stack(x);
return bonus$1(x);
})),
literal(HARVESTER_TYPE[recipe$1.type])
);
return `mods.mfr.Harvester.addHarvestable(${out});`;
};
const addLaserOre = (id, weight$1) => {
const out = recipe(weight(weight$1)(id));
return `mods.mfr.MiningLaser.addOre(${out});`;
};
const removeLaserOre = (id) => `mods.mfr.MiningLaser.removeOre(${recipe(id)});`;
const FOCI = {
white: 0,
orange: 1,
magenta: 2,
lightBlue: 3,
yellow: 4,
lime: 5,
pink: 6,
gray: 7,
lightGray: 8,
cyan: 9,
purple: 10,
blue: 11,
brown: 12,
green: 13,
red: 14,
black: 15
};
const addLaserFoci = (id, foci) => `mods.mfr.MiningLaser.addPreferredOre(${recipe(FOCI[foci], id)});`;
const removeLaserFoci = (id, foci) => `mods.mfr.MiningLaser.removePreferredOre(${recipe(FOCI[foci], id)});`;
const addLaser = (id, recipe) => [
addLaserOre(id, recipe.weight),
addLaserFoci(id, recipe.foci)
].join("\n");
const addPlanter = (id) => `mods.mfr.Planter.addPlantable(${id});`;
const addBiomeRubberTree = (id) => `mods.mfr.RubberTree.addBiome(${recipe(literal(id))});`;
const removeBiomeRubberTree = (id) => `mods.mfr.RubberTree.removeBiome(${recipe(literal(id))});`;
const addSludgeBoiler = (id, weight$1) => {
const out = recipe(weight(weight$1)(id));
return `mods.mfr.SludgeBoiler.addDrop(${out});`;
};
const removeSludgeBoiler = (id) => `mods.mfr.SludgeBoiler.removeDrop(${recipe(id)});`;
const hide = (id) => `mods.nei.NEI.hide(${id});`;
const show = (id) => `mods.nei.NEI.addEntry(${id});`;
const rename = (id, name) => `mods.nei.NEI.overrideName(${recipe(id, literal(name))});`;
const addOreDict = (dict) => (id) => `${dict}.add(${id});`;
const removeOreDict = (dict) => (id) => `${dict}.remove(${id});`;
const joinOreDict = (a, b) => `${a}.addAll(${b});`;
const mirrorOreDict = (a, b) => `${a}.mirror(${b});`;
const withName = (name$1) => (id) => `${id}.displayName = ${name(name$1)};`;
const withTag = (tag) => (id) => {
return `${id}.withTag(${util.inspect(tag).replace(/(:\s?)'([^']+)'/gm, '$1"$2"')})`;
};
const ENCHANTMENTS = {
protection: 0,
fireProtection: 1,
featherFalling: 2,
blastProtection: 3,
projectileProtection: 4,
respiration: 5,
aquaAffinity: 6,
thorns: 7,
sharpness: 16,
smite: 17,
baneOfAntrophods: 18,
knockback: 19,
fireAspect: 20,
looting: 21,
efficiency: 32,
silkTouch: 33,
unbreaking: 34,
fortune: 35,
power: 48,
punch: 49,
flame: 50,
infinity: 51
};
const withEnchantment = (...enchantments) => withTag({ ench: enchantments });
const withTooltip = (...tooltip$1) => (id) => `${id}.addTooltip(${tooltip(...tooltip$1)});`;
const withTooltipShift = (...tooltip$1) => (id) => `${id}.addShiftTooltip(${tooltip(...tooltip$1)});`;
const bonus = (bonus2) => bonus2 ? [
bonus2.id,
Math.round(bonus2.chance * 100)
] : [];
const addMagmaCrucible = (liquid, recipe$1) => {
const out = recipe(
recipe$1.rf,
recipe$1.input,
stack(liquid)
);
return `mods.thermalexpansion.Crucible.addRecipe(${out});`;
};
const removeMagmaCrucible = (id) => `mods.thermalexpansion.Crucible.removeRecipe(${id});`;
const addRedstoneFurnace = (item, recipe$1) => {
const out = recipe(
recipe$1.rf,
recipe$1.input,
ingredient(item)
);
return `mods.thermalexpansion.Furnace.addRecipe(${out});`;
};
const removeRedstoneFurnace = (id) => `mods.thermalexpansion.Furnace.removeRecipe(${id});`;
const addInsolator = (item, recipe$1) => {
const out = recipe(
recipe$1.rf,
ingredient(recipe$1.input.left),
ingredient(recipe$1.input.right),
ingredient(item),
...bonus(recipe$1.bonus)
);
return `mods.thermalexpansion.Insolator.addRecipe(${out});`;
};
const removeInsolator = (input) => `mods.thermalexpansion.Insolator.removeRecipe(${recipe(input.left, input.right)});`;
const addPulverizer = (item, recipe$1) => {
const out = recipe(
recipe$1.rf,
recipe$1.input,
ingredient(item),
...bonus(recipe$1.bonus)
);
return `mods.thermalexpansion.Pulverizer.addRecipe(${out});`;
};
const removePulverizer = (id) => `mods.thermalexpansion.Pulverizer.removeRecipe(${id});`;
const addSawmill = (item, recipe$1) => {
const out = recipe(
recipe$1.rf,
recipe$1.input,
ingredient(item),
...bonus(recipe$1.bonus)
);
return `mods.thermalexpansion.Sawmill.addRecipe(${out});`;
};
const removeSawmill = (id) => `mods.thermalexpansion.Sawmill.removeRecipe(${id});`;
const addInductionSmelter = (item, recipe$1) => {
const out = recipe(
recipe$1.rf,
ingredient(recipe$1.input[1]),
ingredient(recipe$1.input[0]),
ingredient(item),
...bonus(recipe$1.bonus)
);
return `mods.thermalexpansion.Smelter.addRecipe(${out});`;
};
const removeInductionSmelter = (input) => `mods.thermalexpansion.Smelter.removeRecipe(${recipe(input.left, input.right)});`;
const addTransposerFill = (item, recipe$1) => {
const out = recipe(
recipe$1.rf,
recipe$1.input,
ingredient(item),
stack(recipe$1.liquid)
);
return `mods.thermalexpansion.Transposer.addFillRecipe(${out});`;
};
const removeTransposerFill = (input) => `mods.thermalexpansion.Transposer.removeFillRecipe(${recipe(input.id, input.liquid)});`;
const addTransposerExtract = (liquid, recipe$1) => {
const out = recipe(
recipe$1.rf,
recipe$1.input,
stack(liquid),
...bonus(recipe$1.bonus)
);
return `mods.thermalexpansion.Transposer.addExtractRecipe(${out});`;
};
const removeTransposerExtract = (id) => `mods.thermalexpansion.Transposer.removeExtractRecipe(${id});`;
const addCastingBasin = (id, recipe$1) => {
const out = recipe(
id,
stack(recipe$1.liquid),
...cast(recipe$1.cast),
recipe$1.ticks
);
return `mods.tconstruct.Casting.addBasinRecipe(${out});`;
};
const removeCastingBasin = (id) => `mods.tconstruct.Casting.removeBasinRecipe(${id});`;
const addCastingTable = (id, recipe$1) => {
const out = recipe(
id,
stack(recipe$1.liquid),
...cast(recipe$1.cast),
recipe$1.ticks
);
return `mods.tconstruct.Casting.addTableRecipe(${out});`;
};
const removeCastingTable = (id) => `mods.tconstruct.Casting.removeTableRecipe(${id});`;
const addDryingRack = (id, recipe$1) => {
const out = recipe(
recipe$1.input,
id,
recipe$1.ticks
);
return `mods.tconstruct.Drying.addRecipe(${out});`;
};
const removeDryingRack = (id) => `mods.tconstruct.Drying.removeRecipe(${id});`;
const MODIFIERS = {
lvl1: "Tier1Free",
lvl2: "Tier1.5Free",
lvl3: "Tier2Free",
silkTouch: "Silk Touch",
luck: "Lapis",
fiery: "Blaze",
sharpness: "ModAttack",
beheading: "Beheading",
diamond: "Diamond",
reinforced: "Reinforced",
haste: "Redstone",
necrotic: "Necrotic",
emerald: "Emerald",
smite: "ModSmite",
knockback: "Piston",
baneOfAnthropods: "ModAntiSpider",
flux: "Flux"
};
const removeModifier = (id) => `mods.tconstruct.Modifiers.remove(${literal(id)});`;
const addSmelteryFluid = (liquid, recipe$1) => {
const out = recipe(
recipe$1.input,
stack(liquid),
recipe$1.temperature,
recipe$1.render
);
return `mods.tconstruct.Smeltery.addMelting(${out});`;
};
const removeSmelteryFluid = (id) => `mods.tconstruct.Smeltery.removeMelting(${id});`;
const addSmelteryAlloy = (alloy, recipe$1) => {
const out = recipe(
stack(alloy),
recipe$1.map(stack)
);
return `mods.tconstruct.Smeltery.addAlloy(${out});`;
};
const removeSmelteryAlloy = (id) => `mods.tconstruct.Smeltery.removeAlloy(${id});`;
const addSmelteryFuel = (id, recipe$1) => {
const out = recipe(
id,
recipe$1.temperature,
recipe$1.ticks
);
return `mods.tconstruct.Smeltery.addFuel(${out});`;
};
const removeSmelteryFuel = (id) => `mods.tconstruct.Smeltery.removeFuel(${id});`;
const MATERIALS = {
wood: "Wood",
stone: "Stone",
iron: "Iron",
flint: "Flint",
cactus: "Cactus",
bone: "Bone",
obsidian: "Obsidian",
alumite: "Alumite",
netherrack: "Netherrack",
slimeBlue: "Blue Slime",
slimeGreen: "Green Slime",
paper: "Paper",
cobalt: "Cobalt",
ardite: "Ardite",
manyullyn: "Manyullyn",
copper: "Copper",
bronze: "Bronze",
steel: "Steel",
pigIron: "Pig Iron",
lead: "Lead",
silver: "Silver",
ferrous: "Ferrous",
shiny: "Shiny",
electrum: "Electrum",
invar: "Invar",
woodMagical: "Magical Wood",
bedrock: "Bedrockium",
unstable: "Unstable Induced"
};
const addRepairMaterial = (id, recipe$1) => {
const out = recipe(
id,
literal(recipe$1.material),
recipe$1.n
);
return `mods.tconstruct.Tweaks.addRepairMaterial(${out});`;
};
const removeRepairMaterial = (id, material) => {
const out = recipe(
id,
typeof material === "string" && literal(material)
);
return `mods.tconstruct.Tweaks.removeRepairMaterial(${out});`;
};
const setMaterialStats = (material, recipe$1) => {
const out = recipe(
literal(material),
literal(recipe$1.name),
recipe$1.level,
recipe$1.durability,
recipe$1.speed * 100,
recipe$1.damage,
recipe$1.modifier,
typeof recipe$1.reinforced === "number" ? recipe$1.reinforced : 0,
typeof recipe$1.stonebound === "number" ? recipe$1.stonebound : 0,
literal(recipe$1.color.name),
recipe$1.color.tool
);
return `mods.tconstruct.ToolStats.setStats(${out});`;
};
const setMaterialName = (material, name) => {
const out = recipe(
literal(material),
literal(name)
);
return `mods.tconstruct.ToolStats.setDisplayName(${out});`;
};
const setMaterialMiningLevel = (material, n) => {
const out = recipe(literal(material), n);
return `mods.tconstruct.ToolStats.setHarvestLevel(${out});`;
};
const setMaterialDurability = (material, n) => {
const out = recipe(literal(material), n);
return `mods.tconstruct.ToolStats.setDurability(${out});`;
};
const setMaterialSpeed = (material, n) => {
const out = recipe(literal(material), n * 100);
return `mods.tconstruct.ToolStats.setSpeed(${out});`;
};
const setMaterialDamage = (material, n) => {
const out = recipe(literal(material), n);
return `mods.tconstruct.ToolStats.setDamage(${out});`;
};
const setMaterialHandleModifier = (material, n) => {
const out = recipe(literal(material), n);
return `mods.tconstruct.ToolStats.setHandleModifier(${out});`;
};
const setMaterialReinforcedLevel = (material, n) => {
const out = recipe(literal(material), n);
return `mods.tconstruct.ToolStats.setReinforcedLevel(${out});`;
};
const setMaterialLevelStonebound = (material, n) => {
const out = recipe(literal(material), n);
return `mods.tconstruct.ToolStats.setStoneboundLevel(${out});`;
};
const setMaterialStyle = (material, style) => {
const out = recipe(
literal(material),
literal(style)
);
return `mods.tconstruct.ToolStats.setStyle(${out});`;
};
const setBowMaterialStats = (material, recipe$1) => {
const out = recipe(
literal(material),
recipe$1.durability,
recipe$1.drawSpeed,
float(recipe$1.flightSpeed)
);
return `mods.tconstruct.ToolStats.setBowStats(${out});`;
};
const setBowMaterialDurability = (material, durability) => {
const out = recipe(literal(material), durability);
return `mods.tconstruct.ToolStats.setBowDurability(${out});`;
};
const setBowMaterialDrawspeed = (material, drawspeed) => {
const out = recipe(literal(material), drawspeed);
return `mods.tconstruct.ToolStats.setBowDrawspeed(${out});`;
};
const setBowMaterialFlightSpeed = (material, flightSpeed) => {
const out = recipe(
literal(material),
float(flightSpeed)
);
return `mods.tconstruct.ToolStats.setBowFlightSpeed(${out});`;
};
const setArrowStats = (material, recipe$1) => {
const out = recipe(
literal(material),
float(recipe$1.mass),
float(recipe$1.breakChance),
float(recipe$1.accuracy)
);
return `mods.tconstruct.ToolStats.setArrowStats(${out});`;
};
const setArrowMass = (material, mass) => {
const out = recipe(
literal(material),
float(mass)
);
return `mods.tconstruct.ToolStats.setArrowMass(${out});`;
};
const setArrowBreakChance = (material, breakChance) => {
const out = recipe(
literal(material),
float(breakChance)
);
return `mods.tconstruct.ToolStats.setArrowBreakChance(${out});`;
};
const setArrowAccuracy = (material, accuracy) => {
const out = recipe(
literal(material),
float(accuracy)
);
return `mods.tconstruct.TooLStats.setArrowAccuracy(${out});`;
};
exports.COLOR = COLOR;
exports.ENCHANTMENTS = ENCHANTMENTS;
exports.FOCI = FOCI;
exports.HARVESTER_TYPE = HARVESTER_TYPE;
exports.MATERIALS = MATERIALS;
exports.MODIFIERS = MODIFIERS;
exports.STYLE = STYLE;
exports.add = add;
exports.addBiomeRubberTree = addBiomeRubberTree;
exports.addBlacklistAutospawner = addBlacklistAutospawner;
exports.addCarpenter = addCarpenter;
exports.addCastingBasin = addCastingBasin;
exports.addCastingTable = addCastingTable;
exports.addCentrifuge = addCentrifuge;
exports.addChestLoot = addChestLoot;
exports.addComposter = addComposter;
exports.addCompressor = addCompressor;
exports.addCrucible = addCrucible;
exports.addCrucibleFuel = addCrucibleFuel;
exports.addDryingRack = addDryingRack;
exports.addExtreme = addExtreme;
exports.addFabricator = addFabricator;
exports.addFabricatorGlass = addFabricatorGlass;
exports.addFermenter = addFermenter;
exports.addFermenterFuel = addFermenterFuel;
exports.addFurnace = addFurnace;
exports.addFurnaceFuel = addFurnaceFuel;
exports.addGrinder = addGrinder;
exports.addHammer = addHammer;
exports.addHarvester = addHarvester;
exports.addInductionSmelter = addInductionSmelter;
exports.addInscriber = addInscriber;
exports.addInsolator = addInsolator;
exports.addLaser = addLaser;
exports.addLaserFoci = addLaserFoci;
exports.addLaserOre = addLaserOre;
exports.addMagmaCrucible = addMagmaCrucible;
exports.addMirror = addMirror;
exports.addMoistener = addMoistener;
exports.addOreDict = addOreDict;
exports.addPlanter = addPlanter;
exports.addPulverizer = addPulverizer;
exports.addQED = addQED;
exports.addRedstoneFurnace = addRedstoneFurnace;
exports.addRepairMaterial = addRepairMaterial;
exports.addSawmill = addSawmill;
exports.addSeed = addSeed;
exports.addShaped = addShaped;
exports.addShapeless = addShapeless;
exports.addSieve = addSieve;
exports.addSludgeBoiler = addSludgeBoiler;
exports.addSmelteryAlloy = addSmelteryAlloy;
exports.addSmelteryFluid = addSmelteryFluid;
exports.addSmelteryFuel = addSmelteryFuel;
exports.addSqueezer = addSqueezer;
exports.addStill = addStill;
exports.addTransposerExtract = addTransposerExtract;
exports.addTransposerFill = addTransposerFill;
exports.createBlock = createBlock;
exports.createItem = createItem;
exports.createLiquid = createLiquid;
exports.createMaterial = createMaterial;
exports.hide = hide;
exports.joinOreDict = joinOreDict;
exports.mirrorOreDict = mirrorOreDict;
exports.remove = remove;
exports.removeBiomeRubberTree = removeBiomeRubberTree;
exports.removeBlacklistAutospawner = removeBlacklistAutospawner;
exports.removeCarpenter = removeCarpenter;
exports.removeCastingBasin = removeCastingBasin;
exports.removeCastingTable = removeCastingTable;
exports.removeCentrifuge = removeCentrifuge;
exports.removeChestLoot = removeChestLoot;
exports.removeComposter = removeComposter;
exports.removeCompressor = removeCompressor;
exports.removeCrucible = removeCrucible;
exports.removeCrucibleFuel = removeCrucibleFuel;
exports.removeDryingRack = removeDryingRack;
exports.removeExtreme = removeExtreme;
exports.removeFabricator = removeFabricator;
exports.removeFabricatorGlass = removeFabricatorGlass;
exports.removeFermenter = removeFermenter;
exports.removeFermenterFuel = removeFermenterFuel;
exports.removeFurnace = removeFurnace;
exports.removeFurnaceFuel = removeFurnaceFuel;
exports.removeGrinder = removeGrinder;
exports.removeHammer = removeHammer;
exports.removeInductionSmelter = removeInductionSmelter;
exports.removeInscriber = removeInscriber;
exports.removeInsolator = removeInsolator;
exports.removeLaserFoci = removeLaserFoci;
exports.removeLaserOre = removeLaserOre;
exports.removeMagmaCrucible = removeMagmaCrucible;
exports.removeModifier = removeModifier;
exports.removeMoistener = removeMoistener;
exports.removeOreDict = removeOreDict;
exports.removePulverizer = removePulverizer;
exports.removeQED = removeQED;
exports.removeRedstoneFurnace = removeRedstoneFurnace;
exports.removeRepairMaterial = removeRepairMaterial;
exports.removeSawmill = removeSawmill;
exports.removeSeed = removeSeed;
exports.removeShaped = removeShaped;
exports.removeShapeless = removeShapeless;
exports.removeSieve = removeSieve;
exports.removeSludgeBoiler = removeSludgeBoiler;
exports.removeSmelteryAlloy = removeSmelteryAlloy;
exports.removeSmelteryFluid = removeSmelteryFluid;
exports.removeSmelteryFuel = removeSmelteryFuel;
exports.removeSqueezer = removeSqueezer;
exports.removeStill = removeStill;
exports.removeTransposerExtract = removeTransposerExtract;
exports.removeTransposerFill = removeTransposerFill;
exports.rename = rename;
exports.setArrowAccuracy = setArrowAccuracy;
exports.setArrowBreakChance = setArrowBreakChance;
exports.setArrowMass = setArrowMass;
exports.setArrowStats = setArrowStats;
exports.setBowMaterialDrawspeed = setBowMaterialDrawspeed;
exports.setBowMaterialDurability = setBowMaterialDurability;
exports.setBowMaterialFlightSpeed = setBowMaterialFlightSpeed;
exports.setBowMaterialStats = setBowMaterialStats;
exports.setMaterialDamage = setMaterialDamage;
exports.setMaterialDurability = setMaterialDurability;
exports.setMaterialHandleModifier = setMaterialHandleModifier;
exports.setMaterialLevelStonebound = setMaterialLevelStonebound;
exports.setMaterialMiningLevel = setMaterialMiningLevel;
exports.setMaterialName = setMaterialName;
exports.setMaterialReinforcedLevel = setMaterialReinforcedLevel;
exports.setMaterialSpeed = setMaterialSpeed;
exports.setMaterialStats = setMaterialStats;
exports.setMaterialStyle = setMaterialStyle;
exports.show = show;
exports.withEnchantment = withEnchantment;
exports.withName = withName;
exports.withTag = withTag;
exports.withTooltip = withTooltip;
exports.withTooltipShift = withTooltipShift;