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

@@ -59,6 +59,7 @@ JSON validation can give snippets for sub items, as well as description, but thi
- [Spawn rules](behavior/spawn_rules/spawn_rules.json) - [Spawn rules](behavior/spawn_rules/spawn_rules.json)
- [Trading](behavior/trading/trading.json) - [Trading](behavior/trading/trading.json)
- [Jigsaws](behavior/worldgen) - [Jigsaws](behavior/worldgen)
- [Crafting Item Catalog](behavior/item_catalog/crafting_item_catalog.json)
## Resource files ## Resource files

View File

@@ -19,6 +19,7 @@
"minecraft:capped_surface": { "$ref": "./components/capped_surface.json" }, "minecraft:capped_surface": { "$ref": "./components/capped_surface.json" },
"minecraft:climate": { "$ref": "./components/climate.json" }, "minecraft:climate": { "$ref": "./components/climate.json" },
"minecraft:consolidated_features": { "$ref": "./components/consolidated_features.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:frozen_ocean_surface": { "$ref": "./components/frozen_ocean_surface.json" },
"minecraft:legacy_world_generation_rules": { "minecraft:legacy_world_generation_rules": {
"$ref": "./components/legacy_world_generation_rules.json" "$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", "$id": "blockception.minecraft.behavior.blocks.minecraft.item_visual",
"title": "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", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "geometry", "material_instances" ], "required": [ "geometry", "material_instances" ],

View File

@@ -1,7 +1,7 @@
{ {
"$id": "blockception.minecraft.behavior.blocks.minecraft.liquid_detection", "$id": "blockception.minecraft.behavior.blocks.minecraft.liquid_detection",
"title": "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", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ ], "required": [ ],

View File

@@ -112,7 +112,10 @@
"$ref": "../../../general/vanilla/creative_category.json" "$ref": "../../../general/vanilla/creative_category.json"
}, },
"group": { "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": { "is_hidden_in_commands": {
"title": "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_tag" } } }, "then": { "$ref": "./filters/has_tag.json" } },
{ "if": { "properties": { "test": { "const": "has_target" } } }, "then": { "$ref": "./filters/has_target.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": "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": "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_block" } } }, "then": { "$ref": "./filters/in_block.json" } },
{ "if": { "properties": { "test": { "const": "in_caravan" } } }, "then": { "$ref": "./filters/in_caravan.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_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_biome" } } }, "then": { "$ref": "./filters/is_biome.json" } },
{ "if": { "properties": { "test": { "const": "is_block" } } }, "then": { "$ref": "./filters/is_block.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_brightness" } } }, "then": { "$ref": "./filters/is_brightness.json" } },
{ "if": { "properties": { "test": { "const": "is_climbing" } } }, "then": { "$ref": "./filters/is_climbing.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" } }, { "if": { "properties": { "test": { "const": "is_color" } } }, "then": { "$ref": "./filters/is_color.json" } },

View File

