diff --git a/BlockMap-cli/src/main/java/de/piegames/blockmap/standalone/VersionProvider.java b/BlockMap-cli/src/main/java/de/piegames/blockmap/standalone/VersionProvider.java index e2ee0450..79f7b654 100644 --- a/BlockMap-cli/src/main/java/de/piegames/blockmap/standalone/VersionProvider.java +++ b/BlockMap-cli/src/main/java/de/piegames/blockmap/standalone/VersionProvider.java @@ -6,7 +6,7 @@ public class VersionProvider implements IVersionProvider { /* This part of the code gets generated automatically through `gradle generateSources`. Do not modify! */ // $REPLACE_START - public static final String VERSION = "2.0.0-snapshot"; + public static final String VERSION = "2.0.0"; // $REPLACE_END @Override diff --git a/BlockMap-gui/src/main/java/de/piegames/blockmap/gui/VersionProvider.java b/BlockMap-gui/src/main/java/de/piegames/blockmap/gui/VersionProvider.java index 9f68d2c0..abace8fe 100644 --- a/BlockMap-gui/src/main/java/de/piegames/blockmap/gui/VersionProvider.java +++ b/BlockMap-gui/src/main/java/de/piegames/blockmap/gui/VersionProvider.java @@ -3,6 +3,6 @@ public class VersionProvider { /* This part of the code gets generated automatically through `gradle generateSources`. Do not modify! */ // $REPLACE_START - public static final String VERSION = "2.0.0-snapshot"; + public static final String VERSION = "2.0.0"; // $REPLACE_END } diff --git a/README.md b/README.md index a28ff150..1b965c02 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ BlockMap hasn't been packaged for other distros yet (looking for maintainers). The GUI version should just run by (double)clicking it. Otherwise run it through: - java -jar BlockMap-gui-1.6.2.jar + java -jar BlockMap-gui-2.0.0.jar to start. If you installed BlockMap through a package manager, search for it in your launcher or menu. @@ -68,9 +68,9 @@ to start. If you installed BlockMap through a package manager, search for it in If you want to use BlockMap through the command line without, # For general usage help - java -jar BlockMap-cli-1.6.2.jar help + java -jar BlockMap-cli-2.0.0.jar help # For help about rendering worlds to a folder - java -jar BlockMap-cli-1.6.2.jar help render + java -jar BlockMap-cli-2.0.0.jar help render will get you started. On Linux even with colors! @@ -78,12 +78,7 @@ If your world has been created before the Minecraft 1.13 release, please optimiz ### Server usage: -The bash script [server.sh](server.sh) is an example of how this could be used in a server environment. Simply set the paths at the top of the file and call this script regularly on the server. It has a few different render settings pre-configured, but they are easy to adapt to your needs. - - -### 2.0 server usage: - -*This is experimental and may change at any time! Please try it out and take the time to provide feedback if you run into issues.* +*This feature is not stailized yet. Backwards-incompatible changes may occur even on minor releases. Any feedback welcome.* The new server mode is based around the following concept: @@ -93,6 +88,13 @@ The new server mode is based around the following concept: - Host that folder using the web server of your choice (e.g. [`miniserve`](https://github.com/svenstaro/miniserve)). Clients will now be able to view your worlds across the Internet. - Call this on a scheduled basis. Subsequent runs will update the folder without re-rendering everything. +### Old server usage: + +*The "old" way of doing server support: a simple shell script that calls the CLI.* + +The bash script [server.sh](server.sh) is an example of how this could be used in a server environment. Simply set the paths at the top of the file and call this script regularly on the server. It has a few different render settings pre-configured, but they are easy to adapt to your needs. + + ## Build it: Due to technical, legal and performance reasons, some resources required to run and test BlockMap are not included in this repository, but generated locally. The Gradle task `regenerate` will download all required files (you only need an internet connection the first time and after a `clean`) and generate and compile a bunch of stuff. Without this, nothing will work. On a freshly cloned repository, use `initEclipse` or `initIdea` to transform the repository into a project you can simply open in your favorite IDE. (Warning: The `eclipse` and `idea` tasks have to be called each time some dependencies changed. Furthermore, they link to some folders in the build directory. This means that they won't work as intended until `regenerate` has been called.) diff --git a/build.gradle b/build.gradle index 321e43f3..4cf9fde1 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,7 @@ buildscript { apply plugin: "com.github.ben-manes.versions" allprojects { - version = '2.0.0-snapshot' + version = '2.0.0' repositories { jcenter() diff --git a/changelog.md b/changelog.md index 1e414c06..9fec311f 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,42 @@ # Changelog +## Version 2.0.0 + +***breaking*** news for ***breaking*** changes! Long overdue, a rewrite/overhaul of quite a few components. No Minecraft 1.16 support yet. + +### Changes + +- GUI redesign: + - **Autocomplete!** + - Better support for viewing worlds on servers. + - Rewrite of the map rendering engine + - Much cleaner code, probably removed a lot of bugs + - Removed caching (may increase memory usage in large worlds) + - Removed saving support. Use the CLI instead. +- ***breaking*** World representation has been changed. Previously, every folder containing region files would count as world. Now, a world always is a folder containing a `level.dat` together with a dimension (defaulting to the overworld). + - For the CLI, a few paths will have to be changed. `--dimension` is now always used, but defaults to `OVERWORLD`. + - For the GUI, nothing much will change except you cannot open a single region folder anymore (which probably nobody did anyways) +- New server mode using `render-many`: + - **It is not declared stable yet, to allow breaking changes even on minor version bumps.** + - Declare a configuration file with all your worlds and how you want to render them. An example configuration can be found [here](server-settings.json). + - Call `blockmap render-many` and pass the configuration file as argument. You can add dynamic server information like online plyers etc. via more command line options. + - An output directory will be created with all the rendered files. You can view them in BlockMap. + - Host that folder using the web server of your choice (e.g. [`miniserve`](https://github.com/svenstaro/miniserve)). Clients will now be able to view your worlds across the Internet. + - Call this on a scheduled basis. Subsequent runs will update the folder without re-rendering everything. +- Other CLI changes: + - ***breaking*** The `--lazy` option has been removed and is no enabled by default. Use `--force` to disable it manually. + - Proper exit code handling. When using BlockMap in scripts, you'll know when it fails. +- Java 13 support + +### Bug fixes + +- Color map selection in the GUI has gone wrong a few times +- Some bounds checks when rendering part of the world are notoriously wrong + +### Backwards-compatibility + +All changes that potentially require manual intervention are marked with "***breaking***" in the changelog above. + ## Version 1.6.2 ### Changes diff --git a/screenshots/screenshot-0.gif b/screenshots/screenshot-0.gif index 10a5b44a..19716fc9 100644 Binary files a/screenshots/screenshot-0.gif and b/screenshots/screenshot-0.gif differ diff --git a/screenshots/screenshot-1.png b/screenshots/screenshot-1.png index 1e1755df..ac3d70b0 100644 Binary files a/screenshots/screenshot-1.png and b/screenshots/screenshot-1.png differ diff --git a/screenshots/screenshot-2.png b/screenshots/screenshot-2.png index 52ba6db2..73754650 100644 Binary files a/screenshots/screenshot-2.png and b/screenshots/screenshot-2.png differ diff --git a/screenshots/screenshot-3.png b/screenshots/screenshot-3.png index a5d96d1c..e2ca1c84 100644 Binary files a/screenshots/screenshot-3.png and b/screenshots/screenshot-3.png differ