{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "blockception.minecraft.render_controllers.json", "examples": [ { "format_version": "1.8.0", "render_controllers": { "controller.render.example": { "geometry": "Geometry.default", "materials": [{ "*": "Material.default" }], "textures": ["Texture.default"] } } } ], "type": "object", "title": "Render Controllers", "description": "TODO description", "allOf": [ { "if": { "properties": { "format_version": { "type": "string", "const": "1.8.0" } } }, "then": { "$ref": "#/definitions/A" } }, { "if": { "properties": { "format_version": { "type": "string", "const": "1.10" } } }, "then": { "$ref": "#/definitions/C" } }, { "if": { "properties": { "format_version": { "type": "string", "const": "1.10.0" } } }, "then": { "$ref": "#/definitions/C" } }, { "properties": { "format_version": { "$ref": "#/definitions/D" } } } ], "definitions": { "A_color": { "anyOf": [ { "type": "number", "description": "A color definition as number, between 0 and 1", "title": "Color Number", "minimum": 0, "maximum": 1 }, { "type": "string", "description": "A color definition in molang, must result in a float between 0 and 1", "title": "Molang Color" } ] }, "B": { "title": "Molang Number", "description": "The minecraft molang definition that results in a float", "anyOf": [{ "type": "string", "minLength": 0, "format": "molang" }, { "type": "number" }] }, "A": { "additionalProperties": false, "type": "object", "title": "Render Controllers 1.8.0", "description": "Render_Controllers 1.8.0", "required": ["render_controllers", "format_version"], "properties": { "format_version": { "title": "1.8.0 Format Version", "type": "string", "pattern": "^1.8.0$", "description": "A version that tells minecraft what type of data format can be expected when reading this file." }, "render_controllers": { "type": "object", "propertyNames": { "pattern": "^controller\\.render\\.[a-z\\.]+" }, "additionalProperties": { "additionalProperties": false, "type": "object", "title": "Render Controller", "description": "A single render_controller definition", "required": ["geometry", "materials"], "properties": { "arrays": { "type": "object", "title": "Arrays", "additionalProperties": false, "description": "A collection of definition of arrays", "properties": { "geometries": { "type": "object", "minProperties": 1, "description": "A collection of Geometry array", "title": "Geometries", "additionalProperties": { "type": "array", "items": { "type": "string", "pattern": "^[Gg]eometry\\..+", "description": "A geometry item, must be defined in the entity", "title": "Geometry reference" }, "description": "A geometry array definition", "title": "Geometry array" } }, "materials": { "type": "object", "minProperties": 1, "description": "A collection of materials array", "title": "Materials", "additionalProperties": { "type": "array", "items": { "type": "string", "pattern": "^[Mm]aterial\\..+", "description": "A material item, must be defined in the entity", "title": "Material reference" }, "description": "A material array definition", "title": "Material array" } }, "textures": { "type": "object", "minProperties": 1, "description": "A collection of texture array", "title": "Textures", "additionalProperties": { "type": "array", "description": "Textures", "title": "Texture", "items": { "type": "string", "pattern": "^[Tt]exture\\..+", "default": "texture.", "description": "An texture item", "title": "Texture" } } } } }, "color": { "description": "TODO description: color", "title": "Color", "additionalProperties": false, "type": "object", "properties": { "r": { "$ref": "#/definitions/A_color", "description": "The value of red", "title": "R" }, "g": { "$ref": "#/definitions/A_color", "description": "The value of green", "title": "G" }, "b": { "$ref": "#/definitions/A_color", "description": "The value of blue", "title": "B" }, "a": { "$ref": "#/definitions/A_color", "description": "The value of alpha", "title": "A" } } }, "filter_lighting": { "type": "boolean", "description": "TODO description: filter lighting", "title": "Filter Lighting" }, "geometry": { "type": "string", "description": "TODO description: geometry", "title": "Geometry" }, "ignore_lighting": { "type": "boolean", "description": "TODO description: ignore lighting", "title": "Ignore Lighting" }, "is_hurt_color": { "type": "object", "title": "Is hurt color", "additionalProperties": false, "description": "The color that is overlay when hurt", "properties": { "r": { "$ref": "#/definitions/A_color", "description": "The value of red", "title": "R" }, "g": { "$ref": "#/definitions/A_color", "description": "The value of green", "title": "G" }, "b": { "$ref": "#/definitions/A_color", "description": "The value of blue", "title": "B" }, "a": { "$ref": "#/definitions/A_color", "description": "The value of alpha", "title": "A" } } }, "light_color_multiplier": { "$ref": "#/definitions/B", "description": "TODO description: light color multiplier", "title": "Light Color Multiplier" }, "materials": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": { "type": "string", "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: materials", "title": "Materials" }, "description": "TODO description: materials", "title": "Materials" }, "on_fire_color": { "additionalProperties": false, "type": "object", "properties": { "r": { "$ref": "#/definitions/A_color" }, "g": { "$ref": "#/definitions/A_color" }, "b": { "$ref": "#/definitions/A_color" }, "a": { "$ref": "#/definitions/A_color" } }, "description": "TODO description: on fire color", "title": "On Fire Color" }, "overlay_color": { "additionalProperties": false, "type": "object", "properties": { "r": { "$ref": "#/definitions/A_color" }, "g": { "$ref": "#/definitions/A_color" }, "b": { "$ref": "#/definitions/A_color" }, "a": { "$ref": "#/definitions/A_color" } }, "description": "TODO description: overlay color", "title": "Overlay Color" }, "part_visibility": { "type": "array", "minItems": 1, "items": { "description": "A collection of object that describe which bones are hidden or not", "title": "Part Visibilty", "type": "object", "minProperties": 1, "additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "boolean" }, { "type": "number" }], "description": "Describes which bones are visible or not, can be a string, boolean or number", "title": "Part Visibilty" } }, "description": "TODO description: part visibility", "title": "Part Visibility" }, "rebuild_animation_matrices": { "type": "boolean", "description": "TODO description: rebuild animation matrices", "title": "Rebuild Animation Matrices" }, "textures": { "type": "array", "minItems": 1, "items": { "type": "string", "description": "TODO description: textures", "title": "Textures" }, "description": "TODO description: textures", "title": "Textures" }, "uv_anim": { "additionalProperties": false, "type": "object", "required": ["offset", "scale"], "properties": { "offset": { "type": "array", "minItems": 2, "maxItems": 2, "items": { "$ref": "#/definitions/B", "description": "TODO description: offset", "title": "Offset" }, "description": "TODO description: offset", "title": "Offset" }, "scale": { "type": "array", "description": "TODO description: scale", "title": "Scale", "minItems": 2, "maxItems": 2, "items": { "$ref": "#/definitions/B", "description": "TODO description: scale", "title": "Scale" } } }, "description": "TODO description: uv anim", "title": "Uv Anim" } } }, "description": "TODO description: render controllers", "title": "Render Controllers" } } }, "C_color": { "anyOf": [ { "type": "number", "description": "A color definition as number, between 0 and 1", "minimum": 0, "maximum": 1, "title": "Color Number" }, { "type": "string", "description": "A color definition in molang", "title": "Molang Color" } ] }, "C": { "additionalProperties": false, "type": "object", "title": "Render Controllers 1.10.0", "description": "Render_controllers 1.10.0", "properties": { "format_version": { "title": "1.10.0 Format Version", "type": "string", "description": "A version that tells minecraft what type of data format can be expected when reading this file." }, "render_controllers": { "type": "object", "propertyNames": { "pattern": "^controller\\.render\\.[a-z\\.]+" }, "additionalProperties": { "title": "Render Controller", "additionalProperties": false, "type": "object", "description": "A single render_controller", "required": ["geometry", "materials"], "properties": { "arrays": { "type": "object", "title": "Arrays", "additionalProperties": false, "description": "A collection of definition of arrays", "properties": { "geometries": { "type": "object", "minProperties": 1, "description": "A collection of Geometry array", "title": "Geometries", "additionalProperties": { "type": "array", "items": { "type": "string", "pattern": "^[Gg]eometry\\..+", "description": "A geometry item, must be defined in the entity", "title": "Geometry reference" }, "description": "A geometry array definition", "title": "Geometry array" } }, "materials": { "type": "object", "minProperties": 1, "description": "A collection of materials array", "title": "Materials", "additionalProperties": { "type": "array", "items": { "type": "string", "pattern": "^[Mm]aterial\\..+", "description": "A material item, must be defined in the entity", "title": "Material reference" }, "description": "A material array definition", "title": "Material array" } }, "textures": { "type": "object", "minProperties": 1, "description": "A collection of texture array", "title": "Textures", "additionalProperties": { "type": "array", "description": "Textures", "title": "Texture", "items": { "type": "string", "pattern": "^[Tt]exture\\..+", "default": "texture.", "description": "An texture item", "title": "Texture" } } } } }, "color": { "additionalProperties": false, "type": "object", "properties": { "r": { "$ref": "#/definitions/C_color", "description": "TODO description: r", "title": "R" }, "g": { "$ref": "#/definitions/C_color", "description": "TODO description: g", "title": "G" }, "b": { "$ref": "#/definitions/C_color", "description": "TODO description: b", "title": "B" }, "a": { "$ref": "#/definitions/C_color", "description": "TODO description: a", "title": "A" } }, "description": "TODO description: color", "title": "Color" }, "filter_lighting": { "type": "boolean", "description": "TODO description: filter lighting", "title": "Filter Lighting" }, "geometry": { "type": "string", "description": "TODO description: geometry", "title": "Geometry" }, "ignore_lighting": { "type": "boolean", "description": "TODO description: ignore lighting", "title": "Ignore Lighting" }, "is_hurt_color": { "additionalProperties": false, "type": "object", "description": "The color to overlay on the entity when hurt", "title": "Is Hurt Color", "properties": { "r": { "$ref": "#/definitions/C_color", "description": "The value of red", "title": "R" }, "g": { "$ref": "#/definitions/C_color", "description": "The value of green", "title": "G" }, "b": { "$ref": "#/definitions/C_color", "description": "The value of blue", "title": "B" }, "a": { "$ref": "#/definitions/C_color", "description": "The value of alpha", "title": "A" } } }, "materials": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": { "type": "string", "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: materials", "title": "Materials" }, "description": "TODO description: materials", "title": "Materials" }, "overlay_color": { "additionalProperties": false, "type": "object", "description": "TODO description: overlay color", "title": "Overlay Color", "properties": { "r": { "$ref": "#/definitions/C_color", "description": "The value of red", "title": "R" }, "g": { "$ref": "#/definitions/C_color", "description": "The value of green", "title": "G" }, "b": { "$ref": "#/definitions/C_color", "description": "The value of blue", "title": "B" }, "a": { "$ref": "#/definitions/C_color", "description": "The value of alpha", "title": "A" } } }, "textures": { "type": "array", "minItems": 1, "items": { "type": "string", "description": "TODO description: textures", "title": "Textures" }, "description": "TODO description: textures", "title": "Textures" }, "uv_anim": { "additionalProperties": false, "type": "object", "required": ["offset", "scale"], "properties": { "offset": { "type": "array", "minItems": 2, "maxItems": 2, "items": { "$ref": "#/definitions/B", "description": "TODO description: offset", "title": "Offset" }, "description": "TODO description: offset", "title": "Offset" }, "scale": { "type": "array", "description": "TODO description: scale", "title": "Scale", "minItems": 2, "maxItems": 2, "items": { "$ref": "#/definitions/B", "description": "TODO description: scale", "title": "Scale" } } }, "description": "TODO description: uv anim", "title": "Uv Anim" }, "part_visibility": { "type": "array", "minItems": 1, "items": { "description": "The object that describe different bone visibility", "title": "Part Visibility", "type": "object", "additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "boolean" }, { "type": "number" }] } }, "description": "TODO description: part visibility", "title": "Part Visibility" }, "rebuild_animation_matrices": { "type": "boolean", "description": "TODO description: rebuild animation matrices", "title": "Rebuild Animation Matrices" } } }, "description": "TODO description: render controllers", "title": "Render Controllers" } } }, "D": { "title": "Format version", "description": "A version that tells minecraft what type of data format can be expected when reading this file.", "pattern": "^[0-9,.]+?$", "type": "string" } } }