@@ -19,7 +19,7 @@
"value": { "value": {
"type": "string", "type": "string",
"description": "(Required) The Ability type to test.", "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" "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": { "listen_time": {
"title": "Listen Time", "title": "Listen Time",
"type": "integer", "type": "integer",
"default": 0.0, "default": 30,
"description": "Sets the time an entity should continue delivering items to a noteblock after hearing it." "description": "Sets the time an entity should continue delivering items to a noteblock after hearing it."
}, },
"on_item_throw": { "on_item_throw": {

View File

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

View File

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

View File

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

View File

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

View File

@@ -165,6 +165,7 @@
"minecraft:ravager_blocked": { "$ref": "./components/ravager_blocked.json" }, "minecraft:ravager_blocked": { "$ref": "./components/ravager_blocked.json" },
"minecraft:rideable": { "$ref": "./components/rideable.json" }, "minecraft:rideable": { "$ref": "./components/rideable.json" },
"minecraft:reflect_projectiles": { "$ref": "./components/reflect_projectiles.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_by_age": { "$ref": "./components/scale_by_age.json" },
"minecraft:scale": { "$ref": "./components/scale.json" }, "minecraft:scale": { "$ref": "./components/scale.json" },
"minecraft:scheduler": { "$ref": "./components/scheduler.json" }, "minecraft:scheduler": { "$ref": "./components/scheduler.json" },

View File

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

View File

@@ -194,7 +194,7 @@
"default": 0, "default": 0,
"minimum": 0.0, "minimum": 0.0,
"maximum": 1.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" "title": "Color"
}, },
"extra_variant": { "extra_variant": {
@@ -227,6 +227,29 @@
"type": "array", "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." "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": { "random_extra_variant_mutation_interval": {
"title": "Random Extra Variant Mutation Interval", "title": "Random Extra Variant Mutation Interval",
"default": 0, "default": 0,
@@ -245,6 +268,12 @@
"description": "If true, the babies will be automatically tamed if its parents are.", "description": "If true, the babies will be automatically tamed if its parents are.",
"title": "Inherit Tamed" "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": { "require_full_health": {
"type": "boolean", "type": "boolean",
"default": false, "default": false,

View File

@@ -82,6 +82,12 @@
"description": "Maximum distance this entity will look for another entity looking at it.", "description": "Maximum distance this entity will look for another entity looking at it.",
"title": "Search Radius" "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": { "set_target": {
"title": "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.", "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", "type": "integer",
"maximum": 64.0, "maximum": 64.0,
"default": 64 "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, "additionalProperties": false,
"properties": { "properties": {
"group": { "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": { "category": {
"$ref": "../../../general/vanilla/creative_category.json" "$ref": "../../../general/vanilla/creative_category.json"
@@ -83,6 +86,8 @@
"minecraft:should_despawn": { "$ref": "./components/should_despawn.json" }, "minecraft:should_despawn": { "$ref": "./components/should_despawn.json" },
"minecraft:stacked_by_data": { "$ref": "./components/stacked_by_data.json" }, "minecraft:stacked_by_data": { "$ref": "./components/stacked_by_data.json" },
"minecraft:storage_item": { "$ref": "./components/storage_item.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:tags": { "$ref": "./components/tags.json" },
"minecraft:throwable": { "$ref": "./components/throwable.json" }, "minecraft:throwable": { "$ref": "./components/throwable.json" },
"minecraft:use_animation": { "$ref": "./components/use_animation.json" }, "minecraft:use_animation": { "$ref": "./components/use_animation.json" },

View File

@@ -11,6 +11,10 @@
"if": { "properties": { "condition": { "type": "string", "const": "has_mark_variant" } } }, "if": { "properties": { "condition": { "type": "string", "const": "has_mark_variant" } } },
"then": { "$ref": "./conditions/has_mark_variant.json" } "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" } } }, "if": { "properties": { "condition": { "type": "string", "const": "killed_by_player" } } },
"then": { "$ref": "./conditions/killed_by_player.json" } "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_block_state",
"random_dye", "random_dye",
"set_actor_id", "set_actor_id",
"set_armor_trim",
"set_banner_details", "set_banner_details",
"set_book_contents", "set_book_contents",
"set_count", "set_count",
@@ -42,6 +43,7 @@
"minecraft:random_block_state", "minecraft:random_block_state",
"minecraft:random_dye", "minecraft:random_dye",
"minecraft:set_actor_id", "minecraft:set_actor_id",
"minecraft:set_armor_trim",
"minecraft:set_banner_details", "minecraft:set_banner_details",
"minecraft:set_book_contents", "minecraft:set_book_contents",
"minecraft:set_count", "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_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:)*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_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_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_book_contents$" } } }, "then": { "$ref": "./functions/set_book_contents.json" } },
{ "if": { "properties": { "function": { "type": "string", "pattern": "^(minecraft:)*set_count$" } } }, "then": { "$ref": "./functions/set_count.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.", "description": "A minecraft loot table.",
"title": "Loot Table", "title": "Loot Table",
"type": "object", "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": { "definitions": {
"pools_spec": { "pools_spec": {
"title": "Pools", "title": "Pools",

View File

@@ -18,10 +18,11 @@
{ "Source": "./behavior/recipes/recipes.json", "Destination": "../behavior/recipes/recipes.json" }, { "Source": "./behavior/recipes/recipes.json", "Destination": "../behavior/recipes/recipes.json" },
{ "Source": "./behavior/spawn_rules/spawn_rules.json", "Destination": "../behavior/spawn_rules/spawn_rules.json" }, { "Source": "./behavior/spawn_rules/spawn_rules.json", "Destination": "../behavior/spawn_rules/spawn_rules.json" },
{ "Source": "./behavior/trading/trading.json", "Destination": "../behavior/trading/trading.json" }, { "Source": "./behavior/trading/trading.json", "Destination": "../behavior/trading/trading.json" },
{ "Source": "./behavior/worldgen/jigsaw_structures/jigsaw.json", "Destination": "../worldgen/jigsaw_structures/jigsaw.json" }, { "Source": "./behavior/worldgen/jigsaw_structures/jigsaw.json", "Destination": "../behavior/worldgen/jigsaw_structures/jigsaw.json" },
{ "Source": "./behavior/worldgen/processors/processor_list.json", "Destination": "../worldgen/processors/processor_list.json" }, { "Source": "./behavior/worldgen/processors/processor_list.json", "Destination": "../behavior/worldgen/processors/processor_list.json" },
{ "Source": "./behavior/worldgen/structure_sets/structure_set.json", "Destination": "../worldgen/structure_sets/structure_set.json" }, { "Source": "./behavior/worldgen/structure_sets/structure_set.json", "Destination": "../behavior/worldgen/structure_sets/structure_set.json" },
{ "Source": "./behavior/worldgen/template_pools/template_pool.json", "Destination": "../worldgen/template_pools/template_pool.json" }, { "Source": "./behavior/worldgen/template_pools/template_pool.json", "Destination": "../behavior/worldgen/template_pools/template_pool.json" },
{ "Source": "./behavior/item_catalog/crafting_item_catalog.json", "Destination": "../behavior/item_catalog/crafting_item_catalog.json" },
{ "Source": "./general/manifest.json", "Destination": "../general/manifest.json" }, { "Source": "./general/manifest.json", "Destination": "../general/manifest.json" },
{ "Source": "./general/world_x_packs.json", "Destination": "../general/world_x_packs.json" }, { "Source": "./general/world_x_packs.json", "Destination": "../general/world_x_packs.json" },

View File

@@ -4,7 +4,7 @@
"description": "A version that tells minecraft what type of data format can be expected when reading this file.", "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]+)$", "pattern": "^([1-9]+)\\.([0-9]+)\\.([0-9]+)$",
"type": "string", "type": "string",
"default": "1.21.50", "default": "1.21.60",
"examples": ["1.21.50", "1.20.81", "1.20.40", "1.19.0", "1.12.0", "1.10.0", "1.8.0"], "examples": ["1.21.50", "1.20.80", "1.20.40", "1.19.0", "1.12.0", "1.10.0", "1.8.0"],
"defaultSnippets": [{ "label": "New Format version", "body": "1.${1|8,10,12,17,18,19,20|}.${3|2|0|}" }] "defaultSnippets": [{ "label": "New Format version", "body": "1.${1|8,10,12,17,18,19,20|}.${3|2|0|}" }]
} }

View File

@@ -1,87 +0,0 @@
{
"$id": "blockception.minecraft.general.vanilla.item_group",
"type": "string",
"title": "Item Group",
"description": "A translation string of an existing group in minecraft to group this block/item under",
"enum": [
"itemGroup.name.anvil",
"itemGroup.name.arrow",
"itemGroup.name.axe",
"itemGroup.name.banner",
"itemGroup.name.banner_pattern",
"itemGroup.name.bed",
"itemGroup.name.boat",
"itemGroup.name.boots",
"itemGroup.name.buttons",
"itemGroup.name.candles",
"itemGroup.name.chalkboard",
"itemGroup.name.chest",
"itemGroup.name.chestboat",
"itemGroup.name.chestplate",
"itemGroup.name.concrete",
"itemGroup.name.concretePowder",
"itemGroup.name.cookedFood",
"itemGroup.name.copper",
"itemGroup.name.coral",
"itemGroup.name.coral_decorations",
"itemGroup.name.crop",
"itemGroup.name.door",
"itemGroup.name.dye",
"itemGroup.name.enchantedBook",
"itemGroup.name.fence",
"itemGroup.name.fenceGate",
"itemGroup.name.firework",
"itemGroup.name.fireworkStars",
"itemGroup.name.flower",
"itemGroup.name.glass",
"itemGroup.name.glassPane",
"itemGroup.name.glazedTerracotta",
"itemGroup.name.goatHorn",
"itemGroup.name.grass",
"itemGroup.name.hanging_sign",
"itemGroup.name.helmet",
"itemGroup.name.hoe",
"itemGroup.name.horseArmor",
"itemGroup.name.leaves",
"itemGroup.name.leggings",
"itemGroup.name.lingeringPotion",
"itemGroup.name.log",
"itemGroup.name.minecart",
"itemGroup.name.miscFood",
"itemGroup.name.mobEgg",
"itemGroup.name.monsterStoneEgg",
"itemGroup.name.mushroom",
"itemGroup.name.netherWartBlock",
"itemGroup.name.ore",
"itemGroup.name.permission",
"itemGroup.name.pickaxe",
"itemGroup.name.planks",
"itemGroup.name.potion",
"itemGroup.name.potterySherds",
"itemGroup.name.pressurePlate",
"itemGroup.name.rail",
"itemGroup.name.rawFood",
"itemGroup.name.record",
"itemGroup.name.sandstone",
"itemGroup.name.sapling",
"itemGroup.name.sculk",
"itemGroup.name.seed",
"itemGroup.name.shovel",
"itemGroup.name.shulkerBox",
"itemGroup.name.sign",
"itemGroup.name.skull",
"itemGroup.name.slab",
"itemGroup.name.smithing_templates",
"itemGroup.name.splashPotion",
"itemGroup.name.stainedClay",
"itemGroup.name.stairs",
"itemGroup.name.stone",
"itemGroup.name.stoneBrick",
"itemGroup.name.sword",
"itemGroup.name.trapdoor",
"itemGroup.name.walls",
"itemGroup.name.wood",
"itemGroup.name.wool",
"itemGroup.name.woolCarpet"
]
}

View File

@@ -12,6 +12,13 @@
"type": "string", "type": "string",
"format": "color-hex", "format": "color-hex",
"examples": ["#FFFFFF"] "examples": ["#FFFFFF"]
},
"surface_opacity": {
"title": "Surface Opacity",
"description": "Opacity of the water surface (0 for invisible and 1 for opaque)",
"type": "number",
"minimum": 0,
"maximum": 1
} }
} }
} }

View File

@@ -90,116 +90,7 @@
"sound": { "sound": {
"type": "string", "type": "string",
"title": "Sound", "title": "Sound",
"description": "The sound definition of this block.", "description": "The sound definition of this block."
"enum": [
"amethyst_block",
"amethyst_cluster",
"ancient_debris",
"anvil",
"azalea",
"azalea_leaves",
"bamboo",
"bamboo_sapling",
"bamboo_wood",
"bamboo_wood_hanging_sign",
"basalt",
"big_dripleaf",
"bone_block",
"calcite",
"candle",
"cave_vines",
"chain",
"cherry_leaves",
"cherry_wood",
"cherry_wood_hanging_sign",
"chiseled_bookshelf",
"cloth",
"comparator",
"copper",
"copper_bulb",
"copper_grate",
"coral",
"creaking_heart",
"decorated_pot",
"deepslate",
"deepslate_bricks",
"dirt_with_roots",
"dripstone_block",
"eyeblossom",
"frog_spawn",
"froglight",
"fungus",
"glass",
"glow_lichen",
"grass",
"gravel",
"hanging_roots",
"hanging_sign",
"heavy_core",
"honey_block",
"itemframe",
"ladder",
"lantern",
"large_amethyst_bud",
"lever",
"lodestone",
"mangrove_roots",
"medium_amethyst_bud",
"metal",
"mob_spawner",
"moss_block",
"moss_carpet",
"mud",
"mud_bricks",
"muddy_mangrove_roots",
"nether_brick",
"nether_gold_ore",
"nether_sprouts",
"nether_wart",
"nether_wood",
"nether_wood_hanging_sign",
"netherite",
"netherrack",
"nylium",
"packed_mud",
"pale_hanging_moss",
"pink_petals",
"pointed_dripstone",
"polished_tuff",
"powder_snow",
"resin",
"resin_brick",
"roots",
"sand",
"scaffolding",
"sculk",
"sculk_catalyst",
"sculk_sensor",
"sculk_shrieker",
"sculk_vein",
"shroomlight",
"slime",
"small_amethyst_bud",
"snow",
"soul_sand",
"soul_soil",
"sponge",
"spore_blossom",
"stem",
"stone",
"suspicious_gravel",
"suspicious_sand",
"sweet_berry_bush",
"trial_spawner",
"tuff",
"tuff_bricks",
"turtle_egg",
"vault",
"vines",
"web",
"wet_sponge",
"wood"
]
}, },
"textures": { "$ref": "#/definitions/texture", "title": "Textures", "description": "Textures." } "textures": { "$ref": "#/definitions/texture", "title": "Textures", "description": "Textures." }
} }

View File

@@ -78,6 +78,11 @@
"description": "A single block sound definition.", "description": "A single block sound definition.",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"base": {
"title": "Base",
"description": "Specifying another block sound they should use sounds for if they do not define a sound themselves",
"type": "string"
},
"volume": { "$ref": "#/definitions/volume" }, "volume": { "$ref": "#/definitions/volume" },
"pitch": { "$ref": "#/definitions/pitch" }, "pitch": { "$ref": "#/definitions/pitch" },
"events": { "events": {

View File

@@ -457,6 +457,21 @@
"*rp*/textures/*/**/*.{json,jsonc,json5}" "*rp*/textures/*/**/*.{json,jsonc,json5}"
], ],
"url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/resource/textures/ui_texture_definition.json" "url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/resource/textures/ui_texture_definition.json"
},
{
"fileMatch": [
"behavior_packs/*/item_catalog/*.{json,jsonc,json5}",
"*behavior*pack*/item_catalog/*.{json,jsonc,json5}",
"*Behavior*Pack*/item_catalog/*.{json,jsonc,json5}",
"*BP*/item_catalog/*.{json,jsonc,json5}",
"*bp*/item_catalog/*.{json,jsonc,json5}",
"behavior_packs/*/item_catalog/**/*.{json,jsonc,json5}",
"*behavior*pack*/item_catalog/**/*.{json,jsonc,json5}",
"*Behavior*Pack*/item_catalog/**/*.{json,jsonc,json5}",
"*BP*/item_catalog/**/*.{json,jsonc,json5}",
"*bp*/item_catalog/**/*.{json,jsonc,json5}"
],
"url": "https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/main/behavior/item_catalog/crafting_item_catalog.json"
} }
] ]
} }