2012-09-02 19:46:12 +02:00
Minetest Mapper C++
===================
2021-08-27 16:50:46 +02:00
.. image :: https://github.com/minetest/minetestmapper/workflows/build/badge.svg
:target: https://github.com/minetest/minetestmapper/actions/workflows/build.yml
2014-12-24 23:05:25 +01:00
2020-05-08 22:10:49 +02:00
Minetestmapper generates an overview image from a Minetest map.
2021-08-27 16:50:46 +02:00
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.
2012-09-02 19:46:12 +02:00
2021-09-11 15:40:34 +02:00
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.
2012-09-02 19:46:12 +02:00
Requirements
------------
2021-12-27 13:19:12 +01:00
* C++ compiler, zlib, zstd
2012-09-02 19:46:12 +02:00
* libgd
* sqlite3
2020-05-08 22:10:49 +02:00
* LevelDB (optional)
* hiredis (optional)
* Postgres libraries (optional)
2012-09-02 19:46:12 +02:00
2021-08-27 17:24:24 +02:00
on Debian/Ubuntu:
^^^^^^^^^^^^^^^^^
2016-08-05 16:12:51 +02:00
2021-12-27 13:19:12 +01:00
`` sudo apt install cmake libgd-dev libhiredis-dev libleveldb-dev libpq-dev libsqlite3-dev zlib1g-dev libzstd-dev ``
2016-08-05 16:12:51 +02:00
2020-06-01 13:35:41 +02:00
on openSUSE:
^^^^^^^^^^^^
2021-12-27 13:19:12 +01:00
`` sudo zypper install gd-devel hiredis-devel leveldb-devel postgresql-devel sqlite3-devel zlib-devel libzstd-devel ``
2020-06-01 13:35:41 +02:00
2021-08-27 17:24:24 +02:00
for Windows:
^^^^^^^^^^^^
Minetestmapper for Windows can be downloaded `from the Releases section
<https://github.com/minetest/minetestmapper/releases> `_.
2016-12-18 21:30:52 +01:00
2021-08-27 17:24:24 +02:00
After extracting the archive, it can be invoked from cmd.exe:
2016-12-18 21:30:52 +01:00
::
cd C:\Users\yourname\Desktop\example\path
minetestmapper.exe --help
2012-09-02 19:46:12 +02:00
Compilation
-----------
2012-09-02 19:50:28 +02:00
::
2012-09-02 19:52:12 +02:00
2016-08-05 16:12:51 +02:00
cmake . -DENABLE_LEVELDB=1
2020-06-01 13:35:41 +02:00
make -j$(nproc)
2012-09-02 19:46:12 +02:00
Usage
-----
2016-08-05 16:12:51 +02:00
`minetestmapper` has two mandatory paremeters, `-i` (input world path)
2012-09-02 19:46:12 +02:00
and `-o` (output image path).
2012-09-02 19:50:28 +02:00
::
2012-09-02 19:52:12 +02:00
2016-08-05 16:12:51 +02:00
./minetestmapper -i ~/.minetest/worlds/my_world/ -o map.png
2012-09-02 19:46:12 +02:00
Parameters
^^^^^^^^^^
bgcolor:
2018-02-01 14:18:00 +01:00
Background color of image, e.g. `` --bgcolor '#ffffff' ``
2012-09-02 19:46:12 +02:00
scalecolor:
2018-03-25 16:42:45 +02:00
Color of scale marks and text, e.g. `` --scalecolor '#000000' ``
2012-09-02 19:46:12 +02:00
playercolor:
2018-02-01 14:18:00 +01:00
Color of player indicators, e.g. `` --playercolor '#ff0000' ``
2012-09-02 19:46:12 +02:00
origincolor:
2018-02-01 14:18:00 +01:00
Color of origin indicator, e.g. `` --origincolor '#ff0000' ``
2012-09-02 19:46:12 +02:00
drawscale:
2018-03-25 16:42:45 +02:00
Draw scale(s) with tick marks and numbers, `` --drawscale ``
2012-09-02 19:46:12 +02:00
drawplayers:
2018-03-25 16:42:45 +02:00
Draw player indicators with name, `` --drawplayers ``
2012-09-02 19:46:12 +02:00
draworigin:
2016-07-06 21:45:38 +02:00
Draw origin indicator, `` --draworigin ``
2012-09-02 19:46:12 +02:00
2014-04-03 20:32:48 +02:00
drawalpha:
2018-03-25 16:42:45 +02:00
Allow nodes to be drawn with transparency (e.g. water), `` --drawalpha ``
2014-04-03 20:32:48 +02:00
2018-10-20 17:40:01 +02:00
extent:
Don't output any imagery, just print the extent of the full map, `` --extent ``
2014-03-05 18:06:05 +01:00
noshading:
2016-07-06 21:45:38 +02:00
Don't draw shading on nodes, `` --noshading ``
2014-03-05 18:06:05 +01:00
2018-10-31 16:18:29 +01:00
noemptyimage:
Don't output anything when the image would be empty, `` --noemptyimage ``
2014-03-05 18:06:05 +01:00
min-y:
2016-07-06 21:45:38 +02:00
Don't draw nodes below this y value, e.g. `` --min-y -25 ``
2014-03-05 18:06:05 +01:00
max-y:
2016-07-06 21:45:38 +02:00
Don't draw nodes above this y value, e.g. `` --max-y 75 ``
2014-03-05 18:06:05 +01:00
2014-03-05 21:41:27 +01:00
backend:
2018-03-25 16:42:45 +02:00
Override auto-detected map backend; supported: *sqlite3* , *leveldb* , *redis* , *postgresql* , e.g. `` --backend leveldb ``
2014-03-05 21:41:27 +01:00
2012-11-24 19:25:13 +01:00
geometry:
2018-03-25 16:42:45 +02:00
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 ``
2016-07-06 21:45:38 +02:00
zoom:
2018-03-25 16:42:45 +02:00
Apply zoom to drawn nodes by enlarging them to n*n squares, e.g. `` --zoom 4 ``
2012-11-24 19:25:13 +01:00
2016-08-28 15:58:06 +02:00
colors:
2018-03-25 16:42:45 +02:00
Override auto-detected path to colors.txt, e.g. `` --colors ../minetest/mycolors.txt ``
2016-11-18 22:01:15 +01:00
scales:
Draw scales on specified image edges (letters *t b l r* meaning top, bottom, left and right), e.g. `` --scales tbr ``
2020-03-27 21:10:00 +01:00
exhaustive:
2020-03-28 00:14:47 +01:00
| 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.