Updated for 1.21.60 (#334)

* - Add crafting item catalogs
* - Removed experimental warning for item visual
* - Added renders_when_invisible entity component
* - Removed experimental warning for liquid detection
* - Added property inheritance to breedable
* - Added min_looked_at_duration field to look_at component
* - Added combine_parent_colors to breedable
* - Update catalog file schema
* - Split storage item components
* - Added new entity filters
* - Added surface opacity to water appearance biome component
* - Remove actor_id loot table example as it is no longer the standard
* - Add set_armor_trim trim loot table function
* - Added match_tool loot table condition
* - Added creature_spawn_probability component
* - Added verticalFlySpeed to has_ability
* - Update descriptions and default values
* - Add base field to block_sounds
* - Removed block sounds enum as creators can specify custom ones too
* - Change default format version
This commit is contained in:
Xterionix
2025-02-13 18:38:27 +05:00
committed by GitHub
parent 968d0c70d2
commit 40569873a8
38 changed files with 453 additions and 252 deletions

View File

@@ -19,6 +19,7 @@
"minecraft:capped_surface": { "$ref": "./components/capped_surface.json" },
"minecraft:climate": { "$ref": "./components/climate.json" },
"minecraft:consolidated_features": { "$ref": "./components/consolidated_features.json" },
"minecraft:creature_spawn_probability": { "$ref": "./components/creature_spawn_probability.json" },
"minecraft:frozen_ocean_surface": { "$ref": "./components/frozen_ocean_surface.json" },
"minecraft:legacy_world_generation_rules": {
"$ref": "./components/legacy_world_generation_rules.json"

View File

@@ -0,0 +1,16 @@
{
"$id": "minecraft.behavior.biomes.components.minecraft.creature_spawn_probability",
"title": "Creature Spawn Probability",
"description": "Probability that creatures will spawn within the biome when a chunk is generated.",
"type": "object",
"additionalProperties": false,
"properties": {
"probability": {
"type": "number",
"title": "Probability",
"description": "Probabiltity between [0.0, 0.75] of creatures spawning within the biome on chunk generation.",
"minimum": 0.0,
"maximum": 0.75
}
}
}

View File

@@ -1,7 +1,7 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.item_visual",
"title": "Item Visual",
"description": "The description identifier of the geometry and material used to render the item of this block.\nExperimental toggles required: Upcoming Creator Features",
"description": "The description identifier of the geometry and material used to render the item of this block.",
"type": "object",
"additionalProperties": false,
"required": [ "geometry", "material_instances" ],

View File

@@ -1,7 +1,7 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.liquid_detection",
"title": "Liquid Detection",
"description": "The definitions for how a block behaves when detecting liquid. Only one rule definition is allowed per liquid type - if multiple are specified, the first will be used and the rest will be ignored.\nExperimental toggles required: Upcoming Creator Features",
"description": "The definitions for how a block behaves when detecting liquid. Only one rule definition is allowed per liquid type - if multiple are specified, the first will be used and the rest will be ignored.",
"type": "object",
"additionalProperties": false,
"required": [ ],

View File

@@ -112,7 +112,10 @@
"$ref": "../../../general/vanilla/creative_category.json"
},
"group": {
"$ref": "../../../general/vanilla/item_group.json"
"title": "Group",
"description": "A translation string of an existing group in minecraft to group this block/item under",
"type": "string",
"pattern": "^[0-9a-zA-Z:_\\.\\-]+$"
},
"is_hidden_in_commands": {
"title": "Is Hidden In Commands",

View File

@@ -103,6 +103,7 @@
{ "if": { "properties": { "test": { "const": "has_tag" } } }, "then": { "$ref": "./filters/has_tag.json" } },
{ "if": { "properties": { "test": { "const": "has_target" } } }, "then": { "$ref": "./filters/has_target.json" } },
{ "if": { "properties": { "test": { "const": "has_trade_supply" } } }, "then": { "$ref": "./filters/has_trade_supply.json" } },
{ "if": { "properties": { "test": { "const": "home_distance" } } }, "then": { "$ref": "./filters/home_distance.json" } },
{ "if": { "properties": { "test": { "const": "hourly_clock_time" } } }, "then": { "$ref": "./filters/hourly_clock_time.json" } },
{ "if": { "properties": { "test": { "const": "in_block" } } }, "then": { "$ref": "./filters/in_block.json" } },
{ "if": { "properties": { "test": { "const": "in_caravan" } } }, "then": { "$ref": "./filters/in_caravan.json" } },
@@ -119,6 +120,7 @@
{ "if": { "properties": { "test": { "const": "is_avoiding_mobs" } } }, "then": { "$ref": "./filters/is_avoiding_mobs.json" } },
{ "if": { "properties": { "test": { "const": "is_biome" } } }, "then": { "$ref": "./filters/is_biome.json" } },
{ "if": { "properties": { "test": { "const": "is_block" } } }, "then": { "$ref": "./filters/is_block.json" } },
{ "if": { "properties": { "test": { "const": "is_bound_to_creaking_heart" } } }, "then": { "$ref": "./filters/is_bound_to_creaking_heart.json" } },
{ "if": { "properties": { "test": { "const": "is_brightness" } } }, "then": { "$ref": "./filters/is_brightness.json" } },
{ "if": { "properties": { "test": { "const": "is_climbing" } } }, "then": { "$ref": "./filters/is_climbing.json" } },
{ "if": { "properties": { "test": { "const": "is_color" } } }, "then": { "$ref": "./filters/is_color.json" } },

View File

@@ -19,7 +19,7 @@
"value": {
"type": "string",
"description": "(Required) The Ability type to test.",
"enum": ["flySpeed", "flying", "instabuild", "invulnerable", "lightning", "mayfly", "mute", "noclip", "walkSpeed", "worldbuilder"],
"enum": ["flySpeed", "flying", "instabuild", "invulnerable", "lightning", "mayfly", "mute", "noclip", "walkSpeed", "worldbuilder", "verticalFlySpeed"],
"title": "Value"
}
},

View File

@@ -0,0 +1,26 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.home_distance",
"type": "object",
"title": "Home Distance",
"description": "Tests the distance between the subject and its home. Returns false if the subject has no home or if their home is in a different dimension.",
"required": ["value"],
"properties": {
"test": {
"type": "string",
"title": "Test",
"description": "The test property."
},
"operator": {
"$ref": "./types/operator.json"
},
"subject": {
"$ref": "./types/subject.json"
},
"value": {
"description": "(Required) A floating point value.",
"type": "number",
"default": true,
"title": "Value"
}
}
}

