From 0d0cb8f91b43c444c28e52903b4be71cf90e40e0 Mon Sep 17 00:00:00 2001 From: DaanV2 Date: Fri, 4 Feb 2022 22:57:59 +0100 Subject: [PATCH] Updated --- behavior/animations/animations.json | 101 +++++++++++++++++++++++++++- source/compress_specification.json | 10 +-- source/general/format_version.json | 9 +-- 3 files changed, 104 insertions(+), 16 deletions(-) diff --git a/behavior/animations/animations.json b/behavior/animations/animations.json index 7a1bd25d..cdc9c0d9 100644 --- a/behavior/animations/animations.json +++ b/behavior/animations/animations.json @@ -1 +1,100 @@ -{"$schema":"http://json-schema.org/draft-07/schema","$id":"blockception.minecraft.behavior.animations","examples":[{"format_version":"1.17.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":"Format Version","description":"A version that tells minecraft what type of data format can be expected when reading this file.","pattern":"^([1-9]+)\\.([0-9]+)\\.([0-9]+)$","type":"string","examples":["1.17.40","1.17.30","1.17.0","1.16.0","1.15.0","1.14.0","1.13.0","1.12.0","1.10.0","1.8.0"],"defaultSnippets":[{"label":"New Format version","body":"1.${1|8,10,12,17,18|}.${2|0|}"}]}},"type":"object","title":"Animation","description":"Animation for behavior for","required":["format_version","animations"],"additionalProperties":false,"properties":{"format_version":{"$ref":"#/definitions/B"},"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"}}]}}}}}}} \ No newline at end of file +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "blockception.minecraft.behavior.animations", + "examples": [{ "format_version": "1.17.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": "Format Version", + "description": "A version that tells minecraft what type of data format can be expected when reading this file.", + "pattern": "^([1-9]+)\\.([0-9]+)\\.([0-9]+)$", + "type": "string", + "examples": ["1.17.40", "1.17.30", "1.17.0", "1.16.0", "1.15.0", "1.14.0", "1.13.0", "1.12.0", "1.10.0", "1.8.0"], + "defaultSnippets": [{ "label": "New Format version", "body": "1.${1|8,10,12,17,18|}.${2|0|}" }] + } + }, + "type": "object", + "title": "Animation", + "description": "Animation for behavior for", + "required": ["format_version", "animations"], + "additionalProperties": false, + "properties": { + "format_version": { "$ref": "#/definitions/B" }, + "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" } } + ] + } + } + } + } + } + } +} diff --git a/source/compress_specification.json b/source/compress_specification.json index 40a4c94f..b520cf5d 100644 --- a/source/compress_specification.json +++ b/source/compress_specification.json @@ -6,10 +6,7 @@ { "Source": "./language/languages.json", "Destination": "../language/languages.json" }, { "Source": "./general/manifest.json", "Destination": "../general/manifest.json" }, { "Source": "./general/world_x_packs.json", "Destination": "../general/world_x_packs.json" }, - { - "Source": "./resource/animation_controllers/animation_controller.json", - "Destination": "../resource/animation_controllers/animation_controller.json" - }, + { "Source": "./resource/animation_controllers/animation_controller.json", "Destination": "../resource/animation_controllers/animation_controller.json" }, { "Source": "./resource/animations/actor_animation.json", "Destination": "../resource/animations/actor_animation.json" }, { "Source": "./resource/attachables/attachables.json", "Destination": "../resource/attachables/attachables.json" }, { "Source": "./resource/biomes_client.json", "Destination": "../resource/biomes_client.json" }, @@ -28,10 +25,7 @@ { "Source": "./resource/sounds/sound_definitions.json", "Destination": "../resource/sounds/sound_definitions.json" }, { "Source": "./resource/sounds.json", "Destination": "../resource/sounds.json" }, { "Source": "./resource/textures/terrain_texture.json", "Destination": "../resource/textures/terrain_texture.json" }, - { - "Source": "./behavior/animation_controllers/animation_controller.json", - "Destination": "../behavior/animation_controllers/animation_controller.json" - }, + { "Source": "./behavior/animation_controllers/animation_controller.json", "Destination": "../behavior/animation_controllers/animation_controller.json" }, { "Source": "./behavior/animations/animations.json", "Destination": "../behavior/animations/animations.json" }, { "Source": "./behavior/biomes/biomes.json", "Destination": "../behavior/biomes/biomes.json" }, { "Source": "./behavior/dialogue/dialogue.json", "Destination": "../behavior/dialogue/dialogue.json" }, diff --git a/source/general/format_version.json b/source/general/format_version.json index cec0e435..142f940e 100644 --- a/source/general/format_version.json +++ b/source/general/format_version.json @@ -4,11 +4,6 @@ "description": "A version that tells minecraft what type of data format can be expected when reading this file.", "pattern": "^([1-9]+)\\.([0-9]+)\\.([0-9]+)$", "type": "string", - "examples": ["1.17.40", "1.17.30", "1.17.0", "1.16.0", "1.15.0", "1.14.0", "1.13.0", "1.12.0", "1.10.0", "1.8.0"], - "defaultSnippets": [ - { - "label": "New Format version", - "body": "1.${1|8,10,12,17,18|}.${2|0|}" - } - ] + "examples": ["1.18.0", "1.17.0", "1.16.0", "1.15.0", "1.14.0", "1.13.0", "1.12.0", "1.10.0", "1.8.0"], + "defaultSnippets": [{ "label": "New Format version", "body": "1.${1|8,10,12,17,18|}.${2|0|}" }] }