Skip to content

Commit

Permalink
- Add a little bit of story in readme
Browse files Browse the repository at this point in the history
  • Loading branch information
QwEekYhyo committed Apr 12, 2024
1 parent ff5e8ac commit d27f88f
Showing 1 changed file with 45 additions and 16 deletions.
61 changes: 45 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
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.

The tool is inspired by the bestofboth script and follows the same basic idea, check it out at:
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.

Expand All @@ -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.


Expand Down Expand Up @@ -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:

Expand Down Expand Up @@ -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: <code>python mcmerge.py help</code>

Expand Down Expand Up @@ -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:

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit d27f88f

Please sign in to comment.