* - Added replacements for enderman block place/take behaviors
* - Added transport items goal
* - Added grass_is_shaded property
* - Removed experimental tag for movable component
* - Remove experimental tag from random offset
* - Added can_wear_armor field
* - Added "none" heightmap projection
* - Improved descriptions for jigsaw rule
* - Added blockstate and random block state predicates
* - Improve rule descriptions
* - Added min and max values for terrain texture variations
* - Update template pool with empty pool
* - Improved surface builder component
* - Added humidity biome component
* - Added partially frozen biome component
* - Renamed to rotation_axis_aligned
* - Added map_tints biome component
This commit is contained in:
Xterionix
2025-08-08 18:59:24 +05:00
committed by GitHub
parent b2f33a0ca9
commit 5503ea5612
25 changed files with 662 additions and 345 deletions

View File

@@ -28,7 +28,8 @@
"title": "Heightmap Projection",
"description": "Heightmap used to calculate the relative start height. For example, a heightmap_projection of ocean_floor and a start_height of 10 means the Jigsaw Structure will begin generating 10 blocks above the ocean floor.",
"type": "string",
"enum": ["ocean_floor", "world_surface"]
"default": "none",
"enum": ["ocean_floor", "world_surface", "none"]
},
"max_depth": {
"title": "Max Depth",

View File

@@ -2,38 +2,6 @@
"title": "Rule",
"type": "object",
"definitions": {
"block_specifier": {
"anyOf": [
{
"$ref": "../../../../../general/block/identifier.json"
},
{
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"$ref": "../../../../../general/block/identifier.json"
},
"states": {
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "boolean"
},
{
"type": "integer"
},
{
"type": "string"
}
]
}
}
}
}
]
},
"rule": {
"properties": {
"block_entity_modifier": {
@@ -59,6 +27,12 @@
},
{
"$ref": "#/definitions/tag_match"
},
{
"$ref": "#/definitions/blockstate_match"
},
{
"$ref": "#/definitions/random_blockstate_match"
}
]
},
@@ -75,11 +49,17 @@
},
{
"$ref": "#/definitions/tag_match"
},
{
"$ref": "#/definitions/blockstate_match"
},
{
"$ref": "#/definitions/random_blockstate_match"
}
]
},
"output_state": {
"$ref": "#/definitions/block_specifier"
"$ref": "../../../../../general/block/reference.json"
},
"position_predicate": {
"oneOf": [
@@ -98,19 +78,18 @@
},
"append_loot": {
"title": "Append Loot",
"description": "",
"description": "Modifier will attempt to add loot to a block entity.",
"type": "object",
"additionalProperties": false,
"required": [ "type", "loot_table" ],
"properties": {
"loot_table": {
"title": "Loot Table",
"description": "",
"description": "The loot table to append",
"type": "string"
},
"type": {
"title": "Type",
"description": "",
"type": "string",
"const": "minecraft:append_loot"
}
@@ -118,14 +97,13 @@
},
"passthrough": {
"title": "Passthrough",
"description": "",
"description": "Modifier that leaves the state unchanged. This is the default block modifier if no other block modifier is specified.",
"type": "object",
"additionalProperties": false,
"required": [ "type" ],
"properties": {
"type": {
"title": "Type",
"description": "",
"type": "string",
"const": "minecraft:passthrough"
}
@@ -133,7 +111,7 @@
},
"always_true": {
"title": "Always True",
"description": "",
"description": "Predicate that always evaluates to true. This is the default predicate if no other predicate is specified.",
"type": "object",
"additionalProperties": false,
"required": [ "predicate_type" ],
@@ -147,6 +125,7 @@
},
"block_match": {
"title": "Block Match",
"description": "Predicate that evaluates to true if the block at the specified location matches the specified block.",
"type": "object",
"properties": {
"block": {
@@ -165,6 +144,7 @@
},
"random_block_match": {
"title": "Random Block Match",
"description": "Predicate that evaluates to true with a given probability if the block at the specified location matches the specified block.",
"type": "object",
"properties": {
"block": {
@@ -177,6 +157,7 @@
},
"probability": {
"type": "number",
"description": "Probability of the evaluating to true when the block matches.",
"minimum": 0.0,
"exclusiveMaximum": 1.0
}
@@ -189,6 +170,7 @@
},
"tag_match": {
"title": "Tag Match",
"description": "Predicate that evaluates to true if the block at the specified location contains the tag.",
"type": "object",
"properties": {
"predicate_type": {
@@ -197,6 +179,8 @@
"const": "minecraft:tag_match"
},
"tag": {
"title": "Tag",
"description": "The tag to be matched.",
"type": "string"
}
},
@@ -205,8 +189,54 @@
"tag"
]
},
"blockstate_match": {
"title": "BlockState Match",
"description": "Predicate that evaluates to true if the block at the specified location matches the specified block.",
"type": "object",
"properties": {
"block_state": {
"$ref": "../../../../../general/block/reference.json"
},
"predicate_type": {
"title": "Predicate Type",
"type": "string",
"const": "minecraft:blockstate_match"
}
},
"required": [
"block_state",
"predicate_type"
]
},
"random_blockstate_match": {
"title": "Random BlockState Match",
"description": "Predicate that evaluates to true with a given probability if the block at the specified location matches the specified block.",
"type": "object",
"properties": {
"block_state": {
"$ref": "../../../../../general/block/reference.json"
},
"predicate_type": {
"title": "Predicate Type",
"type": "string",
"const": "minecraft:random_blockstate_match"
},
"probability": {
"type": "number",
"description": "Probability of the evaluating to true when the block matches.",
"minimum": 0.0,
"exclusiveMaximum": 1.0
}
},
"required": [
"block_state",
"predicate_type",
"probability"
]
},
"axis_aligned_linear_pos": {
"title": "Axis Aligned Linear",
"description": "Predicate that evalutes to true if the block is within the distance range along the provided axis and and random number is generated between chance range.",
"type": "object",
"properties": {
"axis": {
@@ -247,7 +277,6 @@
},
"predicate_type": {
"title": "Predicate Type",
"description": "",
"type": "string",
"const": "minecraft:axis_aligned_linear_pos"
}

View File

@@ -14,31 +14,57 @@
"element": {
"title": "Element",
"description": "A grouping of a Structure Template, the Processor List to use when placing the structure, and its weight that determines the likelihood of the element being chosen.",
"type": "object",
"properties": {
"element_type": {
"title": "Element Type",
"description": " The type of element.",
"type": "string",
"const": "minecraft:single_pool_element"
"oneOf": [
{
"$ref": "#/definitions/empty_element"
},
"location": {
"title": "Location",
"description": "The path of the structure file. This path is relative to the behavior pack's \"structures\" folder.",
"type": "string"
},
"processors": {
"title": "Processors",
"description": "The identifier of the processor list to use when placing the structure.",
"type": "string"
{
"$ref": "#/definitions/single_element"
}
},
"required": [
"element_type",
"location",
"processors"
]
},
"weight": {
"title": "Weight",
"description": "The weighted probability of choosing the element from the pool. For example, a template pool containing 2 structures with weights of 1 and 3 will have a 25% and 75% chance of being chosen respectively.",
"type": "integer",
"minimum": 1.0,
"maximum": 200.0
}
}
},
"empty_element": {
"type": "object",
"properties": {
"element_type": {
"title": "Element Type",
"description": " The type of element.",
"type": "string",
"const": "minecraft:empty_pool_element"
}
},
"required": [
"element_type"
]
},
"single_element": {
"type": "object",
"properties": {
"element_type": {
"title": "Element Type",
"description": " The type of element.",
"type": "string",
"const": "minecraft:single_pool_element"
},
"location": {
"title": "Location",
"description": "The path of the structure file. This path is relative to the behavior pack's \"structures\" folder.",
"type": "string"
},
"processors": {
"title": "Processors",
"description": "The identifier of the processor list to use when placing the structure.",
"type": "string"
},
"projection": {
"title": "Projection",
"description": "Specifies how structures should be placed relative to the terrain.",
@@ -54,15 +80,12 @@
"description": "Structures are placed relative to the terrain height. Structure blocks will adjust along the Y axis to match the ground."
}
]
},
"weight": {
"title": "Weight",
"description": "The weighted probability of choosing the element from the pool. For example, a template pool containing 2 structures with weights of 1 and 3 will have a 25% and 75% chance of being chosen respectively.",
"type": "integer",
"minimum": 1.0,
"maximum": 200.0
}
}
},
"required": [
"element_type",
"location"
]
}
},
"required": [ "description", "elements" ],
@@ -87,7 +110,7 @@
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/definitions/template_pool_element"
}
},
"fallback": {