{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "blockception.minecraft.resource.texture.texture_set", "type": "object", "additionalProperties": false, "required": ["format_version", "minecraft:texture_set"], "properties": { "format_version": { "title": "Format Version", "description": "A version that tells minecraft what type of data format can be expected when reading this file.", "enum": ["1.16.100", "1.21.30"] }, "minecraft:texture_set": { "title": "Texture Set", "description": "Texture Sets are used to define multiple PBR layers for a texture resource.", "type": "object", "additionalProperties": false, "required": ["color"], "not": { "anyOf": [ { "required": ["heightmap", "normal"] }, { "required": ["metalness_emissive_roughness", "metalness_emissive_roughness_subsurface"] } ] }, "properties": { "color": { "$ref": "#/definitions/color" }, "heightmap": { "$ref": "#/definitions/heightmap" }, "metalness_emissive_roughness": { "$ref": "#/definitions/mer" }, "metalness_emissive_roughness_subsurface": { "$ref": "#/definitions/mers" }, "normal": { "$ref": "#/definitions/normal" } } } }, "definitions": { "file_name": { "type": "string", "defaultSnippets": [ { "label": "File Name", "body": "${1:${TM_FILENAME_BASE}}" } ] }, "rgb": { "defaultSnippets": [ { "label": "RGB Color", "body": "#${1:RR}${2:GG}${3:BB}" } ], "oneOf": [ { "type": "string" }, { "type": "array", "minItems": 3, "maxItems": 3, "items": { "type": "integer", "minimum": 0, "maximum": 255 } } ] }, "rgba": { "defaultSnippets": [ { "label": "ARGB Color", "body": "#${1:AA}${2:RR}${3:GG}${4:BB}" } ], "oneOf": [ { "type": "string" }, { "type": "array", "minItems": 4, "maxItems": 4, "items": { "type": "integer", "minimum": 0, "maximum": 255 } } ] }, "color": { "title": "Color", "description": "This is an RGB 3-channel image (defaults to uniform alpha of 1.0), or an RGBA 4-channel image, or a 4 value array for a uniform color with alpha.", "anyOf": [ { "$ref": "#/definitions/file_name" }, { "$ref": "#/definitions/rgba" } ] }, "heightmap": { "title": "Heightmap", "description": "1-channel layer image or a single value in this JSON file for a uniform heightmap. This layer and the \"normal\" layer should not both be defined at the same time.", "examples": [255], "anyOf": [ { "$ref": "#/definitions/file_name" }, { "type": "integer", "minimum": 0, "maximum": 255 } ] }, "mer": { "title": "Metalness Emissive Roughness", "description": "This is a 3-channel image (or 4-channel where the 4th channel is ignored) or a 3-value array for a uniform MER. RGB images map Red to Metalness, Green to Emissive, and Blue to Roughness.", "anyOf": [ { "$ref": "#/definitions/file_name" }, { "$ref": "#/definitions/rgb" } ] }, "mers": { "title": "Metalness Emissive Roughness Subsurface", "description": "This is a 4-channel image or a 4-value array for a uniform MERS. RGBA images map Red to Metalness, Green to Emissive, Blue to Roughness and Alpha to Subsurface.", "anyOf": [ { "$ref": "#/definitions/file_name" }, { "$ref": "#/definitions/rgba" } ] }, "normal": { "title": "Normal Map", "description": "This is a 3-channel normal map image (or 4-channel where the 4th channel is ignored). This layer and the \"heightmap\" layer should not both be defined at the same time.", "$ref": "#/definitions/file_name" } } }