Added mechanism to create complete RecognisedVersion enum entries. This includes:
* all existing enum entries
* adding new entries for new versions with unknown magic string
* updating existing entries for new versions with known magic string
The ordering of the entries is preserved. Also, new entries are added at the top. The UNKOWN entry is omitted.
Further changes include:
* adding support for new versions
* updating the test data, since we still have no new magic string
* the name of RecognisedVersion entries is no longer derived from the enum entries name
* RecognisedVersion entries now know whether they are known or the UNKNOWN entry
* cleaned up and improved the devtool to generate the enum entries as well as its output
* added test to ensure the enum identifier matches the name
The previously generated test data were based on faulty biome data, see issue MC-95612. The newly generated test data are generated from unaffected minecraft versions. Since nearly all structures are generated from the biome data, this leads to a change in a great part of the generated test data.
The test data in 15w51b are generated from the buggy stronghold algorithm. The test data in 16w06a are generated from the fixed stronghold algorithm.
* removed two-step lambda for the stronghold factory by introducing the interface TriFunction
* the world builder now combines the valid biomes with the factory
* removed duplicate magic string
* removed earliest version pointer, since it was unused
* moved version description for strongholds to DefaultVersionFeatures
* added additional matching versions to comment (1.7.6, 1.7.7, 1.7.8) these must recently have been added back to the minecraft launcher
* layer declaration contains logic to calculate the isEnabled and isVisible state
* these states are used by the layer loaders
* fragment loader thread updates these properties and reads the dimension setting at a defined point in the loading cycle
* layer menu uses the same code to calculate the isEnabled state
* added a set of classes, e.g. VersionFeature
* used these classes to declare version specific properties
* replaced code that did the above manually by a query to the version feature