1
0
cuberite-2a/Tools/BlockTypePaletteGenerator
2019-09-22 22:57:54 +02:00
..
lib Add ProtocolBlockTypePalette (#4391) 2019-09-22 22:57:54 +02:00
Generator.lua Add ProtocolBlockTypePalette (#4391) 2019-09-22 22:57:54 +02:00
Readme.md Add ProtocolBlockTypePalette (#4391) 2019-09-22 22:57:54 +02: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

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 
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.

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