forked from Blockception/Minecraft-bedrock-json-schemas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
model_entity.json
1 lines (1 loc) · 47 KB
/
model_entity.json
1
{"$schema":"https://json-schema.org/draft-07/schema","$id":"blockception.minecraft.resource.model","examples":[{"format_version":"1.16.0","minecraft:geometry":[{"description":{"identifier":"geometry.entity","texture_width":64.0,"texture_height":64.0,"visible_bounds_offset":[0.0,0.5,0.0],"visible_bounds_width":1.5},"bones":{}}]}],"allOf":[{"if":{"properties":{"format_version":{"type":"string","const":"1.8.0"}}},"then":{"$ref":"#/definitions/A"}},{"if":{"properties":{"format_version":{"type":"string","const":"1.10.0"}}},"then":{"$ref":"#/definitions/B"}},{"if":{"properties":{"format_version":{"type":"string","const":"1.12.0"}}},"then":{"$ref":"#/definitions/C"}},{"if":{"properties":{"format_version":{"type":"string","const":"1.14.0"}}},"then":{"$ref":"#/definitions/D"}},{"if":{"properties":{"format_version":{"type":"string","const":"1.16.0"}}},"then":{"$ref":"#/definitions/E"}}],"definitions":{"A":{"type":"object","title":"Resourcepack Model Schema For 1.8.0","description":"TODO description","required":["format_version"],"properties":{"debug":{"type":"boolean","description":"TODO description","title":"TODO Title"},"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."}},"propertyNames":{"pattern":"(^geometry\\.[a-zA-Z0-9_.'\\-:]+|format_version)"},"additionalProperties":{"additionalProperties":false,"type":"object","description":"Geometry specification","title":"Geometry","properties":{"bones":{"type":"array","description":"The bones definitions","title":"Bones","items":{"additionalProperties":false,"type":"object","description":"The bone definition","title":"Bone","required":["name"],"properties":{"bind_pose_rotation":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"cubes":{"type":"array","items":{"additionalProperties":false,"type":"object","properties":{"inflate":{"type":"number"},"mirror":{"type":"boolean"},"origin":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"size":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"uv":{"type":"array","items":[{"type":"number"},{"type":"number"}]}}}},"debug":{"type":"boolean"},"inflate":{"type":"number"},"locators":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"mirror":{"type":"boolean"},"name":{"type":"string"},"neverRender":{"type":"boolean"},"parent":{"type":"string"},"pivot":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"poly_mesh":{"type":"object","required":["polys"],"title":"Poly Mesh","description":"TODO","additionalProperties":false,"properties":{"normalized_uvs":{"title":"Normalized Uvs","description":"TODO","type":"boolean"},"positions":{"title":"Positions","description":"TODO","type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"normals":{"title":"Normals","description":"TODO","type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"polys":{"title":"Polys","description":"TODO","type":"array","items":{"type":"array","minItems":3,"maxItems":4,"items":[{"type":"number"},{"type":"number"},{"type":"number"}]}}}},"render_group_id":{"title":"Render Group Id","description":"TODO","type":"integer","minimum":0},"reset":{"title":"Reset","description":"TODO","type":"boolean"},"rotation":{"title":"Rotation","description":"TODO","type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"texture_meshes":{"type":"array","title":"Texture Meshes","description":"TODO","items":{"type":"object","additionalProperties":false,"properties":{"texture":{"type":"string"},"local_pivot":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"position":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"rotation":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"scale":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}}}}}}},"cape":{"title":"Cape","description":"TODO","type":"string"},"debug":{"title":"Debug","description":"TODO","type":"boolean"},"texturewidth":{"type":"integer","description":"TODO description: texturewidth","title":"Texturewidth"},"textureheight":{"type":"integer","description":"TODO description: textureheight","title":"Textureheight"},"visible_bounds_width":{"type":"number","description":"TODO description: visible bounds width","title":"Visible Bounds Width"},"visible_bounds_height":{"type":"number","description":"TODO description: visible bounds height","title":"Visible Bounds Height"},"visible_bounds_offset":{"type":"array","description":"TODO description: visible bounds offset","title":"Visible Bounds Offset","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}}}},"B":{"type":"object","title":"Resourcepack Model Schema For 1.10.0","description":"TODO description","required":["format_version"],"properties":{"debug":{"type":"boolean","description":"TODO description","title":"TODO Title"},"format_version":{"title":"1.10.0 Format Version","type":"string","pattern":"^1.10.0$","description":"A version that tells minecraft what type of data format can be expected when reading this file."}},"propertyNames":{"pattern":"(^geometry\\.[a-zA-Z0-9_.'\\-:]+|format_version)"},"additionalProperties":{"additionalProperties":false,"type":"object","description":"Geometry specification","title":"Geometry","properties":{"bones":{"type":"array","description":"The bones definitions","title":"Bones","items":{"additionalProperties":false,"type":"object","description":"The bone definition","title":"Bone","required":["name"],"properties":{"bind_pose_rotation":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"cubes":{"type":"array","items":{"additionalProperties":false,"type":"object","properties":{"inflate":{"type":"number"},"mirror":{"type":"boolean"},"origin":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"size":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"uv":{"type":"array","items":[{"type":"number"},{"type":"number"}]}}}},"debug":{"type":"boolean"},"inflate":{"type":"number"},"locators":{"type":"object","additionalProperties":{"type":"array","items":{"type":"number"}}},"mirror":{"type":"boolean"},"name":{"type":"string"},"neverRender":{"type":"boolean"},"parent":{"type":"string"},"pivot":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"poly_mesh":{"type":"object","required":["polys"],"properties":{"normalized_uvs":{"type":"boolean"},"positions":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"normals":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"polys":{"type":"array","items":{"type":"array","minItems":3,"maxItems":4,"items":[{"type":"number"},{"type":"number"},{"type":"number"}]}}}},"render_group_id":{"type":"integer","minimum":0},"reset":{"type":"boolean"},"rotation":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"texture_meshes":{"type":"array","items":{"type":"object","properties":{"texture":{"type":"string"},"local_pivot":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"position":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"rotation":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]},"scale":{"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}}}}}}},"cape":{"type":"string"},"debug":{"type":"boolean"},"texturewidth":{"type":"integer","description":"TODO description: texturewidth","title":"Texturewidth"},"textureheight":{"type":"integer","description":"TODO description: textureheight","title":"Textureheight"},"visible_bounds_width":{"type":"number","description":"TODO description: visible bounds width","title":"Visible Bounds Width"},"visible_bounds_height":{"type":"number","description":"TODO description: visible bounds height","title":"Visible Bounds Height"},"visible_bounds_offset":{"type":"array","description":"TODO description: visible bounds offset","title":"Visible Bounds Offset","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}}}},"C_uv":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}},"C_direction_uv":{"additionalProperties":false,"type":"object","properties":{"uv":{"description":"Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.","$ref":"#/definitions/C_uv"},"uv_size":{"description":"The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.","$ref":"#/definitions/C_uv"},"material_instance":{"type":"string","description":"TODO"}}},"C":{"additionalProperties":false,"type":"object","title":"Geometry 1.12.0","description":"The minecraft resourcepack model schema for 1.12.0","required":["format_version","minecraft:geometry"],"properties":{"debug":{"type":"boolean","default":false,"description":"TODO description","title":"TODO Title"},"format_version":{"title":"1.12.0 Format Version","type":"string","pattern":"^1.12.0$","description":"A version that tells minecraft what type of data format can be expected when reading this file."},"minecraft:geometry":{"type":"array","title":"Geometry","description":"The collection of geometries","minItems":1,"items":{"additionalProperties":false,"description":"Model specification","title":"Model","type":"object","required":["description"],"properties":{"description":{"type":"object","additionalProperties":false,"description":"The descriptions of the geometry","title":"Description","required":["identifier"],"properties":{"identifier":{"type":"string","description":"Entity definition and Client Block definition files refer to this geometry via this identifier.","pattern":"^geometry\\.[a-zA-Z0-9_\\-\\.]+$","title":"Identifier"},"texture_width":{"type":"number","description":"Assumed width in texels of the texture that will be bound to this geometry.","title":"Texture Width"},"texture_height":{"type":"number","description":"Assumed height in texels of the texture that will be bound to this geometry.","title":"Texture Height"},"visible_bounds_offset":{"description":"Offset of the visibility bounding box from the entity location point (in model space units).","title":"Visible Bounds Offset","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"visible_bounds_width":{"type":"number","description":"Width of the visibility bounding box (in model space units).","title":"Visible Bounds Width"},"visible_bounds_height":{"type":"number","description":"Height of the visible bounding box (in model space units).","title":"Visible Bounds Height"}}},"bones":{"type":"array","description":"The bones specification","items":{"additionalProperties":false,"type":"object","description":"A bones specification","required":["name"],"properties":{"average_normals":{"type":"object","examples":[null]},"cubes":{"type":"array","description":"This is the list of cubes associated with this bone.","items":{"additionalProperties":false,"type":"object","description":"A single cube","properties":{"inflate":{"type":"number","description":"Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only."},"mirror":{"type":"boolean","description":"Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube."},"origin":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units)."}},"pivot":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14."}},"rotation":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot."}},"size":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"The cube extends this amount relative to its origin (in model space units)."}},"uv":{"description":"This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.","oneOf":[{"additionalProperties":false,"type":"object","properties":{"north":{"$ref":"#/definitions/C_direction_uv","description":"Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis."},"south":{"$ref":"#/definitions/C_direction_uv","description":"Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis"},"east":{"$ref":"#/definitions/C_direction_uv","description":"Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis"},"west":{"$ref":"#/definitions/C_direction_uv","description":"Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis"},"up":{"$ref":"#/definitions/C_direction_uv","description":"Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis"},"down":{"$ref":"#/definitions/C_direction_uv","description":"Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis"}}},{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}}]}}}},"debug":{"type":"boolean"},"inflate":{"type":"number","description":"Grow this box by this additive amount in all directions (in model space units)."},"locators":{"description":"This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).","type":"object","additionalProperties":{"oneOf":[{"type":"object","required":["offset","rotation"],"properties":{"offset":{"type":"array","minItems":3,"maxItems":3,"description":"Position of the locator in model space.","items":{"type":"number","description":"Position of the locator in model space."}},"rotation":{"type":"array","minItems":3,"maxItems":3,"description":"Rotation of the locator in model space.","items":{"type":"number","description":"Rotation of the locator in model space."}},"ignore_inherited_scale":{"type":"boolean","description":"Discard scale inherited from parent bone."}}},{"type":"array","minItems":3,"maxItems":3,"description":"This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).","items":{"type":"number","description":"Position of the locator in model space."}}]}},"mirror":{"type":"boolean","description":"Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped."},"name":{"type":"string","description":"Animation files refer to this bone via this identifier."},"parent":{"type":"string","description":"Bone that this bone is relative to. If the parent bone moves, this bone will move along with it."},"pivot":{"type":"array","minItems":3,"maxItems":3,"description":"The bone pivots around this point (in model space units).","items":{"type":"number","description":"The bone pivots around this point (in model space units)."}},"poly_mesh":{"additionalProperties":false,"type":"object","description":"***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.","required":["polys"],"properties":{"normalized_uvs":{"type":"boolean","description":"If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively."},"normals":{"type":"array","description":"Vertex normals. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.","items":{"type":"array","minItems":3,"maxItems":3,"description":"Vertex normals. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.","items":{"type":"number","description":"Vertex normals. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections."}}},"polys":{"oneOf":[{"type":"string","description":"If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either \"tri_list\" or \"quad_list\"","enum":["tri_list","quad_list"]},{"type":"array","description":"Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).","items":{"type":"array","minItems":3,"maxItems":4,"description":"Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).","items":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"number","description":"The index of the position"},{"type":"number","description":"The index of the normal vertex"},{"type":"number","description":"The index of the uv vertex"}]}}}]},"positions":{"type":"array","items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"Vertex positions for the mesh. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections."}}},"uvs":{"type":"array","description":"Vertex UVs. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.","items":{"type":"array","description":"Vertex UVs. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.","minItems":2,"maxItems":2,"items":{"type":"number","description":"Vertex UVs. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections."}}}}},"render_group_id":{"type":"integer","minimum":0},"rotation":{"type":"array","minItems":3,"maxItems":3,"description":"The bone pivots around this point (in model space units).","items":{"type":"number","description":"This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order)."}},"texture_meshes":{"type":"array","description":"***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes","items":{"type":"object","required":["texture"],"properties":{"local_pivot":{"type":"array","description":"The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry","minItems":3,"maxItems":3,"items":{"type":"number","description":"The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry"}},"position":{"type":"array","description":"The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry","minItems":3,"maxItems":3,"items":{"type":"number","description":"The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry"}},"rotation":{"type":"array","description":"The rotation (in degrees) of the texture geometry relative to the offset","minItems":3,"maxItems":3,"items":{"type":"number","description":"The rotation (in degrees) of the texture geometry relative to the offset"}},"scale":{"type":"array","description":"The scale (in degrees) of the texture geometry relative to the offset","minItems":3,"maxItems":3,"items":{"type":"number","description":"The scale (in degrees) of the texture geometry relative to the offset"}},"texture":{"type":"string","description":"The friendly-named texture to use."}}}}}}},"cape":{"type":"string"}}}}}},"D_uv":{"type":"array","items":[{"type":"number","title":"X","description":"The x component of the uv"},{"type":"number","title":"Y","description":"The y component of the uv"}]},"D_direction_uv":{"additionalProperties":false,"type":"object","properties":{"uv":{"title":"Uv","description":"Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.","$ref":"#/definitions/D_uv"},"uv_size":{"title":"Uv Size","description":"The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.","$ref":"#/definitions/D_uv"},"material_instance":{"type":"string","title":"Material Instance","description":"Specifies the UV's for the face that stretches"}}},"D":{"additionalProperties":false,"type":"object","title":"Geometry 1.14.0","description":"The minecraft resourcepack model schema for 1.14.0","required":["format_version","minecraft:geometry"],"properties":{"debug":{"type":"boolean","default":false,"description":"TODO description","title":"TODO Title"},"format_version":{"title":"1.14.0 Format Version","type":"string","pattern":"^1.14.0$","description":"A version that tells minecraft what type of data format can be expected when reading this file."},"minecraft:geometry":{"type":"array","title":"Geometry","description":"The collection of geometries","minItems":1,"items":{"additionalProperties":false,"description":"Model specification","title":"Model","type":"object","required":["description"],"properties":{"description":{"type":"object","additionalProperties":false,"description":"The descriptions of the geometry","title":"Description","required":["identifier"],"properties":{"identifier":{"type":"string","description":"Entity definition and Client Block definition files refer to this geometry via this identifier.","pattern":"^geometry\\.[a-zA-Z0-9_\\-\\.]+$","title":"Identifier"},"texture_width":{"type":"number","description":"Assumed width in texels of the texture that will be bound to this geometry.","title":"Texture Width"},"texture_height":{"type":"number","description":"Assumed height in texels of the texture that will be bound to this geometry.","title":"Texture Height"},"visible_bounds_offset":{"description":"Offset of the visibility bounding box from the entity location point (in model space units).","title":"Visible Bounds Offset","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"visible_bounds_width":{"type":"number","description":"Width of the visibility bounding box (in model space units).","title":"Visible Bounds Width"},"visible_bounds_height":{"type":"number","description":"Height of the visible bounding box (in model space units).","title":"Visible Bounds Height"}}},"bones":{"type":"array","description":"Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.","items":{"additionalProperties":false,"type":"object","description":"A bones specification","required":["name"],"properties":{"average_normals":{"type":"object","examples":[null]},"cubes":{"type":"array","description":"This is the list of cubes associated with this bone.","items":{"additionalProperties":false,"type":"object","description":"A single cube","properties":{"inflate":{"type":"number","description":"Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only."},"mirror":{"type":"boolean","description":"Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube."},"origin":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units)."}},"pivot":{"type":"array","description":"If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14.","title":"Pivot","items":[{"type":"number","title":"X","description":"If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14."},{"type":"number","title":"Y","description":"If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14."},{"type":"number","title":"Z","description":"If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14."}]},"rotation":{"title":"Rotation","type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot."}},"size":{"title":"Size","type":"array","description":"The cube extends this amount relative to its origin (in model space units).","items":[{"type":"number","title":"X","description":"The cube extends this amount relative to its origin (in model space units)."},{"type":"number","title":"Y","description":"The cube extends this amount relative to its origin (in model space units)."},{"type":"number","title":"Z","description":"The cube extends this amount relative to its origin (in model space units)."}]},"uv":{"title":"Uv","description":"This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.","oneOf":[{"additionalProperties":false,"type":"object","properties":{"north":{"title":"North","$ref":"#/definitions/D_direction_uv","description":"Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis."},"south":{"title":"South","$ref":"#/definitions/D_direction_uv","description":"Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis"},"east":{"title":"East","$ref":"#/definitions/D_direction_uv","description":"Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis"},"west":{"title":"West","$ref":"#/definitions/D_direction_uv","description":"Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis"},"up":{"title":"Up","$ref":"#/definitions/D_direction_uv","description":"Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis"},"down":{"title":"Down","$ref":"#/definitions/D_direction_uv","description":"Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis"}}},{"type":"array","items":[{"type":"number","title":"X","description":"The x component of the uv"},{"type":"number","title":"Y","description":"The y component of the uv"}]}]}}}},"debug":{"type":"boolean"},"inflate":{"type":"number","description":"Grow this box by this additive amount in all directions (in model space units)."},"locators":{"description":"This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).","type":"object","additionalProperties":{"oneOf":[{"type":"object","required":["offset","rotation"],"properties":{"offset":{"type":"array","minItems":3,"maxItems":3,"description":"Position of the locator in model space.","items":{"type":"number","description":"Position of the locator in model space."}},"rotation":{"type":"array","minItems":3,"maxItems":3,"description":"Rotation of the locator in model space.","items":{"type":"number","description":"Rotation of the locator in model space."}},"ignore_inherited_scale":{"type":"boolean","description":"Discard scale inherited from parent bone."}}},{"type":"array","minItems":3,"maxItems":3,"description":"This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).","items":{"type":"number","description":"Position of the locator in model space."}}]}},"mirror":{"type":"boolean","title":"Mirror","description":"Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped."},"name":{"type":"string","title":"Name","description":"Animation files refer to this bone via this identifier."},"parent":{"type":"string","title":"Parent","description":"Bone that this bone is relative to. If the parent bone moves, this bone will move along with it."},"pivot":{"type":"array","minItems":3,"maxItems":3,"description":"The bone pivots around this point (in model space units).","items":{"type":"number","description":"The bone pivots around this point (in model space units)."}},"poly_mesh":{"additionalProperties":false,"type":"object","description":"***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.","required":["polys"],"properties":{"normalized_uvs":{"type":"boolean","description":"If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively."},"normals":{"type":"array","description":"Vertex normals. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.","items":{"type":"array","minItems":3,"maxItems":3,"description":"Vertex normals. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.","items":{"type":"number","description":"Vertex normals. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections."}}},"polys":{"oneOf":[{"type":"string","description":"If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either \"tri_list\" or \"quad_list\"","enum":["tri_list","quad_list"]},{"type":"array","description":"Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).","items":{"type":"array","minItems":3,"maxItems":4,"description":"Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).","items":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"number","description":"The index of the position"},{"type":"number","description":"The index of the normal vertex"},{"type":"number","description":"The index of the uv vertex"}]}}}]},"positions":{"type":"array","items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"Vertex positions for the mesh. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections."}}},"uvs":{"type":"array","description":"Vertex UVs. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.","items":{"type":"array","description":"Vertex UVs. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.","minItems":2,"maxItems":2,"items":{"type":"number","description":"Vertex UVs. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections."}}}}},"render_group_id":{"type":"integer","minimum":0},"rotation":{"type":"array","minItems":3,"maxItems":3,"description":"The bone pivots around this point (in model space units).","items":{"type":"number","description":"This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order)."}},"texture_meshes":{"type":"array","description":"***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes","items":{"type":"object","additionalProperties":false,"required":["texture"],"properties":{"local_pivot":{"type":"array","description":"The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry","minItems":3,"maxItems":3,"items":{"type":"number","description":"The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry"}},"position":{"type":"array","description":"The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry","minItems":3,"maxItems":3,"items":{"type":"number","description":"The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry"}},"rotation":{"type":"array","description":"The rotation (in degrees) of the texture geometry relative to the offset","minItems":3,"maxItems":3,"items":{"type":"number","description":"The rotation (in degrees) of the texture geometry relative to the offset"}},"scale":{"type":"array","description":"The scale (in degrees) of the texture geometry relative to the offset","minItems":3,"maxItems":3,"items":{"type":"number","description":"The scale (in degrees) of the texture geometry relative to the offset"}},"texture":{"type":"string","description":"The friendly-named texture to use."}}}}}}},"cape":{"type":"string"}}}}}},"E_uv":{"type":"array","items":[{"type":"number","title":"X","description":"The x component of the uv"},{"type":"number","title":"Y","description":"The y component of the uv"}]},"E_direction_uv":{"additionalProperties":false,"type":"object","properties":{"uv":{"title":"Uv","description":"Specifies the uv origin for the face. For this face, it is the upper-left corner, when looking at the face with y being up.","$ref":"#/definitions/E_uv"},"uv_size":{"title":"Uv Size","description":"The face maps this many texels from the uv origin. If not specified, the box dimensions are used instead.","$ref":"#/definitions/E_uv"},"material_instance":{"type":"string","title":"Material Instance","description":"Specifies the UV's for the face that stretches"}}},"F":{"type":"string","title":"Molang / String","description":"Molang definition","format":"molang"},"E":{"additionalProperties":false,"type":"object","title":"Geometry 1.16.0","description":"The minecraft resourcepack model schema for 1.16.0","required":["format_version","minecraft:geometry"],"properties":{"debug":{"title":"Debug","description":"TODO description","type":"boolean","default":false},"format_version":{"title":"1.16.0 Format Version","type":"string","pattern":"^1.16.0$","description":"A version that tells minecraft what type of data format can be expected when reading this file."},"minecraft:geometry":{"type":"array","title":"Geometry","description":"The collection of geometries","minItems":1,"items":{"additionalProperties":false,"description":"Model specification","title":"Model","type":"object","required":["description"],"properties":{"description":{"type":"object","additionalProperties":false,"description":"The descriptions of the geometry","title":"Description","required":["identifier"],"properties":{"identifier":{"type":"string","description":"Entity definition and Client Block definition files refer to this geometry via this identifier.","pattern":"^geometry\\.[a-zA-Z0-9_\\-\\.]+$","title":"Identifier"},"texture_width":{"type":"number","description":"Assumed width in texels of the texture that will be bound to this geometry.","title":"Texture Width"},"texture_height":{"type":"number","description":"Assumed height in texels of the texture that will be bound to this geometry.","title":"Texture Height"},"visible_bounds_offset":{"title":"Visible Bounds Offset","description":"Offset of the visibility bounding box from the entity location point (in model space units).","type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"visible_bounds_width":{"type":"number","title":"Visible Bounds Width","description":"Width of the visibility bounding box (in model space units)."},"visible_bounds_height":{"type":"number","title":"Visible Bounds Height","description":"Height of the visible bounding box (in model space units)."}}},"bones":{"title":"Bones","type":"array","description":"Bones define the 'skeleton' of the mob: the parts that can be animated, and to which geometry and other bones are attached.","items":{"additionalProperties":false,"type":"object","description":"A bones specification","required":["name"],"properties":{"binding":{"title":"Binding","description":"useful for items. A molang expression specifying the bone name of the parent skeletal hierarchy that this bone should use as the root transform. Without this field it will look for a bone in the parent entity with the same name as this bone. If both are missing, it will assume a local skeletal hierarchy (via the \"parent\" field). If that is also missing, it will attach to the owning entity's root transform.","$ref":"#/definitions/F"},"cubes":{"title":"Cubes","description":"This is the list of cubes associated with this bone.","type":"array","items":{"additionalProperties":false,"type":"object","description":"A single cube","properties":{"inflate":{"type":"number","description":"Grow this box by this additive amount in all directions (in model space units), this field overrides the bone's inflate field for this cube only."},"mirror":{"type":"boolean","description":"Mirrors this cube about the unrotated x axis (effectively flipping the east / west faces), overriding the bone's 'mirror' setting for this cube."},"origin":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"This point declares the unrotated lower corner of cube (smallest x/y/z value in model space units)."}},"pivot":{"type":"array","description":"If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14.","title":"Pivot","items":[{"type":"number","title":"X","description":"If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14."},{"type":"number","title":"Y","description":"If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14."},{"type":"number","title":"Z","description":"If this field is specified, rotation of this cube occurs around this point, otherwise its rotation is around the center of the box. Note that in 1.12 this is flipped upside-down, but is fixed in 1.14."}]},"rotation":{"title":"Rotation","type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"The cube is rotated by this amount (in degrees, x-then-y-then-z order) around the pivot."}},"size":{"title":"Size","type":"array","description":"The cube extends this amount relative to its origin (in model space units).","items":[{"type":"number","title":"X","description":"The cube extends this amount relative to its origin (in model space units)."},{"type":"number","title":"Y","description":"The cube extends this amount relative to its origin (in model space units)."},{"type":"number","title":"Z","description":"The cube extends this amount relative to its origin (in model space units)."}]},"uv":{"title":"Uv","description":"This is an alternate per-face uv mapping which specifies each face of the cube. Omitting a face will cause that face to not get drawn.","oneOf":[{"additionalProperties":false,"type":"object","properties":{"north":{"title":"North","$ref":"#/definitions/E_direction_uv","description":"Specifies the UV's for the face that stretches along the x and y axes, and faces the -z axis."},"south":{"title":"South","$ref":"#/definitions/E_direction_uv","description":"Specifies the UV's for the face that stretches along the x and y axes, and faces the z axis"},"east":{"title":"East","$ref":"#/definitions/E_direction_uv","description":"Specifies the UV's for the face that stretches along the z and y axes, and faces the x axis"},"west":{"title":"West","$ref":"#/definitions/E_direction_uv","description":"Specifies the UV's for the face that stretches along the z and y axes, and faces the -x axis"},"up":{"title":"Up","$ref":"#/definitions/E_direction_uv","description":"Specifies the UV's for the face that stretches along the x and z axes, and faces the y axis"},"down":{"title":"Down","$ref":"#/definitions/E_direction_uv","description":"Specifies the UV's for the face that stretches along the x and z axes, and faces the -y axis"}}},{"type":"array","items":[{"type":"number","title":"X","description":"The x component of the uv"},{"type":"number","title":"Y","description":"The y component of the uv"}]}]}}}},"debug":{"type":"boolean"},"inflate":{"type":"number","description":"Grow this box by this additive amount in all directions (in model space units)."},"locators":{"description":"This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).","type":"object","additionalProperties":{"oneOf":[{"type":"object","required":["offset","rotation"],"properties":{"offset":{"type":"array","minItems":3,"maxItems":3,"description":"Position of the locator in model space.","items":{"type":"number","description":"Position of the locator in model space."}},"rotation":{"type":"array","minItems":3,"maxItems":3,"description":"Rotation of the locator in model space.","items":{"type":"number","description":"Rotation of the locator in model space."}},"ignore_inherited_scale":{"type":"boolean","description":"Discard scale inherited from parent bone."}}},{"type":"array","minItems":3,"maxItems":3,"description":"This is a list of locators associated with this bone. A locator is a point in model space that tracks a particular bone as the bone animates (by maintaining it's relationship to the bone through the animation).","items":{"type":"number","description":"Position of the locator in model space."}}]}},"mirror":{"type":"boolean","title":"Mirror","description":"Mirrors the UV's of the unrotated cubes along the x axis, also causes the east/west faces to get flipped."},"name":{"type":"string","title":"Name","description":"Animation files refer to this bone via this identifier."},"parent":{"type":"string","title":"Parent","description":"Bone that this bone is relative to. If the parent bone moves, this bone will move along with it."},"pivot":{"type":"array","title":"Pivot","description":"The bone pivots around this point (in model space units).","items":[{"type":"number","title":"X"},{"type":"number","title":"Y"},{"type":"number","title":"Z"}]},"poly_mesh":{"additionalProperties":false,"type":"object","description":"***EXPERIMENTAL*** A triangle or quad mesh object. Can be used in conjunction with cubes and texture geometry.","required":["polys"],"properties":{"normalized_uvs":{"type":"boolean","description":"If true, UVs are assumed to be [0-1]. If false, UVs are assumed to be [0-texture_width] and [0-texture_height] respectively."},"normals":{"type":"array","description":"Vertex normals. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.","items":{"type":"array","minItems":3,"maxItems":3,"description":"Vertex normals. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections.","items":{"type":"number","description":"Vertex normals. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and UVs sections."}}},"polys":{"oneOf":[{"type":"string","description":"If not specifying vertex indices, arrays of data must be a list of tris or quads, set by making this property either \"tri_list\" or \"quad_list\"","enum":["tri_list","quad_list"]},{"type":"array","description":"Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).","items":{"type":"array","minItems":3,"maxItems":4,"description":"Poly element indices, as an array of polygons, each an array of either three or four vertices, each an array of indices into positions, normals, and UVs (in that order).","items":{"type":"array","minItems":3,"maxItems":3,"items":[{"type":"number","description":"The index of the position"},{"type":"number","description":"The index of the normal vertex"},{"type":"number","description":"The index of the uv vertex"}]}}}]},"positions":{"type":"array","items":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number","description":"Vertex positions for the mesh. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the normals and UVs sections."}}},"uvs":{"type":"array","description":"Vertex UVs. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.","items":{"type":"array","description":"Vertex UVs. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections.","minItems":2,"maxItems":2,"items":{"type":"number","description":"Vertex UVs. Can be either indexed via the \"polys\" section, or be a quad-list if mapped 1-to-1 to the positions and normals sections."}}}}},"render_group_id":{"type":"integer","minimum":0},"rotation":{"type":"array","title":"Rotation","description":"This is the initial rotation of the bone around the pivot, pre-animation (in degrees, x-then-y-then-z order).","items":[{"type":"number","title":"X","description":"in degrees"},{"type":"number","title":"Y","description":"in degrees"},{"type":"number","title":"Z","description":"in degrees"}]},"texture_meshes":{"type":"array","title":"Texture Meshes","description":"***EXPERIMENTAL*** Adds a mesh to the bone's geometry by converting texels in a texture into boxes","items":{"type":"object","additionalProperties":false,"required":["texture"],"properties":{"local_pivot":{"type":"array","description":"The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry","minItems":3,"maxItems":3,"items":{"type":"number","description":"The pivot point on the texture (in *texture space* not entity or bone space) of the texture geometry"}},"position":{"type":"array","description":"The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry","minItems":3,"maxItems":3,"items":{"type":"number","description":"The position of the pivot point after rotation (in *entity space* not texture or bone space) of the texture geometry"}},"rotation":{"type":"array","description":"The rotation (in degrees) of the texture geometry relative to the offset","minItems":3,"maxItems":3,"items":{"type":"number","description":"The rotation (in degrees) of the texture geometry relative to the offset"}},"scale":{"type":"array","description":"The scale (in degrees) of the texture geometry relative to the offset","minItems":3,"maxItems":3,"items":{"type":"number","description":"The scale (in degrees) of the texture geometry relative to the offset"}},"texture":{"type":"string","description":"The friendly-named texture to use."}}}}}}},"cape":{"title":"Cape","description":"UNDOCUMENTATED","type":"string"}}}}}}}}