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 will also spawn when a player uses a structure block to spawn certain structures. (Pillager outpost/Village)

Usage
Jigsaw blocks are 'junction' blocks that will 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 only connect to other jigsaw blocks with the same 'name' (attachment type).
 * Turns into
 * What the jigsaw block will turn into once the whole feature is generated. Defaults to.

Jigsaw blocks are currently only used 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. The process does not, however, occur when the player uses a structure block; doing so will result 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 will be 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.