GithubHelp home page GithubHelp logo

mapcrafter / mapcrafter Goto Github PK

View Code? Open in Web Editor NEW
630.0 44.0 155.0 734.29 MB

High Performance Minecraft Map Renderer.

Home Page: http://mapcrafter.org

License: GNU General Public License v3.0

C++ 91.79% HTML 0.33% JavaScript 3.13% CSS 1.08% C 0.13% Shell 0.09% Python 1.83% CMake 1.46% Java 0.16%

mapcrafter's Introduction

Mapcrafter Build Status

For Minecraft 1.13, see issue #113. TL;DR: Minecraft 1.13 support is pretty much complete, few small features and full documentation are still in progress. Can be built from source from world113 branch or nightly packages can be used.

by Moritz Hilscher

Due to my university studies and other projects, unfortunately I'm not able to develop new features for Mapcrafter anymore. I'll try to keep up with the issues on GitHub from time to time, so if you're experiencing a problem, don't mind reporting it. You can still submit feature requests in case I or someone else decides to do some work on Mapcrafter. I'm happy about PRs too. If you want to work on Mapcrafter and need help with something just ask me (Mail, IRC, GitHub), I can tell you a bit about how the project is structured.

Mapcrafter is a high performance Minecraft map renderer written in C++. It renders Minecraft worlds to a bunch of images which are viewable in any webbrowser using Leaflet.js.

Mapcrafter is free software and available under the GPL license. You can access the latest source code of Mapcrafter on GitHub: http://github.com/mapcrafter/mapcrafter

Thanks to pigmap and Minecraft Overviewer, whose documentations and source code were very helpful. I also used the alpha blending code of pigmap and some maps stuff of the template from Minecraft Overviewer.

Features

  • Web output: Render your Minecraft worlds to maps viewable in any webbrowser!
  • Different render views: Choose between different perspectives to render your world from! A 2D topdown and a 3D isometric render view are available!
  • Different rotations: Choose from four different rotations to render your worlds from!
  • Different render modes: Choose between different render modes like day, night and cave for your maps!
  • Different overlays: Show additional information on your map! For example: Where can slimes spawn? Where can monsters spawn at night?
  • Configuration files: Highly-customizable which worlds are rendered with which render view and other render parameters!
  • Markers: Automatically generated markers from your Minecraft world data!
  • Other stuff: Biome colors, incremental rendering, multithreading

Requirements

  • A Linux-based or Unix-like operating system like Mac OS
  • A decent C++ compiler (preferable gcc >= 4.4, or clang), CMake and make if you want to build Mapcrafter from source
  • Some libraries:
    • libpng
    • libjpeg (but you should use libjpeg-turbo as drop in replacement)
    • libboost-iostreams
    • libboost-system
    • libboost-filesystem (>= 1.42)
    • libboost-program-options
    • (libboost-test if you want to use the tests)
  • For your Minecraft worlds:
    • Anvil world format
    • Minecraft 1.6 resource packs

Examples

There are a few example maps of the renderer on the GitHub Wiki. Please feel free to add your own map to this list.

Documentation and Help

The documentation is in the docs/ directory and you can build it yourself with Sphinx. You can read a built version of the documentation on docs.mapcrafter.org and you can also download other builds.

If you find bugs or problems when using Mapcrafter or if you have ideas for new features, then please feel free to add an issue to the GitHub issue tracker.

