Commit Graph

161 Commits (a9dfdf184d92ef7ac2193344eba791b6e0faaa58)

Author SHA1 Message Date
Stefan Dollase a9dfdf184d replaced all occurrences: biome color profile -> biome profile
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.
2016-02-15 19:40:17 +01:00
Stefan Dollase b613946ff2 updated to version v4.0-beta8 2016-02-14 04:10:08 +01:00
Stefan Dollase 6cc471a6ae converted the CrashWindow into a singleton
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.
2016-02-14 04:05:24 +01:00
Stefan Dollase b3a58305bd changed worker threads to be no daemon threads
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.
2016-02-14 03:38:53 +01:00
Stefan Dollase 08a69b7d1d Merge pull request #61 from toolbox4minecraft/adjust_end_islands
Fix 8-by-8 block misalignment of End Islands map
2016-02-14 03:33:08 +01:00
Stefan Dollase 9b0b75d4fd formatting 2016-02-14 02:52:53 +01:00
Stefan Dollase 049d520569 regenerated test data
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.
2016-02-14 01:15:02 +01:00
Stefan Dollase 0b981b16ee added a fixed ordering to the test data 2016-02-13 23:52:19 +01:00
Stefan Dollase 8bc10fd375 temporarily disabled fixed stronghold algorithm
* to not break the currently generated test data
* world entries test is passing
2016-02-13 22:29:19 +01:00
Treer 76e98bdec3 Fix 8-by-8 block misalignment of End Islands map 2016-02-14 05:37:07 +11:00
Stefan Dollase d77fa11f3d added a test ...
... 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.
2016-02-13 19:03:28 +01:00
Stefan Dollase 6312f356e8 renamed classes 2016-02-13 18:40:52 +01:00
Stefan Dollase 57a45d216b applied eclipse formatting to the stronghold producers
* edited the class comments
* added threading documentation
2016-02-13 18:34:03 +01:00
Stefan Dollase 9081181827 cleaned up the DefaultVersionFeatures
* removed two-step lambda for the stronghold factory by introducing the interface TriFunction
* the world builder now combines the valid biomes with the factory
2016-02-13 18:24:47 +01:00
Stefan Dollase 0ad0955a0d cleaned up the enum RecognisedVersion
* 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
2016-02-13 18:07:33 +01:00
Treer b94a3bff95 New stronghold location algorithm
Issue MC-92289 with stronghold positioning was fixed in V16w06a - https://bugs.mojang.com/browse/MC-92289
2016-02-13 19:34:51 +11:00
Treer 0657c47849 Adjust naming convention for MineshaftAlgorithm
for consistency with upcoming StrongholdAlgorithm
2016-02-13 13:45:43 +11:00
Treer 3c1f9ae197 More snapshot version recognition 2016-02-13 03:12:16 +11:00
Stefan Dollase 2fa1e01f2f fixed widgets to not catch unrelated mouse events
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.
2016-02-02 22:17:26 +01:00
Stefan Dollase a3e6c33500 added the world type to the suggested screenshot filename 2016-02-02 00:07:22 +01:00
Stefan Dollase 0794ab3531 added the world type to the screen 2016-02-01 23:57:44 +01:00
Stefan Dollase 244001dc2a updated Mail address in About dialog 2016-02-01 21:30:00 +01:00
Stefan Dollase 2cea65cdf0 added logging information about the selected launcher profile
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.
2016-02-01 17:36:22 +01:00
Stefan Dollase 154d19597a reverting pull request #46
Add support for snapshots when -mcpath is a network path (reverted from commit 4f78fbc24c)
refactorings (reverted from commit 65adafa2f5)
2016-02-01 17:08:58 +01:00
Stefan Dollase 8f67852eda updated to version v4.0-beta7 2016-02-01 01:17:53 +01:00
Stefan Dollase ebbbf3ca8b re-enabled the move and save player functionality for UNKNOWN versions
This is also the behavior of Amidst v3.7.
2016-02-01 00:21:52 +01:00
Stefan Dollase 6a3675adb8 Merge pull request #46 from toolbox4minecraft/network-path-improvement
Add support for snapshots when -mcpath is a network path
2016-02-01 00:17:15 +01:00
Stefan Dollase 65adafa2f5 refactorings 2016-01-31 23:47:50 +01:00
Stefan Dollase d232e52d8f Merge pull request #47 from toolbox4minecraft/polish-ProfileSelectWindow
Polish profile select window
2016-01-31 23:09:08 +01:00
Stefan Dollase 1e82eee83c refactorings 2016-01-31 23:06:16 +01:00
Stefan Dollase 25e917472f removed unused code 2016-01-31 22:28:47 +01:00
Treer c9a118c720 Display Void texture in parallax.
The void is no longer scaled and translated with the End islands, instead they "float" in a layer above it.
2016-01-31 22:25:37 +01:00
Stefan Dollase e9266d913b removed dot from fps widget and refactorings
* used only one instance of the counter class
* passed counter to the relevant parts via dependency injection
* removed counter from widget and fragment drawer since it does not really belong there
* removed dot from fps widget to reduce users confusion
2016-01-31 22:10:08 +01:00
Treer 71d1714163 Add graphics acceleration indicators to FPS and Debug widgets 2016-01-31 21:08:27 +01:00
Stefan Dollase 28a07bc8f6 added end islands to the tests 2016-01-31 19:28:30 +01:00
Stefan Dollase 519d5272fd refactored the test code
* improved the code
* switched biome data storage format to protobuf (binary)
* switched back to json (see reasons below)
* switched biome data serialization strategy
* added mechanism to test specific entries for specific worlds
* squashed commits to prevent git from storing the outdated big testdata files forever

