finished up the essential documentation
This commit is contained in:
@@ -112,6 +112,8 @@ The following script (copied into your MCO source directory) should handle every
|
|||||||
# build MCO
|
# build MCO
|
||||||
C_INCLUDE_PATH="`pwd`/Imaging-1.1.7/libImaging" python ./setup.py build
|
C_INCLUDE_PATH="`pwd`/Imaging-1.1.7/libImaging" python ./setup.py build
|
||||||
|
|
||||||
|
.. _centos:
|
||||||
|
|
||||||
CentOS
|
CentOS
|
||||||
------
|
------
|
||||||
Since CentOS has an older version of Python (2.4), there are some difficulties
|
Since CentOS has an older version of Python (2.4), there are some difficulties
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ Overviewer development.
|
|||||||
|
|
||||||
So let's get started!
|
So let's get started!
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
Background Info
|
Background Info
|
||||||
===============
|
===============
|
||||||
The Overviewer's task is to take Minecraft worlds and render them into a set of tiles that can be displayed with a Google Maps interface.
|
The Overviewer's task is to take Minecraft worlds and render them into a set of tiles that can be displayed with a Google Maps interface.
|
||||||
@@ -191,6 +193,9 @@ This is done at the end of :func:`textures._build_block`
|
|||||||
.. image:: pixelfix.png
|
.. image:: pixelfix.png
|
||||||
:alt: The 6 pixels manually added to each cube.
|
:alt: The 6 pixels manually added to each cube.
|
||||||
|
|
||||||
|
Other Cube Types
|
||||||
|
----------------
|
||||||
|
|
||||||
Chunk Rendering
|
Chunk Rendering
|
||||||
===============
|
===============
|
||||||
.. This goes over the rendering of a chunk
|
.. This goes over the rendering of a chunk
|
||||||
|
|||||||
BIN
design/screenshot.png
Normal file
BIN
design/screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 114 KiB |
22
faq.rst
Normal file
22
faq.rst
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
==========================
|
||||||
|
Frequently Asked Questions
|
||||||
|
==========================
|
||||||
|
|
||||||
|
**The full map doesn't display even when fully zoomed out!**
|
||||||
|
Are you using the `-z` or `--zoom` option on your commandline or 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.
|
||||||
|
|
||||||
|
**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
|
||||||
|
`--forcerender` option to update the entire map.
|
||||||
|
|
||||||
|
**How do I use this on CentOS 5?**
|
||||||
|
CentOS 5 comes with Python 2.4, but the Overviewer needs 2.6 or higher. See
|
||||||
|
the special instructions at :ref:ref:`centos`
|
||||||
|
|
||||||
|
**The background color of the map is black, and I don't like it!**
|
||||||
|
You can change this by using the ``--bg-color`` command line option, or
|
||||||
|
``bg_color`` in settings.py. See the `Options <options.html>`_ page for more
|
||||||
|
details.
|
||||||
|
|
||||||
@@ -54,6 +54,8 @@ Documentation Contents
|
|||||||
building
|
building
|
||||||
installing
|
installing
|
||||||
running
|
running
|
||||||
|
options
|
||||||
|
faq
|
||||||
design/designdoc
|
design/designdoc
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
340
options.rst
Normal file
340
options.rst
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
=======
|
||||||
|
Options
|
||||||
|
=======
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
:local:
|
||||||
|
|
||||||
|
Command line options
|
||||||
|
====================
|
||||||
|
|
||||||
|
.. cmdoption:: -h, --help
|
||||||
|
|
||||||
|
Shows the list of options and exits
|
||||||
|
|
||||||
|
.. cmdoption:: --advanced-help
|
||||||
|
|
||||||
|
Display help - including advanced options
|
||||||
|
|
||||||
|
Useful Options
|
||||||
|
--------------
|
||||||
|
.. cmdoption:: --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.
|
||||||
|
|
||||||
|
See the `Render Modes`_ section for more information.
|
||||||
|
|
||||||
|
.. cmdoption:: --list-rendermodes
|
||||||
|
|
||||||
|
List the available render modes, and a short description of each.
|
||||||
|
|
||||||
|
.. cmdoption:: --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.
|
||||||
|
|
||||||
|
.. cmdoption:: --settings=PATH
|
||||||
|
|
||||||
|
Use this option to load settings from a file. For more information see the
|
||||||
|
`Settings File`_ section below.
|
||||||
|
|
||||||
|
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!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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 --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.
|
||||||
|
|
||||||
|
Render Modes
|
||||||
|
============
|
||||||
|
|
||||||
|
.. _rendermode-options: https://github.com/agrif/Minecraft-Overviewer/tree/rendermode-options
|
||||||
|
|
||||||
|
Rendermode options are a new way of changing how existing render modes
|
||||||
|
work, by passing in values at startup. For example, you can change how
|
||||||
|
dark the 'night' mode is, or enable lighting in 'cave' mode.
|
||||||
|
|
||||||
|
Options and Rendermode Inheritance
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
Each mode will accept its own options, as well as the options for
|
||||||
|
parent modes; for example the 'night' mode will also accept options
|
||||||
|
listed for 'lighting' and 'normal'. Also, if you set an option on a
|
||||||
|
mode, all its children will also have that option set. So, setting the
|
||||||
|
'edge_opacity' option on 'normal' will also set it on 'lighting' and
|
||||||
|
'night'.
|
||||||
|
|
||||||
|
Basically, each mode inherits available options and set options from
|
||||||
|
its parent.
|
||||||
|
|
||||||
|
Eventually the :option:`--list-rendermodes` option will show parent
|
||||||
|
relationships. Right now, it looks something like this:
|
||||||
|
|
||||||
|
* normal
|
||||||
|
|
||||||
|
* lighting
|
||||||
|
|
||||||
|
* night
|
||||||
|
* cave
|
||||||
|
|
||||||
|
* overlay
|
||||||
|
|
||||||
|
* spawn
|
||||||
|
* mineral
|
||||||
|
|
||||||
|
How to Set Options
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Available options for each mode are listed below, but once you know
|
||||||
|
what to set you'll have to edit *settings.py* to set them. Here's an
|
||||||
|
example::
|
||||||
|
|
||||||
|
rendermode_options = {
|
||||||
|
'lighting': {
|
||||||
|
'edge_opacity': 0.5,
|
||||||
|
},
|
||||||
|
|
||||||
|
'cave': {
|
||||||
|
'lighting': True,
|
||||||
|
'depth_tinting': False,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
As you can see, each entry in ``rendermode_options`` starts with the mode name
|
||||||
|
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
|
||||||
|
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
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Soon there should be a way to pull out supported options from Overviewer
|
||||||
|
directly, but for right now, here's a reference of currently supported options.
|
||||||
|
|
||||||
|
normal
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
* **edge_opacity** - darkness of the edge lines, from 0.0 to 1.0 (default: 0.15)
|
||||||
|
* **min_depth** - lowest level of blocks to render (default: 0)
|
||||||
|
* **max_depth** - highest level of blocks to render (default: 127)
|
||||||
|
* **height_fading** - darken or lighten blocks based on height (default: False)
|
||||||
|
|
||||||
|
lighting
|
||||||
|
~~~~~~~~
|
||||||
|
|
||||||
|
all the options available in 'normal', and...
|
||||||
|
|
||||||
|
* **shade_strength** - how dark to make the shadows, from 0.0 to 1.0 (default: 1.0)
|
||||||
|
|
||||||
|
night
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
'night' mode has no options of its own, but it inherits options from
|
||||||
|
'lighting'.
|
||||||
|
|
||||||
|
cave
|
||||||
|
~~~~
|
||||||
|
|
||||||
|
all the options available in 'normal', and...
|
||||||
|
|
||||||
|
* **depth_tinting** - tint caves based on how deep they are (default: True)
|
||||||
|
* **only_lit** - only render lit caves (default: False)
|
||||||
|
* **lighting** - render caves with lighting enabled (default: False)
|
||||||
|
|
||||||
|
mineral
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
The mineral overlay supports one option, **minerals**, that has a fairly
|
||||||
|
complicated format. **minerals** must be a list of ``(blockid, (r, g, b))``
|
||||||
|
tuples that tell the mineral overlay what blocks to look for. Whenever a block
|
||||||
|
with that block id is found underground, the surface is colored with the given
|
||||||
|
color.
|
||||||
|
|
||||||
|
See the *settings.py* example below for an example usage of **minerals**.
|
||||||
|
|
||||||
|
Example *settings.py*
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
This *settings.py* will render three layers: a normal 'lighting' layer, a 'cave'
|
||||||
|
layer restricted to between levels 40 and 55 to show off a hypothetical subway
|
||||||
|
system, and a 'mineral' layer that has been modified to show underground rail
|
||||||
|
tracks instead of ore.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
rendermode = ['lighting', 'subway-cave', 'subway-overlay']
|
||||||
|
|
||||||
|
custom_rendermodes = {
|
||||||
|
'subway-cave' : {'parent' : 'cave',
|
||||||
|
'label' : 'Subway',
|
||||||
|
'description' : 'a subway map, based on the cave rendermode',
|
||||||
|
'options' : {
|
||||||
|
'depth_tinting' : False,
|
||||||
|
'lighting' : True,
|
||||||
|
'only_lit' : True,
|
||||||
|
'min_depth' : 40,
|
||||||
|
'max_depth' : 55,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'subway-overlay' : {'parent' : 'mineral',
|
||||||
|
'label' : 'Subway Overlay',
|
||||||
|
'description' : 'an overlay showing the location of minecart tracks',
|
||||||
|
'options' : {'minerals' : [
|
||||||
|
(27, (255, 234, 0)),
|
||||||
|
(28, (255, 234, 0)),
|
||||||
|
(66, (255, 234, 0)),
|
||||||
|
]}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
rendermode_options = {
|
||||||
|
'lighting' : {'edge_opacity' : 0.5},
|
||||||
|
# 'night' : {'shade_strength' : 0.5},
|
||||||
|
# 'cave' : {'only_lit' : True, 'lighting' : True, 'depth_tinting' : False},
|
||||||
|
}
|
||||||
133
running.rst
133
running.rst
@@ -5,20 +5,131 @@ Running the Overviewer
|
|||||||
Rendering your First Map
|
Rendering your First Map
|
||||||
========================
|
========================
|
||||||
|
|
||||||
Overviewer is a command-line application, and so it needs to be run from the command line. If you installed Overviewer from a package manager, the command is ``overviewer.py``. If you downloaded it manually, open a terminal window and navigate to wherever you downloaded Overviewer. For pre-compiled Windows builds, the command is ``overviewer.exe``. For other systems, it's ``./overviewer.py``.
|
Overviewer is a command-line application, and so it needs to be run from the
|
||||||
|
command line. If you installed Overviewer from a package manager, the command is
|
||||||
|
``overviewer.py``. If you downloaded it manually, open a terminal window and
|
||||||
|
navigate to wherever you downloaded Overviewer. For pre-compiled Windows builds,
|
||||||
|
the command is ``overviewer.exe``. For other systems, it's ``overviewer.py``.
|
||||||
|
|
||||||
To generate your map, run::
|
The basic usage for Windows is::
|
||||||
|
|
||||||
overviewer.exe WorldName path\to\output\ # on windows, or
|
overviewer.exe [options] <World> <Output Dir>
|
||||||
./overviewer.py WorldName path/to/output/ # on other systems
|
|
||||||
|
|
||||||
where ``WorldName`` is the name of the world you want to render, and
|
And similarly for other systems::
|
||||||
``path/to/output`` is the place where you want to store the rendered world. The
|
|
||||||
first render can take a while, depending on the size of your world. You can, if
|
|
||||||
you want to, provide a path to the world you want to render, instead of
|
|
||||||
providing a world name and having Overviewer auto-discover the world path.
|
|
||||||
|
|
||||||
When the render is done, open up *index.html* using your web-browser of choice. Pretty cool, huh? You can even upload this map to a web server to share with others! Simply upload the entire folder to a web server and point your users to index.html!
|
overviewer.py [options] <World> <Output Dir>
|
||||||
|
|
||||||
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 automatically rerender only what's needed.
|
**World**
|
||||||
|
World can be one of several things.
|
||||||
|
|
||||||
|
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
|
||||||
|
has spaces, you will need to put the world name in quotes.
|
||||||
|
|
||||||
|
**Output Dir**
|
||||||
|
This is the directory you would like to put the rendered tiles and
|
||||||
|
supporting HTML and javascript files. You should use the same output
|
||||||
|
directory each time; the Overviewer will automatically re-render only the
|
||||||
|
tiles that need rendering on subsequent runs.
|
||||||
|
|
||||||
|
**options**
|
||||||
|
See the `Options <options.html>`_ page for a list of options you can
|
||||||
|
specify.
|
||||||
|
|
||||||
|
For example, on Windows if your Minecraft server runs out of ``c:\server\`` and you want
|
||||||
|
to put the rendered map in ``c:\mcmap\``, run this::
|
||||||
|
|
||||||
|
overviewer.exe c:\server\world c:\mcmap
|
||||||
|
|
||||||
|
For Mac or Linux builds from source, you would run something like this with the
|
||||||
|
current directory in the top level of the source tree::
|
||||||
|
|
||||||
|
./overviewer.py /opt/minecraft/server/world /opt/minecraft/mcmap
|
||||||
|
|
||||||
|
The first render can take a while, depending on the size of your world.
|
||||||
|
|
||||||
|
When the render is done, open up *index.html* using your web-browser of choice.
|
||||||
|
Pretty cool, huh? You can even upload this map to a web server to share with
|
||||||
|
others! Simply upload the entire folder to a web server and point your users to
|
||||||
|
index.html!
|
||||||
|
|
||||||
|
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
|
||||||
|
automatically rerender only what's needed.
|
||||||
|
|
||||||
|
Installing the Textures
|
||||||
|
=======================
|
||||||
|
If you're running on a machine without the Minecraft client installed, you will
|
||||||
|
need to provide the terrain.png file manually for the Overviewer to use in
|
||||||
|
rendering your world. This is common for servers.
|
||||||
|
|
||||||
|
All Overviewer needs is a terrain.png file. If the Minecraft client is
|
||||||
|
installed, it will use the terrain.png that comes with Minecraft. If the
|
||||||
|
Minecraft client is not installed or you wish to use a different terrain.png,
|
||||||
|
for example a custom texture pack, read on.
|
||||||
|
|
||||||
|
You have several options:
|
||||||
|
|
||||||
|
* If you have the Minecraft client installed, the Overviewer will automatically
|
||||||
|
use those textures. This is a good solution since the Minecraft Launcher will
|
||||||
|
always keep this file up-to-date and you don't have to do anything extra.
|
||||||
|
|
||||||
|
* If you're running the Overviewer on a server, you can still put the
|
||||||
|
minecraft.jar file (not the launcher) into the correct location and the
|
||||||
|
Overviewer will find and use it, even if the rest of the client files are
|
||||||
|
missing. On Linux, try a command like this::
|
||||||
|
|
||||||
|
wget -N http://s3.amazonaws.com/MinecraftDownload/minecraft.jar -P ~/.minecraft/bin/
|
||||||
|
|
||||||
|
* You can manually extract the terrain.png from minecraft.jar or your favorite
|
||||||
|
texture pack. If you've built the Overviewer from source, simply place the
|
||||||
|
file in the same directory as overviewer.py or overviewer.exe. For
|
||||||
|
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
|
||||||
|
with the ``--textures-path`` option. This should point to the directory containing
|
||||||
|
the terrain.png, not to the file itself.
|
||||||
|
|
||||||
|
Note: the ``--check-terrain`` option is useful for debugging terrain.png issues.
|
||||||
|
For example::
|
||||||
|
|
||||||
|
$ ./overviewer.py --check-terrain
|
||||||
|
2011-09-26 21:51:46,494 [INFO] Found terrain.png in '/home/achin/.minecraft/bin/minecraft.jar'
|
||||||
|
2011-09-26 21:51:46,497 [INFO] Hash of terrain.png file is: `6d53f9e59d2ea8c6f574c9a366f3312cd87338a8`
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
$ ./overviewer.py --check-terrain --textures-path=/tmp
|
||||||
|
2011-09-26 21:52:52,143 [INFO] Found terrain.png in '/tmp/terrain.png'
|
||||||
|
2011-09-26 21:52:52,145 [INFO] Hash of terrain.png file is: `6d53f9e59d2ea8c6f574c9a366f3312cd87338a8`
|
||||||
|
|
||||||
|
Running on a Live Map
|
||||||
|
=====================
|
||||||
|
If you're running the Overviewer on a live server or a single player world
|
||||||
|
that's running, read this section.
|
||||||
|
|
||||||
|
Minecraft doesn't really like it when other programs go snooping around in a
|
||||||
|
live world, so running Overviewer on a live world usually creates a few errors,
|
||||||
|
usually "corrupt chunk" errors. You *can* do this, but it's not a supported way
|
||||||
|
of running Overviewer.
|
||||||
|
|
||||||
|
To get around this, you can copy your live world somewhere else, and render the
|
||||||
|
copied world instead. If you're already making backups of your world, you can
|
||||||
|
use the backups to make the render. Many people even use their backups to run
|
||||||
|
Overviewer on a different machine than the one running the Minecraft server.
|
||||||
|
|
||||||
|
There used to be a few things to be careful about, but right now there's only
|
||||||
|
one important thing left.
|
||||||
|
|
||||||
|
Preserving Modification Times
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
The important thing to be careful about when copying world files to another
|
||||||
|
location is file modification times, which Overviewer uses to figure out what
|
||||||
|
parts of the map need updating. If you do a straight copy, usually this will
|
||||||
|
update the modification times on all the copied files, causing Overviewer to
|
||||||
|
re-render the entire map. To copy files on Unix, while keeping these
|
||||||
|
modification times intact, use ``cp -p``. For people who render from backups,
|
||||||
|
GNU ``tar`` automatically handles modification times correctly. ``rsync -a``
|
||||||
|
will handle this correctly as well. If you use some other tool, you'll have to
|
||||||
|
figure out how to do this yourself.
|
||||||
|
|||||||
Reference in New Issue
Block a user