{ "$id": "blockception.minecraft.behavior.animation_controller", "examples": [ { "format_version": "1.17.0", "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", "oneOf": [ { "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", "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"] } } } } } }