diff --git a/behavior/animation_controllers/animation_controller.json b/behavior/animation_controllers/animation_controller.json index 2153f471..5cafd703 100644 --- a/behavior/animation_controllers/animation_controller.json +++ b/behavior/animation_controllers/animation_controller.json @@ -1 +1,250 @@ -{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.behavior.animation_controller","examples":[{"format_version":"1.10.0","animation_controllers":{"controller.animation.example":{"initial_state":"default","states":{"default":{"transitions":[{"state_1":"query.is_baby"}]},"state_1":{}}}}}],"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/C"}}],"definitions":{"A_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":"#/definitions/B"}}]},"A_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)."},"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"}}},"A_commands":{"type":"string","description":"The event or commands to execute","oneOf":[{"pattern":"^@s .+$","title":"Event"},{"pattern":"^/.+$","title":"Command"},{"pattern":"^.+;$","title":"Molang"}]},"B":{"type":"string","title":"Molang / String","description":"Molang definition","format":"molang"},"A":{"type":"object","title":"Animation Controller 1.8.0","description":"Animation controller for behaviors 1.8.0","required":["format_version","animation_controllers"],"additionalProperties":false,"properties":{"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."},"animation_controllers":{"type":"object","title":"Animation Controllers Schema","description":"The animation controllers schema for 1.8.0","propertyNames":{"pattern":"^controller\\.animation\\.[a-z\\.]+"},"additionalProperties":{"additionalProperties":false,"type":"object","title":"A Animation Controller","description":"A single animation controller 1.8.0","required":["states"],"minProperties":1,"properties":{"states":{"title":"States","description":"The states of this animation controller","propertyNames":{"pattern":"[a-z\\.]+"},"minProperties":1,"additionalProperties":{"additionalProperties":false,"title":"Animation State","description":"Animation state","type":"object","properties":{"animations":{"title":"Animations","description":"The animations definition for 1.8.0","type":"array","items":{"$ref":"#/definitions/A_animationspec","description":"The animation key to play, defined in the entity","title":"Animation"}},"on_entry":{"type":"array","description":"Events, commands or transitions to preform","items":{"$ref":"#/definitions/A_commands"}},"on_exit":{"type":"array","description":"Events, commands or transitions to preform","items":{"$ref":"#/definitions/A_commands"}},"transitions":{"title":"Transition","description":"The transition definition for 1.8.0","minProperties":1,"type":"array","items":{"title":"Transition","description":"A transition to another state","type":"object","examples":[{"default":"query.is_chested"}],"additionalProperties":{"$ref":"#/definitions/B"},"minProperties":1,"maxProperties":1}}}}},"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"]}}}}}},"C_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/B"}}]},"C_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)."},"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"}}},"C_commands":{"type":"string","description":"The event or commands to execute","examples":["@s example:event"],"oneOf":[{"pattern":"^@s .+$","title":"Event"},{"pattern":"^/.+$","title":"Command"},{"pattern":"^.+;$","title":"Molang"}]},"C":{"type":"object","required":["format_version","animation_controllers"],"additionalProperties":false,"title":"Animation Controller 1.10.0","description":"Animation controller for minecraft behavior 1.10.0","properties":{"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."},"animation_controllers":{"type":"object","title":"Animation Controllers","description":"The animation controllers schema for 1.10.0","propertyNames":{"pattern":"^controller\\.animation\\.[a-z\\.]+"},"additionalProperties":{"additionalProperties":false,"type":"object","title":"Animation Controller","description":"A single animation controller 1.10.0","required":["states"],"minProperties":1,"properties":{"states":{"title":"States","description":"The states of this animation controller","propertyNames":{"pattern":"[a-z\\.]+"},"minProperties":1,"additionalProperties":{"additionalProperties":false,"title":"Animation State","description":"Animation state","type":"object","properties":{"animations":{"title":"Animations","description":"The animations definition for 1.10.0","type":"array","items":{"$ref":"#/definitions/C_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/C_commands"}},"on_exit":{"type":"array","description":"Events, commands or transitions to preform on exit of this state","title":"On Exit","items":{"$ref":"#/definitions/C_commands"}},"transitions":{"title":"Transition","description":"The transition definition for 1.10.0","minProperties":1,"type":"array","items":{"title":"Transitions","description":"A object specification on how to transition","type":"object","maxProperties":1,"minProperties":1,"additionalProperties":{"$ref":"#/definitions/B"}}}}}},"initial_state":{"type":"string","description":"The state to start with, if not specified state at position 0 in the array is used","title":"Initial State"}}}}}}}} \ No newline at end of file +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "blockception.minecraft.behavior.animation_controller", + "examples": [ + { + "format_version": "1.10.0", + "animation_controllers": { + "controller.animation.example": { "initial_state": "default", "states": { "default": { "transitions": [{ "state_1": "query.is_baby" }] }, "state_1": {} } } + } + } + ], + "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/C" } } + ], + "definitions": { + "A_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": "#/definitions/B" } + } + ] + }, + "A_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)." + }, + "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" } + } + }, + "A_commands": { + "type": "string", + "description": "The event or commands to execute", + "oneOf": [ + { "pattern": "^@s .+$", "title": "Event" }, + { "pattern": "^/.+$", "title": "Command" }, + { "pattern": "^.+;$", "title": "Molang" } + ] + }, + "B": { "type": "string", "title": "Molang / String", "description": "Molang definition", "format": "molang" }, + "A": { + "type": "object", + "title": "Animation Controller 1.8.0", + "description": "Animation controller for behaviors 1.8.0", + "required": ["format_version", "animation_controllers"], + "additionalProperties": false, + "properties": { + "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." + }, + "animation_controllers": { + "type": "object", + "title": "Animation Controllers Schema", + "description": "The animation controllers schema for 1.8.0", + "propertyNames": { "pattern": "^controller\\.animation\\.[a-z\\.]+" }, + "additionalProperties": { + "additionalProperties": false, + "type": "object", + "title": "A Animation Controller", + "description": "A single animation controller 1.8.0", + "required": ["states"], + "minProperties": 1, + "properties": { + "states": { + "title": "States", + "description": "The states of this animation controller", + "propertyNames": { "pattern": "[a-z\\.]+" }, + "minProperties": 1, + "additionalProperties": { + "additionalProperties": false, + "title": "Animation State", + "description": "Animation state", + "type": "object", + "properties": { + "animations": { + "title": "Animations", + "description": "The animations definition for 1.8.0", + "type": "array", + "items": { "$ref": "#/definitions/A_animationspec", "description": "The animation key to play, defined in the entity", "title": "Animation" } + }, + "on_entry": { "type": "array", "description": "Events, commands or transitions to preform", "items": { "$ref": "#/definitions/A_commands" } }, + "on_exit": { "type": "array", "description": "Events, commands or transitions to preform", "items": { "$ref": "#/definitions/A_commands" } }, + "transitions": { + "title": "Transition", + "description": "The transition definition for 1.8.0", + "minProperties": 1, + "type": "array", + "items": { + "title": "Transition", + "description": "A transition to another state", + "type": "object", + "examples": [{ "default": "query.is_chested" }], + "additionalProperties": { "$ref": "#/definitions/B" }, + "minProperties": 1, + "maxProperties": 1 + } + } + } + } + }, + "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"] + } + } + } + } + } + }, + "C_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/B" } + } + ] + }, + "C_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)." + }, + "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" } + } + }, + "C_commands": { + "type": "string", + "description": "The event or commands to execute", + "examples": ["@s example:event"], + "oneOf": [ + { "pattern": "^@s .+$", "title": "Event" }, + { "pattern": "^/.+$", "title": "Command" }, + { "pattern": "^.+;$", "title": "Molang" } + ] + }, + "C": { + "type": "object", + "required": ["format_version", "animation_controllers"], + "additionalProperties": false, + "title": "Animation Controller 1.10.0", + "description": "Animation controller for minecraft behavior 1.10.0", + "properties": { + "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." + }, + "animation_controllers": { + "type": "object", + "title": "Animation Controllers", + "description": "The animation controllers schema for 1.10.0", + "propertyNames": { "pattern": "^controller\\.animation\\.[a-z\\.]+" }, + "additionalProperties": { + "additionalProperties": false, + "type": "object", + "title": "Animation Controller", + "description": "A single animation controller 1.10.0", + "required": ["states"], + "minProperties": 1, + "properties": { + "states": { + "title": "States", + "description": "The states of this animation controller", + "propertyNames": { "pattern": "[a-z\\.]+" }, + "minProperties": 1, + "additionalProperties": { + "additionalProperties": false, + "title": "Animation State", + "description": "Animation state", + "type": "object", + "properties": { + "animations": { + "title": "Animations", + "description": "The animations definition for 1.10.0", + "type": "array", + "items": { + "$ref": "#/definitions/C_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/C_commands" } + }, + "on_exit": { + "type": "array", + "description": "Events, commands or transitions to preform on exit of this state", + "title": "On Exit", + "items": { "$ref": "#/definitions/C_commands" } + }, + "transitions": { + "title": "Transition", + "description": "The transition definition for 1.10.0", + "minProperties": 1, + "type": "array", + "items": { + "title": "Transitions", + "description": "A object specification on how to transition", + "type": "object", + "maxProperties": 1, + "minProperties": 1, + "additionalProperties": { "$ref": "#/definitions/B" } + } + } + } + } + }, + "initial_state": { "type": "string", "description": "The state to start with, if not specified state at position 0 in the array is used", "title": "Initial State" } + } + } + } + } + } + } +} diff --git a/source/resource/models/entity/model_entity.json b/source/resource/models/entity/model_entity.json index b4182e96..90a49f1a 100644 --- a/source/resource/models/entity/model_entity.json +++ b/source/resource/models/entity/model_entity.json @@ -18,6 +18,6 @@ { "if": { "properties": { "format_version": { "type": "string", "const": "1.12.0" } } }, "then": { "$ref": "./1.12.0/model_entity.json" } }, { "if": { "properties": { "format_version": { "type": "string", "const": "1.14.0" } } }, "then": { "$ref": "./1.14.0/model_entity.json" } }, { "if": { "properties": { "format_version": { "type": "string", "const": "1.16.0" } } }, "then": { "$ref": "./1.16.0/model_entity.json" } }, - { "properties": { "format_version": { "$ref": "../../general/format_version.json" } } } + { "properties": { "format_version": { "$ref": "../../../general/format_version.json" } } } ] }