{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.behavior.animations","defaultSnippets":[{"label":"New animation","body":{"format_version":"${1:1.10.0}","animations":{"animation.${2:${TM_FILENAME/[\\.].*//}}":"^{$3}"}}}],"examples":[{"format_version":"1.10.0","animations":{"animation.example":{}}}],"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 how to transition.","maxProperties":1,"minProperties":1,"additionalProperties":{"$ref":"#/definitions/A"}}]},"particle_effect_spec":{"additionalProperties":false,"type":"object","required":["effect"],"properties":{"bind_to_actor":{"title":"Bind To Actor","type":"boolean","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","description":"The name of a particle effect that should be played.","title":"Effect"},"locator":{"type":"string","description":"The name of a locator on the actor where the effect should be located.","title":"Locator"},"pre_effect_script":{"type":"string","description":"A molang script that will be run when the particle emitter is initialized.","title":"Pre Effect Script"}}},"commands":{"type":"string","description":"The event or commands to execute.","title":"Commands","anyOf":[{"pattern":"^.*=.*;$","title":"Variable","description":"Sets the value to a molang variable."},{"pattern":"^/[a-z].*$","title":"Minecraft Command","description":"Executes a minecraft command."},{"pattern":"[A-Za-z][a-z]*\\.[a-z_0-9]*","title":"Molang"},{"pattern":"^@s .*$","title":"Event","description":"An event to be called upon within the executing entity."}]},"A":{"type":"string","title":"Molang","description":"Molang definition.","format":"molang","examples":["query.variant","(1.0)","query.","variable.=;"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]},"B":{"title":"Molang Number","description":"The minecraft molang definition that results in a float.","anyOf":[{"type":"string","minLength":0},{"type":"number"}],"examples":[0,"query.variant","(1.0)","query.","variable.=;"],"defaultSnippets":[{"label":"New Molang","body":"$1"}]}},"type":"object","title":"Animation","description":"Animation for behavior for.","required":["format_version","animations"],"additionalProperties":false,"properties":{"format_version":{"type":"string","enum":["1.8.0","1.10.0"]},"animations":{"title":"Animations Schema","description":"The animation specification.","type":"object","propertyNames":{"pattern":"^animation\\.[a-z\\.]+"},"additionalProperties":{"title":"Animation","type":"object","description":"A single animation definition for.","additionalProperties":false,"propertyNames":{"examples":["animation.example.foo"]},"properties":{"animation_length":{"type":"number","description":"The time in seconds this animation will last.","title":"Animation Length"},"loop":{"type":"boolean","description":"Whenever this animation should loop once it reaches the end, will only happen if the animation is still active.","title":"Loop"},"timeline":{"title":"Timeline","description":"A timeline specification, property names are timestamps.","type":"object","propertyNames":{"pattern":"^(\\d+\\.\\d+|\\d+)$","examples":["0.0","1.0"]},"additionalProperties":{"oneOf":[{"type":"string","$ref":"#/definitions/commands"},{"type":"array","title":"Collection Timelime Items","items":{"$ref":"#/definitions/commands"}}]}},"anim_time_update":{"title":"Animation Time Update","description":"How does time pass when playing the animation. Defaults to `query.anim_time + query.delta_time` which means advance in seconds.","$ref":"#/definitions/B"}}}}}}