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

@@ -79,6 +79,7 @@ JSON validation can give snippets for sub items, as well as description, but thi
- [Sounds](resource/sounds/sound_definitions.json)
- [Terrain texture](resource/textures/terrain_texture.json)
- [Terrain list](resource/textures/texture_list.json)
- [Texture Set](resource/textures/texture_set.json)
## License

View File

@@ -17,6 +17,7 @@
{ "Source": "./resource/textures/flipbook_textures.json", "Destination": "../resource/textures/flipbook_textures.json" },
{ "Source": "./resource/textures/item_texture.json", "Destination": "../resource/textures/item_texture.json" },
{ "Source": "./resource/textures/texture_list.json", "Destination": "../resource/textures/texture_list.json" },
{ "Source": "./resource/textures/texture_set.json", "Destination": "../resource/textures/texture_set.json" },
{ "Source": "./resource/items/items.json", "Destination": "../resource/items/items.json" },
{ "Source": "./resource/models/entity/model_entity.json", "Destination": "../resource/models/entity/model_entity.json" },
{ "Source": "./resource/materials/materials.json", "Destination": "../resource/materials/materials.json" },

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
}
]
}
]
}
}
}

View File

@@ -94,6 +94,10 @@
"fileMatch": ["texture_list.{json,jsonc,json5}"],
"url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/resource/textures/texture_list.json"
},
{
"fileMatch": ["*.texture_set.{json,jsonc,json5}"],
"url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/resource/textures/texture_set.json"
},
{
"fileMatch": [
"resource_packs/*/items/*.{json,jsonc,json5}",