View File

@@ -0,0 +1,31 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.is_bound_to_creaking_heart",
"type": "object",
"title": "Is Bound To Creaking Heart",
"description": "Tests that the Creaking Heart that spawned the subject Creaking still exists.",
"properties": {
"test": {
"type": "string",
"title": "Test Property",
"description": "The test property."
},
"operator": {
"$ref": "./types/operator.json"
},
"subject": {
"$ref": "./types/subject.json"
},
"value": {
"title": "Value",
"description": "True or false.",
"type": "boolean",
"default": true
}
},
"examples": [
{
"test": "is_bound_to_creaking_heart",
"value": false
}
]
}

View File

@@ -11,7 +11,7 @@
"listen_time": {
"title": "Listen Time",
"type": "integer",
"default": 0.0,
"default": 30,
"description": "Sets the time an entity should continue delivering items to a noteblock after hearing it."
},
"on_item_throw": {

View File

@@ -17,19 +17,19 @@
"search_count": {
"title": "Search Count",
"type": "integer",
"default": 0.0,
"default": 10,
"description": "The amount of times to try finding a random outdoors position before failing."
},
"search_height": {
"title": "Search Height",
"type": "integer",
"default": 0.0,
"default": 5,
"description": "The y range to search for an outdoors position for."
},
"search_range": {
"title": "Search Range",
"type": "integer",
"default": 0.0,
"default": 15,
"description": "The x and z range to search for an outdoors position for."
},
"timeout_cooldown": {

View File

@@ -36,7 +36,7 @@
"min_ram_distance": {
"title": "Min Ram Distance",
"type": "number",
"default": 0.0,
"default": 4.0,
"description": "The minimum distance at which the mob can start a ram attack."
},
"on_start": {
@@ -53,7 +53,7 @@
"ram_distance": {
"title": "Ram Distance",
"type": "number",
"default": 0.0,
"default": 7.0,
"description": "The distance at which the mob start to run with ram speed."
},
"ram_impact_sound": {

View File

@@ -27,13 +27,13 @@
"title": "Digging Duration Range",
"$ref": "../../../../general/vectors/number2.json",
"default": [0.0, 0.0],
"default": [8.0, 10.0],
"description": "Digging duration in seconds."
},
"find_valid_position_retries": {
"title": "Find Valid Position Retries",
"type": "number",
"default": 0.0,
"default": 5.0,
"description": "Amount of retries to find a valid target position within search range."
},
"goal_radius": {
@@ -80,13 +80,13 @@
"search_range_xz": {
"title": "Search Range XZ",
"type": "number",
"default": 0.0,
"default": 10.0,
"description": "Width and length of the volume around the entity used to find a valid target position"
},
"search_range_y": {
"title": "Search Range Y",
"type": "number",
"default": 0.0,
"default": 7.0,
"description": "Height of the volume around the entity used to find a valid target position"
},
"spawn_item_after_seconds": {

View File

@@ -11,7 +11,7 @@
"listen_time": {
"title": "Listen Time",
"type": "integer",
"default": 0.0,
"default": 30.0,
"description": "Sets the time an entity should stay near a noteblock after hearing it."
},
"speed": {

View File

@@ -165,6 +165,7 @@
"minecraft:ravager_blocked": { "$ref": "./components/ravager_blocked.json" },
"minecraft:rideable": { "$ref": "./components/rideable.json" },
"minecraft:reflect_projectiles": { "$ref": "./components/reflect_projectiles.json" },
"minecraft:renders_when_invisible": { "$ref": "./components/renders_when_invisible.json" },
"minecraft:scale_by_age": { "$ref": "./components/scale_by_age.json" },
"minecraft:scale": { "$ref": "./components/scale.json" },
"minecraft:scheduler": { "$ref": "./components/scheduler.json" },

View File

@@ -37,7 +37,7 @@
"play_attack_sound": {
"title": "Play Attack Sound",
"type": "boolean",
"default": 4.94066e-324,
"default": true,
"description": "If the entity should play their attack sound when attacking a target."
}
},

View File

@@ -194,7 +194,7 @@
"default": 0,
"minimum": 0.0,
"maximum": 1.0,
"description": "The percentage chance of a mutation on the entity's color.",
"description": "The percentage chance of the offspring getting its color as if spawned rather than inheriting color from its parents.",
"title": "Color"
},
"extra_variant": {
@@ -227,6 +227,29 @@
"type": "array",
"description": "[EXPERIMENTAL] List of attributes that should benefit from parent centric attribute blending. For example, horses blend their health, movement, and jump_strength in their offspring."
},
"property_inheritance": {
"title": "Property Inheritance",
"description": "List of Entity Properties that should be inherited from the parent entities and potentially mutated.",
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"mutation_chance": {
"title": "Mutation Chance",
"description": "The chance it should not inherit from either parent",
"type": "number",
"minimum": 0
},
"mutation_values": {
"title": "Mutation Values",
"description": "Array of values to select from if mutating and the component has random mutation set",
"type": "array",
"minItems": 1
}
}
}
},
"random_extra_variant_mutation_interval": {
"title": "Random Extra Variant Mutation Interval",
"default": 0,
@@ -245,6 +268,12 @@
"description": "If true, the babies will be automatically tamed if its parents are.",
"title": "Inherit Tamed"
},
"combine_parent_colors": {
"type": "boolean",
"default": true,
"description": "If true, the babies will have their color be mixed.",
"title": "Combine Parent Colors"
},
"require_full_health": {
"type": "boolean",
"default": false,

View File

@@ -82,6 +82,12 @@
"description": "Maximum distance this entity will look for another entity looking at it.",
"title": "Search Radius"
},
"min_looked_at_duration": {
"type": "number",
"default": 0,
"description": "Defines the minimum, continuous time the owner entity has to be looked at before being considered as such.",
"title": "Min Looked At Duration"
},
"set_target": {
"title": "Set Target",
"description": "Defines if and how the owner entity will set entities that are looking at it as its combat targets. Valid values:\n- \"never\", looking entities are never set as targets, but events are emitted.\n- \"once_and_stop_scanning\", the first detected looking entity is set as target. Scanning and event emission is suspended if and until the owner entity has a target.\n- \"once_and_keep_scanning\", the first detected looking entity is set as target. Scanning and event emission continues.",

View File

@@ -0,0 +1,8 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.renders_when_invisible",
"title": "Renders When Invisible",
"description": "Marks the entity as being able to fly, the pathfinder won't be restricted to paths where a solid block is required underneath it.",
"type": "object",
"additionalProperties": false,
"properties": {}
}

View File

@@ -0,0 +1,13 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "blockception.minecraft.behavior.item_catalog.crafting_item_catalog",
"type": "object",
"title": "Crafting Item Catalog",
"description": "Used to define the creative inventory/recipe book",
"required": [ "format_version", "minecraft:crafting_items_catalog" ],
"additionalProperties": false,
"properties": {
"format_version": { "$ref": "../../general/format_version.json" },
"minecraft:crafting_items_catalog": { "$ref": "./format/crafting_items_catalog.json" }
}
}

View File

@@ -0,0 +1,101 @@
{
"$id": "blockception.minecraft.behavior.item_catalog.format.minecraft.crafting_items_catalog",
"type": "object",
"title": "Crafting Items Catalog",
"additionalProperties": false,
"required": [
"categories"
],
"definitions": {
"category": {
"title": "Category",
"description": "You can add new items to the existing categories.",
"type": "object",
"additionalProperties": false,
"required": ["category_name", "groups"],
"properties": {
"category_name": {
"title": "Category Name",
"description": "Determines which category this block/item will be placed under in the inventory and crafting table container screens.",
"enum": ["construction", "equipment", "items", "nature"]
},
"groups": {
"title": "Groups",
"description": "Defines a new group which will be added to the category you specify at the end of all existing items/groups.",
"type": "array",
"items": {
"$ref": "#/definitions/group"
}
}
}
},
"group": {
"title": "Group",
"description": "Represents a group of items. A group can be collapsible if it is provided with a group identifier, or added a set of loose items without an icon.",
"type": "object",
"additionalProperties": false,
"required": ["items"],
"properties": {
"group_identifier": {
"title": "Group Identifier",
"description": "Optional field to give an icon and name to a group. Otherwise the items are added as loose items. If there are two groups with the same name within a category, they will merge.",
"type": "object",
"additionalProperties": false,
"required": ["name"],
"properties": {
"icon": {
"title": "Icon",
"description": "The item or block that represents the group.",
"type": "string"
},
"name": {
"title": "Name",
"description": "The localization string that is display when you hover over your group name. The localization string needs to include the namespace.",
"type": "string",
"pattern": "^(?:.)+:(?:.)+$"
}
}
},
"items": {
"title": "Items",
"description": "List of items to be added",
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"description": "The name of an item or block. A namespace for the item is required",
"pattern": "^(?:.)+:(?:.)+$"
},
{
"type": "object",
"description": "The name of an item or block. A namespace for the item is required",
"properties": {
"name": {
"description": "You can optionally provide an aux value for items that use it at the end. Example: namespace:my_item:1",
"type": "string",
"pattern": "^(?:.)+:(?:.)+$"
}
},
"required": [
"name"
]
}
]
}
}
}
}
},
"properties": {
"categories": {
"title": "Categories",
"description": "",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/category"
}
}
}
}

