VoxelVert is a converter for many voxel-, 3D-, or Minecraft (file) formats.
The project consists of three modules:
voxelvert-core
which handles the conversion between various internal formats and I/O for file formatsvoxelvert-ui
is a command line front-end forvoxelvert-core
voxelvert-bukkit
exposes the CLI as a Minecraft command and adds a file manager using theeisen-inventories
API
VoxelVert requires WorldEdit and the Spigot API to compile. The exact dependencies can be found in the modules voxelvert-bukkit
, voxelvert-ui
and voxelvert-code
.
There are also dependencies on my own projects, which are:
eisen-inventories
: inventory API for Bukkitspatium
: various Java utilities, data structurestorrens
: Java I/O library for image, 3D and other file formats
All projects are written in Java 1.8.
VoxelVert uses two custom file formats:
Media Type: application/x.voxelvert-bce+json
File Suffix: .json
The block color extractor format is a subset of JSON
which specifies how to extract block colors out of a default
resource pack.
Media Type: application/x.voxelvert-bct
File Suffix: .bct
Block color tables are simple binary files which store the color of each block and id. The specification is as follows:
table = header, {entry};
header = "B", "C", "T", version, entryCount; (*ASCII characters*)
entry = id, data, color, volume;
version = uint32 (* '2' if flags are present, '1' if not *);
entryCount = uint32;
id = uint8;
data = ? uint8 in range 0 - 15 ?
color = uint8, uint8, uint8, uint8; (* bytes represent alpha, red, green, blue channels *)
flags ? 16-bit bitfield ?
volume = ? uint16 in range 0 - 4096 ?
On Linux, you can inspect the data of a BCT file without the header using xxd -b -s 11 -c 8 my_color_table.bct