minetest-mapper-cpp/old_files/Changelog

377 lines
18 KiB
Plaintext

[]
Enhancements
- Improved rpm platform detection and version string
- Allow specifying a packaging version
- Added option --sqlite3-limit-prescan-query-size to limit the number
of records queried simultaneously during a database prescan.
Use this if mapping while minetest is running causes minetest
to report warnings like:
SQLite3 database has been locked for <duration>
This may happen when mapping relatively large worlds.
If minetestmapper keeps the database locked for too long,
*and* if the database was modified in that time, minetestmapper
will also issue a warning.
Bugfixes:
- Fixed compilation failure when docutils is not installed
- Removed all compiler warnings on Windows
When compiling a debug version, some warnings remain
(intentionally).
- Fixed a compilation failure on Fedora when using postgresql
- Fixed failure to compile with gcc 6
- Fixed failure to compile when rpm is not installed
(e.g. on non-rpm systems...)
- Workaround to allow compilation with clang when using leveldb.
This is broken due to libstdc++ ABI incompatibility
- Fixed compilation failure on FreeBSD (10.3) using gcc
- Detect when package version will not match current git commit id,
and refuse to build package with wrong version.
[31 May 2016]
Features:
- Support for postgresql backend added
Compatible with two previous unofficial implementations, by
ShadowNinja and johnnyjoy. Support for these will be removed
in a future version of Minetestmapper.
- Support for MSVC/Windows compilation (Thanks to adrido!)
Enhancements:
- Updated the included colors file with colors for the new tiles that
were recently added to the default minetest game.
- Improved the scripts and documentation for generating a colors.txt
file.
- HTML versions of documentation in doc/ is now generated, and included
in the different packages.
- Documented concurrent minetest & minetestmapper use.
- Documented the different geometries reported with --verbose
- Mentioned adrido's MinetestmapperGUI in the manual
- The option --prescan-world was added to force or disable scanning the
entire world (i.e. reading a full blocklist)
(useful for postgresql, which doesn't do this by default).
- Command-line options are now all case-agnostic wrt their parameters.
- Allow nodes to be defined as air-type or ignore-type in colors.txt
- Added an option to draw 'ignore'-nodes.
- Text drawn on the map is now converted to the ISO8859-2 encoding. Due
to limited font support in the drawing library, characters not
in the ISO8859-2 set are not supported.
Minetestmapper will attempt to render unsupported characters
sensibly if it can.
Bugfixes:
- Fixed possible compilation failure caused by stdint.h
- Fixed compilation failure when some database libraries are not installed.
Even when support for some of the databases was not enabled,
the libraries for those databases still needed to be installed on
the system for compilation to succeed. Now the libraries no
longer need to be installed if not used.
- Fixed backend selection, so that there should no longer be a difference
between an automatically selected backend, and the same backend
specified manually.
(At least one backend-specific (LevelDB-related) option was not
taking effect when LevelDB was auto-selected).
- Fixed problem causing existing but modified blocks not being found in
SQLite3 database when mapping while minetest is running.
[10 mar 2015]
Enhancements:
- Added an optimisation option: --disable-blocklist-prefetch.
With this option, minetestmapper does not query the database to
make a block list before starting map generation, but directly
tries to fetch all possible blocks that might be in the mapped space.
This significantly improves speed on large worlds when mapping a
small part of them. When mapping a large percentage of the world,
or when not adequately limiting the mapping height (--min-y and
--max-y), this option can cause **excessively** long mapping times
instead.
Minetestmapper will try and warn about misuse of this option. If
possible, it will also suggest changes to parameters to make better
use of this option.
- Building instructions were improved
- Mimimum and maximum *mapped* Y coordinates are now reported, and can be
used as a hint for setting --min-y and --max-y. Blocks containing
only air are not included.
This is mainly of use when using --disable-blocklist-prefetch
- Minetestmapper now prints a message and does not generate an image file
if the world is empty (i.e. does not contain any blocks at all).
Bugfixes:
- Generated packages now contain the documentation, albeit not in HTML
format yet.
[2 mar 2015]
Features:
Enhancements:
- Performance of the sqlite3 database backend was improved slighty.
- Searching for color files on Windows was improved. Minetestmapper will
now search the directory where minetestmapper is installed.
- The documentation is now included in the generated packages as well.
- The user manual and building instructions have been improved.
Bugfixes:
- Windows builds (using MinGW) are working again - a few incompatibilities
have prevented that for some time.
Windows compilation has been tested using MinGW as a cross
compiler, running on a Linux host.
Other:
- The option --sqlite-cacheworldrow was tested on a few large worlds,
and minetestmapper performed consistently worse with it, than
without it. The option was therefore deemed useless, and disabled.
It is still recognised though, so that existing scripts will keep
working.
If anyone has test data available, or other experience, indicating
that this option *did* have tangible benefit, please let me know.
[20 feb 2015]
Features:
- A custom major and minor division can now be specified for the scale.
- When the major scale division is divisible by 16, block numbers are
also included on the scale
- Instead of a regular map, a height map can now be generated as well.
- It can be generated in shades of a single color, or in multiple colors.
- For multiple colors, a height-map colors file is needed. Two sample
versions are included: a file which produces nice maps on standard
minetest worlds (mapgen v6), while still covering a reasonably large
range of heights for other worlds, and a rainbow colors file.
- A nodes file is also needed, which specifies which nodes should be
considered (and hence, which ones should be ignored) when determining
the height of a region of the world. A nodes file is included.
- Optionally, a height scale can be drawn at the bottom of the map.
- The map can now be generated in a reduced size. This means that it is finally
possible to generate a full map of a maximal world, albeit at a lower
resolution
(at most 1:2 on 64-bit systems and 1:4 on 32-bit systems). Overview maps
at 1:16 are another use of this feature.
The following scale factors are supported: 1:1, 1:2, 1:4, 1:8 and 1:16.
Note that this version of minetestmapper also supports generating a
huge map in sections, and pasting them together with an external program.
See below.
Enhancements:
- The left scale was widened, as it didn't accomodate 5-digit coordinates
- The --tiles option gained the shorthand values 'block' and 'chunk', which
align the tiles with minetest's block and chunk boundaries.
The default chunk size is obtained from the world's data files.
An option --chunksize was also added to override the default chunk size.
- For a stack of only transparent nodes, the topmost height is now used.
(instead of the bottom-most height)
- The progress indicator was improved
- Ice was made slightly transparent in the included colors file
- A small number of symbolic colors are now recognised. In addition, they
can be modified by mixing in several basic colors (e.g. white to make
the color lighter, or black to make it darker)
- It is now possible to draw a scale on just the left or the top side. This
means that it is possible to generate a map in independent sections, which
can be assembled into a large map later (using another application).
- The documentation was improved. A separate user manual and a build manual
are now included.
Bugfixes:
- Fixed incorrect shading near 'holes' in the world map.
- Fixed wrong color for default:water_source in colors.txt
- Parts of the scale are no longer written into the top-left corner of the map,
where they would sometimes clobber the axis names or each other.
(Some other bugs were fixed as a side-effect of the new features and enhancements.
Unfortunately, no good record exists...)
[20 jun 2014]
Features:
- Added the ability to select a method of transparency computation for
drawalpha. Three methods are supported when transparency is enabled:
- cumulative: The original mode. Colors become slightly darker and
more opaque as the number of stacked transparent blocks increases
- cumulative-darken: Same as cumulative, except that when the color
has become opaque, the color is progressively darkened to visually
simulate greater depth. Eventually, this will cause the color to
become black.
This used to be the default and only method since commit 8faa2d
(on 10 april 2014)
- average: Transparent blocks always remain transparent, regardless
of their stacking height. This means that the bottom of deep oceans,
and any artefacts that exist there remains visible. When different
types of transparent blocks sit on top of each other, their average
color and transparency is used.
This method is now the default.
Enhancements:
- The default lava color has been changed to slightly transparent.
- The default water color has been made slightly lighter.
- Alternative color definitions are provided for different methods of
transparency computation
Bugfixes:
- Minetestmapper should now build correctly on clang/freebsd
[18 jun 2014]
Features:
- The package generation code for Linux was extensively reworked and
extended.
Besides two types of .tar.gz packages, .deb and .rpm packages
can now be generated as well. In addition, make install now
installs packages in an appropriate directory hierarchy.
The rpm package has an installation glitch: it tries to create
a directory which already exists (system default), causing an
installation conflict. This is harmless, but the rpm package must
therefore be installed with --replacefiles.
Package generation on OSX and Windows platforms remains unchanged.
- 'Air' nodes can now have a color. Their color should be defined as fully
transparent (alpha = 0), so that they don't obscure underlying blocks.
With alpha = 0, air will only be drawn if no other blocks are beneath it.
As it comes at a significant performance penalty, this feature is
subject to a command-line option: --drawair.
Full transparency is supported for other blocks as well, enabled by
setting their alpha value to 0. Nodes with alpha value 0 never
participate in shading.
- A default color can be specified for invisible/undefined nodes in rendered
blocks. Normally, such nodes are not drawn, so they have the background
color; If a different default color is specified, undefined/invisible
nodes in defined blocks get the default color, and can be distinguished
from undefined blocks (which still have the regular background color).
This option is really only useful to get a better idea of what is
actually in the database.
- A color file can now include other color files. It is therefore no longer
necessary to create an entirely new copy to be able to change one
or two colors. Instead, an empty file can be created. In that file,
the master copy is simply referred to ('@include <master>'), and then
just the desired differences are added to it.
It is not only possible to override colors in the new file, but
colors can also be undefined if necessary.
- Freeminer maps are now supported (and tested).
In particular, this means that the new key format used in the leveldb
database (a<x>,<y>,<z>) is now supported.
Please note that freeminer maps will probably contain a lot of holes and
other 'unrendered' areas (e.g. missing plains, making the grey rocks
beneath visible; missing water, showing only the bottom of the lake/sea,
etc.
This is caused by the fact the freeminer does not store unchanged blocks
in the database, but prefers to regenerate them later. As minetestmapper
can only render what's in the database, this causes the holes etc.
Enhancements:
- Minetestmapper now has a version number (which is (partially) computed).
- A system-wide colors.txt file is now supported as well. Its location is
hardcoded at compile-time.
- Redis support is now fully tested.
- A command-line option to report which colors file(s) are read was added.
Bugfixes:
- Fixed the bug which caused compilation to fail if CMAKE_BUILD_TYPE was not
configured.
- Computation of transparency for nodes was improved / fixed
- The return value of a redis database operation was not correctly
checked. This was fixed.
[22 may 2014]
General: integrated all (relevant) patches from the minetest/minetestmapper tree
(only patches that actually conflict with my work were obviously not merged)
Features:
- redis backend support (merged from minetest/minetestmapper)
The code was ported and compiles. Unfortunately, I wasn't able
to test against a redis database yet.
- The database backend to use is now obtained from the world.mt file by default
- Additional geometrical figures can be drawn on the map
Similar to the circles drawn for origin and players. Supported figures
are: point, line, rectangle, ellipse (circle), text.
Translucency (alpha) is supported, although for ellipses, it does not
work as expected (due to a bug in libgd)
Enhancements:
- Failure to process a command-line option now causes a specific error message.
The generic help message is often not very helpful in such a case.
- The map origin color and Player colors can now be specified with an alpha value.
Unfortunately, due to a bug in libgd, the effect is not what it should be...
- The colors.txt file is now also searched for in the world's minetest directory
(the directory containing minetest.conf) - if it can be found.
- C++11 compilation is enabled if supported. If so, faster datastructures are used.
instead of regular map, unordered_map is used where applicable
- Colors used with drawalpha can now differ from colors used without drawalpha.
Colors.txt can now have 'duplicate' entries for nodes, depending on whether alpha
transparency is on or off.
With 'drawalpha', a non-opaque color entry (with alpha less than 255) is
preferred, whereas without 'drawalpha', a color entry with alpha 255
(or unspecified alpha) is preferred.
In all other cases, later entries override former entries in the colors file.
The color of water with drawalpha was changed a little.
- The sqlite3 backend is now optional and can be disabled during compilation.
- Failures parsing or decompressing the block data from the database are now caught and reported.
Map generation continues, and aborts only after 100 or more errors.
The error messages for decompression failures were also improved.
- Geometry can now also be specified using 2 corners of the area (instead of corner and dimensions)
- The configuration of tiles location was improved
Bugfixes:
- When not using a geometry option, *do* generate the smallest possible map
- Fix transparency computation - libgd uses 0..127 (not 255)
- Using an invalid option name no longer causes a crash, but is reported.
- Fixed a crash when the top part of the generated map is empty
- The computation of map size with tiles was fixed (height could be miscomputed)
[16 apr 2014]
General: integrated all (relevant) patches from the minetest/minetestmapper tree
(only patches that actually conflict with my work were obviously not merged)
Features:
- A grid can now be added to the map ( with '--tiles')
Gridlines are drawn 'between' map rows/columns, and therefore do
not obscure map data. (as a consequence, straight lines may not look
straight where they cross gridlines).
- Alpha transparency was added (merged from minetest/minetestmapper)
Some improvements and fixes were added to make it work as expected
- An option was added to print progress information during map generation
This prints the z-coordinate of every block-row being rendered.
- The map geometry can now be specified with node-granularity
The geometry is no longer always rounded away from zero, to a multiple of 16.
I.e. requesting a 80x82 map will result in a 80x82 map, not a 80x96 map
(or even 96x112).
The old behavior (i.e. block-granularity) is still available as well.
- The colors.txt file is now searched for in different locations
The mapper looks in the world directory for a colors.txt file by default
Alternatively, the colors.txt file in $HOME/.minetest is used if it exists.
A colors.txt file in the current directory is a last resort case, and causes a
warning message.
Enhancements:
- Colors.txt is no longer included in the executable (merged from minetest/minetestmapper)
- Option and colors parsing failures are handled more gracefully
Bugfixes:
- The computation of origin location and player locations was fixed (off-by-one)
- Colors.txt is now parsed line-by-line, and errors are reported.
Errors no longer cause the remainder of the file to be silently ignored.
- A failure to create the image for lack of memory is now caught.
When a lack of memory is to be expected during image generation, a warning is printed
before image generation starts.
- The handling of an alpha component in colors was fixed
[26 mar 2014]
Features:
- A map of the *requested* size can now be generated (after rounding to blocks)
The option --forcegeometry makes sure the map is not reduced in size if the
world is smaller than the requested geometry.
Rounding to a multiple of the block size (i.e. 16) still happens.
Enhancements:
- The size of the map is not limited by default
By default, only part of the world was included in the map
- Performance was significantly improved
- An ability to report the sizes of the world and of the map was added
Bugfixes:
- Fix geometry so that w and h are the map dimensions
- Vertical limits handling (--min-y and --max-y) was fixed, and now works as expected
- Failure to open the output file is now caught and handled gracefully
- The computation of block number bounds was fixed (off-by-one)
[16 feb 2014]
Forked from sfan5/minetest-mapper-cpp