View File

@@ -31,20 +31,6 @@
"type": "integer",
"maximum": 64.0,
"default": 64
},
"max_weight_limit": {
"title": "Max Weight Limit",
"description": "The maximum allowed weight of the sum of all contained items. Maximum is 64. Default is 64.",
"type": "integer",
"maximum": 64.0,
"default": 64
},
"weight_in_storage_item": {
"title": "Weight In Storage Item",
"description": "The weight of this item when inside another Storage Item. Default is 4. 0 means item is not allowed in another Storage Item.",
"type": "integer",
"minimum": 0.0,
"default": 4
}
}
}

View File

@@ -0,0 +1,15 @@
{
"$id": "blockception.minecraft.behavior.items.minecraft:storage_weight_limit",
"title": "Storage Weight Limit",
"description": "Specifies the maximum weight limit that a storage item can hold",
"type": "object",
"properties": {
"max_weight_limit": {
"title": "Max Weight Limit",
"description": "The maximum allowed weight of the sum of all contained items.",
"type": "integer",
"maximum": 64.0,
"default": 64
}
}
}

View File

@@ -0,0 +1,15 @@
{
"$id": "blockception.minecraft.behavior.items.minecraft:storage_weight_modifier",
"title": "Storage Weight Modifier",
"description": "Specifies the maximum weight limit that a storage item can hold.",
"type": "object",
"properties": {
"weight_in_storage_item": {
"title": "Weight In Storage Item",
"description": "The weight of this item when inside another Storage Item. 0 means item is not allowed in another Storage Item.",
"type": "integer",
"minimum": 0.0,
"default": 4
}
}
}

