Merge branch 'master' into smooth-lighting
This commit is contained in:
306
README.rst
306
README.rst
@@ -3,63 +3,41 @@ Minecraft Overviewer
|
|||||||
====================
|
====================
|
||||||
By Andrew Brown and contributors (see CONTRIBUTORS.rst).
|
By Andrew Brown and contributors (see CONTRIBUTORS.rst).
|
||||||
|
|
||||||
http://github.com/overviewer/Minecraft-Overviewer
|
Documentation:
|
||||||
|
http://docs.overviewer.org
|
||||||
|
|
||||||
Generates large resolution images of a Minecraft map.
|
Github code repository:
|
||||||
|
http://github.com/overviewer/Minecraft-Overviewer
|
||||||
|
|
||||||
In short, this program reads in Minecraft world files and renders very large
|
|
||||||
resolution images that can be viewed through a Google Maps interface. It
|
|
||||||
performs a similar function to the existing Minecraft Cartographer program but
|
|
||||||
with a slightly different goal in mind: to generate large resolution images
|
|
||||||
such that one can zoom in and see details.
|
|
||||||
|
|
||||||
See some examples here!
|
The Minecraft Overviewer is a command-line tool for rendering high-resolution
|
||||||
http://github.com/overviewer/Minecraft-Overviewer/wiki/Map-examples
|
maps of Minecraft worlds. It generates a set of static html and image files and
|
||||||
|
uses the Google Maps API to display a nice interactive map.
|
||||||
|
|
||||||
Further documentation may be found at
|
The Overviewer has been in active development for over a year and has many
|
||||||
https://github.com/overviewer/Minecraft-Overviewer/wiki/Documentation
|
features, including day and night lighting, cave rendering, mineral overlays,
|
||||||
|
and many plugins for even more features! It is written mostly in Python with
|
||||||
|
critical sections in C as an extension module.
|
||||||
|
|
||||||
To contact the developers and other users, go to the site at the top of this
|
Getting Started
|
||||||
README, or go to #overviewer on irc.freenode.net.
|
---------------
|
||||||
|
All documentation has been consolidated at our documentation site. For
|
||||||
|
information on downloading, compiling, installing, and running The Overviewer,
|
||||||
|
visit the docs site.
|
||||||
|
|
||||||
Features
|
http://docs.overviewer.org
|
||||||
========
|
|
||||||
|
|
||||||
* Renders large resolution images of your world, such that you can zoom in and
|
A few helpful tips are below, but everyone is going to want to visit the
|
||||||
see details
|
documentation site for the most up-to-date and complete set of instructions!
|
||||||
|
|
||||||
* Customizable textures! Pulls textures straight from your installed texture
|
Alternatively, the docs are also in the docs/ directory of the source download.
|
||||||
pack!
|
Look in there if you can't access the docs site.
|
||||||
|
|
||||||
* Outputs a Google Map powered interface that is memory efficient, both in
|
Examples
|
||||||
generating and viewing.
|
--------
|
||||||
|
See examples of The Overviewer in action!
|
||||||
|
|
||||||
* Renders efficiently in parallel, using as many simultaneous processes as you
|
https://github.com/overviewer/Minecraft-Overviewer/wiki/Map-examples
|
||||||
want!
|
|
||||||
|
|
||||||
* Utilizes caching to speed up subsequent renderings of your world.
|
|
||||||
|
|
||||||
* Throw the output directory up on a web server to share your Minecraft world
|
|
||||||
with everyone!
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
============
|
|
||||||
This program requires:
|
|
||||||
|
|
||||||
* Python 2.6 or 2.7 <http://python.org/download/>
|
|
||||||
* PIL (Python Imaging Library) <http://www.pythonware.com/products/pil/>
|
|
||||||
* Numpy <http://scipy.org/Download>
|
|
||||||
* Either the Minecraft client installed, or a terrain.png file. See the
|
|
||||||
`Textures`_ section below.
|
|
||||||
* A C compiler.
|
|
||||||
|
|
||||||
If you download a binary package, then some or all of these may not be required.
|
|
||||||
|
|
||||||
Using the Overviewer
|
|
||||||
====================
|
|
||||||
|
|
||||||
For a quick-start guide, see
|
|
||||||
https://github.com/overviewer/Minecraft-Overviewer/wiki/Quick-Start-Guide
|
|
||||||
|
|
||||||
Disclaimers
|
Disclaimers
|
||||||
-----------
|
-----------
|
||||||
@@ -78,204 +56,6 @@ directory and it will only update the tiles it needs to.
|
|||||||
There are probably some other minor glitches along the way, hopefully they will
|
There are probably some other minor glitches along the way, hopefully they will
|
||||||
be fixed soon. See the `Bugs`_ section below.
|
be fixed soon. See the `Bugs`_ section below.
|
||||||
|
|
||||||
Textures
|
|
||||||
--------
|
|
||||||
The Overviewer uses actual textures to render your world. However, I don't
|
|
||||||
include textures in the package. You will need to do one of two things before
|
|
||||||
you can use the Overviewer:
|
|
||||||
|
|
||||||
* Make sure the Minecraft client is installed. The Overviewer will find the
|
|
||||||
installed minecraft.jar and extract the textures from it.
|
|
||||||
|
|
||||||
* Install a texture file yourself. This file is called "terrain.png" and is
|
|
||||||
normally found in your minecraft.jar file (not "Minecraft.jar", the launcher,
|
|
||||||
but rather the file that's downloaded by the launcher and installed into a
|
|
||||||
hidden directory). You can also get this file from any of the third party
|
|
||||||
texture packs out there.
|
|
||||||
|
|
||||||
Biome Tinting
|
|
||||||
-------------
|
|
||||||
With the Halloween update, biomes were added to Minecraft. In order to get
|
|
||||||
biome-accurate tinting, the Overviewer can use biome data produced by the
|
|
||||||
Minecraft Biome Extractor tool. This tool can be downloaded from:
|
|
||||||
http://www.minecraftforum.net/viewtopic.php?f=25&t=80902
|
|
||||||
|
|
||||||
If the "biomes" folder is present in the world directory, then the Overviewer
|
|
||||||
will use the biome data to tint grass and leaves automatically -- there is no
|
|
||||||
command line option to turn this feature on. If this folder does not exist,
|
|
||||||
then the Overviewer will use a static tinting for grass and leaves.
|
|
||||||
|
|
||||||
Compiling the C Extension
|
|
||||||
-------------------------
|
|
||||||
The C Extension for Overviewer is no longer optional. In addition to
|
|
||||||
providing a higher quality image compositing function that looks better on
|
|
||||||
maps with lighting enabled, it now does the bulk of the rendering.
|
|
||||||
|
|
||||||
If you downloaded Overviewer as a binary package, this extension will already
|
|
||||||
be compiled for you.
|
|
||||||
|
|
||||||
If you have a C compiler and the Python development libraries set up, you can
|
|
||||||
compile this extension like this::
|
|
||||||
|
|
||||||
python setup.py build
|
|
||||||
|
|
||||||
Note that you need the development headers for your version of Python installed,
|
|
||||||
look for a package named 'python-dev', 'python-devel' or similar. Also, some
|
|
||||||
Python distributions do not install "Imaging.h" and "ImPlatform.h" properly. If
|
|
||||||
you get errors complaining about them, you can get them from the PIL source, or
|
|
||||||
at <http://svn.effbot.org/public/tags/pil-1.1.7/libImaging/>. Just put them in
|
|
||||||
the same directory as "overviewer.py".
|
|
||||||
|
|
||||||
For more detailed instructions, check the wiki:
|
|
||||||
https://github.com/overviewer/Minecraft-Overviewer/wiki/Build-Instructions
|
|
||||||
|
|
||||||
Running
|
|
||||||
-------
|
|
||||||
To generate a set of Google Map tiles, use the overviewer.py script like this::
|
|
||||||
|
|
||||||
python overviewer.py [OPTIONS] <World # / Name / Path to World> <Output Directory>
|
|
||||||
|
|
||||||
The output directory will be created if it doesn't exist. This will generate a
|
|
||||||
set of image tiles for your world in the directory you choose. When it's done,
|
|
||||||
you will find an index.html file in the same directory that you can use to view
|
|
||||||
it.
|
|
||||||
|
|
||||||
|
|
||||||
Options
|
|
||||||
-------
|
|
||||||
|
|
||||||
-h, --help
|
|
||||||
Shows the list of options and exits
|
|
||||||
|
|
||||||
--advanced-help
|
|
||||||
Display help - including advanced options
|
|
||||||
|
|
||||||
-p PROCS, --processes=PROCS
|
|
||||||
Adding the "-p" option will utilize more cores during processing. This
|
|
||||||
can speed up rendering quite a bit. The default is set to the same
|
|
||||||
number of cores in your computer, but you can adjust it.
|
|
||||||
|
|
||||||
Example to run 5 worker processes in parallel::
|
|
||||||
|
|
||||||
python overviewer.py -p 5 <Path to World> <Output Directory>
|
|
||||||
|
|
||||||
-d, --delete
|
|
||||||
This option changes the mode of execution. No tiles are rendered, and
|
|
||||||
instead, files are deleted.
|
|
||||||
|
|
||||||
*Note*: Currently only the overviewer.dat file is deleted when you run with
|
|
||||||
this option
|
|
||||||
|
|
||||||
--forcerender
|
|
||||||
Force re-rendering the entire map (or the given regionlist). This
|
|
||||||
is an easier way to completely re-render without deleting the map.
|
|
||||||
|
|
||||||
--regionlist=regionlist
|
|
||||||
Use this option to specify manually a list of regions to consider for
|
|
||||||
updating. Without this option, every chunk in every region is checked for
|
|
||||||
update and if necessary, re-rendered. If this option points to a file
|
|
||||||
containing, 1 per line, the path to a region data file, then only those
|
|
||||||
in the list will be considered for update.
|
|
||||||
|
|
||||||
It's up to you to build such a list. On Linux or Mac, try using the "find"
|
|
||||||
command. You could, for example, output all region files that are older than
|
|
||||||
a certain date. Or perhaps you can incrementally update your map by passing
|
|
||||||
in a subset of regions each time. It's up to you!
|
|
||||||
|
|
||||||
--rendermodes=MODE1[,MODE2,...]
|
|
||||||
Use this option to specify which render mode to use, such as lighting or
|
|
||||||
night. Use --list-rendermodes to get a list of available rendermodes, and
|
|
||||||
a short description of each. If you provide more than one mode (separated
|
|
||||||
by commas), Overviewer will render all of them at once, and provide a
|
|
||||||
toggle on the resulting map to switch between them.
|
|
||||||
|
|
||||||
If for some reason commas do not work for your shell (like if you're using
|
|
||||||
Powershell on Windows), you can also use a colon ':' or a forward slash '/'
|
|
||||||
to separate the modes.
|
|
||||||
|
|
||||||
--list-rendermodes
|
|
||||||
List the available render modes, and a short description of each.
|
|
||||||
|
|
||||||
--north-direction=NORTH_DIRECTION
|
|
||||||
Specifies which corner of the screen north will point to.
|
|
||||||
Valid options are: lower-left, upper-left, upper-right, lower-right.
|
|
||||||
If you do not specify this option, it will default to whatever direction
|
|
||||||
the existing map uses. For new maps, it defaults to lower-left for
|
|
||||||
historical reasons.
|
|
||||||
|
|
||||||
--settings=PATH
|
|
||||||
Use this option to load settings from a file. The format of this file is
|
|
||||||
given below.
|
|
||||||
|
|
||||||
|
|
||||||
Settings
|
|
||||||
--------
|
|
||||||
|
|
||||||
You can optionally store settings in a file named settings.py (or really,
|
|
||||||
anything you want). It is a regular python script, so you can use any python
|
|
||||||
functions or modules you want. To use a settings file, use the --settings
|
|
||||||
command line option.
|
|
||||||
|
|
||||||
For a sample settings file, look at 'sample.settings.py'. Note that this file
|
|
||||||
is not meant to be used directly, but instead it should be used as a
|
|
||||||
collection of examples to guide writing your own.
|
|
||||||
|
|
||||||
Here's a (possibly incomplete) list of available settings, which are available
|
|
||||||
in settings.py. Note that you can also set command-line options in a similar
|
|
||||||
way.
|
|
||||||
|
|
||||||
imgformat=FORMAT
|
|
||||||
Set the output image format used for the tiles. The default is 'png',
|
|
||||||
but 'jpg' is also supported.
|
|
||||||
|
|
||||||
zoom=ZOOM
|
|
||||||
The Overviewer by default will detect how many zoom levels are required
|
|
||||||
to show your entire map. This option sets it manually.
|
|
||||||
|
|
||||||
*You do not normally need to set this option!*
|
|
||||||
|
|
||||||
This is equivalent to setting the dimensions of the highest zoom level. It
|
|
||||||
does not actually change how the map is rendered, but rather *how much of
|
|
||||||
the map is rendered.* Setting this option too low *will crop your map.*
|
|
||||||
(Calling this option "zoom" may be a bit misleading, I know)
|
|
||||||
|
|
||||||
To be precise, it sets the width and height of the highest zoom level, in
|
|
||||||
tiles. A zoom level of z means the highest zoom level of your map will be
|
|
||||||
2^z by 2^z tiles.
|
|
||||||
|
|
||||||
This option map be useful if you have some outlier chunks causing your map
|
|
||||||
to be too large, or you want to render a smaller portion of your map,
|
|
||||||
instead of rendering everything.
|
|
||||||
|
|
||||||
Remember that each additional zoom level adds 4 times as many tiles as
|
|
||||||
the last. This can add up fast, zoom level 10 has over a million tiles.
|
|
||||||
Tiles with no content will not be rendered, but they still take a small
|
|
||||||
amount of time to process.
|
|
||||||
|
|
||||||
web_assets_hook
|
|
||||||
This option lets you define a function to run after the web assets have
|
|
||||||
been copied into the output directory, but before any tile rendering takes
|
|
||||||
place. This is an ideal time to do any custom postprocessing for
|
|
||||||
markers.js or other web assets.
|
|
||||||
|
|
||||||
This function should accept one argument: a QuadtreeGen object.
|
|
||||||
|
|
||||||
web_assets_path
|
|
||||||
This option lets you provide alternative web assets to use when
|
|
||||||
rendering. The contents of this folder will be copied into the output folder
|
|
||||||
during render, and will overwrite any default files already copied by
|
|
||||||
Overviewer. See the web_assets folder included with Overviewer for the
|
|
||||||
default assets.
|
|
||||||
|
|
||||||
textures_path
|
|
||||||
This is like web_assets_path, but instead it provides an alternative texture
|
|
||||||
source. Overviewer looks in here for terrain.png and other textures before
|
|
||||||
it looks anywhere else.
|
|
||||||
|
|
||||||
north_direction
|
|
||||||
Specifies which corner of the screen north will point to.
|
|
||||||
Valid options are: lower-left, upper-left, upper-right, lower-right.
|
|
||||||
|
|
||||||
Viewing the Results
|
Viewing the Results
|
||||||
-------------------
|
-------------------
|
||||||
Within the output directory you will find two things: an index.html file, and a
|
Within the output directory you will find two things: an index.html file, and a
|
||||||
@@ -290,44 +70,12 @@ however, bound by the Google Maps API terms of service.
|
|||||||
|
|
||||||
http://code.google.com/apis/maps/terms.html
|
http://code.google.com/apis/maps/terms.html
|
||||||
|
|
||||||
Crushing the Output Tiles
|
|
||||||
-------------------------
|
|
||||||
Image files taking too much disk space? Try using pngcrush. On Linux and
|
|
||||||
probably Mac, if you have pngcrush installed, this command will go and crush
|
|
||||||
all your images in the given destination. This took the total disk usage of the
|
|
||||||
render for my world from 85M to 67M.
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
find /path/to/destination -name "*.png" -exec pngcrush {} {}.crush \; -exec mv {}.crush {} \;
|
|
||||||
|
|
||||||
Or if you prefer a more parallel solution, try something like this::
|
|
||||||
|
|
||||||
find /path/to/destination -print0 | xargs -0 -n 1 -P <nr_procs> sh -c 'pngcrush $0 temp.$$ && mv temp.$$ $0'
|
|
||||||
|
|
||||||
If you're on Windows, I've gotten word that this command line snippet works
|
|
||||||
provided pngout is installed and on your path. Note that the % symbols will
|
|
||||||
need to be doubled up if this is in a batch file.
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
FOR /R c:\path\to\tiles\folder %v IN (*.png) DO pngout %v /y
|
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
====
|
====
|
||||||
This program has bugs. They are mostly minor things, I wouldn't have released a
|
|
||||||
completely useless program. However, there are a number of things that I want
|
|
||||||
to fix or improve.
|
|
||||||
|
|
||||||
For a current list of issues, visit
|
For a current list of issues, visit
|
||||||
http://github.com/overviewer/Minecraft-Overviewer/issues
|
https://github.com/overviewer/Minecraft-Overviewer/issues
|
||||||
|
|
||||||
Feel free to comment on issues, report new issues, and vote on issues that are
|
Feel free to comment on issues, report new issues, and vote on issues that are
|
||||||
important to you, so I can prioritize accordingly.
|
important to you.
|
||||||
|
|
||||||
An incomplete list of things I want to do soon is:
|
|
||||||
|
|
||||||
* Improve efficiency
|
|
||||||
|
|
||||||
* Some kind of graphical interface.
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ Frequently Asked Questions
|
|||||||
==========================
|
==========================
|
||||||
|
|
||||||
**The full map doesn't display even when fully zoomed out!**
|
**The full map doesn't display even when fully zoomed out!**
|
||||||
Are you using the ``-z`` or ``--zoom`` option on your commandline or
|
Are you using the :option:`-z` or :option:`--zoom <-z>` option on your commandline or
|
||||||
in settings.py? If so, try removing it, or increasing the value you set.
|
in settings.py? If so, try removing it, or increasing the value you set.
|
||||||
It's quite likely you don't need it at all. See the documentation for the
|
It's quite likely you don't need it at all. See the documentation for the
|
||||||
:ref:`zoom <zoom>` option.
|
:option:`zoom <-z>` option.
|
||||||
|
|
||||||
**You've added a few feature, but it's not showing up on my map!**
|
**You've added a few feature, but it's not showing up on my map!**
|
||||||
Some new features will only show up in newly-rendered areas. Use the
|
Some new features will only show up in newly-rendered areas. Use the
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
..
|
||||||
|
Hey! You! Read these docs at http://docs.overviewer.org
|
||||||
|
Go there now!
|
||||||
|
|
||||||
========================
|
========================
|
||||||
The Minecraft Overviewer
|
The Minecraft Overviewer
|
||||||
========================
|
========================
|
||||||
@@ -17,9 +21,45 @@ For a simple example of what your renders will look like, head over to `The
|
|||||||
"Exmaple" Map <http://overviewer.org/example/>`_. For more user-contributed
|
"Exmaple" Map <http://overviewer.org/example/>`_. For more user-contributed
|
||||||
examples, see `The Example Wiki Page <https://github.com/overviewer/Minecraft-Overviewer/wiki/Map-examples>`_.
|
examples, see `The Example Wiki Page <https://github.com/overviewer/Minecraft-Overviewer/wiki/Map-examples>`_.
|
||||||
|
|
||||||
Download
|
Features
|
||||||
========
|
========
|
||||||
|
|
||||||
|
* Renders large resolution images of your world, such that you can zoom in and
|
||||||
|
see details
|
||||||
|
|
||||||
|
* Customizable textures! Pulls textures straight from your installed texture
|
||||||
|
pack!
|
||||||
|
|
||||||
|
* Outputs a Google Map powered interface that is memory efficient, both in
|
||||||
|
generating and viewing.
|
||||||
|
|
||||||
|
* Renders efficiently in parallel, using as many simultaneous processes as you
|
||||||
|
want!
|
||||||
|
|
||||||
|
* Utilizes caching to speed up subsequent renderings of your world.
|
||||||
|
|
||||||
|
* Throw the output directory up on a web server to share your Minecraft world
|
||||||
|
with everyone!
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
============
|
||||||
|
This is a quick list of what's required to run The Overviewer. It runs on
|
||||||
|
Windows, Mac, and Linux as long as you have these software packages installed:
|
||||||
|
|
||||||
|
* Python 2.6 or 2.7
|
||||||
|
|
||||||
|
* PIL (Python Imaging Library)
|
||||||
|
|
||||||
|
* Numpy
|
||||||
|
|
||||||
|
* Either a Minecraft Client installed or a terrain.png for the textures.
|
||||||
|
|
||||||
|
There are additional requirements for compiling it. More details are available
|
||||||
|
in either the :doc:`Building <building>` or :doc:`Installing <installing>` pages.
|
||||||
|
|
||||||
|
Getting Started
|
||||||
|
===============
|
||||||
|
|
||||||
The Overviewer works with Linux, Mac, and Windows! We provide Windows and Debian
|
The Overviewer works with Linux, Mac, and Windows! We provide Windows and Debian
|
||||||
built executables for your convenience. Find them as well as the full sources on
|
built executables for your convenience. Find them as well as the full sources on
|
||||||
our `Github Homepage`_.
|
our `Github Homepage`_.
|
||||||
@@ -35,10 +75,11 @@ bad)**, head to the :doc:`Building <building>` page.
|
|||||||
|
|
||||||
Help
|
Help
|
||||||
====
|
====
|
||||||
**IF YOU NEED HELP COMPILING OR RUNNING THE OVERVIEWER** feel free to pop in
|
|
||||||
IRC: #overviewer on freenode. Not familiar with IRC? `Use the web client
|
**IF YOU NEED HELP COMPILING OR RUNNING THE OVERVIEWER** feel free to chat with
|
||||||
<http://webchat.freenode.net/?channels=overviewer>`_. There's usually someone on
|
us live in IRC: #overviewer on Freenode. There's usually someone on there that
|
||||||
there that can help you out.
|
can help you out. Not familiar with IRC? `Use the web client
|
||||||
|
<http://webchat.freenode.net/?channels=overviewer>`_.
|
||||||
|
|
||||||
If you think you've found a bug or other issue, file an issue on our `Issue
|
If you think you've found a bug or other issue, file an issue on our `Issue
|
||||||
Tracker <https://github.com/overviewer/Minecraft-Overviewer/issues>`_. Filing or
|
Tracker <https://github.com/overviewer/Minecraft-Overviewer/issues>`_. Filing or
|
||||||
|
|||||||
638
docs/options.rst
638
docs/options.rst
@@ -1,6 +1,22 @@
|
|||||||
=======
|
====================
|
||||||
Options
|
Settings and Options
|
||||||
=======
|
====================
|
||||||
|
|
||||||
|
Overviewer settings can be set in two places, on the command line when you run
|
||||||
|
the overviewer, or in a settings file. You specify a settings file to use with
|
||||||
|
the :option:`--settings` command line option.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Any command line option can optionally be set in the settings file. However,
|
||||||
|
there are some settings that can only be set in the settings file.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Some options go by different names on the command line and the settings
|
||||||
|
file. Those are noted in bold below.
|
||||||
|
|
||||||
|
The first section of this document covers command line options. The second part
|
||||||
|
covers the more advanced ways of customizing The Overviewer using settings
|
||||||
|
files.
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
:local:
|
:local:
|
||||||
@@ -18,23 +34,13 @@ Command line options
|
|||||||
|
|
||||||
Useful Options
|
Useful Options
|
||||||
--------------
|
--------------
|
||||||
.. cmdoption:: --rendermodes <MODE1>[,MODE2,...]
|
|
||||||
|
|
||||||
Use this option to specify which render mode to use, such as lighting or
|
.. cmdoption:: --settings <PATH>
|
||||||
night. Use --list-rendermodes to get a list of available rendermodes, and
|
|
||||||
a short description of each. If you provide more than one mode (separated
|
|
||||||
by commas), Overviewer will render all of them at once, and provide a
|
|
||||||
toggle on the resulting map to switch between them.
|
|
||||||
|
|
||||||
If for some reason commas do not work for your shell (like if you're using
|
Use this option to load settings from a file. For more information see the
|
||||||
Powershell on Windows), you can also use a colon ':' or a forward slash '/'
|
`Settings File`_ section below.
|
||||||
to separate the modes.
|
|
||||||
|
|
||||||
See the `Render Modes`_ section for more information.
|
**Not available in settings file (duh)**
|
||||||
|
|
||||||
.. cmdoption:: --list-rendermodes
|
|
||||||
|
|
||||||
List the available render modes, and a short description of each.
|
|
||||||
|
|
||||||
.. cmdoption:: --north-direction <NORTH_DIRECTION>
|
.. cmdoption:: --north-direction <NORTH_DIRECTION>
|
||||||
|
|
||||||
@@ -44,95 +50,346 @@ Useful Options
|
|||||||
the existing map uses. For new maps, it defaults to lower-left for
|
the existing map uses. For new maps, it defaults to lower-left for
|
||||||
historical reasons.
|
historical reasons.
|
||||||
|
|
||||||
.. cmdoption:: --settings <PATH>
|
.. note::
|
||||||
|
We define cardinal directions by the sun in game; the sun rises in the
|
||||||
|
East and sets in the West.
|
||||||
|
|
||||||
Use this option to load settings from a file. For more information see the
|
**Settings file:**
|
||||||
`Settings File`_ section below.
|
Option name: ``north_direction``
|
||||||
|
|
||||||
|
Format: One of the above strings.
|
||||||
|
|
||||||
|
.. cmdoption:: --rendermodes <MODE1>[,MODE2,...]
|
||||||
|
|
||||||
|
Use this option to specify which render mode to use, such as lighting or
|
||||||
|
night. Use :option:`--list-rendermodes` to get a list of available
|
||||||
|
rendermodes, and a short description of each. If you provide more than one
|
||||||
|
mode (separated by commas), Overviewer will render all of them at once, and
|
||||||
|
provide a toggle on the resulting map to switch between them.
|
||||||
|
|
||||||
|
If for some reason commas do not work for your shell (like if you're using
|
||||||
|
Powershell on Windows), you can also use a colon ':' or a forward slash '/'
|
||||||
|
to separate the modes.
|
||||||
|
|
||||||
|
Incomplete list of common render-modes for your convenience:
|
||||||
|
|
||||||
|
* normal
|
||||||
|
* lighting
|
||||||
|
* night
|
||||||
|
|
||||||
|
Example::
|
||||||
|
|
||||||
|
./overviewer.py --rendermodes=lighting,night /opt/server/world /opt/map
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``rendermode`` **Note the lack of an s**
|
||||||
|
|
||||||
|
Format: a list of strings.
|
||||||
|
|
||||||
|
Default: only render the normal mode
|
||||||
|
|
||||||
|
See the `Render Modes`_ section for more information.
|
||||||
|
|
||||||
|
.. cmdoption:: --list-rendermodes
|
||||||
|
|
||||||
|
List the available render modes, and a short description of each, and exit.
|
||||||
|
|
||||||
|
**Not available in settings file**
|
||||||
|
|
||||||
Less Useful Options
|
Less Useful Options
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
.. cmdoption:: -p <PROCS>, --processes <PROCS>
|
|
||||||
|
|
||||||
Adding the "-p" option will utilize more cores during processing. This
|
|
||||||
can speed up rendering quite a bit. The default is set to the same
|
|
||||||
number of cores in your computer, but you can adjust it.
|
|
||||||
|
|
||||||
Example to run 5 worker processes in parallel::
|
|
||||||
|
|
||||||
python overviewer.py -p 5 <Path to World> <Output Directory>
|
|
||||||
|
|
||||||
.. cmdoption:: -d, --delete
|
|
||||||
|
|
||||||
This option changes the mode of execution. No tiles are rendered, and
|
|
||||||
instead, files are deleted.
|
|
||||||
|
|
||||||
*Note*: Currently only the overviewer.dat file is deleted when you run with
|
|
||||||
this option
|
|
||||||
|
|
||||||
.. cmdoption:: --forcerender
|
|
||||||
|
|
||||||
Force re-rendering the entire map (or the given regionlist). This
|
|
||||||
is an easier way to completely re-render without deleting the map.
|
|
||||||
|
|
||||||
.. cmdoption:: --regionlist <regionlist>
|
|
||||||
|
|
||||||
Use this option to specify manually a list of regions to consider for
|
|
||||||
updating. Without this option, every chunk in every region is checked for
|
|
||||||
update and if necessary, re-rendered. If this option points to a file
|
|
||||||
containing, 1 per line, the path to a region data file, then only those
|
|
||||||
in the list will be considered for update.
|
|
||||||
|
|
||||||
It's up to you to build such a list. On Linux or Mac, try using the "find"
|
|
||||||
command. You could, for example, output all region files that are older than
|
|
||||||
a certain date. Or perhaps you can incrementally update your map by passing
|
|
||||||
in a subset of regions each time. It's up to you!
|
|
||||||
|
|
||||||
.. cmdoption:: -z <zoom>, --zoom <zoom>
|
|
||||||
|
|
||||||
See the :ref:`zoom <zoom>` section below.
|
|
||||||
|
|
||||||
.. cmdoption:: --bg-color <color>
|
.. cmdoption:: --bg-color <color>
|
||||||
|
|
||||||
Configures the background color for the Google Map output. Specify in
|
Configures the background color for the Google Map output. Specify in
|
||||||
#RRGGBB format.
|
#RRGGBB format.
|
||||||
|
|
||||||
*This list is currently incomplete. Use the* :option:`--help <-h>` *and*
|
**Settings file:**
|
||||||
:option:`--advanced-help` *options to see the complete list of accepted command
|
Option name: ``bg_color``
|
||||||
line options.*
|
|
||||||
|
|
||||||
Settings File
|
Format: A string in the above format.
|
||||||
=============
|
|
||||||
|
|
||||||
You can optionally store settings in a file named settings.py (or really,
|
Default: "#1A1A1A"
|
||||||
anything you want). It is a regular python script, so you can use any python
|
|
||||||
functions or modules you want. To use a settings file, use the --settings
|
|
||||||
command line option.
|
|
||||||
|
|
||||||
For a sample settings file, look at 'sample.settings.py'. Note that this file
|
.. cmdoption:: --changelist <filename>
|
||||||
is not meant to be used directly, but instead it should be used as a
|
|
||||||
collection of examples to guide writing your own.
|
|
||||||
|
|
||||||
Here's a (possibly incomplete) list of available settings, which are available
|
Outputs a list of changed tiles to the named file. If the file doesn't
|
||||||
in settings.py. Note that you can also set command-line options in a similar
|
exist, it is created. If it does exist, its contents are overwritten.
|
||||||
way.
|
|
||||||
|
|
||||||
imgformat=FORMAT
|
This could be useful for example in conjunction with a script to upload only
|
||||||
Set the output image format used for the tiles. The default is 'png',
|
changed tiles to your web server.
|
||||||
but 'jpg' is also supported.
|
|
||||||
|
|
||||||
.. _zoom:
|
**Settings file:**
|
||||||
|
Option name: ``changelist``
|
||||||
|
|
||||||
zoom=ZOOM
|
Format: String (path plus filename)
|
||||||
The Overviewer by default will detect how many zoom levels are required
|
|
||||||
to show your entire map. This option sets it manually.
|
|
||||||
|
|
||||||
*You do not normally need to set this option!*
|
Default: Not specified (no changelist outputted)
|
||||||
|
|
||||||
This is equivalent to setting the dimensions of the highest zoom level. It
|
.. cmdoption:: --changelist-format <format>
|
||||||
does not actually change how the map is rendered, but rather *how much of
|
|
||||||
the map is rendered.* Setting this option too low *will crop your map.*
|
Chooses absolute or relative paths for the output with the
|
||||||
(Calling this option "zoom" may be a bit misleading, I know)
|
:option:`--changelist` option. Valid values for format are "relative" or
|
||||||
|
"absolute".
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``changelist_format``
|
||||||
|
|
||||||
|
Format: A string (one of the above)
|
||||||
|
|
||||||
|
Default: "relative"
|
||||||
|
|
||||||
|
.. cmdoption:: --check-terrain
|
||||||
|
|
||||||
|
When this option appears on the command line, Overviewer prints the location
|
||||||
|
and hash of the terrain.png it will use, and then exits.
|
||||||
|
|
||||||
|
This is useful for debugging terrain.png path problems, especially with
|
||||||
|
:option:`--textures-path`. Use this to see what terrain.png your current
|
||||||
|
setup has selected.
|
||||||
|
|
||||||
|
See the :ref:`installing-textures` section for an example.
|
||||||
|
|
||||||
|
**Not available in settings file**
|
||||||
|
|
||||||
|
.. cmdoption:: --display-config
|
||||||
|
|
||||||
|
Display the configuration parameters and exit. Doesn't render the map. This
|
||||||
|
is useful to help validate a configuration setup.
|
||||||
|
|
||||||
|
**Not available in settings file**
|
||||||
|
|
||||||
|
.. cmdoption:: --forcerender
|
||||||
|
|
||||||
|
Force re-rendering the entire map (or the given regionlist). This
|
||||||
|
is an easier way to completely re-render without deleting the map.
|
||||||
|
|
||||||
|
This is useful if you change texture packs and want to re-render everything
|
||||||
|
in the new textures, or if you're changing the :option:`--north-direction`.
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``forcerender``
|
||||||
|
|
||||||
|
Format: A boolean
|
||||||
|
|
||||||
|
Default: False
|
||||||
|
|
||||||
|
.. cmdoption:: --imgformat <format>
|
||||||
|
|
||||||
|
Specifies the output format for the tiles. Currently supported options are
|
||||||
|
"png" or "jpg".
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``imgformat``
|
||||||
|
|
||||||
|
Format: A string, either "png" or "jpg"
|
||||||
|
|
||||||
|
Default: "png"
|
||||||
|
|
||||||
|
.. cmdoption:: --imgquality <quality>
|
||||||
|
|
||||||
|
When using ":option:`--imgformat` jpg", this specifies the jpeg quality
|
||||||
|
parameter. This can help save disk space for larger maps.
|
||||||
|
|
||||||
|
For saving space with pngs, see :option:`--optimize-img`
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``imgquality``
|
||||||
|
|
||||||
|
Format: An integer 1-100
|
||||||
|
|
||||||
|
Default: 95
|
||||||
|
|
||||||
|
.. cmdoption:: --no-signs
|
||||||
|
|
||||||
|
Doesn't output signs to markers.js. This has the effect of disabling signs
|
||||||
|
on your map.
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``nosigns``
|
||||||
|
|
||||||
|
Format: Boolean
|
||||||
|
|
||||||
|
Default: False
|
||||||
|
|
||||||
|
.. cmdoption:: --optimize-img <level>
|
||||||
|
|
||||||
|
When using ":option:`--imgformat` png" (the default), this performs file
|
||||||
|
size optimizations on the output. The level parameter is an integer
|
||||||
|
specifying one of the following:
|
||||||
|
|
||||||
|
1. Run pngcrush on all tiles
|
||||||
|
|
||||||
|
2. Run pngcrush plus advdef on all tiles
|
||||||
|
|
||||||
|
3. Run pngcrush plus advdef with more aggressive settings.
|
||||||
|
|
||||||
|
These options may double the time or worse it takes to render your map, and
|
||||||
|
can be expected to give around 19-23% reduction in file size.
|
||||||
|
|
||||||
|
These options also require the corresponding program(s) installed and in
|
||||||
|
your system path ($PATH or %PATH% environment variable)
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``optimizeimg``
|
||||||
|
|
||||||
|
Format: an integer
|
||||||
|
|
||||||
|
Default: not set (no optimization)
|
||||||
|
|
||||||
|
.. cmdoption:: -p <procs>, --processes <procs>
|
||||||
|
|
||||||
|
On multi-cored or multi-processor machines, The Overviewer will perform its
|
||||||
|
work on *all* cores by default. If you want to manually specify how many
|
||||||
|
workers to run in parallel, use this option.
|
||||||
|
|
||||||
|
Example to run 5 worker processes in parallel::
|
||||||
|
|
||||||
|
overviewer.py -p 5 <Path to World> <Output Directory>
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``procs``
|
||||||
|
|
||||||
|
Format: an integer.
|
||||||
|
|
||||||
|
Default: ``multiprocessing.cpu_count()``
|
||||||
|
|
||||||
|
.. cmdoption:: -q, --quiet
|
||||||
|
|
||||||
|
Prints less output. You can specify this multiple times.
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``quiet``
|
||||||
|
|
||||||
|
Format: an integer
|
||||||
|
|
||||||
|
Default: 0
|
||||||
|
|
||||||
|
.. cmdoption:: --regionlist <regionlist>
|
||||||
|
|
||||||
|
Use this option to specify manually a list of regions to consider for
|
||||||
|
updating. In normal operation, every chunk in every region is checked for
|
||||||
|
update and if necessary, re-rendered. With this option, only the chunks in
|
||||||
|
the specified regions are checked.
|
||||||
|
|
||||||
|
This option should name a file containing, 1 per line, the path to the
|
||||||
|
region files to be considered for update.
|
||||||
|
|
||||||
|
It's up to you to build such a list. On Linux or Mac, try using the "find"
|
||||||
|
command. You could, for example, output all region files that are older than
|
||||||
|
a certain date. Or perhaps you can incrementally update your map by passing
|
||||||
|
in a subset of regions each time. It's up to you!
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``regionlist``
|
||||||
|
|
||||||
|
Format: A string representing the region list file.
|
||||||
|
|
||||||
|
Default: Scan all region files.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
See sample.settings.py for an example on how to build a region list
|
||||||
|
file.
|
||||||
|
|
||||||
|
.. cmdoption:: --skip-js
|
||||||
|
|
||||||
|
Skip the generation and output of markers.js and regions.js to the output
|
||||||
|
directory.
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``skipjs``
|
||||||
|
|
||||||
|
Format: Boolean
|
||||||
|
|
||||||
|
Default: False
|
||||||
|
|
||||||
|
.. cmdoption:: --textures-path <path>
|
||||||
|
|
||||||
|
Use this option to specify an alternate terrain.png to use for textures when
|
||||||
|
rendering a world. ``path`` specifies the **containing directory** of
|
||||||
|
terrain.png.
|
||||||
|
|
||||||
|
The Overviewer will look for terrain.png in the following places in this
|
||||||
|
order: path specified by this option, the program's directory, the
|
||||||
|
overviewer_core/data/textures directory within the source directory, the
|
||||||
|
default textures that come with Minecraft if it's installed.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If you installed Overviewer from the Debian package or chose to install
|
||||||
|
the overviewer from source (``python setup.py install``), then there
|
||||||
|
isn't a source directory; this option may be necessary to specify
|
||||||
|
non-default textures.
|
||||||
|
|
||||||
|
If you're having trouble getting The Overviewer to recognize your textures,
|
||||||
|
see the :option:`--check-terrain` option.
|
||||||
|
|
||||||
|
Also see the :ref:`installing-textures` section of the documentation.
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``textures_path``
|
||||||
|
|
||||||
|
Format: A string (path to a dir with a terrain.png)
|
||||||
|
|
||||||
|
Default: None
|
||||||
|
|
||||||
|
.. cmdoption:: -v, --verbose
|
||||||
|
|
||||||
|
Prints more output. You can specify this multiple times.
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``verbose``
|
||||||
|
|
||||||
|
Format: an integer
|
||||||
|
|
||||||
|
Default: 0
|
||||||
|
|
||||||
|
.. cmdoption:: -V, --version
|
||||||
|
|
||||||
|
Displays the version information and exits
|
||||||
|
|
||||||
|
**Not available in settings file**
|
||||||
|
|
||||||
|
.. cmdoption:: --web-assets-path <path>
|
||||||
|
|
||||||
|
When The Overviewer runs, it copies the files from the web_assets directory
|
||||||
|
to the destination directory. If you wish to override a file with your own,
|
||||||
|
for example, to make changes, you may put your modified copies in your own
|
||||||
|
directory and specify the directory with this option.
|
||||||
|
|
||||||
|
Files in the folder specified by ``path`` will override files from the
|
||||||
|
web_assets directory, letting you customize the files.
|
||||||
|
|
||||||
|
If you're running from source and are comfortable merging with Git, it may
|
||||||
|
be better to edit the web_assets directly. If we update one of the files,
|
||||||
|
you can use Git to merge in our changes with yours.
|
||||||
|
|
||||||
|
If, however, you do not like Git, and don't mind having to manually update
|
||||||
|
or merge web assets (or don't care for web asset updates at all), then copy
|
||||||
|
all the web assets to a directory of your own and use this option.
|
||||||
|
|
||||||
|
See the :ref:`web-assets` section for more info on customizing your web
|
||||||
|
assets.
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``web_assets_path``
|
||||||
|
|
||||||
|
Format: A string (path to a directory to use for custom web assets)
|
||||||
|
|
||||||
|
Default: Not set (no additional web assets used)
|
||||||
|
|
||||||
|
.. cmdoption:: -z <zoom>, --zoom <zoom>
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
This option does not do what you think it does. You almost certainly do
|
||||||
|
not want to set this.
|
||||||
|
|
||||||
|
This option effectively sets *how far the map can be zoomed out*. The
|
||||||
|
Overviewer will by default determine how many *zoom levels* your map needs
|
||||||
|
to show the entire map. This option overrides that; setting this option
|
||||||
|
lower than automatically determined will *crop your map* and parts will be
|
||||||
|
cut off. (We acknowledge that name zoom is misleading)
|
||||||
|
|
||||||
To be precise, it sets the width and height of the highest zoom level, in
|
To be precise, it sets the width and height of the highest zoom level, in
|
||||||
tiles. A zoom level of z means the highest zoom level of your map will be
|
tiles. A zoom level of z means the highest zoom level of your map will be
|
||||||
@@ -142,43 +399,100 @@ zoom=ZOOM
|
|||||||
to be too large, or you want to render a smaller portion of your map,
|
to be too large, or you want to render a smaller portion of your map,
|
||||||
instead of rendering everything.
|
instead of rendering everything.
|
||||||
|
|
||||||
Remember that each additional zoom level adds 4 times as many tiles as
|
**If you are getting a "your map is waaaay too big" error** then this option
|
||||||
the last. This can add up fast, zoom level 10 has over a million tiles.
|
may help you render your map. That error is unlikely in naturally generated
|
||||||
Tiles with no content will not be rendered, but they still take a small
|
worlds, but some really giant worlds may still cross the threshold. The
|
||||||
amount of time to process.
|
Overviewer will refuse to automatically render maps that require zoom level
|
||||||
|
15 and above, so if you get this error, try specifying ``--zoom 15``. If
|
||||||
|
your map is still cut off around the edges, increase the zoom level by 1 and
|
||||||
|
try again.
|
||||||
|
|
||||||
|
**Settings file:**
|
||||||
|
Option name: ``zoom``
|
||||||
|
|
||||||
|
Format: An integer.
|
||||||
|
|
||||||
|
Default: Automatically calculated from the world size.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
There are **more settings** that cannot be specified on the command line.
|
||||||
|
See the section below!
|
||||||
|
|
||||||
|
Settings File
|
||||||
|
=============
|
||||||
|
|
||||||
|
You can optionally store settings in a file named settings.py (or really,
|
||||||
|
anything you want). It is a regular python script, so you can use any python
|
||||||
|
functions or modules you want. To use a settings file, use the
|
||||||
|
:option:`--settings` command line option when you run the Overviewer.
|
||||||
|
|
||||||
|
For a sample settings file, look at 'sample.settings.py'. Note that this file is
|
||||||
|
not meant to be used directly, but instead it should be used as a collection of
|
||||||
|
examples to guide writing your own. It contains a number of examples to get you
|
||||||
|
started, but you almost certainly don't want to use it as-is.
|
||||||
|
|
||||||
|
You can specify *any of the above* options in your settings file *in addition to
|
||||||
|
the ones documented below*. For the command-line options, find its listed
|
||||||
|
"Option name" which is the Python identifier you will use. For example, if you
|
||||||
|
wanted to specify :option:`--bg-color`, you would look and see its option name
|
||||||
|
is "bg_color" (note the underscore) and you would put this line in your settings
|
||||||
|
file::
|
||||||
|
|
||||||
|
bg_color = "#000000"
|
||||||
|
|
||||||
|
Settings file options
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
In addition to the `Command line options`_, you can specify these options.
|
||||||
|
|
||||||
|
|
||||||
|
.. describe:: web_assets_hook
|
||||||
|
|
||||||
web_assets_hook
|
|
||||||
This option lets you define a function to run after the web assets have
|
This option lets you define a function to run after the web assets have
|
||||||
been copied into the output directory, but before any tile rendering takes
|
been copied into the output directory, but before any tile rendering takes
|
||||||
place. This is an ideal time to do any custom postprocessing for
|
place. This is an ideal time to do any custom postprocessing for
|
||||||
markers.js or other web assets.
|
markers.js or other web assets.
|
||||||
|
|
||||||
This function should accept one argument: a QuadtreeGen object.
|
Set this identifier to a Python *function object* to be called.
|
||||||
|
|
||||||
web_assets_path
|
This function should accept one argument: a
|
||||||
This option lets you provide alternative web assets to use when
|
:class:`overviewer_core.googlemap.MapGen` object.
|
||||||
rendering. The contents of this folder will be copied into the output folder
|
|
||||||
during render, and will overwrite any default files already copied by
|
|
||||||
Overviewer. See the web_assets folder included with Overviewer for the
|
|
||||||
default assets.
|
|
||||||
|
|
||||||
textures_path
|
.. warning::
|
||||||
This is like web_assets_path, but instead it provides an alternative texture
|
|
||||||
source. Overviewer looks in here for terrain.png and other textures before
|
|
||||||
it looks anywhere else.
|
|
||||||
|
|
||||||
north_direction
|
Currently, this option only works if the :option:`--skip-js` option is
|
||||||
Specifies which corner of the screen north will point to.
|
set
|
||||||
Valid options are: lower-left, upper-left, upper-right, lower-right.
|
|
||||||
|
.. describe:: rendermode_options
|
||||||
|
|
||||||
|
Different rendermodes have different options. This option is a dictionary
|
||||||
|
that maps rendermode names to option dictionaries.
|
||||||
|
|
||||||
|
See the `Render Modes`_ section for relevant options to the render modes.
|
||||||
|
|
||||||
|
.. describe:: custom_rendermodes
|
||||||
|
|
||||||
|
You can also specify your own custom rendermodes with this option. This is a
|
||||||
|
dictionary mapping your rendermode name to a dictionary of parameters to
|
||||||
|
use.
|
||||||
|
|
||||||
|
See the `Defining Custom Rendermodes`_ section for more information.
|
||||||
|
|
||||||
Render Modes
|
Render Modes
|
||||||
============
|
============
|
||||||
|
|
||||||
.. _rendermode-options: https://github.com/agrif/Minecraft-Overviewer/tree/rendermode-options
|
A rendermode is a unique way of rendering a Minecraft map. The normal render
|
||||||
|
mode was the original, and we've since added a render mode with proper lighting,
|
||||||
|
a rendermode for nighttime lighting, and we have a rendermode that only shows
|
||||||
|
caves.
|
||||||
|
|
||||||
Rendermode options are a new way of changing how existing render modes
|
Beyond that, there are also render "overlays" that can be toggled on or off,
|
||||||
work, by passing in values at startup. For example, you can change how
|
overlaying a proper rendering. These can be used to show where minerals are and
|
||||||
dark the 'night' mode is, or enable lighting in 'cave' mode.
|
such.
|
||||||
|
|
||||||
|
Specify your rendermodes with :option:`--rendermodes`. You can get a list of all
|
||||||
|
rendermodes installed with :option:`--list-rendermodes`.
|
||||||
|
|
||||||
Options and Rendermode Inheritance
|
Options and Rendermode Inheritance
|
||||||
----------------------------------
|
----------------------------------
|
||||||
@@ -211,9 +525,8 @@ relationships. Right now, it looks something like this:
|
|||||||
How to Set Options
|
How to Set Options
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
Available options for each mode are listed below, but once you know
|
Available options for each mode are listed below, but once you know what to set
|
||||||
what to set you'll have to edit *settings.py* to set them. Here's an
|
you'll have to edit your settings file to set them. Here's an example::
|
||||||
example::
|
|
||||||
|
|
||||||
rendermode_options = {
|
rendermode_options = {
|
||||||
'lighting': {
|
'lighting': {
|
||||||
@@ -231,39 +544,6 @@ you want to apply the options to, then a dictionary containing each option. So
|
|||||||
in this example, 'lighting' mode has 'edge_opacity' set to 0.5, and 'cave' mode
|
in this example, 'lighting' mode has 'edge_opacity' set to 0.5, and 'cave' mode
|
||||||
has 'lighting' turned on and 'depth_tinting' turned off.
|
has 'lighting' turned on and 'depth_tinting' turned off.
|
||||||
|
|
||||||
Defining Custom Rendermodes
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
Sometimes, you want to render two map layers with the same mode, but with two
|
|
||||||
different sets of options. For example, you way want to render a cave mode with
|
|
||||||
depth tinting, and another cave mode with lighting and no depth tinting. In this
|
|
||||||
case, you will want to define a 'custom' render mode that inherits from 'cave'
|
|
||||||
and uses the options you want. For example::
|
|
||||||
|
|
||||||
custom_rendermodes = {
|
|
||||||
'cave-lighting': {
|
|
||||||
'parent': 'cave',
|
|
||||||
'label': 'Lit Cave',
|
|
||||||
'description': 'cave mode, with lighting',
|
|
||||||
'options': {
|
|
||||||
'depth_tinting': False,
|
|
||||||
'lighting': True,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
rendermode = ['cave', 'cave-lighting']
|
|
||||||
|
|
||||||
Each entry in ``custom_rendermodes`` starts with the mode name, and is followed
|
|
||||||
by a dictionary of mode information, such as the parent mode and description
|
|
||||||
(for your reference), a label for use on the map, as well as the options to
|
|
||||||
apply.
|
|
||||||
|
|
||||||
Every custom rendermode you define is on exactly equal footing with the built-in
|
|
||||||
modes: you can put them in the ``rendermode`` list to render them, you can
|
|
||||||
inherit from them in other custom modes, and you can even add options to them
|
|
||||||
with ``rendermode_options``, though that's a little redundant.
|
|
||||||
|
|
||||||
Option Listing
|
Option Listing
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
@@ -311,6 +591,39 @@ color.
|
|||||||
|
|
||||||
See the *settings.py* example below for an example usage of **minerals**.
|
See the *settings.py* example below for an example usage of **minerals**.
|
||||||
|
|
||||||
|
Defining Custom Rendermodes
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Sometimes, you want to render two map layers with the same mode, but with two
|
||||||
|
different sets of options. For example, you way want to render a cave mode with
|
||||||
|
depth tinting, and another cave mode with lighting and no depth tinting. In this
|
||||||
|
case, you will want to define a 'custom' render mode that inherits from 'cave'
|
||||||
|
and uses the options you want. For example::
|
||||||
|
|
||||||
|
custom_rendermodes = {
|
||||||
|
'cave-lighting': {
|
||||||
|
'parent': 'cave',
|
||||||
|
'label': 'Lit Cave',
|
||||||
|
'description': 'cave mode, with lighting',
|
||||||
|
'options': {
|
||||||
|
'depth_tinting': False,
|
||||||
|
'lighting': True,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
rendermode = ['cave', 'cave-lighting']
|
||||||
|
|
||||||
|
Each entry in ``custom_rendermodes`` starts with the mode name, and is followed
|
||||||
|
by a dictionary of mode information, such as the parent mode and description
|
||||||
|
(for your reference), a label for use on the map, as well as the options to
|
||||||
|
apply.
|
||||||
|
|
||||||
|
Every custom rendermode you define is on exactly equal footing with the built-in
|
||||||
|
modes: you can put them in the ``rendermode`` list to render them, you can
|
||||||
|
inherit from them in other custom modes, and you can even add options to them
|
||||||
|
with ``rendermode_options``, though that's a little redundant.
|
||||||
|
|
||||||
Example *settings.py*
|
Example *settings.py*
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
@@ -351,3 +664,36 @@ tracks instead of ore.
|
|||||||
# 'night' : {'shade_strength' : 0.5},
|
# 'night' : {'shade_strength' : 0.5},
|
||||||
# 'cave' : {'only_lit' : True, 'lighting' : True, 'depth_tinting' : False},
|
# 'cave' : {'only_lit' : True, 'lighting' : True, 'depth_tinting' : False},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.. _web-assets:
|
||||||
|
|
||||||
|
Customizing Web Assets
|
||||||
|
======================
|
||||||
|
|
||||||
|
The web assets are the static html files stored in
|
||||||
|
overviewer_core/data/web_assets that are copied to the destination directory
|
||||||
|
when you run the Overviewer. Some of these files are actually templates and
|
||||||
|
certain parameters are set at render time depending on various factors. Others
|
||||||
|
are just straight up copied.
|
||||||
|
|
||||||
|
You should not typically need to edit the files in here, but if you like
|
||||||
|
customizing things or want to edit them for whatever reason, here's two ways:
|
||||||
|
|
||||||
|
1. If you're not afraid of Git and you're running the Overviewer from a Git
|
||||||
|
clone of our repository, you can edit the files in
|
||||||
|
overviewer_core/data/web_assets directly. When you pull in changes from us,
|
||||||
|
you will have to merge, but using Git should make this relatively painless.
|
||||||
|
|
||||||
|
2. Otherwise, the recommended way is to use the :option:`--web-assets-path`
|
||||||
|
option. Use this option and point it to a directory of customized web assets
|
||||||
|
to copy.
|
||||||
|
|
||||||
|
Files from the original web_assets directory are still copied, but any files
|
||||||
|
in the custom web assets directory will override the originals. This way you
|
||||||
|
can customize a few files and leave the rest alone.
|
||||||
|
|
||||||
|
The downside is, if you want to upgrade you will have to merge in your
|
||||||
|
changes with any of our changes manually. To avoid merging entirely, just
|
||||||
|
copy *all* the web assets to your custom web assets folder. You'll keep the
|
||||||
|
old version of all files for eternity, missing out on new features we may
|
||||||
|
add, but you won't have to deal with merges at all.
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ And similarly for other systems::
|
|||||||
1. The path to your Minecraft world on your hard drive
|
1. The path to your Minecraft world on your hard drive
|
||||||
2. The name of a single player world on your current system. Note that if it
|
2. The name of a single player world on your current system. Note that if it
|
||||||
has spaces, you will need to put the world name in quotes.
|
has spaces, you will need to put the world name in quotes.
|
||||||
3. If the world name is in the format "World #" (e.g. "World 1"), you can just specify the
|
3. If your single-player world name is in the format "World #" (e.g. "World
|
||||||
number.
|
1"), you can just specify the number.
|
||||||
|
|
||||||
**Output Dir**
|
**Output Dir**
|
||||||
This is the directory you would like to put the rendered tiles and
|
This is the directory you would like to put the rendered tiles and
|
||||||
@@ -59,6 +59,8 @@ Incremental updates are just as easy, and a lot faster. If you go and change
|
|||||||
something inside your world, run the command again and Overviewer will
|
something inside your world, run the command again and Overviewer will
|
||||||
automatically re-render only what's needed.
|
automatically re-render only what's needed.
|
||||||
|
|
||||||
|
.. _installing-textures:
|
||||||
|
|
||||||
Installing the Textures
|
Installing the Textures
|
||||||
=======================
|
=======================
|
||||||
If you're running on a machine without the Minecraft client installed, you will
|
If you're running on a machine without the Minecraft client installed, you will
|
||||||
@@ -89,10 +91,10 @@ You have several options:
|
|||||||
installations, you will need to specify the path... see the next bullet.
|
installations, you will need to specify the path... see the next bullet.
|
||||||
|
|
||||||
* You can put a terrain.png file anywhere you want and point to its location
|
* You can put a terrain.png file anywhere you want and point to its location
|
||||||
with the ``--textures-path`` option. This should point to the directory containing
|
with the :option:`--textures-path` option. This should point to the directory containing
|
||||||
the terrain.png, not to the file itself.
|
the terrain.png, not to the file itself.
|
||||||
|
|
||||||
Note: the ``--check-terrain`` option is useful for debugging terrain.png issues.
|
Note: the :option:`--check-terrain` option is useful for debugging terrain.png issues.
|
||||||
For example::
|
For example::
|
||||||
|
|
||||||
$ ./overviewer.py --check-terrain
|
$ ./overviewer.py --check-terrain
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ def main():
|
|||||||
parser.add_option("--imgformat", dest="imgformat", helptext="The image output format to use. Currently supported: png(default), jpg.", advanced=True )
|
parser.add_option("--imgformat", dest="imgformat", helptext="The image output format to use. Currently supported: png(default), jpg.", advanced=True )
|
||||||
parser.add_option("--imgquality", dest="imgquality", default=95, helptext="Specify the quality of image output when using imgformat=\"jpg\".", type="int", advanced=True)
|
parser.add_option("--imgquality", dest="imgquality", default=95, helptext="Specify the quality of image output when using imgformat=\"jpg\".", type="int", advanced=True)
|
||||||
parser.add_option("--bg-color", dest="bg_color", helptext="Configures the background color for the GoogleMap output. Specify in #RRGGBB format", advanced=True, type="string", default="#1A1A1A")
|
parser.add_option("--bg-color", dest="bg_color", helptext="Configures the background color for the GoogleMap output. Specify in #RRGGBB format", advanced=True, type="string", default="#1A1A1A")
|
||||||
parser.add_option("--optimize-img", dest="optimizeimg", helptext="If using png, perform image file size optimizations on the output. Specify 1 for pngcrush, 2 for pngcrush+advdef and 3 for pngcrush-advdef with more agressive settings. This may double (or more) render times, but will produce up to 30% smaller images. NOTE: requires corresponding programs in $PATH or %PATH%", advanced=True)
|
parser.add_option("--optimize-img", dest="optimizeimg", helptext="If using png, perform image file size optimizations on the output. Specify 1 for pngcrush, 2 for pngcrush+advdef and 3 for pngcrush-advdef with more aggressive settings. This may double (or more) render times, but will produce up to 30% smaller images. NOTE: requires corresponding programs in $PATH or %PATH%", advanced=True)
|
||||||
parser.add_option("--web-assets-hook", dest="web_assets_hook", helptext="If provided, run this function after the web assets have been copied, but before actual tile rendering begins. It should accept a MapGen object as its only argument.", action="store", metavar="FUNCTION", type="function", advanced=True)
|
parser.add_option("--web-assets-hook", dest="web_assets_hook", helptext="If provided, run this function after the web assets have been copied, but before actual tile rendering begins. It should accept a MapGen object as its only argument.", action="store", metavar="FUNCTION", type="function", advanced=True)
|
||||||
parser.add_option("--web-assets-path", dest="web_assets_path", helptext="Specifies a non-standard web_assets directory to use. Files here will overwrite the default web assets.", metavar="PATH", type="string", advanced=True)
|
parser.add_option("--web-assets-path", dest="web_assets_path", helptext="Specifies a non-standard web_assets directory to use. Files here will overwrite the default web assets.", metavar="PATH", type="string", advanced=True)
|
||||||
parser.add_option("--textures-path", dest="textures_path", helptext="Specifies a non-standard textures path, from which terrain.png and other textures are loaded.", metavar="PATH", type="string", advanced=True)
|
parser.add_option("--textures-path", dest="textures_path", helptext="Specifies a non-standard textures path, from which terrain.png and other textures are loaded.", metavar="PATH", type="string", advanced=True)
|
||||||
@@ -124,7 +124,7 @@ def main():
|
|||||||
parser.add_option("--skip-js", dest="skipjs", action="store_true", helptext="Don't output marker.js or regions.js")
|
parser.add_option("--skip-js", dest="skipjs", action="store_true", helptext="Don't output marker.js or regions.js")
|
||||||
parser.add_option("--no-signs", dest="nosigns", action="store_true", helptext="Don't output signs to markers.js")
|
parser.add_option("--no-signs", dest="nosigns", action="store_true", helptext="Don't output signs to markers.js")
|
||||||
parser.add_option("--north-direction", dest="north_direction", action="store", helptext="Specifies which corner of the screen north will point to. Defaults to whatever the current map uses, or lower-left for new maps. Valid options are: " + ", ".join(avail_north_dirs) + ".", type="choice", default="auto", choices=avail_north_dirs)
|
parser.add_option("--north-direction", dest="north_direction", action="store", helptext="Specifies which corner of the screen north will point to. Defaults to whatever the current map uses, or lower-left for new maps. Valid options are: " + ", ".join(avail_north_dirs) + ".", type="choice", default="auto", choices=avail_north_dirs)
|
||||||
parser.add_option("--changelist", dest="changelist", action="store", helptext="Output list of changed tiles to file. If the file exists, it's contents will be overwritten.",advanced=True)
|
parser.add_option("--changelist", dest="changelist", action="store", helptext="Output list of changed tiles to file. If the file exists, its contents will be overwritten.",advanced=True)
|
||||||
parser.add_option("--changelist-format", dest="changelist_format", action="store", helptext="Output relative or absolute paths for --changelist. Only valid when --changelist is used", type="choice", default="auto", choices=["auto", "relative","absolute"],advanced=True)
|
parser.add_option("--changelist-format", dest="changelist_format", action="store", helptext="Output relative or absolute paths for --changelist. Only valid when --changelist is used", type="choice", default="auto", choices=["auto", "relative","absolute"],advanced=True)
|
||||||
parser.add_option("--display-config", dest="display_config", action="store_true", helptext="Display the configuration parameters, but don't render the map. Requires all required options to be specified", commandLineOnly=True)
|
parser.add_option("--display-config", dest="display_config", action="store_true", helptext="Display the configuration parameters, but don't render the map. Requires all required options to be specified", commandLineOnly=True)
|
||||||
#parser.add_option("--write-config", dest="write_config", action="store_true", helptext="Writes out a sample config file", commandLineOnly=True)
|
#parser.add_option("--write-config", dest="write_config", action="store_true", helptext="Writes out a sample config file", commandLineOnly=True)
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ body {
|
|||||||
border: 2px solid #000;
|
border: 2px solid #000;
|
||||||
font-size: 12pt;
|
font-size: 12pt;
|
||||||
width: 20em;
|
width: 20em;
|
||||||
background-colour: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#searchControl>input.inactive {
|
#searchControl>input.inactive {
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
var overviewerConfig = {
|
var overviewerConfig = {
|
||||||
/**
|
/**
|
||||||
* These are things that will probably not need to be changed by the user,
|
* These are things that will probably not need to be changed, but are there
|
||||||
* but are there because otherwise changing them is a giant PITA.
|
* because otherwise changing them is a giant PITA. If you, the user, sees
|
||||||
|
* that its crucial for you to change these settings then the document
|
||||||
|
* repository might be able to assist you.
|
||||||
|
* http://docs.overviewer.org/en/latest/options/#customizing-web-assets
|
||||||
*/
|
*/
|
||||||
'CONST': {
|
'CONST': {
|
||||||
/**
|
/**
|
||||||
* Height and width of the tiles in pixels (I think).
|
* Height and width of the tiles in pixels.
|
||||||
*/
|
*/
|
||||||
'tileSize': 384,
|
'tileSize': 384,
|
||||||
/**
|
/**
|
||||||
@@ -88,6 +91,11 @@ var overviewerConfig = {
|
|||||||
'center': {spawn_coords},
|
'center': {spawn_coords},
|
||||||
/**
|
/**
|
||||||
* Set this to tell browsers how long they should cache tiles in minutes.
|
* Set this to tell browsers how long they should cache tiles in minutes.
|
||||||
|
* Essentially if set to 0, the url for tiles will end in .png
|
||||||
|
* if not set to 0 it will amend a number derived from the current time
|
||||||
|
* to the end of the url, like .png?c=123456. This is a great method for
|
||||||
|
* preventing browsers from caching the images. 0 saves bandwidth, not 0
|
||||||
|
* prevents caching.
|
||||||
*/
|
*/
|
||||||
'cacheMinutes': 0,
|
'cacheMinutes': 0,
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ class QuadtreeGen(object):
|
|||||||
|
|
||||||
if depth is None:
|
if depth is None:
|
||||||
# Determine quadtree depth (midpoint is always 0,0)
|
# Determine quadtree depth (midpoint is always 0,0)
|
||||||
for p in xrange(15):
|
for p in xrange(64):
|
||||||
# Will 2^p tiles wide and high suffice?
|
# Will 2^p tiles wide and high suffice?
|
||||||
|
|
||||||
# X has twice as many chunks as tiles, then halved since this is a
|
# X has twice as many chunks as tiles, then halved since this is a
|
||||||
@@ -92,10 +92,12 @@ class QuadtreeGen(object):
|
|||||||
if xradius >= worldobj.maxcol and -xradius <= worldobj.mincol and \
|
if xradius >= worldobj.maxcol and -xradius <= worldobj.mincol and \
|
||||||
yradius >= worldobj.maxrow and -yradius <= worldobj.minrow:
|
yradius >= worldobj.maxrow and -yradius <= worldobj.minrow:
|
||||||
break
|
break
|
||||||
else:
|
|
||||||
raise ValueError("Your map is waaaay too big! Use the 'zoom' option in 'settings.py'.")
|
|
||||||
|
|
||||||
|
if p < 15:
|
||||||
self.p = p
|
self.p = p
|
||||||
|
else:
|
||||||
|
raise ValueError("Your map is waaaay too big! Use the 'zoom' option in 'settings.py'. Overviewer is estimating %i zoom levels, but you probably want less." % (p,))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
self.p = depth
|
self.p = depth
|
||||||
xradius = 2**depth
|
xradius = 2**depth
|
||||||
|
|||||||
@@ -108,15 +108,16 @@ class RenderNode(object):
|
|||||||
raise ValueError("there must be at least one quadtree to work on")
|
raise ValueError("there must be at least one quadtree to work on")
|
||||||
|
|
||||||
self.options = options
|
self.options = options
|
||||||
|
# A list of quadtree.QuadTree objects representing each rendermode
|
||||||
|
# requested
|
||||||
self.quadtrees = quadtrees
|
self.quadtrees = quadtrees
|
||||||
#List of changed tiles
|
#List of changed tiles
|
||||||
self.rendered_tiles = []
|
self.rendered_tiles = []
|
||||||
|
|
||||||
#bind an index value to the quadtree so we can find it again
|
#bind an index value to the quadtree so we can find it again
|
||||||
#and figure out which worlds are where
|
#and figure out which worlds are where
|
||||||
i = 0
|
|
||||||
self.worlds = []
|
self.worlds = []
|
||||||
for q in quadtrees:
|
for i, q in enumerate(quadtrees):
|
||||||
q._render_index = i
|
q._render_index = i
|
||||||
i += 1
|
i += 1
|
||||||
if q.world not in self.worlds:
|
if q.world not in self.worlds:
|
||||||
@@ -163,10 +164,13 @@ class RenderNode(object):
|
|||||||
else:
|
else:
|
||||||
pool.map_async(bool,xrange(multiprocessing.cpu_count()),1)
|
pool.map_async(bool,xrange(multiprocessing.cpu_count()),1)
|
||||||
|
|
||||||
|
# 1 quadtree object per rendermode requested
|
||||||
quadtrees = self.quadtrees
|
quadtrees = self.quadtrees
|
||||||
|
|
||||||
# do per-quadtree init
|
# Determine the total number of tiles by adding up the number of tiles
|
||||||
|
# from each quadtree. Also find the max zoom level (max_p). Even though
|
||||||
|
# each quadtree will always have the same zoom level, this bit of code
|
||||||
|
# does not make that assumption.
|
||||||
max_p = 0
|
max_p = 0
|
||||||
total = 0
|
total = 0
|
||||||
for q in quadtrees:
|
for q in quadtrees:
|
||||||
@@ -174,7 +178,9 @@ class RenderNode(object):
|
|||||||
if q.p > max_p:
|
if q.p > max_p:
|
||||||
max_p = q.p
|
max_p = q.p
|
||||||
self.max_p = max_p
|
self.max_p = max_p
|
||||||
# Render the highest level of tiles from the chunks
|
|
||||||
|
# The next sections of code render the highest zoom level of tiles. The
|
||||||
|
# section after render the other levels.
|
||||||
results = collections.deque()
|
results = collections.deque()
|
||||||
complete = 0
|
complete = 0
|
||||||
logging.info("Rendering highest zoom level of tiles now.")
|
logging.info("Rendering highest zoom level of tiles now.")
|
||||||
@@ -247,7 +253,8 @@ class RenderNode(object):
|
|||||||
|
|
||||||
self.print_statusline(complete, total, 1, True)
|
self.print_statusline(complete, total, 1, True)
|
||||||
|
|
||||||
# Now do the other layers
|
# The highest zoom level has been rendered.
|
||||||
|
# Now do the lower zoom levels
|
||||||
for zoom in xrange(self.max_p-1, 0, -1):
|
for zoom in xrange(self.max_p-1, 0, -1):
|
||||||
level = self.max_p - zoom + 1
|
level = self.max_p - zoom + 1
|
||||||
assert len(results) == 0
|
assert len(results) == 0
|
||||||
@@ -341,6 +348,7 @@ class RenderNode(object):
|
|||||||
|
|
||||||
@catch_keyboardinterrupt
|
@catch_keyboardinterrupt
|
||||||
def render_worldtile_batch(batch):
|
def render_worldtile_batch(batch):
|
||||||
|
# batch is a list. Each item is [quadtree_id, colstart, colend, rowstart, rowend, tilepath]
|
||||||
global child_rendernode
|
global child_rendernode
|
||||||
rendernode = child_rendernode
|
rendernode = child_rendernode
|
||||||
count = 0
|
count = 0
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ def _find_file(filename, mode="rb", verbose=False):
|
|||||||
|
|
||||||
* the textures_path given in the config file (if present)
|
* the textures_path given in the config file (if present)
|
||||||
* The program dir (same dir as overviewer.py)
|
* The program dir (same dir as overviewer.py)
|
||||||
* The overviewer_core textures dir
|
* The overviewer_core/data/textures dir
|
||||||
* On Darwin, in /Applications/Minecraft
|
* On Darwin, in /Applications/Minecraft
|
||||||
* Inside minecraft.jar, which is looked for at these locations
|
* Inside minecraft.jar, which is looked for at these locations
|
||||||
|
|
||||||
@@ -302,9 +302,9 @@ def _build_block(top, side, blockID=None):
|
|||||||
composite.alpha_over(img, otherside, (12,6), otherside)
|
composite.alpha_over(img, otherside, (12,6), otherside)
|
||||||
composite.alpha_over(img, top, (0,9), top)
|
composite.alpha_over(img, top, (0,9), top)
|
||||||
else:
|
else:
|
||||||
|
composite.alpha_over(img, top, (0,0), top)
|
||||||
composite.alpha_over(img, side, (0,6), side)
|
composite.alpha_over(img, side, (0,6), side)
|
||||||
composite.alpha_over(img, otherside, (12,6), otherside)
|
composite.alpha_over(img, otherside, (12,6), otherside)
|
||||||
composite.alpha_over(img, top, (0,0), top)
|
|
||||||
|
|
||||||
# Manually touch up 6 pixels that leave a gap because of how the
|
# Manually touch up 6 pixels that leave a gap because of how the
|
||||||
# shearing works out. This makes the blocks perfectly tessellate-able
|
# shearing works out. This makes the blocks perfectly tessellate-able
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ if imgformat != "jpg":
|
|||||||
################################################################################
|
################################################################################
|
||||||
### web_assets_hook
|
### web_assets_hook
|
||||||
## If provided, run this function after the web assets have been copied, but
|
## If provided, run this function after the web assets have been copied, but
|
||||||
## before actual tile rendering beings. It should accept a QuadtreeGen
|
## before actual tile rendering beings. It should accept a MapGen
|
||||||
## object as its only argument. Note: this is only called if skipjs is True
|
## object as its only argument. Note: this is only called if skipjs is True
|
||||||
## Default: not yet
|
## Default: not yet
|
||||||
## Type: function
|
## Type: function
|
||||||
|
|||||||
Reference in New Issue
Block a user