Go to file
Sfan5 a7a45b5a55 Tabs -> spaces 2014-04-09 12:02:21 +02:00
.gitignore Remove embedding of colors.txt in executable 2014-04-09 10:49:46 +02:00
AUTHORS Document and (attempt to) clarify licensing situation 2014-03-26 11:04:29 +01:00
CMakeLists.txt Remove embedding of colors.txt in executable 2014-04-09 10:49:46 +02:00
COPYING Document and (attempt to) clarify licensing situation 2014-03-26 11:04:29 +01:00
LICENSE Document and (attempt to) clarify licensing situation 2014-03-26 11:04:29 +01:00
LICENSE.BSD-2clause Document and (attempt to) clarify licensing situation 2014-03-26 11:04:29 +01:00
LICENSE.LGPLv2.1 Document and (attempt to) clarify licensing situation 2014-03-26 11:04:29 +01:00
PixelAttributes.cpp Small refactoring. 2012-09-01 16:17:58 +02:00
PixelAttributes.h Add alpha transparency ability for blocks 2014-04-09 11:03:54 +02:00
PlayerAttributes.cpp Player attributes moved to separate class. 2012-09-01 16:40:18 +02:00
PlayerAttributes.h Player attributes moved to separate class. 2012-09-01 16:40:18 +02:00
README.rst Add alpha transparency ability for blocks 2014-04-09 11:03:54 +02:00
TileGenerator.cpp Tabs -> spaces 2014-04-09 12:02:21 +02:00
TileGenerator.h Tabs -> spaces 2014-04-09 12:02:21 +02:00
ZlibDecompressor.cpp Fixed LLVM support. 2012-09-18 12:46:15 +02:00
ZlibDecompressor.h Zlib moved into separate module. 2012-09-18 10:43:34 +02:00
autogenerating-colors.txt Clarify autogenerating colors 2014-04-09 11:04:35 +02:00
cmake_config.h.in LevelDB support 2014-03-05 21:42:21 +01:00
colors.txt Add alpha transparency ability for blocks 2014-04-09 11:03:54 +02:00
config.h LevelDB support 2014-03-05 21:42:21 +01:00
db-leveldb.cpp Remove leveldb block-id cache 2014-03-26 08:57:45 +01:00
db-leveldb.h Remove leveldb block-id cache 2014-03-26 08:57:45 +01:00
db-sqlite3.cpp Database performance tweaks 2014-03-26 00:23:33 +01:00
db-sqlite3.h Database performance tweaks 2014-03-26 00:23:33 +01:00
db.h Database performance tweaks 2014-03-26 00:23:33 +01:00
mapper.cpp Add alpha transparency ability for blocks 2014-04-09 11:03:54 +02:00

README.rst

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

A port of minetestmapper.py to C++ from https://github.com/minetest/minetest/tree/master/util

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

* libgd
* sqlite3

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

Plain:

::

    cmake .
    make

With levelDB support:

::

    cmake -DENABLE_LEVELDB=true .
    make

Debug version:

::

    cmake -DCMAKE_BUILD_TYPE:STRING=Debug .
    make

Release version:

::

    cmake -DCMAKE_BUILD_TYPE:STRING=Release .
    make


Usage
-----

Binary `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, `--bgcolor #ffffff`

scalecolor:
    Color of scale, `--scalecolor #000000`

playercolor:
    Color of player indicators, `--playercolor #ff0000`

origincolor:
    Color of origin indicator, `--origincolor #ff0000`

drawscale:
    Draw tick marks, `--drawscale`

drawplayers:
    Draw player indicators, `--drawplayers`

draworigin:
    Draw origin indicator, `--draworigin`

drawalpha:
    Allow blocks to be drawn with transparency, `--drawalpha`

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

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

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

backend:
    Use specific map backend, supported: sqlite3, leveldb, `--backend leveldb`

geometry:
    Limit area to specific geometry, `--geometry -800:-800+1600+1600`

forcegeometry:
    Generate a map of the requested size, even if the world is smaller.

sqlite-cacheworldrow:
    When using sqlite, read an entire world row at one, instead of reading
    one block at a time.
    This may improve performance when a large percentage of the world is mapped.

--tiles <tilesize>[+<border>]
    Divide the map in square tiles of the requested size. A border of the
    requested width (or width 1, of not specfied) is drawn between the tiles.
    In order to preserve all map pixels (and to prevent overwriting them with
    borders), extra pixel rows and columns for the borders are inserted into
    the map.
    In order to allow partial world maps to be combined into larger maps, edge
    borders of the map are always drawn on the same side (left or top). Other
    edges are always border-less.
    `--tiles 1000`
    `--tiles 1000+2`
    NOTE: As a consequence of preserving all map pixels:
    * tiled maps may look slightly distorted, due to the inserted borders.
    * scale markers never align with tile borders, as the borders are
      logically *between* pixels, so they have no actual coordinates.


--tileorigin x:y
    Arrange the tiles so that one tile has its bottom-left (i.e. south-west)
    corner at map coordinates x,y.
    By default, tiles are arranged so that one tile has map coordinate 0,0 at
    its center.
    `--tileorigin -500,-500`
    `--tileorigin center-map`
    `--tileorigin center-world`

--tilebordercolor
    Color of border between tiles, `--tilebordercolor #000000`

verbose:
    report some useful/ interesting information:
    * maximum coordinates of the world
    * world coordinates included the map being generated
    * number of blocks: in the world, and in the map area.
    * database access statistics.