This enables us to store more biome related information in the profiles in the future.
I also changed the default biome profiles directory name back to 'biome' to keep backwards compatibility with Amidst v3.7.
Before, when there was a bug in the drawing loop this would have caused Amidst to open up to 50 crash windows per second (Amidst is capped at 50 FPS), which is really bad. Also, it is very likely that such bugs would not be reported, because the bug report cannot be copied.
Now, only one CrashWindow is opened and the displayed error message is updated when more crashes occur.
If a thread is a daemon thread, it does not keep the JVM alive. This means, that if all non-daemon threads are terminated, the JVM will just terminate all daemon threads and exit. This is a bad thing, if the daemon thread is currently writing to a file, because this will corrupt the file. Since the worker threads are used for IO, they should not be daemon threads.
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.
... to ensure there is only one enum entry per magic string. I also removed already existing collisions. I kept the latest version of the colliding pairs.
* 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
Previously, clicking on a text widget did not trigger a select world icon operation. However, the text widget does not do anything with the click event. I think it is more intuitive to select the underlying world icon.
When a profile is selected via the profile select window, a log message is written that contains the profile name and the real Minecraft versionId (the recognised versionId was always logged later on). This enables us to quickly identify bug reports about modded Minecraft versions.
The purpose of the devtools source folder was to have a place to put code that should not be included in the released jar file. However, this requirement is also met by the test source folder. The devtools source folder was a relict from before we used maven.
I also externalized the devtool settings to the properties file `src/test/resources/amidst/devtools/devtools.properties`. This file is ignored by git, however there is a commited template file. To run the devtools, copy the template and populate it with the correct values. The template also contains documentation about how the values are used.
Added tests to execute each devtool. Removed all main methods from the devtools. The tests are ignored by default since they serve as a main methods.