1
0
cuberite-2a/Tools/BlockTypePaletteGenerator/Readme.md

63 lines
1.6 KiB
Markdown
Raw Normal View History

2019-09-22 20:57:54 +00:00
This generator crafts an intermediate index format to be read by cuberite
# Running
Run `lua ./Generator.lua`, pass `blocks.json` as first argument to the script
and the desired output location as 2nd argument.
Make sure to run the Generator from within its directory (`cd` into the path
where `Generator.lua` is.)
## Examples
```bash
SERVER=/path/to/server.jar
java -cp "$SERVER" net.minecraft.data.Main --reports &&
lua Generator.lua \
generated/reports/blocks.json \
../../Server/Protocol/1.13/ProtocolBlockTypePalette.json
```
```bash
SERVER=/path/to/server.jar
java -cp "$SERVER" net.minecraft.data.Main --reports &&
lua Generator.lua - -\
< generated/reports/blocks.json \
> ../Server/Protocol/1.13/ProtocolBlockTypePalette.json
```
## Output format
The Format is a `JSON` document containing an object with at least two keys at
the top level: `Metadata` and `Palette`.
`Metadata` contains document metadata, namely a key `"ProtocolBlockType": 1`.
`Palette` contains an array of objects. Each of these objects has at least the
keys `id`, `name` and an optional `props` key that contains the individual
properties of the current state. These properties are a KV dict of pure strings.
The order of the array or object elements is not significant. `id` is unique.
```json
{
"Metadata": {
"ProtocolBlockType": 1
},
"Palette": [{
"id": 0,
"name": "minecraft:air"
}, {
"id": 1,
"name": "minecraft:stone"
}, {
"id": 221,
"name": "minecraft:dark_oak_leaves",
"props": {
"persistent": "false",
"distance": "4"
}
}
]
}
```