* Added `metalness_emissive_roughness_subsurface` parameter * Prevent incompatible parameters from being specified at the same time * Corrected color array schema * Improved color schemas * Require `format_version` to be a supported value * Require `format_version` and `minecraft:texture_set` to be included * Sorted parameter definitions * Prevent UI texture definition schema from being applied to texture sets * Corrected `format_version` schema
148 lines
4.2 KiB
JSON
148 lines
4.2 KiB
JSON
{
|
|
"$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"
|
|
}
|
|
}
|
|
}
|