And this are the old detailed commit messages:

changed strategy for biome data storage

* it now tracks and stores all biome data requests while the other test data are created
* the same request during the running test will offer the same response as during the test data generation
* this greatly simplifies the code, makes the size of the test data much smaller and the testdata creation and loading much faster

removed the binary test data storage

* switched back to json
* did not serve a significant better result (time and space)
* protobuf documentation discourages the use for large messages
* I want to not use code generation whenever possible because
  * it contains warnings
  * it is differently formatted than the hand written code
  * it makes the build process more complicated

Here are the stats:
                  json        binary    binary packed
test time:       13,193 s     9,838 s      9,333 s
complete:         6,4 mb      6,1 mb       6,1 mb
uncompressed:   260,8 mb    212,5 mb     212,5 mb

complete is the compressed size of all zip files. uncompressed is the uncompressed size of the full-resolution biome data. We see, that the compression removes a big portion of the space advantage that would be served by the binary format. The binary packed format seems to not be any better than the default binary format. Just the few seconds are not really worth the disadvantages listed above.

fixed bugs in test data generation

* test world generation now omits unsupported entries
* creation of an empty coordinates collection throws an exception to prevent the usage of empty testdata

switched BiomeData to binary storage format

rename refactorings and adjustments to the protobuf format

added equalityChecker to TestWorldEntryDeclaration

used the method TestWorldDeclaraion.isSupported() ...

... to allow that only specific features are tested for special test worlds

enhanced readability of test world entry declaration

more refactorings for the testworld code

extracted the class TestWorld from the class TestWorldDirectory

renamed and moved classes

moved write and read methods to entry declaration

added protobuf

* library
* license
* testdata declarations
* generated code from testdata declarations

improved testdata storage

* split up the single zip file into multiple small ones to only change as few data as possible, when they need to be changed
* removed timestamp from zip files to make them reproducible

removed many usages of TestWorldDeclaration by exposing the regocnised version from the world object
2016-01-31 16:41:04 +01:00
Treer ffcef6ab5c Remove obsolete comment :/ 2016-01-30 22:43:10 +11:00
Treer dc21e1ccb0 Fix tabs :/ 2016-01-30 22:34:01 +11:00
Treer d42383d5af Handle launcher_profiles.json with empty profiles array
or launcher_profiles.json with profile format changed to something we don't know.
2016-01-30 22:28:42 +11:00
Treer 7ca1e774b5 Prevent ProfileSelectWindow from growing beyond height of screen
This is based on 3a51759e8a
2016-01-30 22:17:32 +11:00
Treer 4f78fbc24c Add support for snapshots when -mcpath is a network path 2016-01-30 02:25:00 +11:00
Stefan Dollase da26a17f3b added world icon test
To prevent the need to make the minecraft jar file and libraries available on travis ci, this test uses previously generated testdata to ensure that the generated world icons are still the same as when the test data where generated. It is true, that this uses the production code to generate the test data, however, this is not an issue, because the test data are stored and not generated every time the test is executed. All in all, the test checks whether the generated world icons have changed since the test data where generated. It does not ensure, that the world icons are correct (meaning like minecraft generates them).

The test:
* loads the biome data from the test data
* loads the world icons
* creates a fake minecraft interface that provides the stored biome data
* creates a world object using the fake minecraft interface
* generates all world icons using the world object
* compares the generated world icons to the loaded world icons

The test data contains all biome data in the test area as well as all world icons. The test area is 10 fragments in all directions from [0, 0] ([-5120, -5120] to [5120, 5120]). The world icons are generated for the inner 10 - 1 = 9 fragments ([-4608, -4608] to [4608, 4608]). This prevents the world icon producers to request biome data that have not been stored. The test data are stored in a zip-file to prevent them from taking up to much space. One world requires about 6.5 MB (compressed). Thus, we should not add to much test worlds and not change them very often to prevent the repository from getting too big. An alternative would be stored the testdata somewhere else than in the repository. However, they have to be available for travis ci, so this will be the solution for now.

* The End Cities are currently not included.
* The current seed is "amidst-test-seed" using the default world type and minecraft version 1.8.9.
* The test data are generated by running the test in the class DevToolRunner.
2016-01-25 02:05:37 +01:00
Treer eac81d5777 Make End cities more accurate
Fixes bug where the influence of all nearby islands wasn't taken into account.
2016-01-24 21:51:57 +11:00
Stefan Dollase a9b41aec3c updated to Amidst v4.0-beta6 2016-01-15 23:07:27 +01:00
Stefan Dollase 0ae1ee638e added recognition for the snapshot 16w02a 2016-01-15 23:03:06 +01:00
Stefan Dollase 885ecbe1ac the world spawn is now read from the level.dat file 2016-01-15 22:36:48 +01:00
Stefan Dollase 2a81e44339 added high resolution icons
* directly added files for all operating systems
* removed scripts to generate icons
* used multiple resolution pngs in the code
2016-01-15 21:35:54 +01:00
Stefan Dollase ae526cb08a improved crash window
* added request to create a github issue for the crash
* added url to create a github issue
* url is copyable
* removed noisy text
2016-01-15 19:32:08 +01:00
Stefan Dollase 9531c7dc1d refactored the worker framework
* replaced inner classes by functional interfaces
* added progress listener, that is also executed in the EDT
* cleaned up the code
2016-01-15 19:02:38 +01:00
Stefan Dollase 2e30e3a903 updated to Amidst v4.0-beta5 2016-01-14 18:56:09 +01:00