{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "blockception.minecraft.behavior.animation_controller", "defaultSnippets": [ { "label": "New animation controller", "body": { "format_version": "${1:1.10.0}", "animation_controllers": { "controller.animation.${2:${TM_FILENAME/[\\.].*//}}": { "states": { "default": "^{$3}" } } } } } ], "examples": [ { "format_version": "1.20.41", "animation_controllers": { "controller.animation.example": { "initial_state": "default", "states": { "default": { "transitions": [{ "state_1": "query.is_baby" }] }, "state_1": {} } } } } ], "definitions": { "animationspec": { "anyOf": [ { "title": "Animation Specification", "description": "A single string that specifies which animation there are.", "type": "string" }, { "type": "object", "title": "Animation Specification", "description": "A object specification on when to animate.", "maxProperties": 1, "minProperties": 1, "additionalProperties": { "$ref": "../../molang/string.json" } } ] }, "particle_effect_spec": { "additionalProperties": false, "type": "object", "required": ["effect"], "properties": { "bind_to_actor": { "type": "boolean", "title": "Bind To Actor", "description": "Set to false to have the effect spawned in the world without being bound to an actor (by default an effect is bound to the actor).", "const": false }, "effect": { "type": "string", "title": "Effect", "description": "The name of a particle effect that should be played." }, "locator": { "type": "string", "title": "Locator", "description": "The name of a locator on the actor where the effect should be located." }, "pre_effect_script": { "type": "string", "title": "Pre Effect Script", "description": "A molang script that will be run when the particle emitter is initialized." } } }, "commands": { "type": "string", "description": "The event or commands to execute.", "title": "Commands", "anyOf": [ { "pattern": "^@s .+$", "title": "Event" }, { "pattern": "^/.+$", "title": "Command" }, { "pattern": "^.+;$", "title": "Molang" } ] } }, "type": "object", "title": "Animation Controller", "description": "Animation controller for behaviors.", "required": ["format_version", "animation_controllers"], "additionalProperties": false, "properties": { "format_version": { "$ref": "../../general/format_version.json" }, "animation_controllers": { "type": "object", "title": "Animation Controllers", "description": "The animation controllers schema for.", "propertyNames": { "pattern": "^controller\\.animation\\.[a-z\\.]+", "examples": ["controller.animation.example", "controller.animation.example.foo"] }, "additionalProperties": { "additionalProperties": false, "type": "object", "title": "Animation Controller", "description": "A single animation controller.", "required": ["states"], "minProperties": 1, "properties": { "states": { "title": "States", "description": "The states of this animation controller.", "propertyNames": { "pattern": "[a-z\\.]+" }, "minProperties": 1, "type": "object", "additionalProperties": { "additionalProperties": false, "title": "Animation State", "description": "Animation state.", "type": "object", "examples": [ { "animations": ["anim.idle"], "transitions": [{ "example": "query.is_sheared" }] } ], "properties": { "animations": { "title": "Animations", "description": "The animations definition for.", "type": "array", "items": { "$ref": "#/definitions/animationspec", "description": "The key definition of an animation to play, defined in the entity.", "title": "Animations" } }, "on_entry": { "type": "array", "description": "Events, commands or transitions to preform on entry of this state.", "title": "On Entry", "items": { "$ref": "#/definitions/commands" } }, "on_exit": { "type": "array", "description": "Events, commands or transitions to preform on exit of this state.", "title": "On Exit", "items": { "$ref": "#/definitions/commands" } }, "transitions": { "title": "Transition", "description": "The transition definition for.", "minProperties": 1, "type": "array", "items": { "title": "Transition", "description": "A transition to another state.", "type": "object", "maxProperties": 1, "minProperties": 1, "examples": [{ "default": "query.is_chested" }], "additionalProperties": { "$ref": "../../molang/string.json" } } } } } }, "initial_state": { "title": "Initial State", "description": "The state to start with, if not specified state at position 0 in the array is used.", "type": "string", "examples": ["default"] } } } } } }