Files
minecraft-bedrock-json-schemas/source/behavior/features/features/minecraft.tree_feature.json
Xterionix c9449c75d6 Updated for 1.21.70 along with other improvements (#337)
* Update vscode-settings.json

* - Updated map color

* - Added replaceable block component

* - Effect durations can be set to infinite now

* - Added support for entity sound variants

* - Fix description for renders_when_invisible entity component

* - Added is_collidable component

* - Updated entity_sensor

* - Added body_rotation_axis_aligned

* - Updated projectile > on_hit

* - Set min and max for collision_box

* - Added locator field to sounds in animation controllers and animations

* - Added new event response

* - Removed peak_factor from mountain_parameters component

* - Added isotropic field to material_instances

* - Added tint field to material_instances

* - Added input_air_controlled entity component

* - Added use_beta_features property to entity.json

* - Added missing match_tool property

* - Added use_home_position_restriction to float_wander goal

* - Added deferred client biome components

* - Added dry_foliage_color client biome component

* - Added destruction_particles

* - Marked biome tinting as experimental

* - Fix property_inheritance under breedable

* - Fix inconsistency with scatter feature

* - Update rideable description

* - Allowed event.add/remove to be strings

* - Added missing property in move_around_target behavior

* - Made features accept block references

* - Allowed repairable to use item descriptors

* - Fix typo
2025-03-03 08:44:05 +01:00

1507 lines
50 KiB
JSON

{
"title": "Tree Feature",
"description": "'minecraft:tree_feature' will place a tree in the world. A tree consists of a column that is anchored to a base block with set parameters for what it can be placed on and canopy that extends from the column. Trees support multiple types of canopies, trunks, and roots.",
"type": "object",
"additionalProperties": false,
"required": ["description"],
"definitions": {
"branch_canopy": {
"title": "Branch Canopy",
"description": "Configuration object for the canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"acacia_canopy": {
"title": "Acacia Canopy",
"description": "Configuration object for the acacia canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_size": {
"title": "Canopy Size",
"description": "The size of the canopy.",
"type": "integer",
"minimum": 1
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
},
"simplify_canopy": {
"$ref": "#/definitions/simplify_canopy"
}
}
},
"canopy": {
"title": "Canopy",
"description": "Configuration object for the normal canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_offset": {
"title": "Canopy Offset",
"description": "Canopy position offset relative to the block above the trunk.",
"type": "object",
"additionalProperties": false,
"properties": {
"min": {
"title": "Min",
"description": "Min canopy position offset.",
"type": "integer"
},
"max": {
"title": "Max",
"description": "Max canopy position offset.",
"type": "integer"
}
}
},
"min_width": {
"title": "Min Width",
"description": "Min width for the canopy.",
"type": "integer",
"minimum": 0
},
"canopy_slope": {
"title": "Canopy Slope",
"description": "Configuration object for the canopy slope.",
"type": "object",
"additionalProperties": false,
"properties": {
"rise": {
"title": "Rise",
"description": "The numerator for the slope fraction.",
"type": "integer",
"minimum": 1
},
"run": {
"title": "Run",
"description": "The denominator for the slope fraction.",
"type": "integer",
"minimum": 1
}
}
},
"variation_chance": {
"title": "Variation Chance",
"description": "Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.",
"oneOf": [
{ "$ref": "../types/chance_information.json" },
{
"type": "array",
"items": {
"$ref": "../types/chance_information.json"
}
}
]
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
},
"canopy_decoration": {
"title": "Canopy Decoration",
"description": "Configuration object for the canopy decoration.",
"type": "object",
"additionalProperties": false,
"properties": {
"decoration_chance": {
"title": "Decoration Chance",
"description": "Probability of decorating the trunk.",
"$ref": "../types/chance_information.json"
},
"decoration_block": {
"title": "Decoration Block",
"description": "The block used for decorating the trunk.",
"type": "string",
"$ref": "../../../general/block/reference.json"
},
"num_steps": {
"title": "Num Steps",
"description": "Number of decoration blocks to place.",
"type": "integer",
"minimum": 0
},
"step_direction": {
"title": "Step Direction",
"description": "Directions to spread decoration blocks.",
"type": "string",
"enum": ["down", "up", "out", "away"]
}
}
}
}
},
"cherry_canopy": {
"title": "Cherry Canopy",
"description": "Configuration object for the cherry canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"leaf_block": {
"$ref": "#/definitions/leaf_block"
},
"height": {
"$ref": "#/definitions/height"
},
"radius": {
"$ref": "#/definitions/radius"
},
"trunk_width": {
"$ref": "#/definitions/trunk_width"
},
"wide_bottom_layer_hole_chance": {
"title": "Wide Bottom Layer Hole Chance",
"description": "Probability of the canopy having a hole in the bottom layer.",
"$ref": "../types/chance_information.json"
},
"corner_hole_chance": {
"title": "Corner Hole Chance",
"description": "Probability of the canopy having a hole in the corner.",
"$ref": "../types/chance_information.json"
},
"hanging_leaves_chance": {
"title": "Hanging Leaves Chance",
"description": "Probability of the canopy having hanging leaves",
"$ref": "../types/chance_information.json"
},
"hanging_leaves_extension_chance": {
"title": "Hanging Leaves Extension Chance",
"description": "Probability of hanging leaves extending further down",
"$ref": "../types/chance_information.json"
}
}
},
"fancy_canopy": {
"title": "Fancy Canopy",
"description": "Configuration object for the fancy canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"height": {
"$ref": "#/definitions/height"
},
"radius": {
"$ref": "#/definitions/radius"
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"mangrove_canopy": {
"title": "Mangrove Canopy",
"description": "Configuration object for the mangrove canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_height": {
"$ref": "#/definitions/height"
},
"canopy_radius": {
"$ref": "#/definitions/radius"
},
"leaf_placement_attempts": {
"title": "Leaf Placement Attempts",
"description": "Max number of attempts to create leaf blocks.",
"type": "integer",
"minimum": 1
},
"leaf_blocks": {
"title": "Leaf Blocks",
"description": "The blocks that form the canopy of the tree",
"type": "array",
"minItems": 1,
"items": [
{
"$ref": "#/definitions/leaf_block"
},
{
"title": "Weight",
"description": "Weight used in random selection. Value is relative to other weights in the collection.",
"type": "number",
"minimum": 0
}
]
},
"canopy_decoration": {
"$ref": "#/definitions/decoration"
},
"hanging_block": {
"title": "Hanging Block",
"description": "The block to be used as a hanging block.",
"$ref": "../../../general/block/reference.json"
},
"hanging_block_placement_chance": {
"title": "Hanging Block Placement Chance",
"description": "Probability of creating a hanging leaf block.",
"$ref": "../types/chance_information.json"
}
}
},
"mega_canopy": {
"title": "Mega Canopy",
"description": "Configuration object for the mega canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_height": {
"$ref": "#/definitions/height"
},
"base_radius": {
"$ref": "#/definitions/radius"
},
"core_width": {
"title": "Core Width",
"description": "Width of the tree trunk.",
"type": "number",
"minimum": 1
},
"simplify_canopy": {
"$ref": "#/definitions/simplify_canopy"
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"mega_pine_canopy": {
"title": "Mega Pine Canopy",
"description": "Configuration object for the mega pine canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_height": {
"$ref": "#/definitions/height"
},
"base_radius": {
"$ref": "#/definitions/radius",
"minimum": 0
},
"radius_step_modifier": {
"title": "Radius Step Modifier",
"description": "Modifier for the base radius of the canopy.",
"type": "number",
"minimum": 0
},
"core_width": {
"title": "Core Width",
"description": "Width of the tree trunk.",
"type": "number",
"minimum": 1
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"pine_canopy": {
"title": "Pine Canopy",
"description": "Configuration object for the pine canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"height": {
"$ref": "#/definitions/height"
},
"radius": {
"$ref": "#/definitions/radius"
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"roofed_canopy": {
"title": "Roofed Canopy",
"description": "Configuration object for the roofed canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_height": {
"title": "Canopy Height",
"description": "Roofed canopies feature a base and a top layer, and an extra cap layer on some occasions, this value controls the number of layers in the middle.",
"type": "integer",
"minimum": 3
},
"core_width": {
"title": "Core Width",
"description": "Width of the tree trunk.",
"type": "integer",
"minimum": 1
},
"outer_radius": {
"title": "Outer Radius",
"description": "Radius used for the base and top layers.",
"type": "integer",
"minimum": 0
},
"inner_radius": {
"title": "Inner Radius",
"description": "Radius used for the middle layers.",
"type": "integer",
"minimum": 0
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"spruce_canopy": {
"title": "Spruce Canopy",
"description": "Configuration object for the spruce canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"lower_offset": {
"title": "Lower Offset",
"description": "Min canopy position offset.",
"type": "integer",
"minimum": 0
},
"upper_offset": {
"title": "Upper Offset",
"description": "Max canopy position offset.",
"type": "integer",
"minimum": 0
},
"max_radius": {
"title": "Max Radius",
"description": "Max radius of the canopy.",
"type": "integer",
"minimum": 0
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
}
}
},
"leaf_block": {
"title": "Leaf Block",
"description": "The block thata forms the canopy of the tree.",
"type": "string",
"$ref": "../../../general/block/reference.json"
},
"trunk_width": {
"title": "Trunk Width",
"description": "The width of the tree trunk.",
"type": "integer",
"minimum": 1
},
"height": {
"title": "Height",
"description": "Number of layers for the canopy.",
"type": "integer",
"minimum": 1
},
"radius": {
"title": "Radius",
"description": "The radius of the canopy.",
"type": "integer",
"minimum": 1
},
"decoration": {
"title": "Decoration",
"description": "Configuration object for the decoration.",
"type": "object",
"additionalProperties": false,
"properties": {
"decoration_chance": {
"title": "Decoration Chance",
"description": "Probability of decorating the trunk.",
"$ref": "../types/chance_information.json"
},
"decoration_block": {
"title": "Decoration Block",
"description": "The block used for decorating the trunk.",
"type": "string",
"$ref": "../../../general/block/reference.json"
},
"num_steps": {
"title": "Num Steps",
"description": "Number of decoration blocks to place.",
"type": "integer",
"minimum": 0
},
"step_direction": {
"title": "Step Direction",
"description": "Directions to spread decoration blocks.",
"type": "string",
"enum": ["down", "up", "out", "away"]
}
}
},
"simplify_canopy": {
"title": "Simplify Canopy",
"description": "If true the canopy uses a simple pattern.",
"type": "boolean"
},
"trunk_block": {
"title": "Trunk Block",
"description": "The block that forms the tree trunk.",
"type": "string",
"$ref": "../../../general/block/reference.json"
}
},
"properties": {
"description": {
"$ref": "../types/description.json"
},
"base_block": {
"title": "Base Block",
"oneOf": [
{ "$ref": "../../../general/block/reference.json" },
{
"type": "array",
"items": { "title": "Block", "$ref": "../../../general/block/reference.json" }
}
]
},
"base_cluster": {
"title": "Base Cluster",
"description": "Allows you to define a number of clusters for the base of the tree. Used to generate mega tree variants.",
"type": "object",
"additionalProperties": false,
"required": ["may_replace", "num_clusters", "cluster_radius"],
"properties": {
"may_replace": {
"title": "May Replace",
"description": "List of blocks that the base cluster of a tree can replace.",
"type": "array",
"items": {
"$ref": "../../../general/block/reference.json"
}
},
"num_clusters": {
"title": "Num Clusters",
"description": "Number of clusters that can be generated.",
"type": "integer",
"minimum": 1
},
"cluster_radius": {
"title": "Clusters Radius",
"description": "Radius where the clusters that can be generated.",
"type": "integer",
"minimum": 0
}
}
},
"may_grow_on": {
"title": "May Grow On",
"description": "List of blocks where a tree can grow on.",
"type": "array",
"items": {
"$ref": "../../../general/block/reference.json"
}
},
"may_replace": {
"title": "May Reaplce",
"description": "List of blocks that a tree can replace.",
"type": "array",
"items": {
"$ref": "../../../general/block/reference.json"
}
},
"may_grow_through": {
"title": "May Grow Through",
"description": "List of blocks that a tree can grow through.",
"type": "array",
"items": {
"$ref": "../../../general/block/reference.json"
}
},
"acacia_trunk": {
"title": "Acacia Trunk",
"description": "Configutarion for the acacia trunk.",
"type": "object",
"additionalProperties": false,
"properties": {
"trunk_width": {
"$ref": "#/definitions/trunk_width"
},
"trunk_height": {
"title": "Trunk Height",
"description": "Configuration object for the trunk height.",
"type": "object",
"additionalProperties": false,
"properties": {
"base": {
"title": "Base",
"description": "Min height for the trunk.",
"type": "integer",
"minimum": 1
},
"intervals": {
"title": "Intervals",
"description": "Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.",
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 1
}
},
"min_height_for_canopy": {
"title": "Minimum Height For Canopy",
"description": "Min height where the canopy can be placed.",
"type": "integer",
"minimum": 1
}
}
},
"trunk_lean": {
"title": "Trunk Lean",
"description": "Configuration object for diagonal branches.",
"type": "object",
"additionalProperties": false,
"properties": {
"allow_diagonal_growth": {
"title": "Allow Diagonal Growth",
"description": "If true, diagonal branches will be created.",
"type": "boolean"
},
"lean_height": {
"title": "Lean Height",
"description": "Number of blocks below the tree height at which diagonal branches can be created.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"lean_steps": {
"title": "Lean Steps",
"description": "Number of steps taken in X/Z direction while creating a diagonal branch.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"lean_length": {
"title": "Lean Length",
"description": "Length for the diagonal branch in the Y axis.",
"$ref": "../../entities/format/types/range_number_type.json"
}
}
},
"trunk_block": {
"$ref": "#/definitions/trunk_block"
},
"branches": {
"title": "Branches",
"description": "Configuration object for branches.",
"type": "object",
"additionalProperties": false,
"properties": {
"branch_length": {
"title": "Branch Length",
"description": "Length for the branch in the Y axis.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"branch_position": {
"title": "Branch Position",
"description": "Starting Y position for the branch.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"branch_chance": {
"title": "Branch Chance",
"description": "Probability of creating a branch.",
"$ref": "../types/chance_information.json"
},
"branch_canopy": {
"$ref": "#/definitions/branch_canopy"
},
"trunk_decoration": {
"$ref": "#/definitions/decoration"
}
}
}
}
},
"cherry_trunk": {
"title": "Cherry Trunk",
"description": "Configutarion for the cherry trunk.",
"type": "object",
"additionalProperties": false,
"properties": {
"trunk_block": {
"$ref": "#/definitions/trunk_block"
},
"trunk_height": {
"title": "Trunk Height",
"description": "Configuration object for the trunk height.",
"type": "object",
"additionalProperties": false,
"properties": {
"base": {
"title": "Base",
"description": "Min height for the trunk.",
"type": "integer",
"minimum": 2
},
"intervals": {
"title": "Intervals",
"description": "Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.",
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 1
}
}
}
},
"branches": {
"title": "Branches",
"description": "Configuration object for branches.",
"type": "object",
"additionalProperties": false,
"properties": {
"tree_type_weights": {
"title": "Tree Type Weights",
"description": "Configuration object to pick a tree variant based on a weighted random number",
"type": "object",
"additionalProperties": false,
"properties": {
"one_branch": {
"title": "One Branch",
"description": "Tree variant with one branch.",
"type": "integer",
"minimum": 0
},
"two_branches": {
"title": "Two Branches",
"description": "Tree variant with two branches.",
"type": "integer",
"minimum": 0
},
"two_branches_and_trunk": {
"title": "Two Branches And Trunk",
"description": "Tree variant with three branch.",
"type": "integer",
"minimum": 0
}
}
},
"branch_horizontal_length": {
"title": "Branch Horizontal Length",
"description": "Branch length in X/Z axis.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"branch_start_offset_from_top": {
"title": "Branch Start Offset From Top",
"description": "Branch starting position relative to the top of the tree",
"$ref": "../../entities/format/types/range_number_type.json"
},
"branch_end_offset_from_top": {
"title": "Branch End Offset From Top",
"description": "Branch end position relative to the top of the tree",
"$ref": "../../entities/format/types/range_number_type.json"
},
"branch_chance": {
"title": "Branch Chance",
"description": "Probability of creating a branch.",
"$ref": "../types/chance_information.json"
},
"branch_canopy": {
"$ref": "#/definitions/branch_canopy"
}
}
}
}
},
"fallen_trunk": {
"title": "Fallen Trunk",
"description": "Configutarion for the fallen trunk.",
"type": "object",
"additionalProperties": false,
"properties": {
"log_length": {
"title": "Log Length",
"description": "Length of the fallen log.",
"type": "integer",
"minimum": 0
},
"stump_height": {
"title": "Stump Height",
"description": "height of the stump.",
"type": "integer",
"minimum": 0
},
"height_modifier": {
"title": "Height Modifier",
"description": "Modifier for the length of the fallen log.",
"type": "integer",
"minimum": 0
},
"trunk_block": {
"$ref": "#/definitions/trunk_block"
},
"log_decoration_feature": {
"title": "Log Decoration Feature",
"description": "Feature that can be used to decorate the fallen log.",
"type": "string",
"$ref": "../../../general/feature/identifier.json"
},
"trunk_decoration": {
"$ref": "#/definitions/decoration"
}
}
},
"fancy_trunk": {
"title": "Fancy Trunk",
"description": "Configutarion for the fancy trunk.",
"type": "object",
"additionalProperties": false,
"properties": {
"trunk_height": {
"title": "Trunk Height",
"description": "Configuration object for the trunk height.",
"type": "object",
"additionalProperties": false,
"properties": {
"base": {
"title": "Base",
"description": "Min height for the trunk.",
"type": "integer",
"minimum": 1
},
"variance": {
"title": "Variance",
"description": "Modifier for the trunk height.",
"type": "integer",
"minimum": 1
},
"scale": {
"title": "Scale",
"description": "Final tree height is multiplied by this scale.",
"type": "number",
"maximum": 1
}
}
},
"trunk_width": {
"$ref": "#/definitions/trunk_width"
},
"branches": {
"title": "Branches",
"description": "Configuration object for branches.",
"type": "object",
"additionalProperties": false,
"properties": {
"slope": {
"title": "Slope",
"description": "Slope for the branch, where 0 is horizontal and 1 is vertical.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"density": {
"title": "Density",
"description": "Density of foliage.",
"type": "number"
},
"min_altitude_factor": {
"title": "Min Altitude Factor",
"description": "Min height for branches. Represented by a percentage of the tree height.",
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
}
},
"trunk_block": {
"$ref": "#/definitions/trunk_block"
},
"width_scale": {
"title": "Width Scale",
"description": "Scale modifier for the tree radius.",
"type": "number",
"minimum": 0.0
},
"foliage_altitude_factor": {
"title": "Foliage Altitude Factor",
"description": "Min height for foliage. Represented by a percentage of the tree height.",
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
}
},
"mangrove_trunk": {
"title": "Mangrove Trunk",
"description": "Configutarion for the mangrove trunk.",
"type": "object",
"additionalProperties": false,
"properties": {
"trunk_width": {
"$ref": "#/definitions/trunk_width"
},
"trunk_height": {
"title": "Trunk Height",
"description": "Configuration object for the trunk height.",
"type": "object",
"additionalProperties": false,
"properties": {
"base": {
"title": "Base",
"description": "Min height for the trunk.",
"type": "integer",
"minimum": 1
},
"height_rand_a": {
"title": "Height Rand A",
"description": "Tree height modifier A.",
"type": "integer",
"minimum": 1
},
"height_rand_b": {
"title": "Height Rand B",
"description": "Tree height modifier B.",
"type": "integer",
"minimum": 1
}
}
},
"trunk_block": {
"$ref": "#/definitions/trunk_block"
},
"branches": {
"title": "Branches",
"description": "Configuration object for branches.",
"type": "object",
"additionalProperties": false,
"properties": {
"branch_length": {
"title": "Branch Length",
"description": "Length for the branch in the Y axis.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"branch_steps": {
"title": "Branch Steps",
"description": "Number of branches to place.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"branch_chance": {
"title": "Branch Chance",
"description": "Probability of creating a branch.",
"$ref": "../types/chance_information.json"
}
}
},
"trunk_decoration": {
"$ref": "#/definitions/decoration"
}
}
},
"mega_trunk": {
"title": "Mega Trunk",
"description": "Configutarion for the mega trunk.",
"type": "object",
"additionalProperties": false,
"properties": {
"trunk_width": {
"$ref": "#/definitions/trunk_width"
},
"trunk_height": {
"title": "Trunk Height",
"description": "Configuration object for the trunk height.",
"type": "object",
"additionalProperties": false,
"properties": {
"base": {
"title": "Base",
"description": "Min height for the trunk.",
"type": "integer",
"minimum": 1
},
"intervals": {
"title": "Intervals",
"description": "Intervals used to randomize the trunk height, the value of each interval will create a random number where (0 <= rand < interval)), and will be added to the height.",
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 1
}
},
"min_height_for_canopy": {
"title": "Minimum Height For Canopy",
"description": "Min height where the canopy can be placed.",
"type": "integer",
"minimum": 1
}
}
},
"trunk_block": {
"$ref": "#/definitions/trunk_block"
},
"trunk_decoration": {
"$ref": "#/definitions/decoration"
},
"branches": {
"title": "Branches",
"description": "Configuration object for branches.",
"type": "object",
"additionalProperties": false,
"properties": {
"branch_length": {
"title": "Branch Length",
"description": "Length for the branch.",
"type": "integer",
"minimum": 1
},
"branch_slope": {
"title": "Branch Slope",
"description": "Slope for the branch, where 0 is horizontal and 1 is vertical.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"branch_interval": {
"title": "Branch Interval",
"description": "Randomized distance between branches.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"branch_altitude_factor": {
"title": "Branch Altitude Factor",
"description": "Altitude at which branches can spawn, relative to the tree height.",
"type": "object",
"additionalProperties": false,
"properties": {
"min": {
"title": "Min",
"description": "Min altitude where branches can spawn.",
"type": "number",
"minimum": 0.0,
"maximum": 1.0
},
"max": {
"title": "Max",
"description": "Max altitude where branches can spawn.",
"type": "number",
"minimum": 0.0,
"maximum": 1.0
}
}
},
"branch_canopy": {
"$ref": "#/definitions/branch_canopy"
}
}
}
}
},
"trunk": {
"title": "Trunk",
"description": "Configutarion for the normal trunk.",
"type": "object",
"additionalProperties": false,
"properties": {
"trunk_height": {
"title": "Trunk Height",
"description": "Defines the height of the trunk.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"height_modifier": {
"title": "Height Modifier",
"description": "Modifier for the height of the trunk.",
"$ref": "../../entities/format/types/range_number_type.json"
},
"can_be_submerged": {
"title": "Can Be Submerged",
"description": "Specifies if the trunk can be submerged.",
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"properties": {
"max_depth": {
"title": "Max Depth",
"description": "Defines the max depth at which the trunk can be submerged.",
"type": "integer",
"minimum": 1
}
}
},
{
"type": "boolean"
}
]
},
"trunk_block": {
"$ref": "#/definitions/trunk_block"
},
"trunk_decoration": {
"$ref": "#/definitions/decoration"
}
}
},
"acacia_canopy": {
"title": "Acacia Canopy",
"description": "Configuration object for the acacia canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_size": {
"title": "Canopy Size",
"description": "The size of the canopy.",
"type": "integer",
"minimum": 1
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
},
"simplify_canopy": {
"$ref": "#/definitions/simplify_canopy"
}
}
},
"canopy": {
"title": "Canopy",
"description": "Configuration object for the normal canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_offset": {
"title": "Canopy Offset",
"description": "Canopy position offset relative to the block above the trunk.",
"type": "object",
"additionalProperties": false,
"properties": {
"min": {
"title": "Min",
"description": "Min canopy position offset.",
"type": "integer"
},
"max": {
"title": "Max",
"description": "Max canopy position offset.",
"type": "integer"
}
}
},
"min_width": {
"title": "Min Width",
"description": "Min width for the canopy.",
"type": "integer",
"minimum": 0
},
"canopy_slope": {
"title": "Canopy Slope",
"description": "Configuration object for the canopy slope.",
"type": "object",
"additionalProperties": false,
"properties": {
"rise": {
"title": "Rise",
"description": "The numerator for the slope fraction.",
"type": "integer",
"minimum": 1
},
"run": {
"title": "Run",
"description": "The denominator for the slope fraction.",
"type": "integer",
"minimum": 1
}
}
},
"variation_chance": {
"title": "Variation Chance",
"description": "Determines the chance of creating leaf blocks for every layer of the canopy. Larger numbers create a denser tree.",
"oneOf": [
{ "$ref": "../types/chance_information.json" },
{
"type": "array",
"items": {
"$ref": "../types/chance_information.json"
}
}
]
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
},
"canopy_decoration": {
"title": "Canopy Decoration",
"description": "Configuration object for the canopy decoration.",
"type": "object",
"additionalProperties": false,
"properties": {
"decoration_chance": {
"title": "Decoration Chance",
"description": "Probability of decorating the trunk.",
"$ref": "../types/chance_information.json"
},
"decoration_block": {
"title": "Decoration Block",
"description": "The block used for decorating the trunk.",
"type": "string",
"$ref": "../../../general/block/reference.json"
},
"num_steps": {
"title": "Num Steps",
"description": "Number of decoration blocks to place.",
"type": "integer",
"minimum": 0
},
"step_direction": {
"title": "Step Direction",
"description": "Directions to spread decoration blocks.",
"type": "string",
"enum": ["down", "up", "out", "away"]
}
}
}
}
},
"cherry_canopy": {
"title": "Cherry Canopy",
"description": "Configuration object for the cherry canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"leaf_block": {
"$ref": "#/definitions/leaf_block"
},
"height": {
"$ref": "#/definitions/height"
},
"radius": {
"$ref": "#/definitions/radius"
},
"trunk_width": {
"$ref": "#/definitions/trunk_width"
},
"wide_bottom_layer_hole_chance": {
"title": "Wide Bottom Layer Hole Chance",
"description": "Probability of the canopy having a hole in the bottom layer.",
"$ref": "../types/chance_information.json"
},
"corner_hole_chance": {
"title": "Corner Hole Chance",
"description": "Probability of the canopy having a hole in the corner.",
"$ref": "../types/chance_information.json"
},
"hanging_leaves_chance": {
"title": "Hanging Leaves Chance",
"description": "Probability of the canopy having hanging leaves",
"$ref": "../types/chance_information.json"
},
"hanging_leaves_extension_chance": {
"title": "Hanging Leaves Extension Chance",
"description": "Probability of hanging leaves extending further down",
"$ref": "../types/chance_information.json"
}
}
},
"fancy_canopy": {
"title": "Fancy Canopy",
"description": "Configuration object for the fancy canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"height": {
"$ref": "#/definitions/height"
},
"radius": {
"$ref": "#/definitions/radius"
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"mangrove_canopy": {
"title": "Mangrove Canopy",
"description": "Configuration object for the mangrove canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_height": {
"$ref": "#/definitions/height"
},
"canopy_radius": {
"$ref": "#/definitions/radius"
},
"leaf_placement_attempts": {
"title": "Leaf Placement Attempts",
"description": "Max number of attempts to create leaf blocks.",
"type": "integer",
"minimum": 1
},
"leaf_blocks": {
"title": "Leaf Blocks",
"description": "The blocks that form the canopy of the tree",
"type": "array",
"minItems": 1,
"items": [
{
"$ref": "#/definitions/leaf_block"
},
{
"title": "Weight",
"description": "Weight used in random selection. Value is relative to other weights in the collection.",
"type": "number",
"minimum": 0
}
]
},
"canopy_decoration": {
"$ref": "#/definitions/decoration"
},
"hanging_block": {
"title": "Hanging Block",
"description": "The block to be used as a hanging block.",
"$ref": "../../../general/block/reference.json"
},
"hanging_block_placement_chance": {
"title": "Hanging Block Placement Chance",
"description": "Probability of creating a hanging leaf block.",
"$ref": "../types/chance_information.json"
}
}
},
"mega_canopy": {
"title": "Mega Canopy",
"description": "Configuration object for the mega canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_height": {
"$ref": "#/definitions/height"
},
"base_radius": {
"$ref": "#/definitions/radius"
},
"core_width": {
"title": "Core Width",
"description": "Width of the tree trunk.",
"type": "number",
"minimum": 1
},
"simplify_canopy": {
"$ref": "#/definitions/simplify_canopy"
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"mega_pine_canopy": {
"title": "Mega Pine Canopy",
"description": "Configuration object for the mega pine canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_height": {
"$ref": "#/definitions/height"
},
"base_radius": {
"$ref": "#/definitions/radius",
"minimum": 0
},
"radius_step_modifier": {
"title": "Radius Step Modifier",
"description": "Modifier for the base radius of the canopy.",
"type": "number",
"minimum": 0
},
"core_width": {
"title": "Core Width",
"description": "Width of the tree trunk.",
"type": "number",
"minimum": 1
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"pine_canopy": {
"title": "Pine Canopy",
"description": "Configuration object for the pine canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"height": {
"$ref": "#/definitions/height"
},
"radius": {
"$ref": "#/definitions/radius"
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"roofed_canopy": {
"title": "Roofed Canopy",
"description": "Configuration object for the roofed canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_height": {
"title": "Canopy Height",
"description": "Roofed canopies feature a base and a top layer, and an extra cap layer on some occasions, this value controls the number of layers in the middle.",
"type": "integer",
"minimum": 3
},
"core_width": {
"title": "Core Width",
"description": "Width of the tree trunk.",
"type": "integer",
"minimum": 1
},
"outer_radius": {
"title": "Outer Radius",
"description": "Radius used for the base and top layers.",
"type": "integer",
"minimum": 0
},
"inner_radius": {
"title": "Inner Radius",
"description": "Radius used for the middle layers.",
"type": "integer",
"minimum": 0
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"spruce_canopy": {
"title": "Spruce Canopy",
"description": "Configuration object for the spruce canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"lower_offset": {
"title": "Lower Offset",
"description": "Min canopy position offset.",
"type": "integer",
"minimum": 0
},
"upper_offset": {
"title": "Upper Offset",
"description": "Max canopy position offset.",
"type": "integer",
"minimum": 0
},
"max_radius": {
"title": "Max Radius",
"description": "Max radius of the canopy.",
"type": "integer",
"minimum": 0
},
"leaf_block": {
"$ref": "#/definitions/leaf_block"
}
}
},
"random_spread_canopy": {
"title": "Random Spread Canopy",
"description": "Configuration object for the random spread canopy.",
"type": "object",
"additionalProperties": false,
"properties": {
"canopy_height": {
"$ref": "#/definitions/height"
},
"canopy_radius": {
"$ref": "#/definitions/radius"
},
"leaf_placement_attempts": {
"title": "Leaf Placement Attempts",
"description": "Max number of attempts to create leaf blocks.",
"type": "integer",
"minimum": 1
},
"leaf_blocks": {
"title": "Leaf Blocks",
"description": "The blocks that form the canopy of the tree",
"type": "array",
"minItems": 1,
"items": [
{
"$ref": "#/definitions/leaf_block"
},
{
"title": "Weight",
"description": "Weight used in random selection. Value is relative to other weights in the collection.",
"type": "number",
"minimum": 0
}
]
}
}
},
"mangrove_roots": {
"title": "Mangrove Roots",
"description": "Configuration for mangrove roots",
"type": "object",
"additionalProperties": false,
"properties": {
"max_root_width": {
"title": "Max Root Width",
"description": "Max width that the roots can occupy. The width increases up to the max width while moving downwards. When a max width is reached, roots will grow vertically",
"type": "integer",
"minimum": 1
},
"max_root_length": {
"title": "Max Root Length",
"description": "Max length that the roots can occupy.",
"type": "integer",
"minimum": 1
},
"root_block": {
"title": "Root Block",
"description": "Block used for roots.",
"type": "string",
"$ref": "../../../general/block/reference.json"
},
"above_root": {
"title": "Above Root",
"description": "Configuration object for blocks decorating the top of the roots",
"type": "object",
"additionalProperties": false,
"properties": {
"above_root_chance": {
"title": "Above Root Chance",
"description": "Probability of creating a block above the root",
"$ref": "../types/chance_information.json"
},
"above_root_block": {
"title": "Above Root Block",
"description": "The block placed on the top of the roots.",
"type": "string",
"$ref": "../../../general/block/reference.json"
},
"muddy_root_block": {
"title": "Muddy Root Block",
"description": "The block used for muddy roots.",
"type": "string",
"$ref": "../../../general/block/reference.json"
},
"mud_block": {
"title": "Mud Block",
"description": "The block used to determine if a muddy root should be placed.",
"type": "string",
"$ref": "../../../general/block/reference.json"
},
"y_offset": {
"title": "Y Offset",
"description": "Root offset from the trunk",
"$ref": "../../entities/format/types/range_number_type.json"
},
"roots_may_grow_through": {
"title": "Roots May Grow Through",
"description": "List of blocks that a root can grow through.",
"type": "array",
"items": {
"$ref": "../../../general/block/reference.json"
}
},
"root_decoration": {
"$ref": "#/definitions/decoration"
}
}
}
}
}
}
}