Jigsaw Block

Jigsaw blocks are technical blocks used in the generation of some structures.

Obtaining
Jigsaw blocks are not available in the creative inventory. They can be obtained by using the control, or by using various commands, such as.

They also spawn when a player uses a structure block to spawn certain structures. (Pillager outpost/Village)

Usage
Jigsaw blocks are 'junction' blocks that allow the game to construct structures out of smaller templates.


 * Sections
 * Target pool
 * Refers to a pool of elements the jigsaw block can draw elements from (the next template to place).
 * The target pool randomly selects a template from certain folder in.
 * Attachment type
 * Refers to the 'name' of the jigsaw block. Jigsaw blocks can connect only to other jigsaw blocks with the same 'name' (attachment type).
 * Turns into
 * What the jigsaw block turns into once the whole feature is generated. Defaults to.

Jigsaw blocks are currently used only in the generation of pillager outposts and villages. The generation of these structures begins with a template containing jigsaw blocks. Each jigsaw block then uses the following process to generate another template: The above process is repeated for all jigsaw blocks in the initial template, as well as any jigsaw blocks in additional templates, until no jigsaw blocks remain (or until the game decides that the structure is large enough). The process does not, however, occur when the player uses a structure block; doing so results in a structure containing jigsaw blocks.
 * 1) Choose a random template from the target pool.
 * 2) This template contains at least one jigsaw block with the same attachment type as the block used to generate the template. If there are multiple such blocks, choose one at random.
 * 3) This gives two jigsaw blocks to be "attached". The template is placed so that the second jigsaw block is facing and adjacent to the first.
 * 4) Finally, both jigsaw blocks are replaced with their respective "Turns into" block.

Block entity
A jigsaw block has a block entity associated with it that holds additional data about the block.