Files
minecraft-bedrock-json-schemas/source/resource/textures/texture_set.json

148 lines
4.2 KiB
JSON
Raw Normal View History

2024-04-02 08:55:24 +01:00
{
"$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"],
2024-04-02 08:55:24 +01:00
"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"]
},
2024-04-02 08:55:24 +01:00
"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"]
}
]
},
2024-04-02 08:55:24 +01:00
"properties": {
"color": { "$ref": "#/definitions/color" },
"heightmap": { "$ref": "#/definitions/heightmap" },
"metalness_emissive_roughness": { "$ref": "#/definitions/mer" },
"metalness_emissive_roughness_subsurface": { "$ref": "#/definitions/mers" },
2024-04-02 08:55:24 +01:00
"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}"
}
],
2024-04-02 08:55:24 +01:00
"oneOf": [
{ "type": "string" },
{
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": {
"type": "integer",
"minimum": 0,
"maximum": 255
}
2024-04-02 08:55:24 +01:00
}
]
},
"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"
}
]
2024-04-02 08:55:24 +01:00
},
"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"
},
2024-04-02 08:55:24 +01:00
{
"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": [
2024-04-02 08:55:24 +01:00
{
"$ref": "#/definitions/file_name"
},
{
"$ref": "#/definitions/rgb"
2024-04-02 08:55:24 +01:00
}
]
},
"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"
2024-04-02 08:55:24 +01:00
}
}
}