BACON files have 2 different types of blocks. The top level block is always a Configuration Block and may contain Configuration Statements and other Blocks.
When a BACON file is processed, Configuration Blocks take effect immediately, this allows values from them to be used in early mod initialization.
Recipe Blocks can be defined in Configuration Blocks and contain Recipe Statements and possibly other nested Recipe Blocks. When a Recipe Block is encountered in a file, it’s execution will be delayed to a later time, when all Recipe Statements from all files will be executed at once. This allows other mods to be fully initialized by the time any recipes are processed.
In terms of FML events, Configuration Statements will usually be processed in PreInit, while Recipe Statements will be processed in Init or PostInit.
- Recipe Block
- Recipe Character definition
- Shaped Recipe
- Shapeless Recipe
- Smelting Recipe
- If Statement (recipe form)
- Ore Dictionary Registration
- Class Macro definition