Skip to content
warmwaffles edited this page Mar 6, 2011 · 25 revisions

NAME

c10t - a fast mapper for minecraft alpha

DESCRIPTION

c10t uses a standard minecraft alpha map to generate a graphical representation saved as an image. It can generate the image in different modes and also giving the users many options to modify how the output is generated.

Some of the features involve:

  • Generate top-down (normal), oblique, oblique angled and isometric modes with rotation
  • Include and exclude blocks for render
  • Is cross platform and works on Linux, Windows and Mac OS X
  • Supports multi-core rendering which defaults to the amount of cores on your machine
  • Supports image caching allowing for rendering of infinitely large maps as long as you've got disk to spare. The more memory c10t get's to work with, the faster it will be. The specified memory limit will not be breached by c10t.
  • Allows you to set the color of any material using options or palette files.
  • Options are designed to be simple and straigt forward, block id's can be specified using their symbolic names.

GENERAL

OPTIONS

To see a set of the available options, issue c10t -h

These have been removed since they run a risk of becoming out of date

USAGE

c10t is primarily a command line program, to interact with it the user usually must start a shell and navigate to the directory of c10t or have it readily available in your executable PATH.

Windows notes

Choose Start->run and type cmd.exe, this will give you the shell necessary to run c10t. Navigate to the folder containing c10t.exe and type the command, replacing c10t with c10t.exe since that is the normal name of an executable in windows.

You might also choose to add a folder to your PATH environment variable, and copy c10t.exe to that directory.

Example Usages

c10t -w <path/to/world> -o <path/to/out.png>

To force c10t to use a specific amount of memory

c10t [options] -M 512 -C cache.dat

To use incremental render cache - only renders changed blocks, rest are cached (each rendering mode must have it's own cache-key):

c10t [options] --cache-dir ./cache --cache-key example

The following is an example bash script that is used to generate preset renderings to a specified directory along with being stored in a sub directory of the current day. Useful if you run this with a cron job. This is for Linux systems, the same idea can be applied to Windows systems. Just make sure the batch script syntaxes are matched.

#!/bin/bash

#Path to the world of course
WORLD="path/to/world"

# The out put location of the new maps
OUT_PATH="path/to/output"

# Today of course...used for directory to store
TODAY=`date +%Y-%m-%d`

# If it is an alias go ahead and leave it C10T
C10T="location/of/c10t"

mkdir $OUT_PATH/$TODAY

# Normal
$C10T -w $WORLD -o $OUT_PATH/$TODAY/normal.png
$C10T -w $WORLD -o $OUT_PATH/$TODAY/normal_night.png -n

# Oblique
$C10T -w $WORLD -o $OUT_PATH/$TODAY/oblique.png -q

# Oblique Angle
$C10T -w $WORLD -o $OUT_PATH/$TODAY/oblique_angle.png -y

# Isometric
$C10T -w $WORLD -o $OUT_PATH/$TODAY/isometric.png -z
$C10T -w $WORLD -o $OUT_PATH/$TODAY/isometric_night.png -z -n

COLOR PALETTES

c10t allows you to specify a custom set of colors that will be used when rendering maps, these are managed using the -W and -P switches.

To write the default palette to file:

c10t [options] -W palette.txt

To use a custom palette (using the same format as above):

c10t [options] -P palette.txt

A good way to get started writing a palette is using the above command and generate a default palette to start working on

The palette format is simply: '\n'

Any amount of whitespace is handled by the tokenizer. R,G,B,A values are specified as a set of comma-separated integers ex. 255,0,0,120

Comments are marked with the prefix '#', this will cause the rest of the line to be ignored.

The following is an example file which turns Grass red and Water blue with a green side color. Shown is also a comment which will be ignored. Grass 255,0,0,255 # I like spaced out colors Water 0,0,255,255 0,255,0,255

Notice that the line ending must be a single unix line ending \n, All other whitespace is ignored by the tokenizer, but \r will not work

Grammar for the palette format:

<range>      ::= 0-255
<line>       ::= <blockid> [ <whitespace>+ <base> [ <whitespace>+ <side> ] ] '\n'
<blockname>  ::= [a-zA-Z]+
<blockid>    ::= <range> | <blockname>
<whitespace> ::= ' ' | '\t' | '\r'
<color>      ::= <range> ',' <range> ',' <range> [',' <range>]
<base>       ::= <color>
<side>       ::= <color>