#where -t chunkymapregen just names the screen chunkymapregen
#where -t chunkymapregen just names the screen chunkymapregen
#Then if you are using screen and want to leave the output without terminating the process press Ctrl a d
#Then if you are using screen and want to leave the output without terminating the process press Ctrl a d
#NOTE: now that loop is default, cron job scripts, which now disable loop for compatibility with new version, are ALL optional and NOT recommended
#NOTE: now that loop is default, cron job scripts, which now disable loop for compatibility with new version, are ALL optional and NOT recommended
# ( to run only once, run: python chunkymap-regen.py --no-loop true )
# ( to run only once, run: python chunkymap-regen.py --no-loop true )
* Change program options (or stop it) while looping or rendering by placing signals.txt in the same directory as chunkymap-regen.py (see signals example files)
* Change program options (or stop it) while looping or rendering by placing signals.txt in the same directory as chunkymap-regen.py (see signals example files)
* to maintain stability of your text editor, save the file, close it, then move/copy it to the directory (or save it as something else then rename it to signals.txt).
* to maintain stability of your text editor, save the file, close it, then move/copy it to the directory (or save it as something else then rename it to signals.txt).
#verbose_enable is false for looped (default) mode and true for non-looped mode
#verbose_enable is false for looped (default) mode and true for non-looped mode
verbose_enable:True
verbose_enable:True
verbose_enable:False
verbose_enable:False
refresh_players_enable:True
refresh_players_enable:True
refresh_players_enable:False
refresh_players_enable:False
refresh_map_enable:True
refresh_map_enable:True
refresh_map_enable:False
refresh_map_enable:False
#rerenders chunks that were rendered in this run:
#rerenders chunks that were rendered in this run:
recheck_rendered:True
recheck_rendered:True
#where 1 is number of seconds (only delays first iteration--further iterations continue until refreshing player is needed):
#where 1 is number of seconds (only delays first iteration--further iterations continue until refreshing player is needed):
refresh_map_seconds:1
refresh_map_seconds:1
#where 1 is number of seconds:
#where 1 is number of seconds:
refresh_players_seconds:1
refresh_players_seconds:1
* Save jpg or png named as player's index to the players folder of the world to change player's icon on map (index is a number assigned for use with ajax when $show_player_names_enable is false). The index can be found in the player's yml file generated by chunkymap-regen.py.
* Save jpg or png named as player's index to the players folder of the world to change player's icon on map (index is a number assigned for use with ajax when $show_player_names_enable is false). The index can be found in the player's yml file generated by chunkymap-regen.py.
* Can show a static html version of map (echo_chunkymap_table() php function) -- see viewchunkymap.php
* Can show a static html version of map (echo_chunkymap_table() php function) -- see viewchunkymap.php
* Zoom in and out
* Zoom in and out
* optionally echo name of world that was detected by the scheduled py file
* optionally echo name of world that was detected by the scheduled py file
* shows player location (can optionally show only first characters of name, for privacy; there is no saved setting yet, so to adjust, you must change the value of $nonprivate_name_beginning_char_count in chunkymap.php)
* shows player location (can optionally show only first characters of name, for privacy; there is no saved setting yet, so to adjust, you must change the value of $nonprivate_name_beginning_char_count in chunkymap.php)
* Ghost players if they stay in one spot long enough (see $player_file_age_idle_max_seconds in chunkymap.php)
* Ghost players if they stay in one spot long enough (see $player_file_age_idle_max_seconds in chunkymap.php)
* Hide players if they stay in one spot long enough (see $player_file_age_expired_max_seconds in chunkymap.php) avoiding logout detection, and not requiring mods
* Hide players if they stay in one spot long enough (see $player_file_age_expired_max_seconds in chunkymap.php) avoiding logout detection, and not requiring mods
* Has optional script to add crontab entry (to schedule update script every minute that runs the py file unless the py file is not complete [took longer than 1 minute])
* Has optional script to add crontab entry (to schedule update script every minute that runs the py file unless the py file is not complete [took longer than 1 minute])
## Developer Notes:
## Developer Notes:
@ -54,16 +54,16 @@ Because of the feature, chunkymap-regen.py must prevent duplicates based on valu
This should be hard to corrupt since id is used as the indexer for the players dict (however, extra files with no matching entry in the dict will still need to be deleted if they exist)
This should be hard to corrupt since id is used as the indexer for the players dict (however, extra files with no matching entry in the dict will still need to be deleted if they exist)
* games_path, mods_path, players_path, and other subdirectories of the major ones should not be stored in minetestmeta.yml, since otherwise the values may deviate from the parent directories when the parent directories change.
* games_path, mods_path, players_path, and other subdirectories of the major ones should not be stored in minetestmeta.yml, since otherwise the values may deviate from the parent directories when the parent directories change.
To avoid this problem, instead derive the paths from the parent paths using your favorite language such as in the following examples:
To avoid this problem, instead derive the paths from the parent paths using your favorite language such as in the following examples:
* Keep in mind that gameid (in game.conf in a subgame folder, and world.mt in a world folder) is NOT case-sensitive: for example, minetest_game has the gameid 'Minetest' (first letter capitalized) but the worlds generated by Minetest client have the gameid 'minetest' (lowercase) in their world.mt
* Keep in mind that gameid (in game.conf in a subgame folder, and world.mt in a world folder) is NOT case-sensitive: for example, minetest_game has the gameid 'Minetest' (first letter capitalized) but the worlds generated by Minetest client have the gameid 'minetest' (lowercase) in their world.mt
Yet somehow for everything else, gameid in world.mt is the name of the game FOLDER (NOT the name variable in the folder's game.conf)
Yet somehow for everything else, gameid in world.mt is the name of the game FOLDER (NOT the name variable in the folder's game.conf)
* the map update function is only able to detect new chunks, and only checks edge chunks if player is present in one
* the map update function is only able to detect new chunks, and only checks edge chunks if player is present in one
* The following are saved to chunkymap.yml if not already set:
* The following are saved to chunkymap.yml if not already set:
www_minetest_path (such as /var/www/html/minetest)
www_minetest_path (such as /var/www/html/minetest)
@ -80,9 +80,9 @@ world_path
(NOTE: map refresh skips existing tiles unless you delete the related png and text files in your chunkymapdata directory)
(NOTE: map refresh skips existing tiles unless you delete the related png and text files in your chunkymapdata directory)
* If you are not using Ubuntu, first edit the installer for your distro (and please send the modified file to me [submit as new issue named such as: DISTRONAME installer except instead of DISTRONAME put the distro you made work])
* If you are not using Ubuntu, first edit the installer for your distro (and please send the modified file to me [submit as new issue named such as: DISTRONAME installer except instead of DISTRONAME put the distro you made work])
* If you are using Ubuntu
* If you are using Ubuntu
* Install the git version of minetest (or otherwise install 0.4.13 or other version compatible with the map generators used by chunkymap)
* Install the git version of minetest (or otherwise install 0.4.13 or other version compatible with the map generators used by chunkymap)
OPTION 2: IF you are using Ubuntu go to a terminal, cd to this directory,
OPTION 2: IF you are using Ubuntu go to a terminal, cd to this directory,
then switch user to the one that will run minetestserver
then switch user to the one that will run minetestserver
(since install-chunkymap-on-ubuntu.sh DOES replace "/home/owner" with current user's home [replace-with-current-user.py, which is automatically called by install, will change /home/owner to current user's directory in each script that install copies to $HOME/chunkymap])
(since install-chunkymap-on-ubuntu.sh DOES replace "/home/owner" with current user's home [replace-with-current-user.py, which is automatically called by install, will change /home/owner to current user's directory in each script that install copies to $HOME/chunkymap])
then go to Terminal and run:
then go to Terminal and run:
`minetestserver`
`minetestserver`
then when it is finished loading, press Ctrl C then run:
then when it is finished loading, press Ctrl C then run:
Installing as cron job is OPTIONAL (and NOT recommended):
Installing as cron job is OPTIONAL (and NOT recommended):
* IF you are using a distro such as Ubuntu 14.04 where first line of /etc/crontab is "m h dom mon dow user command" then if you want regular refresh of map then run:
* IF you are using a distro such as Ubuntu 14.04 where first line of /etc/crontab is "m h dom mon dow user command" then if you want regular refresh of map then run:
(otherwise first edit the script to fit your crontab then)
(otherwise first edit the script to fit your crontab then)
(if you are not using /var/www/html/minetest/chunkymapdata, edit chunkymap-cronjob script to use the correct directory, then)
(if you are not using /var/www/html/minetest/chunkymapdata, edit chunkymap-cronjob script to use the correct directory, then)
* Rename viewchunkymap.php so it won't be overwritten on update if you want to modify it (or anything you want) then make a link to it on your website or share the link some other way.
* Rename viewchunkymap.php so it won't be overwritten on update if you want to modify it (or anything you want) then make a link to it on your website or share the link some other way.
# The commands below will work if you are using the web installer, or have done mv minetest-chunkymap-master "$HOME/Downloads/minetest-chunkymap" (and if you are using /var/www/html/minetest -- otherwise change that below)
# The commands below will work if you are using the web installer, or have done mv minetest-chunkymap-master "$HOME/Downloads/minetest-chunkymap" (and if you are using /var/www/html/minetest -- otherwise change that below)
# after you do this, the update script will do it for you if you are using /var/www/html/minetest, otherwise edit the update script before using it to get these things updated
# after you do this, the update script will do it for you if you are using /var/www/html/minetest, otherwise edit the update script before using it to get these things updated
* IF you are using Windows
* IF you are using Windows
* Install Python 2.7
* Install Python 2.7
* Run install-chunkymap-on-windows.bat
* Run install-chunkymap-on-windows.bat
(which just runs C:\Python27\python install-chunkymap-on-windows.py)
(which just runs C:\Python27\python install-chunkymap-on-windows.py)
(the installer will automatically download and install numpy and Pillow)
(the installer will automatically download and install numpy and Pillow)
* or OPTIONALLY manual install what the above script does:
* or OPTIONALLY manual install what the above script does:
* put these files anywhere
* put these files anywhere
* python 2.7.x such as from python.org
* python 2.7.x such as from python.org
* run get_python_architecture.py to make sure you know whether to download the following in 32-bit or 64-bit
* run get_python_architecture.py to make sure you know whether to download the following in 32-bit or 64-bit
Administrator Command Prompt (to find it in Win 10, right-click windows menu)
Administrator Command Prompt (to find it in Win 10, right-click windows menu)