You can contact me in IRC (#mapcrafter on Freenode). Use the webclient if you are new to IRC. I will be there most of the time, but please bear in mind that I can't be available all the time. If I'm not there, wait some time or try another time of the day.

You can also ask questions in the Minecraft Forum thread.

Version history

v.2.4

  • Add support for Minecraft 1.11 and 1.12 blocks (thanks to Bjarno #256)

v.2.3.1

  • Fixed wrong Leaflet coordinate conversion in topdown and isometric render view when using different tiles sizes and fixed wrong chunk <-> tile mapping which caused the issue in isometric render view (#198)
    • Unfortunately you have to force-re-render your isometric maps as the isometric chunk <-> tile mapping has slightly changed.

v.2.3

  • Added support for Minecraft 1.10 blocks (#226)
  • Added new bootstrap web UI (thanks to jamestaylr #205)
  • Added postfix option for signs to also use a postfix instead of just a prefix (#223)
  • Added --force-render-all to force-render all maps (#212)
  • Fixed map selection on mobile devices (thanks to joshproehl #220 #123)
  • Fixed a bug in the bilinear image resizing algorithm that caused dark sides of grass and other transparent blocks

v.2.2.1

  • Updated Minecraft version file to 1.9

v.2.2

  • Added support for 1.9 blocks (and hoppers)
  • Fixed bug which caused water not being rendered (#178)
  • Fixed circular crop overflowing bug (#179)
  • Fixed a config validation bug (#185)

v.2.1

  • Added support for corner stairs (thanks for some Minecraft Overviewer code!)
  • Added signs to isometric and topdown render view
  • Fixed a lighting bug that appeared using some Debian packages
  • Fixed wrong slime overlay
  • Fixed rotation of pumpkins in isometric render view

v.2.0

  • Huge internal code refactoring™
  • Support for multiple rendering engines: A 2D topdown and the usual 3D isometric render view are available
  • Support for indexed png images, reducing size of output images drastically
  • New overlay render modes (slime chunks, show where monsters can spawn at day/night)
  • Configurable tile sizes (to improve performance for small texture sizes)
  • Configurable water opacity/transparency
  • Restructured internal render management components to allow integration of Mapcrafter rendering core into different applications
  • Further integration of Mapcrafter into a graphical user interface (mapcrafter-gui)
  • There is a new repository for Debian/Ubuntu packages. Please have a look at the documentation and update your apt source listings!

v.1.5.4

  • Added a detection in the CMake files which compiler C++11 flag to use (for newer compilers which do not support the older -std=c++0x flag)
  • Fixed bug with the marker tool (new json sign text format was not parsed properly)
  • Fixed bug in texture extraction script (convert command was not properly detected)
  • Fixed bug with some textures (#122) by making Mapcrafter able to read indexed PNG images and PNG images with different other color formats

v.1.5.3

  • Better handling of corrupt world files (for now, bigger refactoring of that probably later)
  • Added a fix using imagemagick in texture extraction script to prevent libpng warnings
  • Fixed bug with boost program options which made it unable to use paths containing spaces for the --config command line option
  • Fixed wrong error messages when loading configuration files (Mapcrafter tried to read not existing files and even directories if specified as configuration file)

v.1.5.2

  • Fixed the marker tool to work with the new internal Minecraft 1.8 sign format
  • Fixed bug with global logging configuration file installed and searched in wrong directory
  • Fixed bug causing the Leaflet map being stuck
  • Fixed some small issues with new 1.8 blocks

v.1.5.1

  • Added ability to configure logging facility with configuration files
  • Added colored terminal output for warning/error log messages
  • Improved cave rendermode with a new high contrast block coloring (thanks to dtfinch, #100), old behavior is still available with a configuration option for compatibility reasons
  • Added support for Minecraft 1.8
    • Since the structure of the textures has changed a bit (especially chest textures), you should extract the texture files from a 1.8 Minecraft Jar file to a new, clean texture directory.

v.1.5

  • Started internal refactoring to improve integration with possible Mapcrafter GUI or other programs using Mapcrafter's functionality
  • Added own logging facility, further configuration with different log sinks will follow soon™
  • Changed global sections from [global:sections] to [global:section] to simplify internal parsing procedures
  • Added option to specify a block mask and render only specific blocks
  • Added option to hide chunks that are not populated yet

v.1.4.3

  • Fixed a lighting bug on FreeBSD and Windows
  • Improved build support on Windows for MinGW and Visual C++

v.1.4.2

  • Fixed a small problem with the multi threading

v.1.4.1

  • Fixed mapcrafter_markers not being installed
  • Fixed debian package dependency issues with libjpeg-turbo
  • Fixed issue with CMake not finding libjpeg outside the default search path

v.1.4

  • Added option to use JPEGs as image output format
  • Added option to change the background color of the map

v.1.3.2

  • Added option to hide specific marker groups in the web interface by default
  • Added a way to add more user-defined markers using the Leaflet API (#71)
  • Changed markers.js file attribute icon_size to iconSize
    • You should update your markers.js file and re-run mapcrafter_markers if you use markers.
  • Fixed a bug causing Mapcrafter not to use the data/ directory as resource directory (#70)

v.1.3.1

  • Added simple progress output to marker generation program (optional)
  • Added option to hide empty signs by default
  • Fixed a bug (#65) causing invalid Javascript being generated
  • Markers use the world section name to distinguish between the worlds, not the world_name attribute

v.1.3

  • Added ability to automatically generate markers from signs in the Minecraft world
    • The format to specify markers has changed, please have a look at the documentation and update your markers.js file.

v.1.2

  • Started refactoring the web template
    • **Since some files were split up and are now in a separate static/ directory, you should manually delete the old .js .css files in your map directories and update the maps with mapcrafter to prevent a mess with old files.
  • Added new options to specify the default view of a map
  • Added new option to specify the dimension of a world
  • Fixed lighting of The End
  • Fixed a texture bug (#61) causing segfaults

v.1.1.3

  • Fixed the batch mode showing an animated progress bar

v.1.1.2

  • Fixed a bug (#58) with mapcrafter hanging when there are no tiles to render

v.1.1.1

  • Refactored multi threading and some other things
  • Fixed some small block issues:
    • Fixed downward spreading lava
    • Fixed not rendered nether portal blocks
    • Improved appearance of flat snow
    • Added some special (not used in the game) slabs
  • Fixed a configuration bug

v.1.1

  • Added ability to crop the world and render only a specific part of it

v.1.0.1

  • Fixed jungle wooden planks rendering as birch planks
  • Changed worldName attribute in template from part of the world path to the name of the world section
  • Added hint about rendering the Nether/End to documentation

v.1.0

  • Added new configuration file format (consult the documentation for more information):
    • Different section types for Minecraft Worlds/rendered maps
    • Better validation of configuration files
  • Some internal reworkings

v.0.6

  • Added support for Minecraft 1.7 blocks and biomes
  • Added some more blocks such as trip wire, trip wire hook and magic floating cocoa beans

v.0.5.1

  • Added support for Minecraft 1.6 Resource Packs
    • (You have to delete your old textures and get them new from a new Minecraft Jar file)
  • Added some new blocks from Minecraft 1.6
  • Better compatibility for older gcc (4.4 +) and boost versions
  • Some code reworkings, replaced plain Makefile with CMake

v.0.5

  • Added a new configuration file format to specify worlds to render
  • Added different rendermodes: default, lighting (day/night), cave
  • Added ability to render different worlds/rotations/rendermodes into one output file
  • Added new blocks: dragon egg, redstone wires, some redstone/quartz stuff from Minecraft 1.5
  • Added alternative way to check if tiles are required when rendering incremental (image file timestamps)
  • Added alternative Leaflet template

v.0.4.1

  • Fixed a bug preventing rotated worlds
  • Fixed a small compiler error for some gcc versions
  • Fixed the problem with the world scanning (world scanning seems to be stuck) when the max zoom level is higher
  • Added compatibility for older boost filesystem versions

v.0.4

  • Added support for biomes
  • Added support for Minecraft 1.5 texture packs
  • Added some new blocks
  • Some template things: url hash with current view, better support for markers

v.0.3

  • Reworked multithreading
  • Added possibility to render the world rotated
  • Reworked block image generation to work with the rotated worlds, fixed rotation of blocks
  • Added nicer beacon, fixed wrong stone slab texture

v.0.2

  • Added support for chests, fences, fence gates
  • Added option --batch, to render without the animated progress bar
  • Small fixes for end portal frame, enchantment table to work with all texture sizes
  • Some code reworking, more comments

v.0.1 (December 2012)

  • First version on GitHub
  • Features:
    • Render Minecraft Worlds to tiles and an HTML-File to view them like a Google Map
    • Incremental rendering, multithreading

mapcrafter's People

Contributors

agrif avatar bjarno avatar bmwiedemann avatar donkers avatar dtfinch avatar fenhl avatar fidian avatar gmr avatar gr4y avatar jamcole avatar jamestaylr avatar jernejstrasner avatar joshproehl avatar konimaru avatar m0r13 avatar mikeweber avatar mrdos avatar pniedzielski avatar salzig avatar thorerik avatar wraithan avatar zkraus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mapcrafter's Issues

Trouble compiling on FreeBSD 9

Hi,
I had to apply the following patch..

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2a0545d..bb8c1e7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -36,7 +36,7 @@ add_subdirectory("${PROJECT_SOURCE_DIR}/tools")
 add_subdirectory("${PROJECT_SOURCE_DIR}/test")

 add_library(mapcraftercore STATIC ${SOURCE} ${HEADERS})
-target_link_libraries(mapcraftercore ${Boost_IOSTREAMS_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY})
+target_link_libraries(mapcraftercore ${Boost_IOSTREAMS_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_PROGRAM_OPTIONS_LIBRARY} stdc++)

 if(Boost_UNIT_TEST_FRAMEWORK_FOUND)
        target_link_libraries(mapcraftercore ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY})
diff --git a/src/mc/nbt.cpp b/src/mc/nbt.cpp
index ca9c0dc..71e26f0 100644
--- a/src/mc/nbt.cpp
+++ b/src/mc/nbt.cpp
@@ -25,7 +25,11 @@
 #include <boost/iostreams/filtering_stream.hpp>
 #include <boost/iostreams/filter/gzip.hpp>
 #include <boost/iostreams/filter/zlib.hpp>
+#ifdef __FreeBSD__
+#include <sys/endian.h>
+#else
 #include <endian.h>
+#endif

 namespace mapcrafter {
 namespace mc {
diff --git a/src/mc/region.cpp b/src/mc/region.cpp
index e4aee0f..08b9814 100644
--- a/src/mc/region.cpp
+++ b/src/mc/region.cpp
@@ -21,7 +21,11 @@

 #include <fstream>
 #include <cstdlib>
+#ifdef __FreeBSD__
+#include <sys/endian.h>
+#else
 #include <endian.h>
+#endif

 namespace mapcrafter {
 namespace mc {

However now I am getting stuck on..

[midget 17:12] ~/projects/mapcrafter >env VERBOSE=1 gmake
/usr/local/bin/cmake -H/home/darius/projects/mapcrafter/src -B/home/darius/projects/mapcrafter --check-build-system CMakeFiles/Makefile.cmake 0
/usr/local/bin/cmake -E cmake_progress_start /home/darius/projects/mapcrafter/CMakeFiles /home/darius/projects/mapcrafter/CMakeFiles/progress.marks
gmake -f CMakeFiles/Makefile2 all
gmake[1]: Entering directory `/home/darius/projects/mapcrafter'
gmake -f CMakeFiles/mapcraftercore.dir/build.make CMakeFiles/mapcraftercore.dir/depend
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
cd /home/darius/projects/mapcrafter && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/darius/projects/mapcrafter/src /home/darius/projects/mapcrafter/src /home/darius/projects/mapcrafter /home/darius/projects/mapcrafter /home/darius/projects/mapcrafter/CMakeFiles/mapcraftercore.dir/DependInfo.cmake --color=
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
gmake -f CMakeFiles/mapcraftercore.dir/build.make CMakeFiles/mapcraftercore.dir/build
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
gmake[2]: Nothing to be done for `CMakeFiles/mapcraftercore.dir/build'.
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
/usr/local/bin/cmake -E cmake_progress_report /home/darius/projects/mapcrafter/CMakeFiles  2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
[ 66%] Built target mapcraftercore
gmake -f CMakeFiles/mapcrafter.dir/build.make CMakeFiles/mapcrafter.dir/depend
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
cd /home/darius/projects/mapcrafter && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/darius/projects/mapcrafter/src /home/darius/projects/mapcrafter/src /home/darius/projects/mapcrafter /home/darius/projects/mapcrafter /home/darius/projects/mapcrafter/CMakeFiles/mapcrafter.dir/DependInfo.cmake --color=
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
gmake -f CMakeFiles/mapcrafter.dir/build.make CMakeFiles/mapcrafter.dir/build
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
gmake[2]: Nothing to be done for `CMakeFiles/mapcrafter.dir/build'.
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
/usr/local/bin/cmake -E cmake_progress_report /home/darius/projects/mapcrafter/CMakeFiles  1
[ 70%] Built target mapcrafter
gmake -f tools/CMakeFiles/nbtdump.dir/build.make tools/CMakeFiles/nbtdump.dir/depend
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
cd /home/darius/projects/mapcrafter && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/darius/projects/mapcrafter/src /home/darius/projects/mapcrafter/src/tools /home/darius/projects/mapcrafter /home/darius/projects/mapcrafter/tools /home/darius/projects/mapcrafter/tools/CMakeFiles/nbtdump.dir/DependInfo.cmake --color=
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
gmake -f tools/CMakeFiles/nbtdump.dir/build.make tools/CMakeFiles/nbtdump.dir/build
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
gmake[2]: Nothing to be done for `tools/CMakeFiles/nbtdump.dir/build'.
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
/usr/local/bin/cmake -E cmake_progress_report /home/darius/projects/mapcrafter/CMakeFiles  18
[ 75%] Built target nbtdump
gmake -f tools/CMakeFiles/testtextures.dir/build.make tools/CMakeFiles/testtextures.dir/depend
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
cd /home/darius/projects/mapcrafter && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/darius/projects/mapcrafter/src /home/darius/projects/mapcrafter/src/tools /home/darius/projects/mapcrafter /home/darius/projects/mapcrafter/tools /home/darius/projects/mapcrafter/tools/CMakeFiles/testtextures.dir/DependInfo.cmake --color=
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
gmake -f tools/CMakeFiles/testtextures.dir/build.make tools/CMakeFiles/testtextures.dir/build
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
gmake[2]: Nothing to be done for `tools/CMakeFiles/testtextures.dir/build'.
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
/usr/local/bin/cmake -E cmake_progress_report /home/darius/projects/mapcrafter/CMakeFiles  24
[ 79%] Built target testtextures
gmake -f test/CMakeFiles/test_all.dir/build.make test/CMakeFiles/test_all.dir/depend
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
cd /home/darius/projects/mapcrafter && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/darius/projects/mapcrafter/src /home/darius/projects/mapcrafter/src/test /home/darius/projects/mapcrafter /home/darius/projects/mapcrafter/test /home/darius/projects/mapcrafter/test/CMakeFiles/test_all.dir/DependInfo.cmake --color=
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
gmake -f test/CMakeFiles/test_all.dir/build.make test/CMakeFiles/test_all.dir/build
gmake[2]: Entering directory `/home/darius/projects/mapcrafter'
Linking CXX executable test_all
cd /home/darius/projects/mapcrafter/test && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/test_all.dir/link.txt --verbose=1
/usr/local/bin/g++46       CMakeFiles/test_all.dir/test_all.cpp.o CMakeFiles/test_all.dir/test_image.cpp.o CMakeFiles/test_all.dir/test_nbt.cpp.o CMakeFiles/test_all.dir/test_pos.cpp.o CMakeFiles/test_all.dir/test_tile.cpp.o  -o test_all  ../libmapcraftercore.a /usr/local/lib/libboost_iostreams.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_filesystem.so /usr/local/lib/libboost_program_options.so -lstdc++ /usr/local/lib/libboost_unit_test_framework.so -lpng -lpthread -Wl,-rpath,/usr/local/lib 
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function `mapcrafter::mc::nbt::ScalarTag<double, (mapcrafter::mc::nbt::TagType)6>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIdLNS1_7TagTypeE6EE4dumpERSoRKSs[mapcrafter::mc::nbt::ScalarTag<double, (mapcrafter::mc::nbt::TagType)6>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const]+0x65): undefined reference to `void mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<double, (mapcrafter::mc::nbt::TagType)6> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mapcrafter::mc::nbt::ScalarTag<double, (mapcrafter::mc::nbt::TagType)6>)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function `mapcrafter::mc::nbt::ScalarTag<short, (mapcrafter::mc::nbt::TagType)2>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIsLNS1_7TagTypeE2EE4dumpERSoRKSs[mapcrafter::mc::nbt::ScalarTag<short, (mapcrafter::mc::nbt::TagType)2>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const]+0x65): undefined reference to `void mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<short, (mapcrafter::mc::nbt::TagType)2> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mapcrafter::mc::nbt::ScalarTag<short, (mapcrafter::mc::nbt::TagType)2>)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function `mapcrafter::mc::nbt::ScalarTag<int, (mapcrafter::mc::nbt::TagType)3>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIiLNS1_7TagTypeE3EE4dumpERSoRKSs[mapcrafter::mc::nbt::ScalarTag<int, (mapcrafter::mc::nbt::TagType)3>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const]+0x63): undefined reference to `void mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<int, (mapcrafter::mc::nbt::TagType)3> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mapcrafter::mc::nbt::ScalarTag<int, (mapcrafter::mc::nbt::TagType)3>)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function `mapcrafter::mc::nbt::ScalarTag<long, (mapcrafter::mc::nbt::TagType)4>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIlLNS1_7TagTypeE4EE4dumpERSoRKSs[mapcrafter::mc::nbt::ScalarTag<long, (mapcrafter::mc::nbt::TagType)4>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const]+0x65): undefined reference to `void mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<long, (mapcrafter::mc::nbt::TagType)4> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mapcrafter::mc::nbt::ScalarTag<long, (mapcrafter::mc::nbt::TagType)4>)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function `mapcrafter::mc::nbt::ScalarTag<float, (mapcrafter::mc::nbt::TagType)5>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIfLNS1_7TagTypeE5EE4dumpERSoRKSs[mapcrafter::mc::nbt::ScalarTag<float, (mapcrafter::mc::nbt::TagType)5>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const]+0x63): undefined reference to `void mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<float, (mapcrafter::mc::nbt::TagType)5> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mapcrafter::mc::nbt::ScalarTag<float, (mapcrafter::mc::nbt::TagType)5>)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function `mapcrafter::mc::nbt::TagArray<int, (mapcrafter::mc::nbt::TagType)11>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt8TagArrayIiLNS1_7TagTypeE11EE4dumpERSoRKSs[mapcrafter::mc::nbt::TagArray<int, (mapcrafter::mc::nbt::TagType)11>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const]+0x43e): undefined reference to `void mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::TagArray<int, (mapcrafter::mc::nbt::TagType)11>, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mapcrafter::mc::nbt::TagArray<int, (mapcrafter::mc::nbt::TagType)11>, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function `mapcrafter::mc::nbt::TagArray<signed char, (mapcrafter::mc::nbt::TagType)7>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt8TagArrayIaLNS1_7TagTypeE7EE4dumpERSoRKSs[mapcrafter::mc::nbt::TagArray<signed char, (mapcrafter::mc::nbt::TagType)7>::dump(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const]+0x403): undefined reference to `void mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::TagArray<signed char, (mapcrafter::mc::nbt::TagType)7>, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, mapcrafter::mc::nbt::TagArray<signed char, (mapcrafter::mc::nbt::TagType)7>, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
collect2: ld returned 1 exit status
gmake[2]: *** [test/test_all] Error 1
gmake[2]: Leaving directory `/home/darius/projects/mapcrafter'
gmake[1]: *** [test/CMakeFiles/test_all.dir/all] Error 2
gmake[1]: Leaving directory `/home/darius/projects/mapcrafter'
gmake: *** [all] Error 2

I ran cmake with..
env CC=/usr/local/bin/gcc46 CXX=/usr/local/bin/g++46 cmake src

and then built with gmake.

Compiling Error in chunk.cpp and chunk.h

I was receiving the following error when attempting to run make:

[ 4%] Building CXX object src/CMakeFiles/mapcraftercore.dir/config/config.cpp.o
/home/minecraft/map/mapcrafter/src/config/config.cpp: In member function âvoid mapcrafter::config::RenderWorldConfig::readFromConfig(const boost::filesystem::path&, const mapcrafter::config::ConfigFile&, const std::string&)â:
/home/minecraft/map/mapcrafter/src/config/config.cpp:72: error: âabsoluteâ is not a member of âfsâ
/home/minecraft/map/mapcrafter/src/config/config.cpp:74: error: âabsoluteâ is not a member of âfsâ
/home/minecraft/map/mapcrafter/src/config/config.cpp: In member function âbool mapcrafter::config::RenderConfigParser::loadFile(const std::string&)â:
/home/minecraft/map/mapcrafter/src/config/config.cpp:153: error: âabsoluteâ is not a member of âfsâ
/home/minecraft/map/mapcrafter/src/config/config.cpp:155: error: âabsoluteâ is not a member of âfsâ
make[2]: *** [src/CMakeFiles/mapcraftercore.dir/config/config.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/mapcraftercore.dir/all] Error 2
make: *** [all] Error 2

I was able to correct by replacing "absolute" with "constant" as suggested here: #24

I am now running into the following issue:

[  4%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/chunk.cpp.o
In file included from /home/minecraft/map/mapcrafter/src/mc/chunk.h:23,
                 from /home/minecraft/map/mapcrafter/src/mc/chunk.cpp:20:
/home/minecraft/map/mapcrafter/src/mc/nbt.h: In member function âbool mapcrafter::mc::nbt::TagCompound::hasArray(const std::string&, int32_t) const [with T = mapcrafter::mc::nbt::TagArray<signed char, (mapcrafter::mc::nbt::TagType)7>]â:
/home/minecraft/map/mapcrafter/src/mc/chunk.cpp:66:   instantiated from here
/home/minecraft/map/mapcrafter/src/mc/nbt.h:262: error: a cast to a type other than an integral or enumeration type cannot appear in a constant-expression
/home/minecraft/map/mapcrafter/src/mc/nbt.h:262: error: a cast to a type other than an integral or enumeration type cannot appear in a constant-expression
make[2]: *** [src/CMakeFiles/mapcraftercore.dir/mc/chunk.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/mapcraftercore.dir/all] Error 2

Distro is CentOS 6, libraries have been updated (to the best of my knowledge).

I am not very Linux-savvy, so please assume you are talking to an idiot :D

-u keeps re-rendering the same changed titles

If I run a full render

./mapcrafter --texture-size 16 --render-leaves-transparent -i /path/to/world -o /output/path

and then run an incremental update

./mapcrafter -u --render-leaves-transparent -i /path/to/world -o /output/path

the same tiles ('Rendering 374 tiles on max zoom level 8.') keep getting re-rendered each time even though nothing has changed (no users are logged in to the server.

compiling test_all fails

im running archlinux

cmake output:

-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.54.0
-- Found the following Boost libraries:
-- iostreams
-- system
-- filesystem
-- program_options
-- Boost version: 1.54.0
-- Found the following Boost libraries:
-- unit_test_framework
-- Configuring done
-- Generating done
-- Build files have been written to: /server/mapcrafter

make ouput:

Scanning dependencies of target mapcraftercore
[ 4%] Building CXX object src/CMakeFiles/mapcraftercore.dir/util.cpp.o
[ 8%] Building CXX object src/CMakeFiles/mapcraftercore.dir/config/config.cpp.o
[ 12%] Building CXX object src/CMakeFiles/mapcraftercore.dir/config/ini.cpp.o
[ 16%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/cache.cpp.o
[ 20%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/chunk.cpp.o
[ 24%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/nbt.cpp.o
[ 28%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/pos.cpp.o
[ 32%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/region.cpp.o
[ 36%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/world.cpp.o
[ 40%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/image.cpp.o
[ 44%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/manager.cpp.o
[ 48%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/render.cpp.o
[ 52%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/textures.cpp.o
[ 56%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/tile.cpp.o
[ 60%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/rendermodes/base.cpp.o
[ 64%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/rendermodes/cave.cpp.o
[ 68%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/rendermodes/lighting.cpp.o
Linking CXX shared library libmapcraftercore.so
[ 68%] Built target mapcraftercore
Scanning dependencies of target mapcrafter
[ 72%] Building CXX object src/CMakeFiles/mapcrafter.dir/mapcrafter.cpp.o
Linking CXX executable mapcrafter
[ 72%] Built target mapcrafter
Scanning dependencies of target nbtdump
[ 76%] Building CXX object src/tools/CMakeFiles/nbtdump.dir/nbtdump.cpp.o
Linking CXX executable nbtdump
[ 76%] Built target nbtdump
Scanning dependencies of target testtextures
[ 80%] Building CXX object src/tools/CMakeFiles/testtextures.dir/testtextures.cpp.o
Linking CXX executable testtextures
[ 80%] Built target testtextures
Scanning dependencies of target test_all
[ 84%] Building CXX object src/test/CMakeFiles/test_all.dir/test_all.cpp.o
[ 88%] Building CXX object src/test/CMakeFiles/test_all.dir/test_image.cpp.o
[ 92%] Building CXX object src/test/CMakeFiles/test_all.dir/test_nbt.cpp.o
[ 96%] Building CXX object src/test/CMakeFiles/test_all.dir/test_pos.cpp.o
[100%] Building CXX object src/test/CMakeFiles/test_all.dir/test_tile.cpp.o
Linking CXX executable test_all
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function mapcrafter::mc::nbt::ScalarTag<double, (mapcrafter::mc::nbt::TagType)6>::dump(std::ostream&, std::string const&) const': test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIdLNS1_7TagTypeE6EE4dumpERSoRKSs[_ZNK10mapcrafter2mc3nbt9ScalarTagIdLNS1_7TagTypeE6EE4dumpERSoRKSs]+0x5c): undefined reference tovoid mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<double, (mapcrafter::mc::nbt::TagType)6> >(std::ostream&, std::string const&, mapcrafter::mc::nbt::ScalarTag<double, (mapcrafter::mc::nbt::TagType)6>)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function mapcrafter::mc::nbt::ScalarTag<float, (mapcrafter::mc::nbt::TagType)5>::dump(std::ostream&, std::string const&) const': test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIfLNS1_7TagTypeE5EE4dumpERSoRKSs[_ZNK10mapcrafter2mc3nbt9ScalarTagIfLNS1_7TagTypeE5EE4dumpERSoRKSs]+0x5c): undefined reference tovoid mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<float, (mapcrafter::mc::nbt::TagType)5> >(std::ostream&, std::string const&, mapcrafter::mc::nbt::ScalarTag<float, (mapcrafter::mc::nbt::TagType)5>)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function mapcrafter::mc::nbt::ScalarTag<long, (mapcrafter::mc::nbt::TagType)4>::dump(std::ostream&, std::string const&) const': test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIlLNS1_7TagTypeE4EE4dumpERSoRKSs[_ZNK10mapcrafter2mc3nbt9ScalarTagIlLNS1_7TagTypeE4EE4dumpERSoRKSs]+0x5a): undefined reference tovoid mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<long, (mapcrafter::mc::nbt::TagType)4> >(std::ostream&, std::string const&, mapcrafter::mc::nbt::ScalarTag<long, (mapcrafter::mc::nbt::TagType)4>)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function mapcrafter::mc::nbt::ScalarTag<int, (mapcrafter::mc::nbt::TagType)3>::dump(std::ostream&, std::string const&) const': test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIiLNS1_7TagTypeE3EE4dumpERSoRKSs[_ZNK10mapcrafter2mc3nbt9ScalarTagIiLNS1_7TagTypeE3EE4dumpERSoRKSs]+0x58): undefined reference tovoid mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<int, (mapcrafter::mc::nbt::TagType)3> >(std::ostream&, std::string const&, mapcrafter::mc::nbt::ScalarTag<int, (mapcrafter::mc::nbt::TagType)3>)'
CMakeFiles/test_all.dir/test_nbt.cpp.o: In function mapcrafter::mc::nbt::ScalarTag<short, (mapcrafter::mc::nbt::TagType)2>::dump(std::ostream&, std::string const&) const': test_nbt.cpp:(.text._ZNK10mapcrafter2mc3nbt9ScalarTagIsLNS1_7TagTypeE2EE4dumpERSoRKSs[_ZNK10mapcrafter2mc3nbt9ScalarTagIsLNS1_7TagTypeE2EE4dumpERSoRKSs]+0x5a): undefined reference tovoid mapcrafter::mc::nbt::dumpTag<mapcrafter::mc::nbt::ScalarTag<short, (mapcrafter::mc::nbt::TagType)2> >(std::ostream&, std::string const&, mapcrafter::mc::nbt::ScalarTag<short, (mapcrafter::mc::nbt::TagType)2>)'
collect2: error: ld returned 1 exit status
make[2]: *** [src/test/test_all] Error 1
make[1]: *** [src/test/CMakeFiles/test_all.dir/all] Error 2
make: *** [all] Error 2

Segfault in mc/nbt.cpp (line 314)

Hi. I've got a segfault while map rendering in mc/nbt.cpp (Win8 / cygwin / single survival 1.5.1).
Everything is ok if I delete TagCompound's destructor, but it's a wrong way I think :D

GDB output is listed below.

GNU gdb (GDB) 7.6.50.20130408-cvs (cygwin-special)
This GDB was configured as "i686-cygwin".
Reading symbols from /home/Kirill/mapcrafter-master/src/mapcrafter...done.
(gdb) run -i input -o output
Starting program: /home/Kirill/mapcrafter-master/src/mapcrafter -i input -o output
[New Thread 10272.0x120c]
[New Thread 10272.0x2840]
Starting renderer for world "input".
cygwin warning:
MS-DOS style path detected: data/textures\chest.png
Preferred POSIX equivalent is: data/textures/chest.png
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Setting texture size to 12.
Scanning world...
Rendering 7964 tiles on max zoom level 9.
[> ] 0.01% 1/7964 0.00/s
Program received signal SIGSEGV, Segmentation fault.
0x0040999f in mapcrafter::mc::nbt::TagCompound::~TagCompound (this=0x808cb700,
__in_chrg=) at mc/nbt.cpp:314
314 delete it->second;

Unable to read tile ...

Wasn't sure whether to dupe this bug, but it's different from the similarly described one on your tracker in that it occurs w/o the -u flag.

I have mapcrafter running via a superuser crontab entry, writing to my webserver's path. This occurs while MC server is running. The crontab calls a script that invokes it like so:

mapcrafter -c mapcrafter.cfg -j 4

Example output:
(1/1) Rendering map ivalice ("Ivalice"):
Scanning the world...
The max zoom level was increased from 6 to 8.
I will move some files around...
(1.1/1.1) Rendering rotation top-left:
Last rendering was on 29 Nov 2013, 21:04:57.
Thread 0 renders 1006 tiles on max zoom level 8.
Thread 1 renders 1007 tiles on max zoom level 8.
Thread 2 renders 1014 tiles on max zoom level 8.
Thread 3 renders 1019 tiles on max zoom level 8.
Unable to read tile 2/3/3/2/3/2/1/4 from "/var/www/mapcrafter/ivalice/tl/2/3/3/2/3/2/1/4.png"
0 0
Unable to read tile 2/3/3/2/3/2/4/2 from "/var/www/mapcrafter/ivalice/tl/2/3/3/2/3/2/4/2.png"
0 0
Unable to read tile 2/3/3/1/4/2/3/3 from "/var/www/mapcrafter/ivalice/tl/2/3/3/1/4/2/3/3.png"
0 0
Unable to read tile 2/3/3/2/4/4/1/1 from "/var/www/mapcrafter/ivalice/tl/2/3/3/2/4/4/1/1.png"
0 0
Unable to read tile 2/3/3/2/4/4/2 from "/var/www/mapcrafter/ivalice/tl/2/3/3/2/4/4/2.png"
0 0
Unable to read tile 2/3/3/2/4/1/4 from "/var/www/mapcrafter/ivalice/tl/2/3/3/2/4/1/4.png"
0 0
Unable to read tile 2/3/4/3/2/1/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/3/2/1/1.png"
0 0
Unable to read tile 2/3/4/3/2/1/4/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/3/2/1/4/1.png"
0 0
Unable to read tile 2/3/4/3/2/4/2/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/3/2/4/2/1.png"
0 0
Unable to read tile 2/3/4/1/3/3/3/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/1/3/3/3/1.png"
0 0
Unable to read tile 2/3/4/4/4/4/2/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/4/4/4/2/1.png"
0 0
Unable to read tile 2/3/4/4/1/3/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/4/1/3/1.png"
0 0
Unable to read tile 2/3/4/4/1/3/4/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/4/1/3/4/1.png"
0 0
Unable to read tile 2/3/4/4/3/2/2/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/4/3/2/2/1.png"
0 0
Unable to read tile 2/3/4/4/4/1/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/4/4/1/1.png"
0 0
Unable to read tile 2/3/4/4/4/1/4/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/4/4/1/4/1.png"
0 0
Unable to read tile 2/3/4/3/1/2/2/1 from "/var/www/mapcrafter/ivalice/tl/2/3/4/3/1/2/2/1.png"
0 0
Unable to read tile 2/4/3/3/3/3/1 from "/var/www/mapcrafter/ivalice/tl/2/4/3/3/3/3/1.png"
0 0
Unable to read tile 2/4/3/3/3/3/4/1 from "/var/www/mapcrafter/ivalice/tl/2/4/3/3/3/3/4/1.png"
0 0
Unable to read tile 2/4/3/3/3/4/3/4 from "/var/www/mapcrafter/ivalice/tl/2/4/3/3/3/4/3/4.png"
0 0
Unable to read tile 3/2/4/2/4/1/4/2 from "/var/www/mapcrafter/ivalice/tl/3/2/4/2/4/1/4/2.png"
0 0
Unable to read tile 3/2/4/2/4/1/4/4 from "/var/www/mapcrafter/ivalice/tl/3/2/4/2/4/1/4/4.png"
0 0
Unable to read tile 4/1/1/3/3/3/3/4 from "/var/www/mapcrafter/ivalice/tl/4/1/1/3/3/3/3/4.png"
0 0
Unable to read tile 4/1/1/4/1/4/2/2 from "/var/www/mapcrafter/ivalice/tl/4/1/1/4/1/4/2/2.png"
0 0
Unable to read tile 4/1/1/4/1/4/3 from "/var/www/mapcrafter/ivalice/tl/4/1/1/4/1/4/3.png"
0 0
Unable to read tile 4/2/1/1/1/2/2/2 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/1/2/2/2.png"
0 0
Unable to read tile 4/2/1/1/1/2/2/4 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/1/2/2/4.png"
0 0
Unable to read tile 4/2/1/1/1/2/4/2 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/1/2/4/2.png"
0 0
Unable to read tile 4/2/1/1/1/2/4/4 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/1/2/4/4.png"
0 0
Unable to read tile 4/2/1/1/3/2/2/2 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/3/2/2/2.png"
0 0
Unable to read tile 4/2/1/1/3/2/2/4 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/3/2/2/4.png"
0 0
Unable to read tile 4/1/3/1/1/3/1/2 from "/var/www/mapcrafter/ivalice/tl/4/1/3/1/1/3/1/2.png"
0 0
Unable to read tile 4/1/3/1/1/3/1/4 from "/var/www/mapcrafter/ivalice/tl/4/1/3/1/1/3/1/4.png"
0 0
Unable to read tile 4/1/3/1/1/3/3/2 from "/var/www/mapcrafter/ivalice/tl/4/1/3/1/1/3/3/2.png"
0 0
Unable to read tile 4/1/3/1/1/1/1/2 from "/var/www/mapcrafter/ivalice/tl/4/1/3/1/1/1/1/2.png"
0 0
Unable to read tile 4/1/3/1/1/1/1/4 from "/var/www/mapcrafter/ivalice/tl/4/1/3/1/1/1/1/4.png"
0 0
Unable to read tile 4/1/3/1/1/1/3/2 from "/var/www/mapcrafter/ivalice/tl/4/1/3/1/1/1/3/2.png"
0 0
Unable to read tile 4/1/3/1/1/1/3/4 from "/var/www/mapcrafter/ivalice/tl/4/1/3/1/1/1/3/4.png"
0 0
Unable to read tile 4/2/1/1/1/4/2/2 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/1/4/2/2.png"
0 0
Unable to read tile 4/2/1/1/1/4/2/4 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/1/4/2/4.png"
0 0
Unable to read tile 4/2/1/1/1/4/4/2 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/1/4/4/2.png"
0 0
Unable to read tile 4/2/1/1/1/4/4/4 from "/var/www/mapcrafter/ivalice/tl/4/2/1/1/1/4/4/4.png"
0 0
[==================================================>] 100.00% 4046/4046 76.34/s
Rendering remaining 134 composite tiles
Unable to read tile 2/3/4/1/3/4 from "/var/www/mapcrafter/ivalice/tl/2/3/4/1/3/4.png"
0 0
Unable to read tile 2/3/4/3/2/2 from "/var/www/mapcrafter/ivalice/tl/2/3/4/3/2/2.png"
0 0
Unable to read tile 2/3/4/4/1/4 from "/var/www/mapcrafter/ivalice/tl/2/3/4/4/1/4.png"
0 0
Unable to read tile 2/3/4/4/4/2 from "/var/www/mapcrafter/ivalice/tl/2/3/4/4/4/2.png"
0 0
[==================================================>] 100.00% 134/134 26.80/s
(1.1/1.1) Rendering rotation top-left took 58 seconds.

Rendering all worlds took 58 seconds.

Finished.....aaand it's gone!

Some help adding very basic support for block ids >255

Hi, I've been looking at this mapping software to map my Feed The beast server map but of course it does not currently support adding mods texture files directly, however as a small temporary work around we've looked into adding the textures into the default terrain.png file and referencing them in textures.cpp

All is working fine for block IDs <255 however Id's above that have some odd things happening like some will render as other vanilla blocks that have custom block renders, and some will not render at all.

Here is some pictures of the results:
Before any changes:
http://puu.sh/2sz1p
http://puu.sh/2sz2i

After some changes in a test world:
http://puu.sh/2sz4h

The blocks that you don't recognise as vanilla are working fine under IDs of 255, but the ones over are still having odd problems as you can see

All I want to know is what is causing it so I can fix it, I've taken a browse of the source and can't find anything explicitly limiting it to <255 IDs so I thought I would ask

Can't find ZLIB and PNG when compiling

Hi. I'm on Mac OS 10.9 and I'm getting this issue when I run cmake .

-- Boost version: 1.54.0
-- Found the following Boost libraries:
--   iostreams
--   system
--   filesystem
--   program_options
-- Boost version: 1.54.0
-- Found the following Boost libraries:
--   unit_test_framework
-- Could NOT find ZLIB (missing:  ZLIB_INCLUDE_DIR) 
CMake Error at /usr/local/Cellar/cmake/2.8.11.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
  Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/2.8.11.2/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/Cellar/cmake/2.8.11.2/share/cmake/Modules/FindPNG.cmake:71 (find_package_handle_standard_args)
  CMakeLists.txt:40 (find_package)

Any thoughts? As far as I can tell I have those two libraries installed, but I don't actually know how to confirm.

no build instructions or dependancies in the readme

I have compiled software, but am not a C expert. Unless told otherwise I am exppecting

./configure
make
sudo make install

Please post a list of build dependancies (EG. Boost) and build instructions on the readme.

Image export

It would be great to be able to export image (.png) from the map, even if its just one very big png.

Cannot compile

I'm using the ubuntu-server and also i installed all the requirements. Still im getting this error. What do i do wrong?

:~/bin/mapcrafter/src$ make
g++ -std=c++0x -Werror -O3 -I. -c util.cpp -o util.o
util.cpp: In function 'bool mapcrafter::copyFile(const boost::filesystem::path&, const boost::filesystem::path&)':
util.cpp:43:24: error: 'const struct boost::filesystem::path' has no member named 'c_str'
util.cpp:44:23: error: 'const struct boost::filesystem::path' has no member named 'c_str'
make: *** [util.o] Error 1

Compile error in nbtdump.cpp

Ouput from running "cmake ."

-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.54.0
-- Found the following Boost libraries:
-- iostreams
-- system
-- filesystem
-- program_options
-- Boost version: 1.54.0
-- Found the following Boost libraries:
-- unit_test_framework
-- Configuring done
-- Generating done
-- Build files have been written to: /server/mapcrafter

Ouput from running "make"

Scanning dependencies of target mapcraftercore
[ 4%] Building CXX object src/CMakeFiles/mapcraftercore.dir/util.cpp.o
[ 8%] Building CXX object src/CMakeFiles/mapcraftercore.dir/config/config.cpp.o
[ 12%] Building CXX object src/CMakeFiles/mapcraftercore.dir/config/ini.cpp.o
[ 16%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/cache.cpp.o
[ 20%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/chunk.cpp.o
[ 24%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/nbt.cpp.o
[ 28%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/pos.cpp.o
[ 32%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/region.cpp.o
[ 36%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/world.cpp.o
[ 40%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/image.cpp.o
[ 44%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/manager.cpp.o
[ 48%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/render.cpp.o
[ 52%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/textures.cpp.o
[ 56%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/tile.cpp.o
[ 60%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/rendermodes/base.cpp.o
[ 64%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/rendermodes/cave.cpp.o
[ 68%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/rendermodes/lighting.cpp.o
Linking CXX shared library libmapcraftercore.so
[ 68%] Built target mapcraftercore
Scanning dependencies of target mapcrafter
[ 72%] Building CXX object src/CMakeFiles/mapcrafter.dir/mapcrafter.cpp.o
Linking CXX executable mapcrafter
[ 72%] Built target mapcrafter
Scanning dependencies of target nbtdump
[ 76%] Building CXX object src/tools/CMakeFiles/nbtdump.dir/nbtdump.cpp.o
/server/mapcrafter/src/tools/nbtdump.cpp:4:20: fatal error: mc/nbt.h: No such file or directory
#include "mc/nbt.h"
^
compilation terminated.
make[2]: *** [src/tools/CMakeFiles/nbtdump.dir/nbtdump.cpp.o] Error 1
make[1]: *** [src/tools/CMakeFiles/nbtdump.dir/all] Error 2
make: *** [all] Error 2

I'm running Archlinux.

Deep linking to locations on map

My existing Overviewer map lets users link to locations on the map, a feature we use fairly frequently. Leaflet URLs are similarly structured in that they contain X/Y/Z coordinates, but linking to them does not position the map at the coordinates and zoom level indicated by the URL. (That URL should place the viewer at approximately the same location as the Overviewer example.) I realize this is probably a Leaflet configuration issue, but it would be nice if the out-of-box template supported this feature.

Error Unable to load several PNGs

Hi.
I just compiled your nice tool on my server and tried to generate a map. But I get the following error:

$ ./mapcrafter -i ~/server/minecraft/world -o ~/TEST -d ~/server/minecraft/world/data/
Starting renderer for world "/home/marco/server/minecraft/world".
Error Unable to load chest.png, largechest.png or enderchest.png!

How can I fix this? I searched for the pngs but didn't find them. Can I download them? And if yes, where do I have to place these?

Cheers, Marco

Error while compiling (running make)

While running make i get an error message:

techadler:~/mapcrafter-debug$ make
Scanning dependencies of target mapcraftercore
[  5%] Building CXX object CMakeFiles/mapcraftercore.dir/util.o
[ 10%] Building CXX object CMakeFiles/mapcraftercore.dir/config/config.o
/home/techadler/mapcrafter-debug/config/config.cpp: In member function âvoid mapcrafter::config::RenderWorldConfig::print(std::ostream&) constâ:
/home/techadler/mapcrafter-debug/config/config.cpp:132:12: error: âitâ does not name a type
/home/techadler/mapcrafter-debug/config/config.cpp:132:36: error: expected â;â before âitâ
/home/techadler/mapcrafter-debug/config/config.cpp:132:36: error: âitâ was not declared in this scope
make[2]: *** [CMakeFiles/mapcraftercore.dir/config/config.o] Error 1
make[1]: *** [CMakeFiles/mapcraftercore.dir/all] Error 2
make: *** [all] Error 2

I took a look in the source and make is complaining about this part:

void RenderWorldConfig::print(std::ostream& stream) const {
std::cout << name_short << " '" << name_long << "'" << std::endl;
std::cout << " input_dir " << input_dir << std::endl;
std::cout << " textures_dir " << textures_dir << std::endl;
std::cout << " texture_size " << texture_size << std::endl;
std::cout << " rotations ";
for (auto it = rotations.begin(); it != rotations.end(); ++it)  //This line seems to cause the error
std::cout << *it << " ";
std::cout << std::endl;
}

For as the syntax seems right to me and my C++ skills aren't the best, I wasn't able to think of any fix for this.

Make failure

Running Debian Squeeze (6.0) with manually installed libboost-dev package (http://packages.debian.org/squeeze/libboost-dev)

Message:
$make
g++ -std=c++0x -Wall -O3 -I. -c mc/pos.cpp -o mc/pos.o
mc/pos.cpp: In static member function вЂstatic mapcrafter::mc::RegionPos mapcrafter::mc::RegionPos::byFilename(const std::string&)’:
mc/pos.cpp:53: error: вЂstruct std::basic_string<char, std::char_traits, std::allocator >’ has no member named вЂstring’
make: *** [mc/pos.o] Error 1

The weird characters could be due to my ssh client (putty).

Hope this helps.

Map Markers feature request

Would you please add the ability to turn signs into map markers? You could have a configuration option to specify the sign text prefix in order to flag it as a map marker. For example:

In the conf file:
marker_prefix = Marker:

In your world, place a sign with the text:
Marker:
Steve died here.
Rest in peace.

That would place a map marker at that location, with a pop-up containing the text. All other signs, since they didn't start with "Marker:" would be ignored.

Errors compiling new texture code

I get the following error compiling the new texture code (g++ version info at the bottom)

adleong@Egyptian:~/mapcrafter-master/src$ make
g++ -std=c++0x -Wall -O3 -I. -c util.cpp -o util.o
g++ -std=c++0x -Wall -O3 -I. -c mc/cache.cpp -o mc/cache.o
g++ -std=c++0x -Wall -O3 -I. -c mc/chunk.cpp -o mc/chunk.o
mc/chunk.cpp: In member function ‘uint8_t mapcrafter::mc::Chunk::getBlockID(const mapcrafter::mc::LocalBlockPos&) const’:
mc/chunk.cpp:135:72: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
g++ -std=c++0x -Wall -O3 -I. -c mc/nbt.cpp -o mc/nbt.o
mc/nbt.cpp: In member function ‘virtual mapcrafter::mc::nbt::NBTTag& mapcrafter::mc::nbt::TagFloat::read(std::istream&)’:
mc/nbt.cpp:184:32: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp: In member function ‘virtual void mapcrafter::mc::nbt::TagFloat::write(std::ostream&) const’:
mc/nbt.cpp:190:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp: In member function ‘virtual mapcrafter::mc::nbt::NBTTag& mapcrafter::mc::nbt::TagDouble::read(std::istream&)’:
mc/nbt.cpp:202:34: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp: In member function ‘virtual void mapcrafter::mc::nbt::TagDouble::write(std::ostream&) const’:
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
mc/nbt.cpp:208:16: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
g++ -std=c++0x -Wall -O3 -I. -c mc/pos.cpp -o mc/pos.o
g++ -std=c++0x -Wall -O3 -I. -c mc/region.cpp -o mc/region.o
g++ -std=c++0x -Wall -O3 -I. -c mc/world.cpp -o mc/world.o
g++ -std=c++0x -Wall -O3 -I. -c render/image.cpp -o render/image.o
g++ -std=c++0x -Wall -O3 -I. -c render/manager.cpp -o render/manager.o
In file included from ./render/tile.h:24:0,
from ./render/manager.h:26,
from render/manager.cpp:20:
./render/textures.h:223:48: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:223:48: sorry, unimplemented: non-static data member initializers
./render/textures.h:223:48: error: in-class initialization of static data member ‘ACTIVATOR_RAIL’ of non-literal type
./render/textures.h:224:64: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:224:64: sorry, unimplemented: non-static data member initializers
./render/textures.h:224:64: error: in-class initialization of static data member ‘ACTIVATOR_RAIL_POWERED’ of non-literal type
./render/textures.h:225:41: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:225:41: sorry, unimplemented: non-static data member initializers
./render/textures.h:225:41: error: in-class initialization of static data member ‘ANVIL_BASE’ of non-literal type
./render/textures.h:226:39: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:226:39: sorry, unimplemented: non-static data member initializers
./render/textures.h:226:39: error: in-class initialization of static data member ‘ANVIL_TOP’ of non-literal type
./render/textures.h:227:59: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:227:59: sorry, unimplemented: non-static data member initializers
./render/textures.h:227:59: error: in-class initialization of static data member ‘ANVIL_TOP_DAMAGED_1’ of non-literal type
./render/textures.h:228:59: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:228:59: sorry, unimplemented: non-static data member initializers
./render/textures.h:228:59: error: in-class initialization of static data member ‘ANVIL_TOP_DAMAGED_2’ of non-literal type
./render/textures.h:229:33: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:229:33: sorry, unimplemented: non-static data member initializers
./render/textures.h:229:33: error: in-class initialization of static data member ‘BEACON’ of non-literal type
./render/textures.h:230:45: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:230:45: sorry, unimplemented: non-static data member initializers
./render/textures.h:230:45: error: in-class initialization of static data member ‘BED_FEET_END’ of non-literal type
./render/textures.h:231:47: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:231:47: sorry, unimplemented: non-static data member initializers
./render/textures.h:231:47: error: in-class initialization of static data member ‘BED_FEET_SIDE’ of non-literal type
./render/textures.h:232:45: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:232:45: sorry, unimplemented: non-static data member initializers
./render/textures.h:232:45: error: in-class initialization of static data member ‘BED_FEET_TOP’ of non-literal type

./render/textures.h:233:45: sorry, unimplemented: non-static data member initializers
./render/textures.h:233:45: error: in-class initialization of static data member ‘BED_HEAD_END’ of non-literal type
./render/textures.h:234:47: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:234:47: sorry, unimplemented: non-static data member initializers
./render/textures.h:234:47: error: in-class initialization of static data member ‘BED_HEAD_SIDE’ of non-literal type
./render/textures.h:235:45: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:235:45: sorry, unimplemented: non-static data member initializers
./render/textures.h:235:45: error: in-class initialization of static data member ‘BED_HEAD_TOP’ of non-literal type
./render/textures.h:236:35: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:236:35: sorry, unimplemented: non-static data member initializers
./render/textures.h:236:35: error: in-class initialization of static data member ‘BEDROCK’ of non-literal type
./render/textures.h:237:46: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:237:46: sorry, unimplemented: non-static data member initializers
./render/textures.h:237:46: error: in-class initialization of static data member ‘BLOCK_DIAMOND’ of non-literal type
./render/textures.h:238:46: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:238:46: sorry, unimplemented: non-static data member initializers
./render/textures.h:238:46: error: in-class initialization of static data member ‘BLOCK_EMERALD’ of non-literal type
./render/textures.h:239:40: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:239:40: sorry, unimplemented: non-static data member initializers
./render/textures.h:239:40: error: in-class initialization of static data member ‘BLOCK_GOLD’ of non-literal type
./render/textures.h:240:40: error: temporary of non-literal type ‘mapcrafter::render::TextureImage’ in a constant expression
./render/textures.h:240:40: sorry, unimplemented: non-static data member initializers
./render/textures.h:240:40: error: in-class initialization of static data member ‘BLOCK_IRON’ of non-literal type

....

adleong@Egyptian:~/mapcrafter-master/src$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

find_images.py doesn't find anything

[midget 11:13] ~/projects/mapcrafter/src/data/textures >../find_images.py -f ~/.minecraft/versions/1.6.2/1.6.2.jar
Extracting block images:
 - Found 0 block images.
 - Extracted 0.
 - Skipped 0 (Use -f to force overwrite).

Extracting other textures:
 - Extracting chest.png ... not found!
 - Extracting enderchest.png ... not found!
 - Extracting largechest.png ... not found!
 - Extracting grasscolor.png ... not found!
 - Extracting foliagecolor.png ... not found!

It seems a lot of textures have changed names and been moved around. Even after modifying the script to use the new block directory name and mapping the chest texture names I get..

[midget 11:22] ~/projects/mapcrafter >./mapcrafter -c mapcrafter.conf
(1/1) Rendering map world ("Minecraft"):
Scanning the world...
(1.1/1.1) Rendering rotation top-left:
Warning: Unable to load block texture activatorRail.png .
Warning: Unable to load block texture activatorRail_powered.png .
Warning: Unable to load block texture anvil_top.png .
Warning: Unable to load block texture blockDiamond.png .
Warning: Unable to load block texture blockEmerald.png .
Warning: Unable to load block texture blockGold.png .
Warning: Unable to load block texture blockIron.png .
Warning: Unable to load block texture blockLapis.png .
Warning: Unable to load block texture blockRedstone.png .
Warning: Unable to load block texture brewingStand.png .
Warning: Unable to load block texture brewingStand_base.png .
Warning: Unable to load block texture carrots_0.png .
Warning: Unable to load block texture carrots_1.png .
Warning: Unable to load block texture carrots_2.png .
Warning: Unable to load block texture carrots_3.png .
Warning: Unable to load block texture cloth_0.png .
Warning: Unable to load block texture cloth_1.png .
Warning: Unable to load block texture cloth_10.png .
Warning: Unable to load block texture cloth_11.png .
Warning: Unable to load block texture cloth_12.png .
Warning: Unable to load block texture cloth_13.png .
Warning: Unable to load block texture cloth_14.png .
Warning: Unable to load block texture cloth_15.png .
Warning: Unable to load block texture cloth_2.png .
Warning: Unable to load block texture cloth_3.png .
Warning: Unable to load block texture cloth_4.png .
Warning: Unable to load block texture cloth_5.png .
Warning: Unable to load block texture cloth_6.png .
Warning: Unable to load block texture cloth_7.png .
Warning: Unable to load block texture cloth_8.png .
Warning: Unable to load block texture cloth_9.png .
Warning: Unable to load block texture cocoa_0.png .
Warning: Unable to load block texture cocoa_1.png .
Warning: Unable to load block texture cocoa_2.png .
Warning: Unable to load block texture commandBlock.png .
Warning: Unable to load block texture comparator.png .
Warning: Unable to load block texture comparator_lit.png .
Warning: Unable to load block texture crops_0.png .
Warning: Unable to load block texture crops_1.png .
Warning: Unable to load block texture crops_2.png .
Warning: Unable to load block texture crops_3.png .
Warning: Unable to load block texture crops_4.png .
Warning: Unable to load block texture crops_5.png .
Warning: Unable to load block texture crops_6.png .
Warning: Unable to load block texture crops_7.png .
Warning: Unable to load block texture daylightDetector_side.png .
Warning: Unable to load block texture daylightDetector_top.png .
Warning: Unable to load block texture destroy_0.png .
Warning: Unable to load block texture destroy_1.png .
Warning: Unable to load block texture destroy_2.png .
Warning: Unable to load block texture destroy_3.png .
Warning: Unable to load block texture destroy_4.png .
Warning: Unable to load block texture destroy_5.png .
Warning: Unable to load block texture destroy_6.png .
Warning: Unable to load block texture destroy_7.png .
Warning: Unable to load block texture destroy_8.png .
Warning: Unable to load block texture destroy_9.png .
Warning: Unable to load block texture detectorRail.png .
Warning: Unable to load block texture detectorRail_on.png .
Warning: Unable to load block texture dispenser_front.png .
Warning: Unable to load block texture doorIron_lower.png .
Warning: Unable to load block texture doorIron_upper.png .
Warning: Unable to load block texture doorWood_lower.png .
Warning: Unable to load block texture doorWood_upper.png .
Warning: Unable to load block texture dragonEgg.png .
Warning: Unable to load block texture dropper_front.png .
Warning: Unable to load block texture enchantment_bottom.png .
Warning: Unable to load block texture enchantment_side.png .
Warning: Unable to load block texture enchantment_top.png .
Warning: Unable to load block texture fenceIron.png .
Warning: Unable to load block texture fire_0.png .
Warning: Unable to load block texture fire_1.png .
Warning: Unable to load block texture flower.png .
Warning: Unable to load block texture flowerPot.png .
Warning: Unable to load block texture furnace_front.png .
Warning: Unable to load block texture furnace_front_lit.png .
Warning: Unable to load block texture goldenRail.png .
Warning: Unable to load block texture goldenRail_powered.png .
Warning: Unable to load block texture hellrock.png .
Warning: Unable to load block texture hellsand.png .
Warning: Unable to load block texture hopper.png .
Warning: Unable to load block texture itemframe_back.png .
Warning: Unable to load block texture lava.png .
Warning: Unable to load block texture leaves.png .
Warning: Unable to load block texture leaves_opaque.png .
Warning: Unable to load block texture lightgem.png .
Warning: Unable to load block texture mobSpawner.png .
Warning: Unable to load block texture mushroom_inside.png .
Warning: Unable to load block texture mushroom_skin_brown.png .
Warning: Unable to load block texture mushroom_skin_red.png .
Warning: Unable to load block texture mushroom_skin_stem.png .
Warning: Unable to load block texture musicBlock.png .
Warning: Unable to load block texture mycel_side.png .
Warning: Unable to load block texture mycel_top.png .
Warning: Unable to load block texture netherBrick.png .
Warning: Unable to load block texture netherStalk_0.png .
Warning: Unable to load block texture netherStalk_1.png .
Warning: Unable to load block texture netherStalk_2.png .
Warning: Unable to load block texture netherquartz.png .
Warning: Unable to load block texture oreCoal.png .
Warning: Unable to load block texture oreDiamond.png .
Warning: Unable to load block texture oreEmerald.png .
Warning: Unable to load block texture oreGold.png .
Warning: Unable to load block texture oreIron.png .
Warning: Unable to load block texture oreLapis.png .
Warning: Unable to load block texture oreRedstone.png .
Warning: Unable to load block texture piston_inner_top.png .
Warning: Unable to load block texture piston_top.png .
Warning: Unable to load block texture potatoes_0.png .
Warning: Unable to load block texture potatoes_1.png .
Warning: Unable to load block texture potatoes_2.png .
Warning: Unable to load block texture potatoes_3.png .
Warning: Unable to load block texture pumpkin_face.png .
Warning: Unable to load block texture pumpkin_jack.png .
Warning: Unable to load block texture quartzblock_bottom.png .
Warning: Unable to load block texture quartzblock_chiseled.png .
Warning: Unable to load block texture quartzblock_chiseled_top.png .
Warning: Unable to load block texture quartzblock_lines.png .
Warning: Unable to load block texture quartzblock_lines_top.png .
Warning: Unable to load block texture quartzblock_side.png .
Warning: Unable to load block texture quartzblock_top.png .
Warning: Unable to load block texture rail.png .
Warning: Unable to load block texture rail_turn.png .
Warning: Unable to load block texture redstoneDust_cross.png .
Warning: Unable to load block texture redstoneDust_cross_overlay.png .
Warning: Unable to load block texture redstoneDust_line.png .
Warning: Unable to load block texture redstoneDust_line_overlay.png .
Warning: Unable to load block texture redstoneLight.png .
Warning: Unable to load block texture redstoneLight_lit.png .
Warning: Unable to load block texture redtorch.png .
Warning: Unable to load block texture redtorch_lit.png .
Warning: Unable to load block texture repeater.png .
Warning: Unable to load block texture repeater_lit.png .
Warning: Unable to load block texture rose.png .
Warning: Unable to load block texture sandstone_side.png .
Warning: Unable to load block texture sapling.png .
Warning: Unable to load block texture snow_side.png .
Warning: Unable to load block texture stem_bent.png .
Warning: Unable to load block texture stem_straight.png .
Warning: Unable to load block texture stoneMoss.png .
Warning: Unable to load block texture stonebricksmooth.png .
Warning: Unable to load block texture stonebricksmooth_carved.png .
Warning: Unable to load block texture stonebricksmooth_cracked.png .
Warning: Unable to load block texture stonebricksmooth_mossy.png .
Warning: Unable to load block texture stoneslab_side.png .
Warning: Unable to load block texture stoneslab_top.png .
Warning: Unable to load block texture thinglass_top.png .
Warning: Unable to load block texture torch.png .
Warning: Unable to load block texture tree_birch.png .
Warning: Unable to load block texture tree_jungle.png .
Warning: Unable to load block texture tree_side.png .
Warning: Unable to load block texture tree_spruce.png .
Warning: Unable to load block texture tree_top.png .
Warning: Unable to load block texture tripWire.png .
Warning: Unable to load block texture tripWireSource.png .
Warning: Unable to load block texture water.png .
Warning: Unable to load block texture whiteStone.png .
Warning: Unable to load block texture wood.png .
Warning: Unable to load block texture wood_birch.png .
Warning: Unable to load block texture wood_jungle.png .
Warning: Unable to load block texture wood_spruce.png .
Warning: Unable to load block texture workbench_front.png .
Warning: Unable to load block texture workbench_side.png .
Warning: Unable to load block texture workbench_top.png .
Rendering 1268 tiles on max zoom level 7.

I am not sure what the sensible replacements would be though (being a bit of an MC noob)

Compilation Problem: no member named 'string'

I am using libboost1.42 on Debian Squeeze

Here's the error message I get when running make

g++ -std=c++0x -Wall -O3 -I. -c mc/pos.cpp -o mc/pos.o
mc/pos.cpp: In static member function ‘static mapcrafter::mc::RegionPos mapcrafter::mc::RegionPos::byFilename(const std::string&)’:
mc/pos.cpp:52: error: ‘struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >’ has no member named ‘string’

CMake build system does not check for libpng header file.

If the header files for libpng are not installed on the system, the CMake configuration phase will succeed, but the build will then fail. Below is an example run:

pniedzielski@patrick-laptop-debian:~/.local/src/mapcrafter$ mkdir build
pniedzielski@patrick-laptop-debian:~/.local/src/mapcrafter$ cd build/
pniedzielski@patrick-laptop-debian:~/.local/src/mapcrafter/build$ cmake ..
-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.54.0
-- Found the following Boost libraries:
--   iostreams
--   system
--   filesystem
--   program_options
-- Boost version: 1.54.0
-- Found the following Boost libraries:
--   unit_test_framework
-- Performing Test HAVE_NULLPTR
-- Performing Test HAVE_NULLPTR - Success
-- Looking for include file endian.h
-- Looking for include file endian.h - found
-- Looking for include file sys/endian.h
-- Looking for include file sys/endian.h - not found
-- Performing Test HAVE_ENDIAN_CONVERSION
-- Performing Test HAVE_ENDIAN_CONVERSION - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pniedzielski/.local/src/mapcrafter/build
pniedzielski@patrick-laptop-debian:~/.local/src/mapcrafter/build$ make
Scanning dependencies of target version.cpp
[  3%] Built target version.cpp
Scanning dependencies of target mapcraftercore
[  6%] Building CXX object src/CMakeFiles/mapcraftercore.dir/version.cpp.o
[ 10%] Building CXX object src/CMakeFiles/mapcraftercore.dir/util/filesystem.cpp.o
[ 13%] Building CXX object src/CMakeFiles/mapcraftercore.dir/util/progress.cpp.o
[ 17%] Building CXX object src/CMakeFiles/mapcraftercore.dir/util/other.cpp.o
[ 20%] Building CXX object src/CMakeFiles/mapcraftercore.dir/config/config.cpp.o
[ 24%] Building CXX object src/CMakeFiles/mapcraftercore.dir/config/ini.cpp.o
[ 27%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/cache.cpp.o
[ 31%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/chunk.cpp.o
[ 34%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/nbt.cpp.o
[ 37%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/pos.cpp.o
[ 41%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/region.cpp.o
[ 44%] Building CXX object src/CMakeFiles/mapcraftercore.dir/mc/world.cpp.o
[ 48%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/image.cpp.o
In file included from /home/pniedzielski/.local/src/mapcrafter/src/render/image.cpp:20:0:
/home/pniedzielski/.local/src/mapcrafter/src/render/image.h:25:17: fatal error: png.h: Dosiero aü dosierujo ne ekzistas
 #include <png.h>
                 ^
compilation terminated.
make[2]: *** [src/CMakeFiles/mapcraftercore.dir/render/image.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/mapcraftercore.dir/all] Error 2
make: *** [all] Error 2
pniedzielski@patrick-laptop-debian:~/.local/src/mapcrafter/build$ sudo aptitude install libpng12-dev 
[sudo] password for pniedzielski: 
The following NEW packages will be installed:
  libpng12-dev 
0 packages upgraded, 1 newly installed, 0 to remove and 19 not upgraded.
Need to get 267 kB of archives. After unpacking 671 kB will be used.
Get: 1 http://debian.lcs.mit.edu/debian/ sid/main libpng12-dev amd64 1.2.49-4 [267 kB]
Fetched 267 kB in 0s (653 kB/s)     
Elektado de la antaŭe neelektita pako libpng12-dev.
(Legado de datumbazo ... 331721 dosieroj kaj dosierujoj aktuale instalitaj.)
Elpakado de libpng12-dev (el .../libpng12-dev_1.2.49-4_amd64.deb) ...
Procezado de ekigiloj por man-db ...
Ni alĝustigas libpng12-dev (1.2.49-4) ...

pniedzielski@patrick-laptop-debian:~/.local/src/mapcrafter/build$ make
[  3%] Built target version.cpp
[  6%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/image.cpp.o
[ 10%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/manager.cpp.o
[ 13%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/render.cpp.o
[ 17%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/textures.cpp.o
[ 20%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/tile.cpp.o
[ 24%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/rendermodes/base.cpp.o
[ 27%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/rendermodes/cave.cpp.o
[ 31%] Building CXX object src/CMakeFiles/mapcraftercore.dir/render/rendermodes/lighting.cpp.o
Linking CXX shared library libmapcraftercore.so
[ 72%] Built target mapcraftercore
Scanning dependencies of target mapcrafter
[ 75%] Building CXX object src/CMakeFiles/mapcrafter.dir/mapcrafter.cpp.o
Linking CXX executable mapcrafter
[ 75%] Built target mapcrafter
Scanning dependencies of target nbtdump
[ 79%] Building CXX object src/tools/CMakeFiles/nbtdump.dir/nbtdump.cpp.o
Linking CXX executable nbtdump
[ 79%] Built target nbtdump
Scanning dependencies of target testtextures
[ 82%] Building CXX object src/tools/CMakeFiles/testtextures.dir/testtextures.cpp.o
Linking CXX executable testtextures
[ 82%] Built target testtextures
Scanning dependencies of target test_all
[ 86%] Building CXX object src/test/CMakeFiles/test_all.dir/test_all.cpp.o
[ 89%] Building CXX object src/test/CMakeFiles/test_all.dir/test_image.cpp.o
[ 93%] Building CXX object src/test/CMakeFiles/test_all.dir/test_nbt.cpp.o
[ 96%] Building CXX object src/test/CMakeFiles/test_all.dir/test_pos.cpp.o
[100%] Building CXX object src/test/CMakeFiles/test_all.dir/test_tile.cpp.o
Linking CXX executable test_all
[100%] Built target test_all
pniedzielski@patrick-laptop-debian:~/.local/src/mapcrafter/build$ 

Hangs at Scanning World

I attempted to run mapcrafter (built from source today 2/2/13, Ubuntu Linux 12.04) on one of my minecraft worlds, after 2.5 hours it was still "Scanning world...".

I tried it on a couple other worlds, and it finished scanning immediately and successfully builds maps. I think there is something about my main world that is causing the program to stall on the scan.

Adding Custom Blocks

I was hoping to not have to post again, but I am having difficulty adding custom blocks (for items added by FTB Unleashed).

There are the steps I performed. Please let me know where I went wrong.

  • Installed/compiled mapcrafter
  • Used find_images.py, pointed to a 1.6.2 jar to get vanilla blocks (extracted 285 images)
    • This may be an issue, my server uses 1.5.2, but based on what I read in #27, I need to use the 1.6.2 jar due to the resource file changes).
  • Extract zip to mapcrafter/src/data/textures/blocks of all block items added by mods (manually compiled from the jars and zips of the mods themselves).
    • A lot of the mod textures contain their own directories within the blocks directory. I do not know if this is a problem.
  • Ran texture_code.py, output to file.
  • Copied the following into textures.h: http://pastebin.com/Pz1bsgv2
  • Copied the following into textures.cpp: http://pastebin.com/HeFpbm4y
  • I did a render from scratch, but none of the non-vanilla blocks are rendered

Segfault in chunk.cpp (line 71)

Im back again! :(

So our map has started getting really big now, and now the mapcrafter is segfaulting
I've compiled with -g and ran in gdb and its failing on line 71 of chunk.cpp

gdb output:
Starting program: /opt/minecraft/mapgen/mapcrafter --template /opt/minecraft/mapgen/data/template/ --textures /opt/minecraft/mapgen/data/textures/ -i /opt/minecraft/FTB/UltimateServer/world/ -o /var/www/images/worldmap/ -j 6
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Starting renderer for world "/opt/minecraft/FTB/UltimateServer/world/".
Setting texture size to 12.
Scanning world...
Thread 0 renders 4691 tiles on max zoom level 9.
[New Thread 0x7ffff60bb700 (LWP 9708)]
Thread 1 renders 5124 tiles on max zoom level 9.
[New Thread 0x7ffff58ba700 (LWP 9709)]
Thread 2 renders 5720 tiles on max zoom level 9.
[New Thread 0x7fffeffff700 (LWP 9710)]
Thread 3 renders 7582 tiles on max zoom level 9.
[New Thread 0x7ffff50b9700 (LWP 9711)]
Thread 4 renders 7758 tiles on max zoom level 9.
[New Thread 0x7ffff4827700 (LWP 9712)]
Thread 5 renders 8458 tiles on max zoom level 9.
[New Thread 0x7fffef6dc700 (LWP 9713)]
[======> ] 13.40% 5270/39333 114.00/s
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff58ba700 (LWP 9709)]
mapcrafter::mc::Chunk::readNBT (this=0x179a3b0, data=, len=, compression=) at mc/chunk.cpp:71
71 if (tagBiomes != NULL || tagBiomes->payload.size() == 256)
(gdb)

As this is part of the code that deals with NBT im completely lost at what is needed to fix it, I hope this is easy to work out ><

Add fallback or test for missing texture (fix segfault)

It seems that mapcrafter segfaults if it couldn't load the image for a particular block, as it tries to read pixels from an image with zero dimensions.

Perhaps it would be worthwhile adding a 'fallback' texture (flat red or something) or a test, so that any blocks without a corresponding image don't cause the program to segfault.

The segfault occurs in mapcrafter::renderer::LightingRendermode::lightLeft(Image& image, const CornerColors& colors, int ystart, int yend) at mapcrafter/src/renderer/rendermodes/lighting.cpp:308, when reading 'pixel' (dereferences null pointer).

I'm running Ubuntu 12.04.4 LTS, and mapcrafter commit e427dd3.

Trouble with compiling

Trying to compile, I got an error in render/config.cpp, with fs::absolute. Replacing it with fs::complete I solved the problem, based on examples here:
http://en.highscore.de/cpp/boost/filesystem.html

But then I got another error.

render/rendermodes/lighting.cpp: In member function ‘mapcrafter::render::CornerColors mapcrafter::render::LightingRendermode::getCornerColors(const mapcrafter::mc::BlockPos&, const mapcrafter::render::FaceCorners&) const’:
render/rendermodes/lighting.cpp:257: error: no matching function for call to ‘std::array<double, 4u>::array(<brace-enclosed initializer list>)’
/usr/include/c++/4.4/tr1_impl/array:50: note: candidates are: std::array<double, 4u>::array()
/usr/include/c++/4.4/tr1_impl/array:50: note:                 std::array<double, 4u>::array(const std::array<double, 4u>&)
render/rendermodes/lighting.cpp: In member function ‘void mapcrafter::render::LightingRendermode::lightTop(mapcrafter::render::Image&, const mapcrafter::render::CornerColors&, int) const’:
render/rendermodes/lighting.cpp:301: error: no matching function for call to ‘mapcrafter::render::LightingRendermode::createShade(mapcrafter::render::Image&, <brace-enclosed initializer list>) const’
render/rendermodes/lighting.cpp:139: note: candidates are: void mapcrafter::render::LightingRendermode::createShade(mapcrafter::render::Image&, const mapcrafter::render::CornerColors&) const

And I don't now the way to solve it.

Support for JPG images

I'd like an option to generate map images in JPG format. This should really improve performances when hosting an HTTP server on home environments (i.e. when upload bandwidth is a serious limit). Others Minecraft map generators have this option and the improvement in response speed is noticeable.

(I wonder if I can get the same result with a script that converts PNG files and changes a few lines in some .js files...)

Error: Unable to load chest.png, largechest.png or enderchest.png!

I have tried to use the find_images.py and i have found that my minecraft.jar (the one from ~/.minecraft/bin) does not have the required textures. I manually extracted the jar and looked and there were no textures of the correct name.

In an attempt to "hack" the system and get it to render, I copied the ice.png into the data/textures folder and then copied it naming it chest.png enderchest.png, and largechest.png. I then attempted to render the world with :

./mapcrafter -i /home/super/treehouse/worlds/Marx/ -o /var/www/commune/map/ --textures /home/super/build/mapcrafter/src/data/textures --render-unknown-blocks

i also tried

    ./mapcrafter -i /home/super/treehouse/worlds/Marx/ -o /var/www/commune/map/ --textures=/home/super/build/mapcrafter/src/data/textures --render-unknown-blocks

    ./mapcrafter -i /home/super/treehouse/worlds/Marx/ -o /var/www/commune/map/ --textures /home/super/build/mapcrafter/src/data/ --render-unknown-blocks

    ./mapcrafter -i /home/super/treehouse/worlds/Marx/ -o /var/www/commune/map/ --render-unknown-blocks

    ./mapcrafter -i /home/super/treehouse/worlds/Marx/ -o /var/www/commune/map/

All instances outpute the same error:

Starting renderer for world "/home/super/treehouse/worlds/Marx/".
Error: Unable to load chest.png, largechest.png or enderchest.png!

error while loading shared libraries

I used the version 0.6 and get an error:

mapcrafter: error while loading shared libraries: libmapcraftercore.so: cannot open shared object file: No such file or directory

Cobblestone fences not showing up

I just noticed today that cobblestone fences are not showing up on the map, though wooden fences do. The only other issue I've noticed is the new stuff in 1.7 not showing up, but I understand you are already working on that.

Let me know if you need any other info for the fences.

Hang when rendering 0 tiles with multiple threads

If Mapcrafter is instructed to use multiple threads (i.e., -j n for n > 1) to render a world that has had no tiles changed since the previous render pass, it hangs seemingly indefinitely:

Scanning worlds...
(1/3) Rendering map seecraft_day ("Seecraft"):
(1.1/1.1) Rendering rotation bottom-right:
Last rendering was on 22 Jan 2014, 01:02:06.
Scanning required tiles...
3 threads will render 0 render tiles.

Rendering completes successfully if the -j flag is removed or its value set to 1, although there are still some strange messages:

Scanning worlds...
(1/3) Rendering map seecraft_day ("Seecraft"):
(1.1/1.1) Rendering rotation bottom-right:
Last rendering was on 22 Jan 2014, 01:02:06.
Scanning required tiles...
Single thread will render 0 render tiles.
Unable to read tile , I will just render it again.================================================] -nan% 0/0 -nan/s
[=================================================================================================] -nan% 0/0 -nan/s
(1.1/1.1) Rendering rotation bottom-right took 0 seconds.

I'm using the most recent Mapcrafter from the Debian repository:

$ mapcrafter -v
mapcrafter version: 1.1 (v.1.1.1)

Failing to compile - version.cpp missing

Trying to compile and it keeps failing with version.cpp missing. I have gcc/g++ 4.4 and 4.6 installed but have 4.4 currently set. Below is the output from running cmake:

:~/mapcrafter$ cmake .
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.46.1
-- Found the following Boost libraries:
-- iostreams
-- system
-- filesystem
-- program_options
-- Could NOT find Boost
-- Performing Test HAVE_NULLPTR
-- Performing Test HAVE_NULLPTR - Failed
-- Looking for include files HAVE_ENDIAN_H
-- Looking for include files HAVE_ENDIAN_H - found
-- Looking for include files HAVE_SYS_ENDIAN_H
-- Looking for include files HAVE_SYS_ENDIAN_H - not found.
-- Performing Test HAVE_ENDIAN_CONVERSION
-- Performing Test HAVE_ENDIAN_CONVERSION - Success
Boost Unit Test Framework not found. Skipping the tests.
-- Configuring done
CMake Error at src/CMakeLists.txt:57 (add_library):
Cannot find source file:

/home/michael/mapcrafter/src/version.cpp

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

-u doesn't work properly: "Unable to read tile" errors

When running mapcrafter with -u I usually get few error messages like this:
Unable to read tile 1/4/4/2/4/4/3/3/1/4 from "/home/imax/www/mcmap/1/4/4/2/4/4/3/3/1/4.png"

Mentioned files actually don't exist and subsequent runs with -u doesn't fix that. After this I can see gaps in the map. After running without -u that files appear and map looks fine, but it takes much more time than with -u.

Debian package issues

Hi,

Which Debian-like distro did you actually build your deb files for? I'm unable use them on Debian 7.2 (stable) or Ubuntu 12.04 LTS. Debian's glibc is is too old (2.13), and the libboost packages are too old on Ubuntu LTS.

Cobblestone renders as Bricks

I just did a fresh installation of mapcrafter 5.1 from the tar.gz file and then extracted the textures from minecraft's 1.6.2.jar with the find_images.py script. After that I did a new rendering of my minecraft map. Then I found that the cobblestone blocks are rendered with the texture of brick blocks. I've verified that the cobblestone.png file does indeed contain the cobblestone texture and it does.

In the attached screenshot the pyramid is made of cobblestone, while the stairs are brick (and correctly rendered as such). Also the houses in the village are made of cobblestone but are rendered as bricks. Some mossy cobblestone can be seen on the left, apparently this renders correctly.

image

Add options to select coordinates

It'd be great if there was a configuration parameter to select a range of coordinates to render.
For example, a 100x100 blocks map

[world1]
xmin = -50
xmax = 50
zmin = -50
zmax = 50

Another example, show my beatifull lowlevel mine

[world1]
ymax = 10

Or just my castle in the top of a mountain

[world1]
ymin = 100
ymax = 200

Thank you.

Can't build "git cloned" source on CentOS 6.4

cmake runs ok
make gives me

[ 3%] Built target version.cpp
[ 6%] Building CXX object src/CMakeFiles/mapcraftercore.dir/util/filesystem.cpp.o
/home/r_rose/mapcrafter/mapcrafter/src/util/filesystem.cpp: In function ‘boost::filesystem::path mapcrafter::util::findHomeDir()’:
/home/r_rose/mapcrafter/mapcrafter/src/util/filesystem.cpp:72: ошибка: нет декларации ‘nullptr’ в этой области видимости
make[2]: *** [src/CMakeFiles/mapcraftercore.dir/util/filesystem.cpp.o] Ошибка 1
make[1]: *** [src/CMakeFiles/mapcraftercore.dir/all] Ошибка 2
make: *** [all] Ошибка 2

OS: CentOS 6.4

[r_rose@nerfur data]$ cmake --version
cmake version 2.6-patch 4
[r_rose@nerfur data]$ make --version
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-redhat-linux-gnu
[r_rose@nerfur data]$ gcc -v
Используются внутренние спецификации.
Целевая архитектура: x86_64-redhat-linux
Параметры конфигурации: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Модель многопоточности: posix
gcc версия 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)

yum info boost-devel
Loaded plugins: security
Installed Packages
Name : boost-devel
Arch : x86_64
Version : 1.41.0
Release : 17.el6_4
Size : 44 M
Repo : installed
From repo : updates
Summary : The Boost C++ headers and shared development libraries
URL : http://sodium.resophonic.com/boost-cmake/1.41.0.cmake0/
License : Boost
Description : Headers and shared object symlinks for the Boost C++ libraries.

Corner stairs not showing proper rotation

Screenshot from overviewer:
http://i.imgur.com/e4ac9Bz.png

Screenshot from mapcrafter v1.1.3:
http://i.imgur.com/pFVaYKr.png

Note the missing blocks are the new 1.8 snapshot blocks, not including in this ticket.

Love the speed and simplicity of the app, looking forward to your planned new features :)

Memory leak

Hi there!

mapcrafter seems to be leaking memory somewhere: the amount of used memory keeps constantly increasing, and doesn't go down after a specific renderjob is done. Yet, when I stop a batch-job and then restart it (such that all the memory is freed), the calculation seems to be restarting without needing all the previously accumulated memory.

This was done using the following version of mapcrafter:
$ git log | head
commit 46ae498
Author: Moritz Hilscher [email protected]
Date: Sat Aug 24 22:20:41 2013 +0200

    Aaand removed template/texture dir from example config.

Background:

I'm running mapcrafter on a rather small ARM device that only has 2 GB RAM. My configfile renders the same map in different settings:

 $ cat mapcrafter.cfg 
output_dir = /mnt/data/share/mapcrafter/
world = /mnt/backup/minecraft/tom/install/saves/MyWorld

[world]
name = Normal
rotations = top-left top-right bottom-left bottom-right

[world2]
name = Day
rotations = top-left top-right bottom-left bottom-right
rendermode = daylight

[world3]
name = Caves
rotations = top-left top-right bottom-left bottom-right
rendermode = cave

[world4]
name = Night
rotations = top-left top-right bottom-left bottom-right
rendermode = nightlight

In one specific case where I observed this behavior, [world], [world2] and [world4] were already done by previous runs of mapcrafter. So when I started mapcrafter, it would only have to do [world3]. I noticed the system becoming rather sluggish after a while, and noticed mapcrafter using ~75-80% of all the available memory. At this time, 2 rotations of [world3] were already done, and ~10% of the 3rd rotation was done.

At this time, I stopped the job, and then restarted it. mapcrafter started redoing the 3rd rotation, but this time it only used ~25% of the available memory. So I assume the other 50% of the memory that it had accumulated in the previous round were indeed not needed anymore and could've been freed sooner.

Compile Error

When using version 0.4, I receive the following error during compilation.

In file included from ./render/tile.h:24:0,
from ./render/manager.h:26,
from render/manager.cpp:20:
./render/textures.h: In constructor
‘mapcrafter::render::Biome::Biome(uint8_t, double, double)’:
./render/textures.h:217:5: error: type ‘mapcrafter::render::Biome’ is
not a direct base of ‘mapcrafter::render::Biome’
make: *** [render/manager.o] Error 1

Runnig Ubuntu Server 12.04

static_assert failed when compiling

After checking out an older version of mapcrafter as described in #42, I now get this error when running make:

Scanning dependencies of target version.cpp
[  3%] Built target version.cpp
Scanning dependencies of target mapcraftercore
[  6%] Building CXX object src/CMakeFiles/mapcraftercore.dir/version.cpp.o
[ 10%] Building CXX object src/CMakeFiles/mapcraftercore.dir/util/filesystem.cpp.o
/Users/foo/Code/minecraft/mapcrafter/src/util/filesystem.cpp:108:2: error: static_assert failed
      "Unable to find the executable's path!"
        static_assert(0, "Unable to find the executable's path!");
        ^             ~
1 error generated.
make[2]: *** [src/CMakeFiles/mapcraftercore.dir/util/filesystem.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/mapcraftercore.dir/all] Error 2
make: *** [all] Error 2

No tiles need to get rendered

Hello,
i think my configuration is ok, but mapcrafter is telling me "No tiles need to get rendered" when i'd like to render my map.
I used a tiny new world to render. When i rename the folder, mapcrafter tells me that the world doesn't exist. So i think the path is ok.

--- my configuration file ---

output_dir = output

[world]
name = "world"
world = /home/test/world

--- Part of Mapcrafter output ---

(1/1) Rendering map world ("world"):
Scanning the world....
(1.1/1.1) Rendering rotation top-left:
No tiles need to get rendered.
Rendering took 0 seconds.

When does this error occur?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.