20w21a
Table of Contents |
---|
Noisesize_horizontal and size_vertical density_factor and density_offset sampling top_slide and bottom_slide |
Structuresspacing and separation salt |
Integers between 1 and 4.
→ size_horizontal
↓ size_vertical
1 | 2 | 4 | |
---|---|---|---|
1 | |||
2 | |||
3 | |||
4 |
Surprisingly, when size_horizontal
is 3
, it generates this interesting pattern
When editing these values, you need to keep in mind the following formula.
terrain height = ((density_offset / density_factor) + 1) * height / 2
density_factor |
density_offset |
|
---|---|---|
0.5 | -0.25 | |
1 | -0.5 | |
2 | -1 | |
4 | -2 |
0.25 | 1 | 8 |
---|---|---|
Setting xz_scale
to 0 will cause a flat surface.
20 | 80 | 320 |
---|---|---|
WIP
spacing
determines the maximum space in chunks between two structures of this type. separation
determines the minimum space in chunks. spacing must be larger than separation. A grid pattern forms when spacing is one larger than separation.
→ separation
↓ spacing
1 | 2 | 3 | |
---|---|---|---|
2 | |||
3 | |||
4 | |||
5 |
Determines the random placement of the structures after being combined with the seed.
I finally figured out why a size_horizontal of 3 causes the grid like patterns to occur. In one of the classes relating to world generation, the extracted size_horizontal is converted using bit shift operators to a different number. This number is usually a multiple of 16 if the size_horizontal number is either 1,2 or 4. However, for if it is 3, the conversion method spits out a 12.
This matters because in the chunk generator class, 16 is divided by the conversion value, and is usually resulted in an integer that is greater than 1. So, for a size_horizontal of 3, the conversion value is 12, and so, 16/12 = 1.333333.....; This value is taken into a for-loop(have not figured out what it does), and the iteration index is compared to if it is less than the states value above, and so it essentially is rounded down to 1. I would assume that this causes 1/4 of a chunk to not be generated. More testing is still needed. I will post a more detailed comment later on; still at work.