Files
minecraft-bedrock-json-schemas/source/resource/block_culling/block_culling.json
Xterionix ae9e79c04d 1.21.80 (#343)
* - Updated old biome format

* - Added biome tags component

* - Added dismount mode, and rider enter/exit event

* - Made surface_color not required

* - Update float wander goal

* - Update follow mob behavior

* - Added music def field

* - Added camera fields to rideable

* - Add array snippet

* - Updated leashable component with presets

* - Made texture field optional in destruction particles

* - Marked isotropic as stable

* - Moved can_be_stolen back

* - Updated tempt goal

* - Added float tempt behavior

* - Made heightmap project optional

* - Added distance based render methods

* - Marked tint method as stable

* - Added droop item y offset

* - Added has_equipment_tag filter

* - Remove unnused test.json

* - Allow for custom components

* - Add new block culling support

* - Removed enum for biome tags in support of custom biomes

* - Added replace_biomes component

* - Fix errors
2025-04-29 09:02:06 +02:00

108 lines
4.5 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "blockception.minecraft.resource.block_culling",
"title": "Block Culling",
"description": "A resource pack file that helps the system determine how to change the appearance of this block.",
"type": "object",
"additionalProperties": false,
"properties": {
"format_version": { "$ref": "../../general/format_version.json" },
"minecraft:block_culling_rules": {
"title": "Block Culling Rules",
"description": "JSON container used for descriptions, especially the identifier for the name of the culled version of the block.",
"type": "object",
"additionalProperties": false,
"properties": {
"description": {
"title": "Description",
"description": "Contains the identifier used by minecraft:geometry block components to refer to this culling data",
"type": "object",
"additionalProperties": false,
"properties": {
"identifier": {
"$ref": "../../general/block_culling/identifier.json",
"description": "Sets the identifier for this rule's description.",
"title": "Identifier"
}
}
},
"rules": {
"title": "Rules",
"description": "List of all components used to identify geometry parts used in culling.",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/rule"
}
}
}
}
},
"definitions": {
"rule": {
"title": "Rule",
"description": "The rules that specifies a \"geometry_part\" and \"direction\"",
"type": "object",
"additionalProperties": false,
"properties": {
"geometry_part": {
"title": "Geometry Part",
"description": "Specifies the bone, cube, and face that the block will be culled. The cube and face fields are optional to allow culling a specific face. Omitting these fields will cull the whole bone.",
"type": "object",
"additionalProperties": false,
"properties": {
"condition": {
"title": "Condition",
"description": "It provides more control over which neighbor blocks will trigger a face or part to be culled.\n- \"default\" will pass the condition if the neighbor block is full and opaque. All conditions are an extension of \"default\", meaning a full and opaque neighbor will always be a passing condition, before the extended \"same_*\" condition is checked.\n- \"same_culling_layer\" will pass the condition if the neighbor block shares the same \"culling_layer\" as the block being occluded, defined in the geometry component. If either of the culling layers being compared is \"minecraft:culling_layer.undefined\", the condition will never pass.\n- \"same_block\" will pass the condition if the neighbor block has the same identifier.\n- \"same_block_permutation\" will pass the condition if the neighbor block has the same identifier and is the exact same permutation.",
"type": "string",
"enum": ["default", "same_culling_layer", "same_block", "same_block_permutation"]
},
"bone": {
"title": "Bone",
"description": "The bone within the geometry part",
"type": "string"
},
"cube": {
"title": "Cube",
"description": "The cube within the geometry part",
"type": "integer",
"minimum": 0
},
"face": {
"title": "Face",
"description": "The face within the geometry part",
"type": "string",
"enum": ["up", "down", "north", "south", "east", "west"]
}
}
},
"direction": {
"title": "Direction",
"description": "Specifies the direction of the neighbor block to check for culling. This direction rotates with a block's Transform component.",
"type": "string",
"enum": ["up", "down", "north", "south", "east", "west"] //TODO: Check if "side" and "all" work here too
}
}
}
},
"examples": [
{
"format_version": "1.20.60",
"minecraft:block_culling_rules": {
"description": {
"identifier": ":"
},
"rules": [
{
"part": {
"bone": "",
"cube": 0,
"face": ""
}
}
]
}
}
]
}