{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "blockception.minecraft.resource.texture.ui_definition", "additionalProperties": false, "description": "The file that specifies either 9slice texture or Aseprite flipbook.", "title": "UI Texture File", "type": "object", "oneOf": [{ "$ref": "#/definitions/A" }, { "$ref": "#/definitions/B" }], "definitions": { "A": { "additionalProperties": false, "description": "The file that specifies 9Slice textures.", "title": "9Slice Texture File", "type": "object", "properties": { "nineslice_size": { "title": "9Slice offsets", "oneOf": [ { "description": "Offset from left, top, right and bottom of the texture file.", "type": "number", "minimum": 0 }, { "description": "Offsets from left, top, right and bottom of the texture file (in this exact order).", "type": "array", "minItems": 4, "maxItems": 4, "items": { "type": "number", "minimum": 0 } } ] }, "base_size": { "title": "Size of the texture", "description": "Width and height of the texture (in this exact order).", "type": "array", "minItems": 2, "maxItems": 2, "items": { "type": "number", "minimum": 0 } } } }, "B": { "additionalProperties": false, "description": "The file that specifies Aseprite/libresprite flipbook animation.", "title": "Aseprite Flipbook File", "type": "object", "properties": { "meta": { "type": "object", "description": "The meta data of the flipbook.", "additionalProperties": true, "properties": { "size": { "type": "object", "description": "The size of the flipbook sprite sheet.", "properties": { "w": { "description": "The width of the sprite sheet.", "type": "integer" }, "h": { "description": "The height of the sprite sheet.", "type": "integer" } }, "required": ["w", "h"] }, "image": { "description": "The path to the sprite sheet. The value is required, but not used.", "type": "string" } }, "required": ["size", "image"] }, "frames": { "type": "array", "description": "The frames of the flipbook.", "items": { "type": "object", "additionalProperties": true, "properties": { "duration": { "description": "The duration of the frame in milliseconds.", "type": "integer", "minimum": 1 }, "frame": { "type": "object", "description": "The position of the frame in the sprite sheet (UV).", "properties": { "x": { "type": "integer", "description": "The x position of the frame in the sprite sheet.", "minimum": 0 }, "y": { "type": "integer", "description": "The y position of the frame in the sprite sheet.", "minimum": 0 } }, "required": ["x", "y"] } }, "required": ["duration", "frame"] } } }, "required": ["meta", "frames"] } } }