Improve texture set schema (#339)
* 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
This commit is contained in:
@@ -3,72 +3,110 @@
|
||||
"$id": "blockception.minecraft.resource.texture.texture_set",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["format_version", "minecraft:texture_set"],
|
||||
"properties": {
|
||||
"format_version": { "$ref": "../../general/format_version.json" },
|
||||
"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": {
|
||||
"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.",
|
||||
"examples": [[255, 255, 255, 255]],
|
||||
"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",
|
||||
"items": [
|
||||
{
|
||||
"title": "Red",
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
{
|
||||
"title": "Green",
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
{
|
||||
"title": "Blue",
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
{
|
||||
"title": "Alpha",
|
||||
"type": "integer",
|
||||
"default": 255,
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
}
|
||||
]
|
||||
"minItems": 3,
|
||||
"maxItems": 3,
|
||||
"items": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"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.",
|
||||
"type": "string"
|
||||
"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],
|
||||
"oneOf": [
|
||||
{ "type": "string" },
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/file_name"
|
||||
},
|
||||
{
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
@@ -79,33 +117,31 @@
|
||||
"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.",
|
||||
"examples": [[255, 255, 255]],
|
||||
"oneOf": [
|
||||
{ "type": "string" },
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"items": [
|
||||
{
|
||||
"title": "Red",
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
{
|
||||
"title": "Green",
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
},
|
||||
{
|
||||
"title": "Blue",
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 255
|
||||
}
|
||||
]
|
||||
"$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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user