Generates a overview image of a minetest map.
Go to file
sfan5 cb8341aeab Implement --exhaustive y mode as another database access optimization
This one works best when you have a wide area with low height (e.g. 10000x200x10000)
2020-03-28 00:14:47 +01:00
include Implement --exhaustive y mode as another database access optimization 2020-03-28 00:14:47 +01:00
util Move travis to newest Ubuntu bionic 2019-07-30 21:06:28 +02:00
.gitignore Add CPack files to .gitignore 2014-04-15 16:11:41 -04:00
.travis.yml Properly support -DENABLE_REDIS=TRUE even if library is not found 2020-03-27 16:27:55 +01:00
AUTHORS Add license (BSD license) 2014-03-05 21:49:08 +01:00
autogenerating-colors.txt Improve color averaging and update colors.txt again 2019-03-09 15:33:38 +01:00
BlockDecoder.cpp Refactoring (2) 2018-03-25 15:19:48 +02:00
CMakeLists.txt Properly support -DENABLE_REDIS=TRUE even if library is not found 2020-03-27 16:27:55 +01:00
colors.txt Update colors.txt 2019-10-11 21:46:07 +02:00
COPYING Clarify license situation (closes #26) 2016-08-09 16:18:04 +02:00
db-leveldb.cpp Optimize database access further by allowing "brute-force" queries instead of listing available blocks 2020-03-27 23:38:18 +01:00
db-postgresql.cpp Optimize database access further by allowing "brute-force" queries instead of listing available blocks 2020-03-27 23:38:18 +01:00
db-redis.cpp Optimize database access further by allowing "brute-force" queries instead of listing available blocks 2020-03-27 23:38:18 +01:00
db-sqlite3.cpp Optimize database access further by allowing "brute-force" queries instead of listing available blocks 2020-03-27 23:38:18 +01:00
Image.cpp Fix color2int, int2color alpha handling (libgd alpha is 0-127) 2018-11-22 21:05:13 +01:00
mapper.cpp Optimize database access further by allowing "brute-force" queries instead of listing available blocks 2020-03-27 23:38:18 +01:00
minetestmapper.6 Implement --exhaustive y mode as another database access optimization 2020-03-28 00:14:47 +01:00
PixelAttributes.cpp Fix bug introduced in 9096f70 2020-03-27 12:45:31 +01:00
PlayerAttributes.cpp Finish refactor 2018-03-25 16:25:41 +02:00
README.rst Implement --exhaustive y mode as another database access optimization 2020-03-28 00:14:47 +01:00
TileGenerator.cpp Implement --exhaustive y mode as another database access optimization 2020-03-28 00:14:47 +01:00
util.cpp Rewrite config file parser 2020-03-27 19:33:42 +01:00
ZlibDecompressor.cpp Don't use a temporary table for block positions 2014-04-19 02:13:34 -04:00

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

.. image:: https://travis-ci.org/minetest/minetestmapper.svg?branch=master
    :target: https://travis-ci.org/minetest/minetestmapper

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

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

* libgd
* sqlite3
* LevelDB (optional, set ENABLE_LEVELDB=1 in CMake to enable)
* hiredis library (optional, set ENABLE_REDIS=1 in CMake to enable)
* Postgres libraries (optional, set ENABLE_POSTGRES=1 in CMake to enable)

e.g. on Debian:
^^^^^^^^^^^^^^^

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

Windows
^^^^^^^
Minetestmapper for Windows can be downloaded here: https://github.com/minetest/minetestmapper/releases

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

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

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

::

    cmake . -DENABLE_LEVELDB=1
    make -j2

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.