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"
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
```
|