diff --git a/source/behavior/entities/1.17.0/entities.json b/source/behavior/entities/1.17.0/entities.json new file mode 100644 index 00000000..89c183ba --- /dev/null +++ b/source/behavior/entities/1.17.0/entities.json @@ -0,0 +1,17 @@ +{ + "$id": "blockception.minecraft.behavior.entity.1.17.0", + "type": "object", + "title": "Entity Behavior 1.17.0", + "description": "The minecraft entity behavior specification", + "required": ["format_version", "minecraft:entity"], + "additionalProperties": false, + "properties": { + "format_version": { + "title": "1.17.0 Format Version", + "description": "A version that tells minecraft what type of data format can be expected when reading this file.", + "type": "string", + "const": "1.17.0" + }, + "minecraft:entity": { "$ref": "./minecraft.entity.json" } + } +} diff --git a/source/behavior/entities/1.17.0/events.json b/source/behavior/entities/1.17.0/events.json new file mode 100644 index 00000000..a59dcc01 --- /dev/null +++ b/source/behavior/entities/1.17.0/events.json @@ -0,0 +1,92 @@ +{ + "$id": "blockception.minecraft.behavior.entities.events.1.17.0", + "type": "object", + "title": "Events 1.17.0", + "description": "Events for entities 1.17.0", + "additionalProperties": { "$ref": "#/definitions/event_base" }, + "definitions": { + "addremove": { + "additionalProperties": false, + "title": "Add Or Remove", + "description": "The components groups to add or remove", + "type": "object", + "properties": { + "component_groups": { + "title": "Component Groups", + "description": "The components groups to add or remove", + "type": "array", + "items": { "type": "string", "description": "A reference to a component group", "title": "Component Groups" } + } + } + }, + "event_base": { + "additionalProperties": false, + "type": "object", + "filters": { "$ref": "./../filters/filters.json" }, + "trigger": { "type": "string", "description": "Triggers additional events", "$comment": "UNDOCUMENTED", "title": "Trigger" }, + "properties": { + "add": { "$ref": "#/definitions/addremove", "description": "What gets added when the event gets triggered", "title": "Add" }, + "remove": { "$ref": "#/definitions/addremove", "description": "What gets removed when the event gets triggered", "title": "Remove" }, + "randomize": { + "type": "array", + "description": "Randomly selects one of the following items based upon their weight and the total weights", + "title": "Randomize", + "items": { + "required": ["weight"], + "description": "Randomly selects one of the following items based upon their weight and the total weights", + "title": "Randomize", + "properties": { + "add": { "$ref": "#/definitions/addremove", "description": "What gets added when the event gets triggered", "title": "Add" }, + "remove": { "$ref": "#/definitions/addremove", "description": "What gets removed when the event gets triggered", "title": "Remove" }, + "trigger": { "type": "string", "description": "Triggers additional events", "$comment": "UNDOCUMENTED", "title": "Trigger" }, + "weight": { + "type": "number", + "description": "The weight on how likely this section is to trigger", + "$comment": "UNDOCUMENTED", + "title": "Weight" + } + } + } + }, + "sequence": { + "type": "array", + "description": "A series of filters and components to be added", + "title": "Sequences", + "items": { + "description": "Filters and components to be added", + "title": "Sequence", + "type": "object", + "properties": { + "add": { "$ref": "#/definitions/addremove", "description": "What gets added when the event gets triggered", "title": "Add" }, + "remove": { "$ref": "#/definitions/addremove", "description": "What gets removed when the event gets triggered", "title": "Remove" }, + "trigger": { "type": "string", "description": "Triggers additional events", "$comment": "UNDOCUMENTED", "title": "Trigger" }, + "filters": { "$ref": "./../filters/filters.json" } + } + } + } + } + } + }, + "properties": { + "minecraft:entity_transformed": { + "description": "Event called on an entity that transforms into another entity.", + "$ref": "#/definitions/event_base", + "title": "Entity Transformed" + }, + "minecraft:entity_born": { + "description": "Event called on an entity that is spawned through two entities breeding.", + "$ref": "#/definitions/event_base", + "title": "Entity Born" + }, + "minecraft:entity_spawned": { + "description": "Event called on an entity that is placed in the level.", + "$ref": "#/definitions/event_base", + "title": "Entity Spawned" + }, + "minecraft:on_prime": { + "description": "Event called on an entity whose fuse is lit and is ready to explode.", + "$ref": "#/definitions/event_base", + "title": "On Prime" + } + } +} diff --git a/source/behavior/entities/1.17.0/minecraft.entity.json b/source/behavior/entities/1.17.0/minecraft.entity.json new file mode 100644 index 00000000..dd705e53 --- /dev/null +++ b/source/behavior/entities/1.17.0/minecraft.entity.json @@ -0,0 +1,100 @@ +{ + "$id": "blockception.minecraft.behavior.entities.minecraft:entity.1.17.0", + "title": "Entity 1.17.0", + "required": ["description"], + "dependencies": { "component_groups": ["events"] }, + "additionalProperties": false, + "type": "object", + "properties": { + "description": { + "required": ["identifier"], + "title": "Description", + "description": "The description of the this entity", + "properties": { + "animations": { + "title": "Animations", + "description": "Sets the mapping of internal animation / animation controllers references to actual animations. This is a JSON Object of name/animation pairs", + "type": "object", + "additionalProperties": { + "title": "Animation (controller)", + "description": "The name of the animation controller / animation", + "type": "string" + } + }, + "identifier": { + "$ref": "../../../general/entity/identifier.json", + "description": "Sets the identifier for this entity's description.", + "title": "Identifier" + }, + "is_spawnable": { + "type": "boolean", + "title": "Is Spawnable", + "description": "Sets whether or not this entity has a spawn egg in the creative ui." + }, + "is_summonable": { + "type": "boolean", + "title": "Is Summonable Property", + "description": "Sets whether or not we can summon this entity using commands such as /summon." + }, + "is_experimental": { + "type": "boolean", + "title": "Is Experimental", + "description": "Sets whether or not this entity is experimental. Experimental entities are only enabled when the experimental toggle is enabled." + }, + "runtime_identifier": { + "type": "string", + "title": "Runtime Identifier", + "description": "Sets the name for the Vanilla Minecraft identifier this entity will use to build itself from." + }, + "scripts": { + "type": "object", + "title": "Scripts", + "description": "Sets the mapping of internal animation controller references to actual animation controller. This is a JSON Array of name/animation-controller pairs", + "properties": { + "animate": { + "type": "array", + "title": "Animate", + "description": "Tells minecraft to run which animation / animation controllers and under what conditions", + "items": { + "oneOf": [ + { "type": "string", "title": "Animation", "description": "The name of an animation controller referenced in animations" }, + { + "type": "object", + "title": "Conditional Animation", + "description": "A conditional statement to run the animation under a specified condition", + "$comment": "UNDOCUMENTED", + "additionalProperties": { "type": "string", "title": "Animation" } + } + ] + } + } + } + } + } + }, + "component_groups": { + "title": "Component Groups", + "description": "Each group when add / remove the default components", + "uniqueItems": true, + "type": "object", + "additionalProperties": { + "$ref": "../1.16.0/components.json", + "uniqueItems": true, + "description": "The components that are added as the foundation of the entity", + "title": "Component" + } + }, + "components": { + "$ref": "../1.16.0/components.json", + "uniqueItems": true, + "description": "The components that are added as the foundation of the entity", + "title": "Component" + }, + "events": { + "$ref": "./events.json", + "uniqueItems": true, + "description": "The events that the entity can run, these add or remove components_groups", + "title": "Events" + } + } +}