Chorus Flower

Chorus flowers are plants that are found in the End.

Obtaining
Chorus flowers can be mined with anything and will drop themselves when broken. However they will not drop anything when pushed by piston or water, or when supporting block is destroyed.

Natural generation
Chorus flowers are naturally generated in the End at the top of chorus plants.

Farming
Chorus flowers can be planted and will grow in any dimension, regardless of light level. A flower will no longer grow once it has reached age 5 (appearing purple rather than white), but may be harvested and replanted to reset the age.

Usage
Chorus flowers are used to grow chorus plants. They can be planted on end stone in any dimension.

Placement and growth
Chorus flowers must be above end stone or chorus plant, or be above air and horizontally adjacent to exactly one chorus plant. If these conditions are not met, the block breaks without dropping anything.

Each block tick until the flower reaches age 5, the flower will attempt to grow if the block above is air. The flower will not age if growth is not attempted due to lack of an air block above.

The flower may attempt to grow upwards depending on the structure of chorus plant blocks directly beneath: The growth attempt succeeds if the blocks horizontally adjacent to and above the target block above are all air, and results in the target block becoming a flower block with the same age while the existing flower block turns to chorus plant.
 * 100% chance if zero or one plant block is directly beneath
 * 60% if the flower is above a two-block unbranched plant (i.e. two plant blocks over endstone)
 * 50% if above a two-block high branch (i.e. two plant blocks over air)
 * 40% if above a three-block unbranched plant
 * 25% if above a three-block high branch
 * 20% if above a four-block unbranched plant

If upwards growth does not occur and the flower's age is less than 4, the flower may attempt to branch horizontally. 1–4 branches are attempted on an unbranched plant or 0–3 on a branched plant. For each branch a horizontal direction is chosen at random, and if the block in that direction is an air block with more air blocks on all other horizontal sides and an air block below, it is replaced with a flower with age incremented by 1. If at least one branch succeeds, the original flower block is turned to chorus plant.

If no growth occurs on a growth attempt, the flower's age is set to 5.