{ "$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" } } ], "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": "The 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": { "additionalProperties": false, "description": "TODO description: arrays", "title": "Arrays", "type": "object", "properties": { "geometries": { "type": "object", "minProperties": 1, "propertyNames": { "pattern": "^[Aa]rray\\..+" }, "additionalProperties": { "type": "array", "items": { "type": "string", "pattern": "^[Gg]eometry\\..+", "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: geometries", "title": "Geometries" }, "materials": { "type": "object", "minProperties": 1, "propertyNames": { "pattern": "^[Aa]rray\\..+" }, "additionalProperties": { "type": "array", "items": { "type": "string", "pattern": "^[Mm]aterial\\..+", "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: materials", "title": "Materials" }, "textures": { "type": "object", "minProperties": 1, "propertyNames": { "pattern": "^[Aa]rray\\..+" }, "additionalProperties": { "type": "array", "items": { "type": "string", "pattern": "^[Tt]exture\\..+", "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: textures", "title": "Textures" } } }, "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: 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", "properties": { "r": { "$ref": "#/definitions/A_color" }, "g": { "$ref": "#/definitions/A_color" }, "b": { "$ref": "#/definitions/A_color" }, "a": { "$ref": "#/definitions/A_color" } }, "description": "TODO description: is hurt color", "title": "Is Hurt Color" }, "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": "The 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": { "additionalProperties": false, "type": "object", "description": "A single render_controller", "required": ["geometry", "materials"], "properties": { "arrays": { "additionalProperties": false, "type": "object", "properties": { "geometries": { "type": "object", "minProperties": 1, "additionalProperties": { "type": "array", "items": { "type": "string", "pattern": "^[Gg]eometry\\..+", "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: geometries", "title": "Geometries" }, "materials": { "type": "object", "minProperties": 1, "additionalProperties": { "type": "array", "items": { "type": "string", "pattern": "^[Mm]aterial\\..+", "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: additionalProperties", "title": "TODO" }, "description": "TODO description: materials", "title": "Materials" }, "textures": { "type": "object", "minProperties": 1, "additionalProperties": { "type": "array", "description": "Textures", "title": "Texture", "items": { "type": "string", "pattern": "^[Tt]exture\\..+", "default": "texture.", "description": "An texture item", "title": "Texture" } }, "description": "TODO description: textures", "title": "Textures" } }, "description": "TODO description: arrays", "title": "Arrays" }, "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" }, "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", "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: overlay color", "title": "Overlay Color" }, "textures": { "type": "array", "minItems": 1, "items": { "type": "string", "description": "TODO description: textures", "title": "Textures" }, "description": "TODO description: textures", "title": "Textures" }, "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" } }, "title": "TODO" }, "description": "TODO description: render controllers", "title": "Render Controllers" } } } } }