Clone this wiki locally
c10t - a fast mapper for minecraft alpha
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.
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
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.
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.
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
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>