2021-06-05 21:54:49 +02:00
{
"$id" : "blockception.minecraft.resource.animation_controller" ,
"examples" : [
{
"format_version" : "1.10.0" ,
"animation_controllers" : {
"controller.animation.example" : {
"states" : {
"default" : { "transitions" : [ { "state_1" : "query.is_baby" } ] } ,
"state_1" : { "animations" : [ "state_1" ] , "transitions" : [ { "default" : "query.all_animations_finished" } ] }
}
}
}
}
] ,
"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/D" } } ,
{ "properties" : { "format_version" : { "$ref" : "#/definitions/E" } } }
] ,
"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 how to transition" ,
"maxProperties" : 1 ,
"minProperties" : 1 ,
"additionalProperties" : {
"oneOf" : [
{ "type" : "string" , "$ref" : "#/definitions/B" } ,
{ "type" : "number" , "description" : "A blend weight" }
]
}
}
]
} ,
"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)." ,
"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" ,
"pattern" : "^.+;$"
}
}
} ,
"A_commands" : { "type" : "string" , "description" : "The event or commands to execute" , "pattern" : "^(@s .+|/.+)$" } ,
"B" : { "type" : "string" , "title" : "Molang / String" , "description" : "Molang definition" , "format" : "molang" } ,
"C" : {
"title" : "Molang Number" ,
"description" : "The minecraft molang definition that results in a float" ,
"anyOf" : [ { "type" : "string" , "minLength" : 0 , "format" : "molang" } , { "type" : "number" } ]
} ,
"A" : {
"type" : "object" ,
"title" : "Resourcepack Animation Controller 1.8.0" ,
"description" : "TODO description" ,
"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\\.]+" ,
"examples" : [ "controller.animation.example" , "controller.animation.example.foo" ]
} ,
"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.10.0" ,
"type" : "array" ,
"items" : { "$ref" : "#/definitions/A_animationspec" , "title" : "Animations" }
} ,
"blend_transition" : {
"title" : "Blend Transition" ,
"oneOf" : [
{
"type" : "number" ,
"description" : "A short-hand version of blend_out that simply sets the amount of time to fade out if the animation is interrupted"
} ,
{
"type" : "object" ,
"description" : "Specifies the cross-fade time in seconds when transitioning to another state" ,
"additionalProperties" : {
"type" : "number" ,
"description" : "Mapping of time since the animation was canceled, to the blend value at that time. A default key of time=0 to a blend value of 1.0 is provided if any other key is set and a blend value at time=0 hasn't already been set."
}
}
]
} ,
"blend_via_shortest_path" : {
"description" : "When blending a transition to another state, animate each euler axis through the shortest rotation, instead of by value" ,
"type" : "boolean" ,
"title" : "Blend Via Shortest Path"
} ,
"particle_effects" : {
"description" : "The effects to be emitted" ,
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/A_particle_effect_spec" ,
"description" : "TODO description: particle effects" ,
"title" : "Particle Effects"
} ,
"title" : "Particle Effects"
} ,
"sound_effects" : {
"type" : "array" ,
"description" : "Collection of sounds to trigger on entry to this animation state." ,
"items" : {
"type" : "object" ,
"additionalProperties" : false ,
"required" : [ "effect" ] ,
"properties" : {
"effect" : {
"description" : "Valid sound effect names should be listed in the entity's resource_definition json file." ,
"type" : "string"
}
}
}
} ,
"transitions" : {
"title" : "Transition" ,
"description" : "The transition definition for 1.8.0" ,
"minProperties" : 1 ,
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/A_animationspec" ,
"description" : "The specification on when to transition to a new state" ,
"title" : "Transitions"
}
} ,
"variables" : {
"type" : "object" ,
"additionalProperties" : {
"additionalProperties" : false ,
"type" : "object" ,
"required" : [ "input" ] ,
"properties" : { "input" : { "$ref" : "#/definitions/C" } , "remap_curve" : { "additionalProperties" : { "type" : "number" } } }
}
} ,
"on_entry" : {
"title" : "On Entry" ,
"description" : "UNDOCUMENTATED" ,
"type" : "array" ,
"items" : { "pattern" : "^.+;$" , "title" : "Molang" , "description" : "UNDOCUMENTATED" , "type" : "string" }
} ,
"on_exit" : {
"title" : "On Exit" ,
"description" : "UNDOCUMENTATED" ,
"type" : "array" ,
"items" : { "pattern" : "^.+;$" , "title" : "Molang" , "description" : "UNDOCUMENTATED" , "type" : "string" }
}
}
}
} ,
"initial_state" : { "type" : "string" , "description" : "TODO description: initial state" , "title" : "Initial State" }
}
}
}
}
} ,
"D_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" : {
"oneOf" : [
{ "type" : "string" , "$ref" : "#/definitions/B" } ,
{ "type" : "number" , "description" : "A blend weight" }
]
}
}
]
} ,
"D_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" ,
"pattern" : "^.+;$"
}
}
} ,
"D_commands" : { "type" : "string" , "description" : "The event or commands to execute" , "pattern" : "^(@s .+|/.+)$" } ,
"D" : {
"type" : "object" ,
"title" : "Resourcepack Animation Controller 1.10.0" ,
"description" : "TODO description" ,
"required" : [ "format_version" , "animation_controllers" ] ,
"additionalProperties" : false ,
"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 Schema" ,
"description" : "The animation controllers schema for 1.10.0" ,
"propertyNames" : {
"pattern" : "^controller\\.animation\\.[a-z\\.]+" ,
"examples" : [ "controller.animation.example" , "controller.animation.example.foo" ]
} ,
"additionalProperties" : {
"additionalProperties" : false ,
"type" : "object" ,
"title" : "A Animation Controller" ,
"description" : "A single animation controller 1.10.0" ,
"required" : [ "states" ] ,
"minProperties" : 1 ,
"examples" : [
{
"controller.animation.some_name" : {
"initial_state" : "default" ,
"states" : {
"default" : { "transitions" : [ { "state_1" : "query.is_baby" } ] } ,
"state_1" : { "animations" : [ "state_1" ] , "transitions" : [ { "default" : "query.all_animations_finished" } ] }
}
}
}
] ,
"properties" : {
"states" : {
"title" : "States" ,
"description" : "The states of this animation controller" ,
"propertyNames" : { "pattern" : "[a-z\\.]+" , "examples" : [ "default" ] } ,
"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/D_animationspec" , "title" : "Animations" }
} ,
"blend_transition" : {
"title" : "Blend Transition" ,
"description" : "when transitioning away from this state, cross-fade over" ,
"oneOf" : [
{
"type" : "number" ,
"description" : "A short-hand version of blend_out that simply sets the amount of time to fade out if the animation is interrupted"
} ,
{
"type" : "object" ,
"description" : "Specifies the cross-fade time in seconds when transitioning to another state" ,
"additionalProperties" : {
"type" : "number" ,
"description" : "Mapping of time since the animation was canceled, to the blend value at that time. A default key of time=0 to a blend value of 1.0 is provided if any other key is set and a blend value at time=0 hasn't already been set."
}
}
]
} ,
"blend_via_shortest_path" : {
"description" : "When blending a transition to another state, animate each euler axis through the shortest rotation, instead of by value" ,
"type" : "boolean" ,
"title" : "Blend Via Shortest Path"
} ,
"particle_effects" : {
"description" : "The effects to be emitted" ,
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/D_particle_effect_spec" ,
"description" : "TODO description: particle effects" ,
"title" : "Particle Effects"
} ,
"title" : "Particle Effects"
} ,
"sound_effects" : {
"type" : "array" ,
"description" : "Collection of sounds to trigger on entry to this animation state." ,
"items" : {
"type" : "object" ,
"additionalProperties" : false ,
"required" : [ "effect" ] ,
"properties" : {
"effect" : {
"description" : "Valid sound effect names should be listed in the entity's resource_definition json file." ,
"type" : "string"
}
}
}
} ,
"transitions" : {
"title" : "Transition" ,
"description" : "The transition definition for 1.10.0" ,
"minProperties" : 1 ,
"type" : "array" ,
"examples" : [ [ { "some_state" : "query.is_sheared" } ] ] ,
"items" : {
"$ref" : "#/definitions/D_animationspec" ,
"description" : "TODO description: transitions" ,
"title" : "Transitions" ,
"examples" : [ { "some_state" : "query.is_sheared" } ]
}
} ,
"variables" : {
"type" : "object" ,
"additionalProperties" : {
"additionalProperties" : false ,
"type" : "object" ,
"required" : [ "input" ] ,
"properties" : {
"input" : { "title" : "Input" , "description" : "" , "$ref" : "#/definitions/C" } ,
"remap_curve" : {
"title" : "Remap Curve" ,
"additionalProperties" : { "propertyNames" : { "pattern" : "^([\\-\\+0-9]+|[\\-\\+0-9]+.[0-9]+)$" } , "type" : "number" }
}
}
}
} ,
"on_entry" : {
"title" : "On Entry" ,
"description" : "UNDOCUMENTATED" ,
"type" : "array" ,
"items" : { "pattern" : "^.+=.+;$" , "title" : "Molang" , "description" : "UNDOCUMENTATED" , "type" : "string" }
} ,
"on_exit" : {
"title" : "On Exit" ,
"description" : "UNDOCUMENTATED" ,
"type" : "array" ,
"items" : { "pattern" : "^.+=.+;$" , "title" : "Molang" , "description" : "UNDOCUMENTATED" , "type" : "string" }
}
}
}
} ,
"initial_state" : { "type" : "string" , "description" : "TODO description: initial state" , "title" : "Initial State" }
}
}
}
}
} ,
"E" : {
"title" : "Format Version" ,
"description" : "A version that tells minecraft what type of data format can be expected when reading this file." ,
"pattern" : "^(1)\\.([0-9]+)\\.([0-9]+)$" ,
"type" : "string"
}
}
}