diff --git a/.vscode/schema-validation.json b/.vscode/schema-validation.json index 704f02b8..6ad388b3 100644 --- a/.vscode/schema-validation.json +++ b/.vscode/schema-validation.json @@ -19,7 +19,7 @@ "properties": { "title": { "type": "string", - "pattern": "^([A-Z0-9][a-z0-9\\.]*(| ))*$" + "pattern": "^([A-Z0-9][a-z0-9\\.\\(\\)]*(| ))*$" }, "defaultSnippets": { "type": "array", diff --git a/source/behavior/animations/1.10.0/animations.json b/source/behavior/animations/1.10.0/animations.json deleted file mode 100644 index d4893678..00000000 --- a/source/behavior/animations/1.10.0/animations.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.1.10.0.animations", - "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": "../../../molang/string.json" } - } - ] - }, - "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" }, - { "pattern": "^/[a-z].*$", "title": "Minecraft Command" }, - { "pattern": "[A-Za-z][a-z]*\\.[a-z_0-9]*", "title": "Molang" }, - { "pattern": "^@s .*$", "title": "Event" } - ] - } - }, - "type": "object", - "title": "Animation 1.10.0", - "description": "Animation for behavior for 1.10.0", - "required": ["format_version", "animations"], - "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." - }, - "animations": { - "title": "Animations Schema", - "description": "The animation 1.10.0 specification", - "type": "object", - "propertyNames": { "pattern": "^animation\\.[a-z\\.]+" }, - "additionalProperties": { - "title": "Animation", - "type": "object", - "description": "A single animation definition for 1.10.0", - "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/behavior/animations/1.8.0/animations.json b/source/behavior/animations/1.8.0/animations.json deleted file mode 100644 index cf0fe34d..00000000 --- a/source/behavior/animations/1.8.0/animations.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.1.8.0.animations", - "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": "../../../molang/string.json" } - } - ] - }, - "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" }, - { "pattern": "^/[a-z].*$", "title": "Minecraft Command" }, - { "pattern": "[A-Za-z][a-z]*\\.[a-z_0-9]*", "title": "Molang" }, - { "pattern": "^@s .*$", "title": "Event" } - ] - } - }, - "type": "object", - "title": "Animation 1.8.0", - "description": "Animation for behaviors 1.8.0", - "required": ["format_version", "animations"], - "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." - }, - "animations": { - "title": "Animations", - "description": "The animation 1.8.0 specification", - "type": "object", - "propertyNames": { "pattern": "^animation\\.[a-z\\.]+" }, - "additionalProperties": { - "title": "Animation", - "type": "object", - "description": "A single animation definition for 1.8.0", - "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": "Wheter or not to loop this animation", - "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/behavior/animations/animations.json b/source/behavior/animations/animations.json index 6747c8f0..6ec3afa1 100644 --- a/source/behavior/animations/animations.json +++ b/source/behavior/animations/animations.json @@ -1,9 +1,91 @@ { "$id": "blockception.minecraft.behavior.animations", - "examples": [{ "format_version": "1.10.0", "animations": { "animation.example": {} } }], - "allOf": [ - { "if": { "properties": { "format_version": { "type": "string", "const": "1.8.0" } } }, "then": { "$ref": "./1.8.0/animations.json" } }, - { "if": { "properties": { "format_version": { "type": "string", "const": "1.10.0" } } }, "then": { "$ref": "./1.10.0/animations.json" } }, - { "properties": { "format_version": { "$ref": "../../general/format_version.json" } } } - ] + "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": "../../../molang/string.json" } + } + ] + }, + "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" } + ] + } + }, + "type": "object", + "title": "Animation", + "description": "Animation for behavior for", + "required": ["format_version", "animations"], + "additionalProperties": false, + "properties": { + "format_version": { "$ref": "../../general/format_version.json" }, + "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/resource/entity/1.10.0/entity.json b/source/resource/entity/1.10.0/entity.json index d178282f..d86b2f03 100644 --- a/source/resource/entity/1.10.0/entity.json +++ b/source/resource/entity/1.10.0/entity.json @@ -6,12 +6,7 @@ "additionalProperties": false, "required": ["format_version", "minecraft:client_entity"], "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." - }, + "format_version": { "$ref": "../../general/format_version.json" }, "minecraft:client_entity": { "type": "object", "additionalProperties": false, @@ -62,7 +57,376 @@ }, "materials": { "type": "object", - "additionalProperties": { "type": "string", "description": "Material reference", "title": "Material" }, + "additionalProperties": { + "type": "string", + "description": "Material reference", + "title": "Material", + "examples": [ + "agent", + "alpha_block", + "alpha_block_color", + "animated_texture_blit", + "armor", + "armor_enchanted", + "armor_leather", + "armor_leather_enchanted", + "armor_stand", + "arrow", + "ash", + "axolotl", + "axolotl_limbs", + "banner", + "banner_pole", + "bat", + "beacon_beam", + "beacon_beam_transparent", + "bed", + "bee", + "bell", + "blaze_body", + "blaze_head", + "block_overlay", + "blue_spores", + "boat", + "camera", + "camera_facing_sprite", + "cat", + "chalkboard", + "charged_creeper", + "chest", + "chicken", + "chicken_legs", + "clouds", + "clownfish", + "cod", + "conduit", + "conduit_wind", + "cow", + "cracks_overlay", + "cracks_overlay_alpha_test", + "cracks_overlay_tile_entity", + "creeper", + "debug", + "debug_array_texture", + "debug_texture", + "dolphin", + "dragon_head", + "dragon_head_glint", + "drowned", + "egg", + "elytra", + "elytra_glint", + "enchanting_table_book", + "ender_crystal", + "ender_dragon", + "ender_pearl", + "enderman", + "enderman_invisible", + "endermite", + "entity", + "entity_alphablend", + "entity_alphablend_nocolor", + "entity_alphatest", + "entity_alphatest_change_color", + "entity_alphatest_change_color_glint", + "entity_alphatest_glint", + "entity_alphatest_glint_item", + "entity_alphatest_multicolor_tint", + "entity_alphatest_one_sided", + "entity_beam", + "entity_beam_additive", + "entity_change_color", + "entity_change_color_glint", + "entity_custom", + "entity_dissolve_layer0", + "entity_dissolve_layer1", + "entity_emissive", + "entity_emissive_alpha", + "entity_emissive_alpha_one_sided", + "entity_flat_color_line", + "entity_glint", + "entity_lead_base", + "entity_loyalty_rope", + "entity_multitexture", + "entity_multitexture_alpha_test", + "entity_multitexture_alpha_test_color_mask", + "entity_multitexture_color_mask", + "entity_multitexture_masked", + "entity_multitexture_multiplicative_blend", + "entity_nocull", + "entity_static", + "evoker", + "experience_orb", + "eye_of_ender_signal", + "fang", + "fireball", + "fireworks_rocket", + "fishing_hook", + "fox", + "fullscreen_cube_overlay", + "fullscreen_cube_overlay_blend", + "fullscreen_cube_overlay_opaque", + "ghast", + "glow_sign_text", + "glow_squid", + "goat", + "guardian", + "guardian_ghost", + "hoglin", + "holo_coord_frame", + "holo_hand", + "holo_hand_pointer", + "holo_hud_quad", + "hologram", + "hologram_hit_effect", + "hololens_LSRPlane", + "hololens_LSRPlaneTextured", + "hololens_UICursor", + "hololens_UICursor_ingame_mainpart", + "hololens_UICursor_ingame_pseudoshadow", + "holoscreen_level_quad", + "holoscreen_monoscopic_quad", + "holoscreen_stereoscopic_quad", + "horse", + "horse_leather_armor", + "husk", + "husk_clothes", + "im_gui", + "iron_golem", + "item_in_hand", + "item_in_hand_entity_alphatest", + "item_in_hand_entity_alphatest_color", + "item_in_hand_glint", + "item_in_hand_multicolor_tint", + "leash_knot", + "lightning", + "lingering_potion_enchanted", + "living_room", + "llama", + "llama_spit", + "magma_cube", + "map", + "map_decoration", + "map_marker", + "minecart", + "mob_head", + "mob_head_glint", + "mooshroom", + "mooshroom_mushrooms", + "moving_block", + "moving_block_alpha", + "moving_block_alpha_seasons", + "moving_block_alpha_single_side", + "moving_block_blend", + "moving_block_double_side", + "moving_block_seasons", + "name_tag", + "name_tag_depth_tested", + "name_text_depth_tested", + "npc", + "ocelot", + "on_screen_effect", + "opaque_block", + "opaque_block_color", + "opaque_block_color_uv2", + "overlay_quad", + "overlay_quad_clear", + "panda", + "parrot", + "particles_alpha", + "particles_base", + "particles_blend", + "particles_effects", + "particles_opaque", + "particles_random_test", + "passthru_postprocess", + "phantom", + "phantom_invisible", + "pig", + "piglin", + "piglin_brute", + "pillager", + "piston_arm", + "plankton", + "player", + "player_alphatest", + "player_animated", + "polar_bear", + "portal_base", + "precipitation", + "pufferfish", + "rabbit", + "rain", + "ravager", + "reality_frame_cutout", + "reality_frame_skyfill", + "red_spores", + "rift_mirror_logo", + "rift_mirror_texture", + "rift_texture_copy_noalpha", + "salmon", + "selection_box", + "selection_overlay", + "selection_overlay_alpha", + "selection_overlay_block_entity", + "selection_overlay_double_sided", + "selection_overlay_item", + "selection_overlay_level", + "selection_overlay_opaque", + "shadow_back", + "shadow_front", + "shadow_overlay", + "sheep", + "shield", + "shield_glint", + "shulker", + "shulker_box", + "shulker_bullet", + "sign", + "sign_text", + "silverfish", + "silverfish_layers", + "skeleton", + "slime", + "slime_outer", + "snow", + "snow_golem", + "snow_golem_pumpkin", + "snowball", + "spider", + "spider_invisible", + "splash_potion_enchanted", + "squid", + "ST_BatchedStandard", + "ST_Blur_1", + "ST_Blur_10", + "ST_Blur_11", + "ST_Blur_12", + "ST_Blur_2", + "ST_Blur_3", + "ST_Blur_4", + "ST_Blur_5", + "ST_Blur_6", + "ST_Blur_7", + "ST_Blur_8", + "ST_Blur_9", + "ST_Hairline", + "ST_HairlinePath", + "ST_LinearGradient2Point", + "ST_LinearGradient3PointSymmetrical", + "ST_LinearGradientFromTexture", + "ST_LinearGradientMasked2Point", + "ST_LinearGradientMasked3PointSymmetrical", + "ST_LinearGradientMaskedFromTexture", + "ST_Path", + "ST_RadialGradient2Point", + "ST_RadialGradient3PointSymmetrical", + "ST_RadialGradientFromTexture", + "ST_RadialGradientMasked2Point", + "ST_RadialGradientMasked3PointSymmetrical", + "ST_RadialGradientMaskedFromTexture", + "ST_SimpleTexture", + "ST_SimpleTextureMasked", + "ST_Standard", + "ST_StandardCircle", + "ST_StandardEllipse", + "ST_StandardRRect", + "ST_StandardStrokeCircle", + "ST_StandardStrokeEllipse", + "ST_StandardStrokeRRect", + "ST_StandardTexture", + "ST_StandardTextureWithColorMatrix", + "ST_Stencil", + "ST_StencilCircle", + "ST_StencilPath", + "ST_StencilRRect", + "ST_StencilTexture", + "ST_Text", + "ST_TextSDF", + "ST_TextStrokeSDF", + "ST_TexturesWithColorMix", + "ST_YUV2ARGB", + "ST_YUV2RGB", + "stray", + "stray_clothes", + "strider", + "terrain_alpha", + "terrain_alpha_seasons", + "terrain_alpha_single_side", + "terrain_base", + "terrain_blend", + "terrain_blend_far", + "terrain_blend_no_culling", + "terrain_doubleside", + "terrain_far", + "terrain_inside_block", + "terrain_opaque", + "terrain_opaque_seasons", + "terrain_seasons_far", + "terrain_seasons_far_alpha", + "trident", + "trident_glint", + "trident_riptide", + "tropicalfish", + "turtle", + "ui_banner", + "ui_banner_pole", + "ui_base", + "ui_conduit", + "ui_crosshair", + "ui_cubemap", + "ui_dragon_head", + "ui_dragon_head_glint", + "ui_fill_color", + "ui_fill_gradient", + "ui_fill_stencil", + "ui_grayscale", + "ui_grayscale_bilinear", + "ui_inventory_item_glint", + "ui_invert_overlay", + "ui_item", + "ui_item_glint", + "ui_item_glint_stencil", + "ui_item_multicolor_tint", + "ui_item_unglint_stencil", + "ui_mob_head", + "ui_mob_head_glint", + "ui_shield", + "ui_shield_glint", + "ui_skinning_item", + "ui_text", + "ui_text_msdf", + "ui_text_smooth", + "ui_texture_and_color", + "ui_texture_and_color_blur", + "ui_texture_and_color_tint", + "ui_textured", + "ui_textured_and_glcolor", + "ui_textured_and_glcolor_bilinear_sprite", + "ui_textured_and_glcolor_sprite", + "vex", + "villager", + "villager_v2", + "villager_v2_masked", + "vindicator", + "wandering_trader", + "water_hole", + "white_ash", + "windowsmr_holo_hand", + "wireframe", + "witch", + "wither_boss", + "wither_boss_armor", + "wither_skull", + "wolf", + "xp_bottle", + "zoglin", + "zombie", + "zombie_villager", + "zombie_villager_v2", + "zombie_villager_v2_masked" + ] + }, "description": "A collection of material definitions", "title": "Materials" }, diff --git a/source/resource/entity/entity.json b/source/resource/entity/entity.json index fb9740bd..6f8112f1 100644 --- a/source/resource/entity/entity.json +++ b/source/resource/entity/entity.json @@ -18,9 +18,7 @@ } } ], - "allOf": [ - { "if": { "properties": { "format_version": { "type": "string", "const": "1.8.0" } } }, "then": { "$ref": "./1.8.0/entity.json" } }, - { "if": { "properties": { "format_version": { "type": "string", "const": "1.10.0" } } }, "then": { "$ref": "./1.10.0/entity.json" } }, - { "properties": { "format_version": { "$ref": "../../general/format_version.json" } } } - ] + "if": { "properties": { "format_version": { "type": "string", "const": "1.8.0" } } }, + "then": { "$ref": "./1.8.0/entity.json" }, + "else": { "$ref": "./1.10.0/entity.json" } }