Minetestmapper rewritten into C++

Re: Minetestmapper rewritten into C++

Postby wziard » Sun Jan 13, 2019 6:46 pm

Sorry, it should be --zoom 4. And it does look a lot nicer with --zoom 4 than scaled with gimp afterwards, because the cubes get a bit bigger.

Oh and 99% of the praise should go to the original writers of minetestmapper for the clear code. I just bolted on some brute force isometric overdrawing :-)
wziard
Member
 
Posts: 131
Joined: Mon Oct 29, 2018 7:12 pm

Re: Minetestmapper rewritten into C++

Postby papou30 » Mon Jan 14, 2019 1:59 pm

Hello, having tried all the geometries and always having the same result I come to ask for some help because this line always appears: "Exception: Image format not supported by gd" So what is this "gd"??
papou30
Member
 
Posts: 11
Joined: Thu Oct 18, 2018 10:31 am
GitHub: papou30
In-game: papou30

Re: Minetestmapper rewritten into C++

Postby wziard » Mon Jan 14, 2019 3:09 pm

papou30 wrote: "Exception: Image format not supported by gd" So what is this "gd"??



gd is the library minetestmapper uses to save images. You need to give a valid extension to the output filename.
For example -o out.png or -o out.jpg I think gd supports jpg, gif and png
wziard
Member
 
Posts: 131
Joined: Mon Oct 29, 2018 7:12 pm

Re: Minetestmapper rewritten into C++

Postby papou30 » Mon Jan 14, 2019 4:42 pm

A thousand thanks so I can have some "isometric maps". You have done an incredible job. Congratulations and thank you again.
papou30
Member
 
Posts: 11
Joined: Thu Oct 18, 2018 10:31 am
GitHub: papou30
In-game: papou30

Re: Minetestmapper rewritten into C++

Postby wziard » Mon Jan 14, 2019 8:00 pm

papou30 wrote:A thousand thanks so I can have some "isometric maps". You have done an incredible job. Congratulations and thank you again.

Thanks for the praise :-). But as I said before, 99% of the work is done by sfan5, mireq, Shadowninja... So the largest part of the praise should go to them :-)
wziard
Member
 
Posts: 131
Joined: Mon Oct 29, 2018 7:12 pm

Re: Minetestmapper rewritten into C++

Postby papou30 » Wed Jan 16, 2019 8:21 pm

Of course I associate sfan5, mireq, Shadowninja to these thanks.
papou30
Member
 
Posts: 11
Joined: Thu Oct 18, 2018 10:31 am
GitHub: papou30
In-game: papou30

Re: Minetestmapper rewritten into C++

Postby Gael de Sailly » Tue Jan 22, 2019 11:33 pm

wziard: I don't manage to compile your iso branch, I get this huge ugly error (sorry if parts of it are in french).
Code: Select all
$ make -j2
[  9%] Building CXX object CMakeFiles/minetestmapper.dir/BlockDecoder.cpp.o
[ 18%] Building CXX object CMakeFiles/minetestmapper.dir/TileGenerator.cpp.o
In file included from /home/gael/Github/minetestmapper/BlockDecoder.cpp:7:0:
/home/gael/Github/minetestmapper/include/BlockDecoder.h:17:56: error: ‘>>’ should be ‘> >’ within a nested template argument list
  typedef std::vector<std::pair<std::string, std::string>> NodeMetaData;
                                                        ^
/home/gael/Github/minetestmapper/BlockDecoder.cpp: In member function ‘void BlockDecoder::decode(const ustring&)’:
/home/gael/Github/minetestmapper/BlockDecoder.cpp:208:30: error: ‘move’ is not a member of ‘std’
       m_metaData[position] = std::move(nmd);
                              ^
In file included from /home/gael/Github/minetestmapper/include/TileGenerator.h:18:0,
                 from /home/gael/Github/minetestmapper/TileGenerator.cpp:14:
/home/gael/Github/minetestmapper/include/BlockDecoder.h:17:56: error: ‘>>’ should be ‘> >’ within a nested template argument list
  typedef std::vector<std::pair<std::string, std::string>> NodeMetaData;
                                                        ^
CMakeFiles/minetestmapper.dir/build.make:62 : la recette pour la cible « CMakeFiles/minetestmapper.dir/BlockDecoder.cpp.o » a échouée
make[2]: *** [CMakeFiles/minetestmapper.dir/BlockDecoder.cpp.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
In file included from /home/gael/Github/minetestmapper/TileGenerator.cpp:14:0:
/home/gael/Github/minetestmapper/include/TileGenerator.h: In member function ‘std::size_t Coords_hash::operator()(const Coords&) const’:
/home/gael/Github/minetestmapper/include/TileGenerator.h:64:16: error: ‘hash’ is not a member of ‘std’
         return std::hash<int>()((static_cast<int>(v.first) << 16) + static_cast<int>(v.second));
                ^
/home/gael/Github/minetestmapper/include/TileGenerator.h:64:26: error: expected primary-expression before ‘int’
         return std::hash<int>()((static_cast<int>(v.first) << 16) + static_cast<int>(v.second));
                          ^
/home/gael/Github/minetestmapper/include/TileGenerator.h:64:26: error: expected ‘;’ before ‘int’
/home/gael/Github/minetestmapper/include/TileGenerator.h:64:29: error: expected unqualified-id before ‘>’ token
         return std::hash<int>()((static_cast<int>(v.first) << 16) + static_cast<int>(v.second));
                             ^
/home/gael/Github/minetestmapper/TileGenerator.cpp: In member function ‘void TileGenerator::generate(const string&, const string&)’:
/home/gael/Github/minetestmapper/TileGenerator.cpp:404:35: error: no matching function for call to ‘std::basic_ofstream<char>::open(std::__cxx11::basic_ostringstream<char>::__string_type, const openmode&)’
    os.open(fn.str(), std::ios::out);
                                   ^
In file included from /home/gael/Github/minetestmapper/TileGenerator.cpp:4:0:
/usr/include/c++/5/fstream:799:7: note: candidate: void std::basic_ofstream<_CharT, _Traits>::open(const char*, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits<char>; std::ios_base::openmode = std::_Ios_Openmode]
       open(const char* __s,
       ^
/usr/include/c++/5/fstream:799:7: note:   no known conversion for argument 1 from ‘std::__cxx11::basic_ostringstream<char>::__string_type {aka std::__cxx11::basic_string<char>}’ to ‘const char*’
/home/gael/Github/minetestmapper/TileGenerator.cpp: In function ‘int IsoColoredCube(Image*, int, int, int, int, const Color&, int)’:
/home/gael/Github/minetestmapper/TileGenerator.cpp:1116:36: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
   static double const brightness[] { 0.8, 0.6, 1.0 };
                                    ^
In file included from /usr/include/c++/5/set:60:0,
                 from /home/gael/Github/minetestmapper/TileGenerator.cpp:12:
/usr/include/c++/5/bits/stl_tree.h: In instantiation of ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::find(const _Key&) [with _Key = std::pair<short int, short int>; _Val = std::pair<short int, short int>; _KeyOfValue = std::_Identity<std::pair<short int, short int> >; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<short int, short int> >]’:
/usr/include/c++/5/bits/stl_set.h:695:29:   required from ‘std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::find(const key_type&) [with _Key = std::pair<short int, short int>; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<std::pair<short int, short int> >; std::set<_Key, _Compare, _Alloc>::key_type = std::pair<short int, short int>]’
/home/gael/Github/minetestmapper/TileGenerator.cpp:1037:52:   required from here
/usr/include/c++/5/bits/stl_tree.h:2297:8: error: no match for call to ‘(Coords_hash) (const std::pair<short int, short int>&, const std::pair<short int, short int>&)’
        || _M_impl._M_key_compare(__k,
        ^
In file included from /home/gael/Github/minetestmapper/TileGenerator.cpp:14:0:
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note: candidate: std::size_t Coords_hash::operator()(const Coords&) const
     inline std::size_t operator()(const Coords &v) const {
                        ^
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note:   candidate expects 1 argument, 2 provided
In file included from /usr/include/c++/5/set:60:0,
                 from /home/gael/Github/minetestmapper/TileGenerator.cpp:12:
/usr/include/c++/5/bits/stl_tree.h: In instantiation of ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_unique_pos(const key_type&) [with _Key = std::pair<short int, short int>; _Val = std::pair<short int, short int>; _KeyOfValue = std::_Identity<std::pair<short int, short int> >; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = std::pair<short int, short int>]’:
/usr/include/c++/5/bits/stl_tree.h:1863:28:   required from ‘std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(const _Val&) [with _Key = std::pair<short int, short int>; _Val = std::pair<short int, short int>; _KeyOfValue = std::_Identity<std::pair<short int, short int> >; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >]’
/usr/include/c++/5/bits/stl_set.h:485:29:   required from ‘std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Key>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::pair<short int, short int>; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Key>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree_const_iterator<std::pair<short int, short int> >; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<short int, short int>]’
/home/gael/Github/minetestmapper/TileGenerator.cpp:371:76:   required from here
/usr/include/c++/5/bits/stl_tree.h:1810:11: error: no match for call to ‘(Coords_hash) (const key_type&, const std::pair<short int, short int>&)’
    __comp = _M_impl._M_key_compare(__k, _S_key(__x));
           ^
In file included from /home/gael/Github/minetestmapper/TileGenerator.cpp:14:0:
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note: candidate: std::size_t Coords_hash::operator()(const Coords&) const
     inline std::size_t operator()(const Coords &v) const {
                        ^
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note:   candidate expects 1 argument, 2 provided
In file included from /usr/include/c++/5/set:60:0,
                 from /home/gael/Github/minetestmapper/TileGenerator.cpp:12:
/usr/include/c++/5/bits/stl_tree.h:1821:7: error: no match for call to ‘(Coords_hash) (const std::pair<short int, short int>&, const key_type&)’
       if (_M_impl._M_key_compare(_S_key(__j._M_node), __k))
       ^
In file included from /home/gael/Github/minetestmapper/TileGenerator.cpp:14:0:
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note: candidate: std::size_t Coords_hash::operator()(const Coords&) const
     inline std::size_t operator()(const Coords &v) const {
                        ^
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note:   candidate expects 1 argument, 2 provided
In file included from /usr/include/c++/5/set:60:0,
                 from /home/gael/Github/minetestmapper/TileGenerator.cpp:12:
/usr/include/c++/5/bits/stl_tree.h: In instantiation of ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr, const _Val&, _NodeGen&) [with _NodeGen = std::_Rb_tree<std::pair<short int, short int>, std::pair<short int, short int>, std::_Identity<std::pair<short int, short int> >, Coords_hash, std::allocator<std::pair<short int, short int> > >::_Alloc_node; _Key = std::pair<short int, short int>; _Val = std::pair<short int, short int>; _KeyOfValue = std::_Identity<std::pair<short int, short int> >; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<short int, short int> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Base_ptr = std::_Rb_tree_node_base*]’:
/usr/include/c++/5/bits/stl_tree.h:1868:26:   required from ‘std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(const _Val&) [with _Key = std::pair<short int, short int>; _Val = std::pair<short int, short int>; _KeyOfValue = std::_Identity<std::pair<short int, short int> >; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >]’
/usr/include/c++/5/bits/stl_set.h:485:29:   required from ‘std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Key>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::pair<short int, short int>; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Key>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree_const_iterator<std::pair<short int, short int> >; std::set<_Key, _Compare, _Alloc>::value_type = std::pair<short int, short int>]’
/home/gael/Github/minetestmapper/TileGenerator.cpp:371:76:   required from here
/usr/include/c++/5/bits/stl_tree.h:1506:10: error: no match for call to ‘(Coords_hash) (const std::pair<short int, short int>&, const std::pair<short int, short int>&)’
          || _M_impl._M_key_compare(_KeyOfValue()(__v),
          ^
In file included from /home/gael/Github/minetestmapper/TileGenerator.cpp:14:0:
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note: candidate: std::size_t Coords_hash::operator()(const Coords&) const
     inline std::size_t operator()(const Coords &v) const {
                        ^
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note:   candidate expects 1 argument, 2 provided
In file included from /usr/include/c++/5/set:60:0,
                 from /home/gael/Github/minetestmapper/TileGenerator.cpp:12:
/usr/include/c++/5/bits/stl_tree.h: In instantiation of ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_lower_bound(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type, std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type, const _Key&) [with _Key = std::pair<short int, short int>; _Val = std::pair<short int, short int>; _KeyOfValue = std::_Identity<std::pair<short int, short int> >; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<short int, short int> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<short int, short int> >*]’:
/usr/include/c++/5/bits/stl_tree.h:2295:36:   required from ‘std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::find(const _Key&) [with _Key = std::pair<short int, short int>; _Val = std::pair<short int, short int>; _KeyOfValue = std::_Identity<std::pair<short int, short int> >; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<short int, short int> >]’
/usr/include/c++/5/bits/stl_set.h:695:29:   required from ‘std::set<_Key, _Compare, _Alloc>::iterator std::set<_Key, _Compare, _Alloc>::find(const key_type&) [with _Key = std::pair<short int, short int>; _Compare = Coords_hash; _Alloc = std::allocator<std::pair<short int, short int> >; std::set<_Key, _Compare, _Alloc>::iterator = std::_Rb_tree_const_iterator<std::pair<short int, short int> >; std::set<_Key, _Compare, _Alloc>::key_type = std::pair<short int, short int>]’
/home/gael/Github/minetestmapper/TileGenerator.cpp:1037:52:   required from here
/usr/include/c++/5/bits/stl_tree.h:1628:6: error: no match for call to ‘(Coords_hash) (const std::pair<short int, short int>&, const std::pair<short int, short int>&)’
  if (!_M_impl._M_key_compare(_S_key(__x), __k))
      ^
In file included from /home/gael/Github/minetestmapper/TileGenerator.cpp:14:0:
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note: candidate: std::size_t Coords_hash::operator()(const Coords&) const
     inline std::size_t operator()(const Coords &v) const {
                        ^
/home/gael/Github/minetestmapper/include/TileGenerator.h:63:24: note:   candidate expects 1 argument, 2 provided
CMakeFiles/minetestmapper.dir/build.make:134 : la recette pour la cible « CMakeFiles/minetestmapper.dir/TileGenerator.cpp.o » a échouée
make[2]: *** [CMakeFiles/minetestmapper.dir/TileGenerator.cpp.o] Erreur 1
CMakeFiles/Makefile2:67 : la recette pour la cible « CMakeFiles/minetestmapper.dir/all » a échouée
make[1]: *** [CMakeFiles/minetestmapper.dir/all] Erreur 2
Makefile:149 : la recette pour la cible « all » a échouée
make: *** [all] Erreur 2


I would really like to use it, based on the screenshots it looks awesome!
Gael de Sailly
Member
 
Posts: 703
Joined: Sun Jan 26, 2014 5:01 pm
GitHub: Gael-de-Sailly
In-game: Gael-de-Sailly Ginkgoo

Re: Minetestmapper rewritten into C++

Postby wziard » Sat Jan 26, 2019 11:01 am

Gael de Sailly wrote:/home/gael/Github/minetestmapper/include/BlockDecoder.h:17:56: error: ‘>>’ should be ‘> >’ within a nested template argument list


I'll look into it. What system do you try to compile on? My first guess would be an incompatible gcc version.

[edit] That was it. It should now compile with gcc v5 or higher (or lower, but I didn't test that).
wziard
Member
 
Posts: 131
Joined: Mon Oct 29, 2018 7:12 pm

Re: Minetestmapper rewritten into C++

Postby wziard » Mon Jan 28, 2019 10:37 pm

I added a flag to tune the height shading in isometric mode.
wziard
Member
 
Posts: 131
Joined: Mon Oct 29, 2018 7:12 pm

Re: Minetestmapper rewritten into C++

Postby papou30 » Wed Jan 30, 2019 3:41 pm

Hello, Gaël I managed to compile from the folder extracted from the "zip" with the latest version of C++ on Ubuntu 18.04.1 LTS. Sorry for the screens but I can't insert the images in the forum, still a beginner despite my age.
papou30
Member
 
Posts: 11
Joined: Thu Oct 18, 2018 10:31 am
GitHub: papou30
In-game: papou30

Re: Minetestmapper rewritten into C++

Postby Gael de Sailly » Wed Jan 30, 2019 5:25 pm

papou30 wrote:Hello, Gaël I managed to compile from the folder extracted from the "zip" with the latest version of C++ on Ubuntu 18.04.1 LTS.

Thank you, actually I had already solved my problem but forgotten to reply here :)
Gael de Sailly
Member
 
Posts: 703
Joined: Sun Jan 26, 2014 5:01 pm
GitHub: Gael-de-Sailly
In-game: Gael-de-Sailly Ginkgoo

Re: Minetestmapper rewritten into C++

Postby Fixer » Mon Feb 18, 2019 4:59 pm

Nice, isometric is very needed
Fixer
Member
 
Posts: 891
Joined: Sun Jul 31, 2011 11:23 am
In-game: Fixer

Re: Minetestmapper rewritten into C++

Postby lilo » Tue Feb 19, 2019 9:09 pm

Hi,

i want to use this https://github.com/est31/leaftest to get an zoomable worldmap. This will need this minetestmapper. My question is, what git-repo is the best to do this? I found some forks an i am now a little bit confused what is the right version :)

I will use this on an Ubuntu 18.04 LTS Server, if that's important.

greets
lilo
Member
 
Posts: 59
Joined: Sat May 27, 2017 2:45 pm

Re: Minetestmapper rewritten into C++

Postby addi » Wed Feb 20, 2019 5:31 am

https://github.com/adrido/minetest-mapper-cpp is the continueed fork of the Rogier5 version
addi
Member
 
Posts: 658
Joined: Thu Sep 20, 2012 3:16 am
GitHub: adrido

Re: Minetestmapper rewritten into C++

Postby wziard » Wed Feb 20, 2019 1:53 pm

My fork includes code to set up a leaflet map. This was my main reason to add the --tiled flag.

Use the iso branch from here:
https://github.com/wziard/minetestmapper/tree/iso

edit:<snip example script, I added it to the repository>

I put an example script to generate a leaflet map into the 'leafletmap' subdir.

p.s. it you want an *isometric* leaflet map you'll also need the mergeiso utility to merge the isometric diamond shaped tiles into square tiles as input for the buildpyramid utility.
wziard
Member
 
Posts: 131
Joined: Mon Oct 29, 2018 7:12 pm

Re: Minetestmapper rewritten into C++

Postby ShadMOrdre » Thu Feb 21, 2019 3:45 am

wziard,

I downloaded your iso branch, mainly because I saw a script for generating colors.txt values. I'm using Python 2.7, and I keep getting an error about UTF-8 encoding? I don't know python, or bash, and am at a loss.

Shad
ShadMOrdre
Member
 
Posts: 288
Joined: Mon Dec 29, 2014 8:07 am
GitHub: ShadMOrdre
In-game: shadmordre

Re: Minetestmapper rewritten into C++

Postby wziard » Thu Feb 21, 2019 5:49 pm

The colors.txt script is not by me, it's from (original) minetestmapper. However, it worked fine on my system I think.

However I can try to help. What system are you using to run it on? And what are the exact errors? Maybe better to send me a PM because it's not really on topic here.
wziard
Member
 
Posts: 131
Joined: Mon Oct 29, 2018 7:12 pm

Re: Minetestmapper rewritten into C++

Postby rubenwardy » Mon Mar 04, 2019 4:17 pm

wziard wrote:p.s. it you want an *isometric* leaflet map you'll also need the mergeiso utility to merge the isometric diamond shaped tiles into square tiles as input for the buildpyramid utility.


Please may you give an example of this?

Edit: Also, the map that is produced by the generate leaflet script is blured when you zoom in, possibly due to JPEG. The nearest zoom should definitely use PNG
rubenwardy
Moderator
 
Posts: 5726
Joined: Tue Jun 12, 2012 6:11 pm
GitHub: rubenwardy
In-game: rubenwardy

Re: Minetestmapper rewritten into C++

Postby lilo » Mon Mar 04, 2019 7:09 pm

Hi,

i test my minetestmapper compilation an i get some unkown node messages. What is to do?

Greets

EDIT: I found this this to auto create an Color.txt :)
lilo
Member
 
Posts: 59
Joined: Sat May 27, 2017 2:45 pm

Re: Minetestmapper rewritten into C++

Postby wziard » Mon Mar 25, 2019 11:51 am

rubenwardy wrote:
wziard wrote:p.s. it you want an *isometric* leaflet map you'll also need the mergeiso utility to merge the isometric diamond shaped tiles into square tiles as input for the buildpyramid utility.


Please may you give an example of this?

Example session from my setup:
Code: Select all
../../minetestmapper -i ../world/ --isometric --zoom 4 --tilesize 64x64 --geometry -128:-128+256+256 -o map.png

-I do this in a subdir test/iso of the minetestmapper subdir, with my world sitting at test/world. Adjust your paths accordingly)
-I put in the --geometry to make it a bit quicker, because with my full world it takes 3.5 *hours*
-The --zoom is for looks, it makes the map look nicer in the most zoomed-in view.

This generates 16 .png files (or less if your map doesn't cover the full area selected with --geometry) named iso_tile_<x>_<y>_map.png. and also a iso_metadata_map.png.txt file.

then I run

Code: Select all
../../mergeiso/mergeiso iso_metadata_map.png.txt map2.png 1024


This generates normal rectangular (1024x1024 pixels) tiles by stitching the iso tiles.
the 1024 thould be divisible by the 4 x the value you passed to the --zoom option of minetestmapper, our you'll get weird stitching. because 1024 is divisible by 16, 1024 is ok here.

Normally I delete all the iso_*.png" files now to save some space.

it also outputs another metadata file: metadata_map2.png.txt you can pass this to the buildpyramid program like you would do for a normal (non iso) map to generate the leaflet pyramid.

the mergeiso utility is not completey bug free and a bit in a state of flux at the moment, so I hope these instructions are still correct. Thanks to real life (work) interfering it has been a few weeks since I had time to work on it.
Edit: Also, the map that is produced by the generate leaflet script is blured when you zoom in, possibly due to JPEG. The nearest zoom should definitely use PNG

it is mainly blurred because the maximum zoom factor is set (by default) to let you zoom in more than 1:1. So the (webgl?) leaflet view will use biliniar interpolation between the pixels. Using png is not going to help. using a higher --zoom setting for minetestmapper helps. Png is slightly sharper (depending on the jpeg quality setting) but it makes the map a *lot* slower on my slow connection because the .pngs are so much bigger. So it's a trade-off.

Re: Lilo
If you don't tell *what errors exactly* it's kind of hard to help...
wziard
Member
 
Posts: 131
Joined: Mon Oct 29, 2018 7:12 pm

Re: Minetestmapper rewritten into C++

Postby OrangeSoda » Mon Apr 15, 2019 1:30 am

Great stuff! Love it.
OrangeSoda
Member
 
Posts: 49
Joined: Sat Sep 26, 2015 7:42 pm
In-game: SG



Return to Minetest-related projects



Who is online

Users browsing this forum: Bing Bot [Bot] and 0 guests