63 lines
1.6 KiB
Markdown
63 lines
1.6 KiB
Markdown
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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
``` |