Files
minecraft-bedrock-json-schemas/source/behavior/feature_rules/format/minecraft.feature_rules.json

171 lines
6.1 KiB
JSON
Raw Normal View History

{
"$id": "blockception.minecraft.behavior.feature_rules.minecraft.feature_rules",
"type": "object",
"title": "Feature Rules",
"additionalProperties": false,
"definitions": {
"coord_dist": {
"title": "",
"description": "UNDOCUMENTED.",
"$comment": "UNDOCUMENTED",
"oneOf": [
{
"$ref": "../../../molang/number.json",
"description": "Expression for the coordinate (evaluated each iteration). Mutually exclusive with random distribution object below."
},
{
"type": "object",
"description": "Distribution for the coordinate (evaluated each iteration). Mutually exclusive with Molang expression above.",
"additionalProperties": false,
"examples": [ { "numerator": 1, "denominator": 1 } ],
"properties": {
"numerator": {
"title": "Numerator",
"description": "UNDOCUMENTED.",
"$comment": "UNDOCUMENTED",
"type": "number",
"minimum": 1
},
"denominator": {
"title": "Denominator",
"description": "UNDOCUMENTED.",
"$comment": "UNDOCUMENTED",
"type": "number",
"minimum": 1
}
}
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"distribution": {
"title": "Distribution",
"description": "Distribution type",
"type": "string",
"enum": ["uniform", "fixed_grid", "jittered_grid", "gaussian", "inverse_gaussian", "triangle"]
},
"extent": {
"title": "Extent",
"description": "Represents the range of values on which that distribution operates, from minimum to maximum.",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "number"
}
}
}
}
]
}
},
"properties": {
"description": {
"title": "Description",
"description": "The description of this feature rule.",
"type": "object",
"additionalProperties": false,
"required": [ "identifier", "places_feature" ],
"properties": {
"identifier": {
"title": "Identifier",
"description": "The name of this feature in the form `namespace_name:feature_name`. `feature_name` must match the filename.",
"type": "string",
"$ref": "../../../general/feature/identifier.json"
},
"places_feature": {
"title": "Places Feature",
"description": "Named reference to the feature controlled by this rule.",
"type": "string"
}
}
},
"conditions": {
"title": "Conditions",
"description": "Parameters to control where and when the feature will be placed.",
"type": "object",
"additionalProperties": false,
"required": [ "placement_pass" ],
"properties": {
"placement_pass": {
"title": "Placement Pass",
"description": "When the feature should be placed relative to others. Earlier passes in the list are guaranteed to occur before later passes. Order is not guaranteed within each pass.",
"type": "string",
"enum": [
"pregeneration_pass",
"first_pass",
"before_underground_pass",
"underground_pass",
"after_underground_pass",
"before_surface_pass",
"surface_pass",
"after_surface_pass",
"before_sky_pass",
"sky_pass",
"after_sky_pass",
"final_pass"
]
},
"minecraft:biome_filter": {
"title": "Biome Filter",
"description": "List of filter tests to determine which biomes this rule will attach to.",
"$ref": "../../entities/filters/filters.json"
}
}
},
"distribution": {
"title": "Distribution",
"description": "Parameters controlling the initial scatter of the feature.",
"type": "object",
"additionalProperties": false,
"required": [ "iterations" ],
"properties": {
"coordinate_eval_order": {
"title": "Coordinate Eval Order",
"description": "The order in which coordinates will be evaluated. Should be used when a coordinate depends on another. If omitted, defaults to `xzy`.",
"type": "string",
"enum": [ "xyz", "xzy", "yxz", "yzx", "zxy", "zyx" ]
},
"iterations": {
"title": "Iterations",
"description": "Number of scattered positions to generate.",
"$ref": "../../../molang/number.json"
},
"scatter_chance": {
"title": "Scatter Chance",
"oneOf": [
{
"$ref": "../../../molang/number.json",
"description": "Probability (0-100] that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will."
},
{
"type": "object",
"description": "Probability numerator / denominator that this scatter will occur. Not evaluated each iteration; either no iterations will run, or all will.",
"additionalProperties": false,
"properties": {
"numerator": {
"title": "Numerator",
"description": "UNDOCUMENTED.",
"$comment": "UNDOCUMENTED",
"type": "number",
"minimum": 1
},
"denominator": {
"title": "Denominator",
"description": "UNDOCUMENTED.",
"$comment": "UNDOCUMENTED",
"type": "number",
"minimum": 1
}
}
}
]
},
"x": { "title": "X", "$ref": "#/definitions/coord_dist" },
"z": { "title": "Y", "$ref": "#/definitions/coord_dist" },
"y": { "title": "Z", "$ref": "#/definitions/coord_dist" }
}
}
}
}