From d27f88ffe776ad43f99b83596075c64fa6576eb8 Mon Sep 17 00:00:00 2001 From: Logan Lucas Date: Fri, 12 Apr 2024 12:10:46 +0200 Subject: [PATCH] - Add a little bit of story in readme --- README.md | 61 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 93e952c..2e84f24 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -mcmerge -======= +# mcmerge This is a tool for stitching together Minecraft maps that have different areas generated by different algorithms causing ugly transitions, for example when using an existing map from Minecraft b1.7 in Minecraft b1.8. @@ -7,14 +6,12 @@ The tool is inspired by the bestofboth script and follows the same basic idea, c https://github.com/gmcnew/bestofboth It also relies on the very excellent pymclevel to do its map editing, you can find it at: -https://github.com/codewarrior0/pymclevel - +https://github.com/mcedit/pymclevel (this is the original one, now [here is my modified fork](https://github.com/QwEekYhyo/pymclevel)) As with all these sorts of things, use this tool at your own risk. Everything will probably be fine, but if it all goes horribly wrong I can't be held responsible. -How it works ------------- +## How it works A river is placed at the boundaries between the old and new map areas, and the surrounding valley is smoothed seamlessly together with adjacent chunks. The smoothing is done with a low pass filter that means every chunk will have its own unique appearance. @@ -23,8 +20,44 @@ Two phases are used to perform the work. First the original map is traced with m I have included some test files in the appropriately named testfiles directory that you can use to run this script on. -Setting up ----------- +## Why did I create this fork ? + +My girlfriend and I wanted to play some Minecraft, so I came up with an idea +: start our adventure in beta 1.7.3 and increase version from time to time to +go through every major Minecraft version. So the terrain generation transitions +were going to be a problem. I stumbled upon [this wiki page](https://minecraft.fandom.com/wiki/Tutorials/Updating_old_terrain) +that mentions some tools to update the terrain, including this one. + +So I tried to launch it but there were a lot of problems. First of all, as this is a very +old tool, it uses Python 2.7 so I had to install this old version of python and +figure out how to setup a virtual environment. I managed to do this using the +Linux package `pyenv` and community-created module for it called `pyenv-virtualenv`. +Pymclevel hasn't been updated in years but the libraries it uses have! So that +created some problems making the tool unusable. Another issue I faced is that +pymclevel stopped support for Minecraft worlds with the pre-anvil format (the +Anvil file format was introduced in Minecraft release 1.2.1) and, no offense, +but the developpers of this tool didn't seem to be very familiar with Github +and python conventions. For example there are absolutely no branches or tags to +create some kind of versioning and track added/removed feature, meaning that +I had to randomly checkout commits to find when exactly did they stop to +support pre-anvil format. + +Apparently commit [`6b5cc77`](https://github.com/QwEekYhyo/pymclevel/commit/6b5cc772fccf94eb3d83ab2b448fe784be3f03df) introduced the +error message when trying to load a pre-anvil format world but it still did not +work before that. And so the commit that broke everything is [`5f1bfcc`](https://github.com/QwEekYhyo/pymclevel/commit/5f1bfccade25184a392a9474816c5e02199093fb). + +Because I do not have the skills nor the time to add support of old worlds on +the latest version of pymclevel, I decided to add commits to fix it before the +commit that broke everything, use this detached HEAD to manipulate old worlds +and rebase everything so that my fixes are available on the latest version. + +So if you would like to use mcmerge on a more recent version of Minecraft, go +to the pymclevel folder and type : + +`git switch master` + + +## Setting up To use this tool you will first need to install it. There are two available options. @@ -54,8 +87,7 @@ Finally, if you're on Windows, you should install the python win32 extension. Th http://sourceforge.net/projects/pywin32/ -Merging your world ------------------- +## Merging your world Once you have the required bits installed, you can download this tool then fire up the command line and cd over to the location of the script. Then follow these steps: @@ -90,8 +122,7 @@ You can repeat steps 4 - 6 as many times as you need as the tool will keep track NOTE: For Windows users using the packaged binary, replace 'python mcmerge.py' with 'mcmerge.exe' in the above commands. -Configuration -------------- +## Configuration To see what commands are available in the tool, type: python mcmerge.py help @@ -141,8 +172,7 @@ While the merge command will by default perform both shifting and merging operat Happy merging! -Advanced tracing examples -------------------------- +## Advanced tracing examples Here are some examples of how the more advanced tracing features can be used in practice. Most people can skip this section entirely. I will attempt to provide illustrations to clarify this slightly. The illustrations will map one chunk to one character according to the below legend: @@ -269,8 +299,7 @@ Here are some examples of how the more advanced tracing features can be used in ################## -Revision history ----------------- +## Revision history ### v0.1 - Initial version