I’m currently doing some changes to how configuration works in Gendustry, Pressure Pipes, Advanced Generators and all future mods.

The system started as a way to specify simple crafting recipes in normal text files back when i started modding in Scala, and had a lot of ad-hoc additions since then. There were quite a few things that have bugged me about it over time so I’ve decided to do a major cleanup and refactoring pass.

Things that got changed

Clear distinction of what executes at what point, statements are split between Configuration and Recipe blocks. This replaces the old Delayed Statement thing.

Recipe characters used to be global which caused errors when characters that were used all over the place got changed by accident. The new systems has clearly defined blocks with all definitions being local to their block.

If statements have been normalized, also added some basic boolean operations.

Lots of minor inconsistencies were unified, like “->” vs “=>” in different statements, “:” vs “=” in config entries, “mb” after fluid amounts, etc.

I have also started doing some proper documentation for the format and how it’s used in my mods now that the cleanup is out of the way.

Gendustry (1.4.x) and BDLib (1.5.x) are now on Jenkins with support for the new format, and the main BACON documentation and Gendustry configuration are now online. There is even a mini-guide on adding custom bees.

Pressure Pipes and Advanced Generators will be done in the next few days.

Updated: Pressure Pipes (0.9.6.x) and Advanced Generators (0.9.3.x) with support for the new format are now on Jenkins as well, documentation will be up sometimes next week.