promotional bannermobile promotional banner
premium banner
A mod that adds Alembics and a Heater to boot. For modpacks, CraftTweaker support!

Description

 

 

What does the mod do?
--------------------

Ex Alembico is small mod made for Rebirth of the Night and primarily designed for modpacks to add their own alchemical recipes with a variety of possible recipe formats and combinations. The mod adds the titular alembics and a heater block to fuel them, all powered by CraftTweaker [methods]. There's out of the box built-in compat with Zen: Foundry and the mod makes it easy to add interplay with mods like Ex Sartagine: Requiem and BWM/BWE.

Idea, design, and assets by Foreck

Graciously coded in its entirety by phantamanta44

 

The alembics are designed to work with heaters, but they can be scripted to work with any blockstate of your choice

HEATER

The heater accepts defined fuel to create a specific flame on top. By default, the mod provides models/textures for heat levels 1-3, with support for 16 potential heat levels in total (including off or 0) to be freely modified with resource packs, Resource Loader, or similar. Once defined, supported fuels introduced in the heater will unlock the slider to select a heat level. The button on the left allows to override on and off state in case you want to keep fuel inside without spending it.

Of note, you can configure each heat level to have an equivalent Zen: Foundry temperature for its crucible, allowing you to use this block to fuel it.

 

ALEMBIC

The alembic is a machine with support for processing items and liquids into other items or liquids using heat levels. Heat levels are sourced by default from the Heater, but can be assigned to any blockstate with Craft Tweaker (for example, to BWM/BWE's hibachi, or Ex Sartagine: Requiem's cooking ranges).

A unique quality of the alembic is that it can transform items into different items in the same slot if specified, and this information is displayed in JEI.

This allows you to play with the logic of how items are processed. Are they melted and turned into two separate liquids? Are many ingredients distyled into a bottle for a mild slipslop? or perhaps an item in the output receives something from the input, turning into something else? Transmutations, potions, medicine, and horrible concoctions. Get creative with it.

 

Other than all ingredients and heat level, a bonus item can be configured per recipe as well as the time the recipe takes.

 

Finally, there's a second "nether" alembic that can be configured to inherit all recipes from the default alembic, on top of being able to add specific recipes for it. It also increase the chance of of bonus byproducts from the normal alembic.

 

How to set up

 

First, you will want to set up your heat levels. Alembics can support recipes up to 15 heat levels, but they are only relevant if defined.

There's two ways to access heat levels: setting up fuel heat levels for the heater, or setting a blockstate to act as a heat level. Both through zen scripts.

Remember your relevant imports:

import crafttweaker.item.IItemStack;
import mods.exalembico.ExAlembico;
import mods.exalembico.Alembic;
import mods.exalembico.Heater;

 

Defining coal to act as heat levels 1 and 2 for 80 seconds:

Heater.addHeaterRecipe(<minecraft:coal>, 1600, 1, 2);

This will allow users to choose between heat levels 1 or 2 within the GUI of the heater, depending on what the alembic recipe requires.

Please note that by default, only fire levels 1, 2, and 3 have flame models in the heather. More on how to modify the appearance of the heater at the end.

 

Defining a Ex Sartagine's lit hearth to act as heat level 1:

ExAlembico.registerHeatSourceBlock(<blockstate:exsartagine:hearth:facing=north,heated=true>, 1);
ExAlembico.registerHeatSourceBlock(<blockstate:exsartagine:hearth:facing=east,heated=true>, 1);
ExAlembico.registerHeatSourceBlock(<blockstate:exsartagine:hearth:facing=west,heated=true>, 1);
ExAlembico.registerHeatSourceBlock(<blockstate:exsartagine:hearth:facing=south,heated=true>, 1);

You can repeat this method with a different heat level so that the blockstate acts as both of them. Note that if you have alembic recipes whose only difference is the heat level, using this method could render one of them inaccessible (untested interaction) 

 

Now that you have your levels set up, you can add actual alembic recipes. All methods are defined [here], but here are a few vanilla examples:

 

This recipe takes 16 ticks, requires heat level 1, and turns ice into 1000mb of water, with a 25% chance of giving a gold nugget.

Alembic.beginAlembicRecipe(16)
 .setHeatLevels(1) 
 .setInputItem(<minecraft:ice>)
 .setOutputFluid(<liquid:water> * 1000)
 .setBonusOutputItem(<minecraft:gold_nugget>, 0.25)
 .addToAlembic();

This recipe takes 24 ticks, requires heat level 4, 6, or 15, and turns any iron ingot plus glowstone into a gold ingot. (notice the orange arrow in JEI).

Alembic.beginAlembicRecipe(24)
 .setHeatLevels(4, 6, 15)
 .setInputItem(<ore:ingotIron>)
 .setInputItem(<ore:dustGlowstone>)
 .setOutputItem(<minecraft:gold_ingot>)
 .addToAlembic();

This recipe takes 24 ticks, requires heat level 2 or 9, and requires glowstone dust in the input slot, 1000mb of lava, and a glowstone block in the output slot; turning into redstone dust, 1000mb of water, and a redstone block. All in their respective slots (notice the orange and blue arrows in JEI). This is the most complex type of recipe that the mod allows, transforming items in their own slots or moving them around depending on your needs and logic. 

Alembic.beginAlembicRecipe(24)
 .setHeatLevelRange(2, 9)
 .setInputItem(<ore:dustGlowstone>, <minecraft:redstone>)
 .setInputFluid(<liquid:lava> * 1000, <liquid:water> * 1000)
 .setOutputItem(<minecraft:glowstone>, <ore:blockRedstone>)
 .addToNetherAlembic();

 

Additional heater models

Since the mod comes with only 3 heat level models for the heater, in order to add more, you will have to use an asset loader of your preference (like Resource Loader)

Extract the assets from the mod. Copy the model for heater1, heater2, or heater3, and edit them to your liking (along with a corresponding texture), renamed to heater4, 5, or whatever level you want to replace.

Finally go to the blockstates folder, and edit heater.json following the pattern inside of the file.

Feel free to ask questions about this in the comments if something is not clear.

 

 

 

There might be more content coming to the default mod in the future, but for now, this is mostly a gray template for modpacks to add more interesting and compatible ingredient processing.