Generates a overview image of a minetest map.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
sfan5 0198897306
Mention colors.txt generation in README
1 week ago
.github/workflows Add simple functional test to CI 3 weeks ago
cmake Add support for map block version 29 2 weeks ago
include Add progress bar during map generation 2 weeks ago
util Make MinGW build script work again 2 weeks ago
.gitignore Modernize CMake build script 3 weeks ago
AUTHORS Add license (BSD license) 8 years ago
BlockDecoder.cpp Add support for map block version 29 2 weeks ago
CMakeLists.txt Add support for map block version 29 2 weeks ago
COPYING Clarify license situation (closes #26) 5 years ago
Image.cpp Some more code modernization 1 year ago
PixelAttributes.cpp Some more code modernization 1 year ago
PlayerAttributes.cpp Some more code modernization 1 year ago
README.rst Mention colors.txt generation in README 1 week ago
TileGenerator.cpp Add progress bar during map generation 2 weeks ago
ZlibDecompressor.cpp Some more code modernization 1 year ago
ZstdDecompressor.cpp Fix ZstdDecompressor error check 2 weeks ago
colors.txt Update colors.txt 2 years ago
db-leveldb.cpp Optimize database access further by allowing "brute-force" queries instead of listing available blocks 2 years ago
db-postgresql.cpp Optimize database access further by allowing "brute-force" queries instead of listing available blocks 2 years ago
db-redis.cpp Fix another bug in the Redis backend 2 years ago
db-sqlite3.cpp Optimize database access further by allowing "brute-force" queries instead of listing available blocks 2 years ago
mapper.cpp Some more code modernization 1 year ago
minetestmapper.6 Implement --exhaustive y mode as another database access optimization 2 years ago
util.cpp Some more code modernization 1 year ago

README.rst

Minetest Mapper C++
===================

.. image:: https://github.com/minetest/minetestmapper/workflows/build/badge.svg
:target: https://github.com/minetest/minetestmapper/actions/workflows/build.yml

Minetestmapper generates an overview image from a Minetest map.

A port of minetestmapper.py to C++ from https://github.com/minetest/minetest/tree/0.4.17/util.
This version is both faster and provides more features than the now obsolete Python script.

Minetestmapper ships with a colors.txt file for Minetest Game, if you use a different game or have
many mods installed you should generate a matching colors.txt for better results.
The `generate_colorstxt.py script
<./util/generate_colorstxt.py>`_ in the util folder exists for this purpose, detailed instructions can be found within.

Requirements
------------

* libgd
* sqlite3
* LevelDB (optional)
* hiredis (optional)
* Postgres libraries (optional)

on Debian/Ubuntu:
^^^^^^^^^^^^^^^^^

``sudo apt install libgd-dev libsqlite3-dev libleveldb-dev libhiredis-dev libpq-dev``

on openSUSE:
^^^^^^^^^^^^

``sudo zypper install gd-devel sqlite3-devel leveldb-devel hiredis-devel postgresql-devel``

for Windows:
^^^^^^^^^^^^
Minetestmapper for Windows can be downloaded `from the Releases section
<https://github.com/minetest/minetestmapper/releases>`_.

After extracting the archive, it can be invoked from cmd.exe:
::

cd C:\Users\yourname\Desktop\example\path
minetestmapper.exe --help

Compilation
-----------

::

cmake . -DENABLE_LEVELDB=1
make -j$(nproc)

Usage
-----

`minetestmapper` has two mandatory paremeters, `-i` (input world path)
and `-o` (output image path).

::

./minetestmapper -i ~/.minetest/worlds/my_world/ -o map.png


Parameters
^^^^^^^^^^

bgcolor:
Background color of image, e.g. ``--bgcolor '#ffffff'``

scalecolor:
Color of scale marks and text, e.g. ``--scalecolor '#000000'``

playercolor:
Color of player indicators, e.g. ``--playercolor '#ff0000'``

origincolor:
Color of origin indicator, e.g. ``--origincolor '#ff0000'``

drawscale:
Draw scale(s) with tick marks and numbers, ``--drawscale``

drawplayers:
Draw player indicators with name, ``--drawplayers``

draworigin:
Draw origin indicator, ``--draworigin``

drawalpha:
Allow nodes to be drawn with transparency (e.g. water), ``--drawalpha``

extent:
Don't output any imagery, just print the extent of the full map, ``--extent``

noshading:
Don't draw shading on nodes, ``--noshading``

noemptyimage:
Don't output anything when the image would be empty, ``--noemptyimage``

min-y:
Don't draw nodes below this y value, e.g. ``--min-y -25``

max-y:
Don't draw nodes above this y value, e.g. ``--max-y 75``

backend:
Override auto-detected map backend; supported: *sqlite3*, *leveldb*, *redis*, *postgresql*, e.g. ``--backend leveldb``

geometry:
Limit area to specific geometry (*x:z+w+h* where x and z specify the lower left corner), e.g. ``--geometry -800:-800+1600+1600``

zoom:
Apply zoom to drawn nodes by enlarging them to n*n squares, e.g. ``--zoom 4``

colors:
Override auto-detected path to colors.txt, e.g. ``--colors ../minetest/mycolors.txt``

scales:
Draw scales on specified image edges (letters *t b l r* meaning top, bottom, left and right), e.g. ``--scales tbr``

exhaustive:
| Select if database should be traversed exhaustively or using range queries, available: *never*, *y*, *full*, *auto*
| Defaults to *auto*. You shouldn't need to change this, but doing so can improve rendering times on large maps.
| For these optimizations to work it is important that you set ``min-y`` and ``max-y`` when you don't care about the world below e.g. -60 and above 1000 nodes.