{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "blockception.minecraft.sound_definition.json", "examples": [{ "format_version": "1.14.0", "sound_definitions": { "music.game": { "category": "music", "sounds": [""] } } }], "allOf": [ { "if": { "properties": { "format_version": { "type": "string" } } }, "else": { "$ref": "#/definitions/A" } }, { "if": { "properties": { "format_version": { "type": "string", "const": "1.14.0" } } }, "then": { "$ref": "#/definitions/B" } }, { "properties": { "format_version": { "$ref": "#/definitions/C" } } } ], "definitions": { "A_SoundPath": { "$id": "SoundFilepath", "type": "string", "title": "Sound Filepath Schema", "description": "The filepath to the sound, starts with 'sounds/'", "pattern": "(^sounds/.*$|^$)", "additionalItems": true }, "A_SoundSpec": { "additionalItems": false, "type": "object", "$id": "#/Sound", "title": "Sound", "required": ["sounds"], "properties": { "category": { "type": "string", "$id": "#/Sound/category", "title": "Sound Category", "enum": ["block", "music", "weather", "ui", "bucket", "neutral", "player", "hostile", "record"], "description": "TODO description: category" }, "sounds": { "items": { "anyOf": [ { "$id": "#/Sound/sounds/stringItem", "type": "string", "$ref": "#/definitions/A_SoundPath", "description": "TODO description: Todo", "title": "Todo" }, { "additionalItems": false, "$id": "#/Sound/sounds/ObjectItem", "type": "object", "required": ["name"], "properties": { "pitch": { "description": "The pitch of the audio, 1 is nomial", "type": "number", "minimum": 0, "maximum": 2, "title": "Pitch" }, "volume": { "description": "The volume of the audio, 1 is nomial", "type": "number", "minimum": 0, "maximum": 2, "title": "Volume" }, "load_on_low_memory": { "type": "boolean", "description": "Marks if this audio should be loaded or not on low memory", "title": "Load On Low Memory" }, "stream": { "description": "If marked true then minecraft will stream the audio", "type": "boolean", "title": "Stream" }, "name": { "$id": "#/Sound/sounds/stringItem", "type": "string", "$ref": "#/definitions/A_SoundPath", "description": "TODO description: name", "title": "Name" } }, "description": "TODO description: Todo", "title": "Todo" } ], "description": "TODO description: sounds", "title": "Sounds" }, "description": "TODO description: sounds", "title": "Sounds" } }, "description": "TODO description: additionalProperties" }, "A": { "type": "object", "title": "Sound File, Unknown Version", "description": "TODO description", "additionalProperties": { "$ref": "#/definitions/A_SoundSpec" }, "properties": { "format_version": { "type": "string", "description": "A version that tells minecraft what type of data format can be expected when reading this file.", "title": "Format Version" }, "sound_definitions": { "type": "object", "additionalProperties": { "$ref": "#/definitions/A_SoundSpec" }, "description": "TODO description: sound definitions", "title": "Sound Definitions" } } }, "B_SoundPath": { "$id": "SoundFilepath", "type": "string", "title": "Sound Filepath Schema", "description": "The filepath to the sound, starts with 'sounds/'", "pattern": "(^sounds/.*$|^$)", "additionalItems": true }, "B_SoundSpec": { "additionalItems": false, "type": "object", "$id": "#/Sound", "title": "Sound", "required": ["sounds"], "properties": { "category": { "type": "string", "$id": "#/Sound/category", "title": "Sound Category", "enum": ["ambient", "block", "music", "weather", "ui", "bucket", "neutral", "player", "hostile", "record", "bottle"], "description": "TODO description: category" }, "sounds": { "items": { "anyOf": [ { "$id": "#/Sound/sounds/stringItem", "type": "string", "$ref": "#/definitions/B_SoundPath", "description": "TODO description: Todo", "title": "Todo" }, { "additionalItems": false, "$id": "#/Sound/sounds/ObjectItem", "type": "object", "required": ["name"], "properties": { "pitch": { "description": "The pitch of the audio, 1 is nomial", "type": "number", "minimum": 0, "maximum": 2, "title": "Pitch" }, "volume": { "description": "The volume of the audio, 1 is nomial", "type": "number", "minimum": 0, "title": "Volume" }, "load_on_low_memory": { "type": "boolean", "description": "Marks if this audio should be loaded or not on low memory", "title": "Load On Low Memory" }, "stream": { "description": "If marked true then minecraft will stream the audio", "type": "boolean", "title": "Stream" }, "name": { "$id": "#/Sound/sounds/stringItem", "type": "string", "$ref": "#/definitions/B_SoundPath", "description": "TODO description: name", "title": "Name" } }, "description": "TODO description: Todo", "title": "Todo" } ], "description": "TODO description: sounds", "title": "Sounds" }, "description": "TODO description: sounds", "title": "Sounds" } }, "description": "TODO description: additionalProperties" }, "B": { "type": "object", "additionalItems": false, "title": "Sound File For 1.14.0", "description": "TODO description", "properties": { "format_version": { "type": "string", "description": "A version that tells minecraft what type of data format can be expected when reading this file.", "title": "Format Version" }, "sound_definitions": { "type": "object", "additionalProperties": { "$ref": "#/definitions/B_SoundSpec" }, "description": "TODO description: sound definitions", "title": "Sound Definitions" }, "__use_legacy_max_distance": { "description": "TODO description: use legacy max distance", "title": "Use Legacy Max Distance", "type": "string", "enum": ["true", "false"] } }, "additionalProperties": false }, "C": { "title": "Format version", "description": "A version that tells minecraft what type of data format can be expected when reading this file.", "pattern": "^[0-9,.]+?$", "type": "string" } } }