Add Texture Set schema (#266)

This commit is contained in:
QuazChick
2024-04-02 08:55:24 +01:00
committed by GitHub
parent 2257a00c59
commit 0380207991
4 changed files with 117 additions and 0 deletions

View File

@@ -0,0 +1,111 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "blockception.minecraft.resource.texture.texture_set",
"type": "object",
"additionalProperties": false,
"properties": {
"format_version": { "$ref": "../../general/format_version.json" },
"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"],
"properties": {
"color": { "$ref": "#/definitions/color" },
"heightmap": { "$ref": "#/definitions/heightmap" },
"metalness_emissive_roughness": { "$ref": "#/definitions/mer" },
"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]],
"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
}
]
}
]
},
"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"
},
"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" },
{
"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.",
"examples": [[255, 255, 255]],
"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
}
]
}
]
}
}
}