View File

@@ -33,7 +33,10 @@
"additionalProperties": false,
"properties": {
"group": {
"$ref": "../../../general/vanilla/item_group.json"
"title": "Group",
"description": "A translation string of an existing group in minecraft to group this block/item under",
"type": "string",
"pattern": "^[0-9a-zA-Z:_\\.\\-]+$"
},
"category": {
"$ref": "../../../general/vanilla/creative_category.json"
@@ -83,6 +86,8 @@
"minecraft:should_despawn": { "$ref": "./components/should_despawn.json" },
"minecraft:stacked_by_data": { "$ref": "./components/stacked_by_data.json" },
"minecraft:storage_item": { "$ref": "./components/storage_item.json" },
"minecraft:storage_weight_limit": { "$ref": "./components/storage_weight_limit.json" },
"minecraft:storage_weight_modifier": { "$ref": "./components/storage_weight_modifier.json" },
"minecraft:tags": { "$ref": "./components/tags.json" },
"minecraft:throwable": { "$ref": "./components/throwable.json" },
"minecraft:use_animation": { "$ref": "./components/use_animation.json" },

View File

@@ -11,6 +11,10 @@
"if": { "properties": { "condition": { "type": "string", "const": "has_mark_variant" } } },
"then": { "$ref": "./conditions/has_mark_variant.json" }
},
{
"if": { "properties": { "condition": { "type": "string", "const": "match_tool" } } },
"then": { "$ref": "./conditions/match_tool.json" }
},
{
"if": { "properties": { "condition": { "type": "string", "const": "killed_by_player" } } },
"then": { "$ref": "./conditions/killed_by_player.json" }

View File

@@ -0,0 +1,60 @@
{
"$id": "blockception.minecraft.behavior.condition.match_tool",
"type": "object",
"additionalProperties": false,
"description": "Returns the condition true if the block of the loot table was broken with a specific item.",
"title": "Killed By Player",
"required": ["condition", "item", "count"],
"properties": {
"condition": { "type": "string", "const": "match_tool", "title": "Condition", "description": "UNDOCUMENTED.", "$comment": "UNDOCUMENTED" },
"item": {
"title": "Item",
"description": "The item to match",
"type": "string"
},
"count": {
"title": "Count",
"description": "Minimum count to match of the given item",
"type": "integer",
"minimum": 0
},
"enchantments": {
"title": "Enchantments",
"description": "List of enchantments to check for",
"type": "array",
"items": {
"type": "object",
"patternProperties": {
"^[a-zA-Z]+$": {
"type": "object",
"properties": {
"level": {
"type": "integer"
}
},
"required": ["level"]
}
},
"minProperties": 1,
"maxProperties": 1
},
"minItems": 1
},
"minecraft:match_tool_filter_all": {
"title": "Match Tool Filter All",
"description": "List of tags the item must have",
"type": "array",
"items": {
"type": "string"
}
},
"minecraft:match_tool_filter_none": {
"title": "Match Tool Filter None",
"description": "List of tags the item must NOT have",
"type": "array",
"items": {
"type": "string"
}
}
}
}

View File

@@ -19,6 +19,7 @@
"random_block_state",
"random_dye",
"set_actor_id",
"set_armor_trim",
"set_banner_details",
"set_book_contents",
"set_count",
@@ -42,6 +43,7 @@
"minecraft:random_block_state",
"minecraft:random_dye",
"minecraft:set_actor_id",
"minecraft:set_armor_trim",
"minecraft:set_banner_details",
"minecraft:set_book_contents",
"minecraft:set_count",
@@ -74,6 +76,7 @@
{ "if": { "properties": { "function": { "type": "string", "pattern": "^(minecraft:)*random_aux_value$" } } }, "then": { "$ref": "./functions/random_aux_value.json" } },
{ "if": { "properties": { "function": { "type": "string", "pattern": "^(minecraft:)*random_block_state$" } } }, "then": { "$ref": "./functions/random_block_state.json" } },
{ "if": { "properties": { "function": { "type": "string", "pattern": "^(minecraft:)*set_actor_id$" } } }, "then": { "$ref": "./functions/set_actor_id.json" } },
{ "if": { "properties": { "function": { "type": "string", "pattern": "^(minecraft:)*set_armor_trim$" } } }, "then": { "$ref": "./functions/set_armor_trim.json" } },
{ "if": { "properties": { "function": { "type": "string", "pattern": "^(minecraft:)*set_banner_details$" } } }, "then": { "$ref": "./functions/set_banner_details.json" } },
{ "if": { "properties": { "function": { "type": "string", "pattern": "^(minecraft:)*set_book_contents$" } } }, "then": { "$ref": "./functions/set_book_contents.json" } },
{ "if": { "properties": { "function": { "type": "string", "pattern": "^(minecraft:)*set_count$" } } }, "then": { "$ref": "./functions/set_count.json" } },

View File

@@ -0,0 +1,60 @@
{
"$id": "blockception.minecraft.behavior.loot_tables.set_armor_trim",
"additionalProperties": false,
"type": "object",
"description": "The function set_armor_trim.",
"title": "Set Armor Trim",
"required": ["function", "material", "pattern"],
"properties": {
"function": {
"type": "string",
"const": "set_armor_trim",
"title": "Function",
"description": "UNDOCUMENTED.",
"$comment": "UNDOCUMENTED"
},
"material": {
"title": "Material",
"description": "Trim's material",
"type": "string",
"enum": [
"amethyst",
"copper",
"diamond",
"emerald",
"gold",
"iron",
"lapis",
"netherite",
"quartz",
"redstone",
"resin"
]
},
"pattern": {
"title": "Pattern",
"description": "Trim pattern",
"type": "string",
"enum": [
"sentry",
"vex",
"wild",
"coast",
"dune",
"wayfinder",
"shaper",
"raiser",
"host",
"ward",
"silence",
"tide",
"snout",
"rib",
"eye",
"spire",
"flow",
"bolt"
]
}
}
}

View File

@@ -5,23 +5,6 @@
"description": "A minecraft loot table.",
"title": "Loot Table",
"type": "object",
"examples": [
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:spawn_egg",
"weight": 1,
"functions": [{ "function": "set_count", "count": { "min": 1, "max": 1 } }, { "function": "set_actor_id" }]
}
]
}
]
}
],
"definitions": {
"pools_spec": {
"title": "Pools",