Modular Machinery Architecture and Terminology - HellFirePvP/ModularMachinery GitHub Wiki

This wiki page is about the overall architecture and parts in Modular Machinery and how they work together on a somewhat abstracted level. This can be helpful understanding why something needs to be defined and what it is used for.

In essence, the mod tries to achieve the following workflow:

"The machine controller, when placed in the correct arrangement with other blocks, will interact with blocks that provide component-instances to check for and process recipes."


Every possible machine has a unique registry name and display name. More importantly, each machine consists of a set of elements which originate from the machines .json definition. Each element describes its offset from the origin (0, 0, 0 - the machine controller) and a set of blocks/blockstates it considers valid. If a nbt tag is defined, it also checks that there has to be a tileentity and the specified nbt is contained in the tileentity's nbt which is used for saving. If nbt-display is defined, it's only used for display. A TileEntity will be created on the fly for rendering with the contents of that nbt tag. If nbt-display is not defined, nbt will be used.

All elements are stored into a pattern, which can be used for display or combined checks if the set or subsets of the elements do match the surroundings at a specific position. The machine controller uses those patterns (or rotations of them) to find the first pattern that does match the controllers surroundings.


[...] More soon-ish.