* - 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

@@ -1,41 +0,0 @@
{
"$id": "blockception.minecraft.behavior.biomes.minecraft.capped_surface",
"title": "Capped Surface",
"description": "Generates surface on blocks with non-solid blocks above or below.",
"type": "object",
"additionalProperties": false,
"required": ["floor_materials", "ceiling_materials", "sea_material", "foundation_material"],
"properties": {
"ceiling_materials": {
"title": "Ceiling Materials",
"description": "Materials used for the surface ceiling.",
"minItems": 1,
"items": {
"$ref": "../../../../general/block/reference.json"
}
},
"floor_materials": {
"title": "Floor Materials",
"description": "Materials used for the surface floor.",
"minItems": 1,
"items": {
"$ref": "../../../../general/block/reference.json"
}
},
"sea_material": {
"title": "Sea Material",
"description": "Material used to replace air blocks below sea level.",
"$ref": "../../../../general/block/reference.json"
},
"foundation_material": {
"title": "Foundation Material",
"description": "Material used to repalce solid blocks that are not surface blocks.",
"$ref": "../../../../general/block/reference.json"
},
"beach_material": {
"title": "Beach Material",
"description": "Material used to decorate surface near sea level.",
"$ref": "../../../../general/block/reference.json"
}
}
}

View File

@@ -1,40 +0,0 @@
{
"$id": "blockception.minecraft.behavior.biomes.minecraft.frozen_ocean_surface",
"title": "Frozen Ocean Surface",
"description": "Similar to overworld_surface. Adds icebergs.",
"type": "object",
"additionalProperties": false,
"required": ["top_material", "mid_material", "sea_floor_material", "foundation_material", "sea_material", "sea_floor_depth"],
"properties": {
"top_material": {
"title": "Top Material",
"description": "Controls the block type used for the surface of this biome.",
"$ref": "../../../../general/block/reference.json"
},
"mid_material": {
"title": "Mid Material",
"description": "Controls the block type used in a layer below the surface of this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_floor_material": {
"title": "Sea Floor Material",
"description": "Controls the block type used as a floor for bodies of water in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"foundation_material": {
"title": "Foundation Material",
"description": "Controls the block type used deep underground in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_material": {
"title": "Sea Material",
"description": "Controls the block type used for the bodies of water in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_floor_depth": {
"title": "Sea Floor Depth",
"description": "Controls how deep below the world water level the floor should occur.",
"type": "integer"
}
}
}

View File

@@ -0,0 +1,16 @@
{
"$id": "blockception.minecraft.behavior.biomes.minecraft.humidity",
"title": "Humidity",
"description": "Forces a biome to ether always be humid or never humid. Humidity effects the spread chance, and spread rate of fire in the biome",
"type": "object",
"additionalProperties": false,
"required": ["is_humid"],
"properties": {
"is_humid": {
"title": "Is Humid",
"description": "Whether or not the biome is humid.",
"type": "boolean",
"default": false
}
}
}

View File

@@ -0,0 +1,78 @@
{
"$id": "blockception.minecraft.behavior.biomes.minecraft.map_tints",
"title": "Map Tints",
"description": "Sets the color grass and foliage will be tinted by in this biome on the map.",
"type": "object",
"additionalProperties": false,
"required": [ "grass" ],
"definitions": {
"color": {
"oneOf": [
{
"type": "string",
"pattern": "^#[a-fA-F0-9]{6}$"
},
{
"type": "array",
"items": {
"type": "integer"
},
"minItems": 3,
"maxItems": 3
}
]
},
"tint": {
"type": "object",
"properties": {
"tint": {
"description": "Tint color used in this biome on the map.",
"$ref": "#/definitions/color"
},
"type": {
"title": "GrassType",
"description": "Controls the type of grass tint to use.",
"type": "string",
"const": "tint"
}
},
"required": [
"tint",
"type"
]
},
"noise": {
"type": "object",
"properties": {
"type": {
"title": "GrassType",
"description": "Controls the type of grass tint to use.",
"type": "string",
"const": "noise"
}
},
"required": [
"type"
]
}
},
"properties": {
"grass": {
"title": "Grass",
"description": "Controls whether the grass will use a custom tint color or a noise based tint color.",
"oneOf": [
{
"$ref": "#/definitions/tint"
},
{
"$ref": "#/definitions/noise"
}
]
},
"foliage": {
"title": "Foliage",
"description": "Sets the color foliage will be tinted by in this biome on the map.",
"$ref": "#/definitions/color"
}
}
}

View File

@@ -1,71 +0,0 @@
{
"$id": "blockception.minecraft.behavior.biomes.minecraft.mesa_surface",
"title": "Mesa Surface",
"description": "Similar to overworld_surface. Adds colored strata and optional pillars.",
"type": "object",
"additionalProperties": false,
"required": [
"top_material",
"mid_material",
"bryce_pillars",
"clay_material",
"foundation_material",
"hard_clay_material",
"has_forest",
"sea_floor_depth",
"sea_floor_material",
"sea_material"
],
"properties": {
"top_material": {
"title": "Top Material",
"description": "Controls the block type used for the surface of this biome.",
"$ref": "../../../../general/block/reference.json"
},
"mid_material": {
"title": "Mid Material",
"description": "Controls the block type used in a layer below the surface of this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_floor_material": {
"title": "Sea Floor Material",
"description": "Controls the block type used as a floor for bodies of water in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"foundation_material": {
"title": "Foundation Material",
"description": "Controls the block type used deep underground in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_material": {
"title": "Sea Material",
"description": "Controls the block type used for the bodies of water in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_floor_depth": {
"title": "Sea Floor Depth",
"description": "Controls how deep below the world water level the floor should occur.",
"type": "integer"
},
"clay_material": {
"title": "Clay Material",
"description": "Base clay block to use.",
"$ref": "../../../../general/block/reference.json"
},
"hard_clay_material": {
"title": "Hard Clay Material",
"description": "Hardened clay block to use.",
"$ref": "../../../../general/block/reference.json"
},
"bryce_pillars": {
"title": "Bryce Pillars",
"description": "Whether the mesa generates with pillars.",
"type": "boolean"
},
"has_forest": {
"title": "Has Forest",
"description": "Places coarse dirt and grass at high altitudes.",
"type": "boolean"
}
}
}

View File

@@ -0,0 +1,8 @@
{
"$id": "blockception.minecraft.behavior.biomes.minecraft.partially_frozen",
"title": "Partially Frozen",
"description": "Component will impact the temperature in a frozen biome, causing some areas to not be frozen. Ex: patchy ice, patchy snow",
"type": "object",
"additionalProperties": false,
"properties": {}
}

View File

@@ -3,7 +3,7 @@
"title": "Surface Builder",
"description": "Controls the materials used for terrain generation.",
"type": "object",
"required": ["builder"],
"required": [ "builder" ],
"additionalProperties": false,
"properties": {
"builder": {
@@ -11,11 +11,28 @@
"description": "Controls the block types used for terrain generation.",
"type": "object",
"additionalProperties": false,
"required": ["type"],
"required": [ "type" ],
"properties": {
"type": {
"enum": ["minecraft:overworld", "minecraft:frozen_ocean", "minecraft:mesa", "minecraft:swamp", "minecraft:capped", "minecraft:the_end"]
"enum": [ "minecraft:overworld", "minecraft:frozen_ocean", "minecraft:mesa", "minecraft:swamp", "minecraft:capped", "minecraft:the_end" ]
}
},
"allOf": [
{
"if": {
"properties": {
"type": {
"anyOf": [
{ "const": "minecraft:overworld" },
{ "const": "minecraft:frozen_ocean" },
{ "const": "minecraft:swamp" }
]
}
}
},
"then": {
"required": [ "top_material", "mid_material", "sea_floor_material", "foundation_material", "sea_material", "sea_floor_depth" ],
"properties": {
"top_material": {
"title": "Top Material",
"description": "Controls the block type used for the surface of this biome.",
@@ -48,5 +65,117 @@
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "minecraft:mesa"
}
}
},
"then": {
"required": [ "top_material", "mid_material", "bryce_pillars", "clay_material", "foundation_material", "hard_clay_material", "has_forest", "sea_floor_depth", "sea_floor_material", "sea_material" ],
"properties": {
"top_material": {
"title": "Top Material",
"description": "Controls the block type used for the surface of this biome.",
"$ref": "../../../../general/block/reference.json"
},
"mid_material": {
"title": "Mid Material",
"description": "Controls the block type used in a layer below the surface of this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_floor_material": {
"title": "Sea Floor Material",
"description": "Controls the block type used as a floor for bodies of water in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"foundation_material": {
"title": "Foundation Material",
"description": "Controls the block type used deep underground in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_material": {
"title": "Sea Material",
"description": "Controls the block type used for the bodies of water in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_floor_depth": {
"title": "Sea Floor Depth",
"description": "Controls how deep below the world water level the floor should occur.",
"type": "integer"
},
"clay_material": {
"title": "Clay Material",
"description": "Base clay block to use.",
"$ref": "../../../../general/block/reference.json"
},
"hard_clay_material": {
"title": "Hard Clay Material",
"description": "Hardened clay block to use.",
"$ref": "../../../../general/block/reference.json"
},
"bryce_pillars": {
"title": "Bryce Pillars",
"description": "Whether the mesa generates with pillars.",
"type": "boolean"
},
"has_forest": {
"title": "Has Forest",
"description": "Places coarse dirt and grass at high altitudes.",
"type": "boolean"
}
}
}
},
{
"if": {
"properties": {
"type": {
"const": "minecraft:capped"
}
}
},
"then": {
"required": [ "floor_materials", "ceiling_materials", "sea_material", "foundation_material" ],
"properties": {
"ceiling_materials": {
"title": "Ceiling Materials",
"description": "Materials used for the surface ceiling.",
"minItems": 1,
"items": {
"$ref": "../../../../general/block/reference.json"
}
},
"floor_materials": {
"title": "Floor Materials",
"description": "Materials used for the surface floor.",
"minItems": 1,
"items": {
"$ref": "../../../../general/block/reference.json"
}
},
"sea_material": {
"title": "Sea Material",
"description": "Material used to replace air blocks below sea level.",
"$ref": "../../../../general/block/reference.json"
},
"foundation_material": {
"title": "Foundation Material",
"description": "Material used to repalce solid blocks that are not surface blocks.",
"$ref": "../../../../general/block/reference.json"
},
"beach_material": {
"title": "Beach Material",
"description": "Material used to decorate surface near sea level.",
"$ref": "../../../../general/block/reference.json"
}
}
}
}
]
}
}
}

View File

@@ -1,40 +0,0 @@
{
"$id": "blockception.minecraft.behavior.biomes.minecraft.swamp_surface",
"title": "Swamp Surface",
"description": "Similar to overworld_surface. Adds swamp surface details.",
"type": "object",
"required": ["foundation_material", "mid_material", "sea_floor_depth", "sea_floor_material", "sea_material", "top_material"],
"additionalProperties": false,
"properties": {
"top_material": {
"title": "Top Material",
"description": "Controls the block type used for the surface of this biome.",
"$ref": "../../../../general/block/reference.json"
},
"mid_material": {
"title": "Mid Material",
"description": "Controls the block type used in a layer below the surface of this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_floor_material": {
"title": "Sea Floor Material",
"description": "Controls the block type used as a floor for bodies of water in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"foundation_material": {
"title": "Foundation Material",
"description": "Controls the block type used deep underground in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_material": {
"title": "Sea Material",
"description": "Controls the block type used for the bodies of water in this biome.",
"$ref": "../../../../general/block/reference.json"
},
"sea_floor_depth": {
"title": "Sea Floor Depth",
"description": "Controls how deep below the world water level the floor should occur.",
"type": "integer"
}
}
}

View File

@@ -1,8 +0,0 @@
{
"$id": "blockception.minecraft.behavior.biomes.minecraft.the_end_surface",
"title": "End Surface",
"description": "Use default Minecraft End terrain generation.",
"type": "object",
"additionalProperties": false,
"properties": {}
}

View File

@@ -5,28 +5,26 @@
"description": "A custom biome definition.",
"type": "object",
"additionalProperties": false,
"required": ["description", "components"],
"required": [ "description", "components" ],
"definitions": {
"components_ref": {
"type": "object",
"title": "Components",
"additionalProperties": false,
"properties": {
"minecraft:capped_surface": { "$ref": "./components/capped_surface.json" },
"minecraft:climate": { "$ref": "./components/climate.json" },
"minecraft:creature_spawn_probability": { "$ref": "./components/creature_spawn_probability.json" },
"minecraft:frozen_ocean_surface": { "$ref": "./components/frozen_ocean_surface.json" },
"minecraft:mesa_surface": { "$ref": "./components/mesa_surface.json" },
"minecraft:humidity": { "$ref": "./components/humidity.json" },
"minecraft:map_tints": { "$ref": "./components/map_tints.json" },
"minecraft:mountain_parameters": { "$ref": "./components/mountain_parameters.json" },
"minecraft:multinoise_generation_rules": { "$ref": "./components/multinoise_generation_rules.json" },
"minecraft:overworld_generation_rules": { "$ref": "./components/overworld_generation_rules.json" },
"minecraft:overworld_height": { "$ref": "./components/overworld_height.json" },
"minecraft:partially_frozen": { "$ref": "./components/partially_frozen.json" },
"minecraft:replace_biomes": { "$ref": "./components/replace_biomes.json" },
"minecraft:surface_material_adjustments": { "$ref": "./components/surface_material_adjustments.json" },
"minecraft:surface_builder": { "$ref": "./components/surface_builder.json" },
"minecraft:swamp_surface": { "$ref": "./components/swamp_surface.json" },
"minecraft:tags": { "$ref": "./components/tags.json" },
"minecraft:the_end_surface": { "$ref": "./components/the_end_surface.json" }
"minecraft:tags": { "$ref": "./components/tags.json" }
}
}
},
@@ -36,7 +34,7 @@
"description": "The description for this biome.",
"type": "object",
"additionalProperties": false,
"required": ["identifier"],
"required": [ "identifier" ],
"properties": {
"identifier": {
"title": "Identifier",

View File

@@ -1,7 +1,7 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.movable",
"title": "Movable",
"description": "[Experimental] This allows for blocks to configure how they should react when moved by a piston",
"description": "This allows for blocks to configure how they should react when moved by a piston",
"type": "object",
"additionalProperties": false,
"required": [ "movement_type" ],

View File

@@ -1,7 +1,7 @@
{
"$id": "blockception.minecraft.behavior.blocks.minecraft.random_offset",
"title": "Random Offset",
"description": "[Experimental] This allows for blocks to randomly offset like foliage does in the Vanilla game",
"description": "This allows for blocks to randomly offset like foliage does in the Vanilla game",
"type": "object",
"additionalProperties": false,
"definitions": {

View File

@@ -1,13 +0,0 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.behavior.enderman_leave_block",
"type": "object",
"title": "Enderman Leave Block",
"additionalProperties": false,
"description": "Allows the enderman to drop a block they are carrying. Can only be used by Endermen.",
"required": [],
"properties": {
"priority": {
"$ref": "./types/priority.json"
}
}
}

View File

@@ -1,13 +0,0 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.behavior.enderman_take_block",
"type": "object",
"title": "Enderman Take Block",
"description": "Allows the enderman to take a block and carry it around. Can only be used by Endermen.",
"additionalProperties": false,
"required": [],
"properties": {
"priority": {
"$ref": "./types/priority.json"
}
}
}

View File

@@ -0,0 +1,70 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.behavior.place_block",
"type": "object",
"title": "Place Block",
"additionalProperties": false,
"description": "Allows an entity to place blocks in the world",
"required": [],
"properties": {
"priority": {
"$ref": "./types/priority.json"
},
"affected_by_griefing_rule": {
"title": "Affected By Griefing Rule",
"description": "If true, whether the goal is affected by the mob griefing game rule.",
"type": "boolean"
},
"can_place": {
"title": "Can Place",
"description": "Filters for if the entity should try to place its block. Self and Target are set.",
"$ref": "../../filters/filters.json"
},
"chance": {
"title": "Chance",
"description": "Chance each tick for the entity to try and place a block.",
"type": "number",
"minimum": 0
},
"on_place": {
"title": "On Place",
"description": "Trigger ran if the entity does place its block. Self, Target, and Block are set.",
"$ref": "../types/event.json"
},
"placeable_carried_blocks": {
"title": "Placeable Carried Blocks",
"description": "Block descriptors for which blocks are valid to be placed from the entity's carried item, if empty all blocks are valid.",
"type": "array",
"items": {
"$ref": "../../../../general/block/reference.json"
}
},
"randomly_placeable_blocks": {
"title": "Randomly Placeable Blocks",
"description": "Weighted block descriptors for which blocks should be randomly placed, if empty the entity will try to place its carried block from placeable_carried_blocks.",
"type": "array",
"items": {
"type": "array",
"items": [
{
"$ref": "../../../../general/block/reference.json"
},
{
"title": "Weight",
"description": "Weight used in random selection. Value is relative to other weights in the collection.",
"type": "number"
}
]
}
},
"xz_range": {
"title": "XZ Range",
"description": "XZ range from which the entity will try and place blocks in.",
"$ref": "../types/range_number_type.json"
},
"y_range": {
"title": "Y Range",
"description": "Y range from which the entity will try and place blocks in.",
"$ref": "../types/range_number_type.json"
}
}
}

View File

@@ -0,0 +1,57 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.behavior.take_block",
"type": "object",
"title": "Take Block",
"description": "Allows an entity to take blocks from the world.",
"additionalProperties": false,
"required": [],
"properties": {
"priority": {
"$ref": "./types/priority.json"
},
"affected_by_griefing_rule": {
"title": "Affected By Griefing Rule",
"description": "If true, whether the goal is affected by the mob griefing game rule.",
"type": "boolean"
},
"blocks": {
"title": "Blocks",
"description": "Block descriptors for which blocks are valid to be taken by the entity, if empty all blocks are valid.",
"type": "array",
"items": {
"$ref": "../../../../general/block/reference.json"
}
},
"can_take": {
"title": "Can Take",
"description": "Filters for if the entity should try to take a block. Self and Target are set.",
"$ref": "../../filters/filters.json"
},
"chance": {
"title": "Chance",
"description": "Chance each tick for the entity to try and take a block.",
"type": "number",
"minimum": 0
},
"on_take": {
"title": "On Take",
"description": "Trigger ran if the entity does take a block. Self, Target, and Block are set.",
"$ref": "../types/event.json"
},
"requires_line_of_sight": {
"title": "Requires Line Of Sight",
"description": "If true, whether the entity needs line of sight to the block they are trying to take.",
"type": "boolean"
},
"xz_range": {
"title": "XZ Range",
"description": "XZ range from which the entity will try and take blocks from.",
"$ref": "../types/range_number_type.json"
},
"y_range": {
"title": "Y Range",
"description": "Y range from which the entity will try and take blocks from.",
"$ref": "../types/range_number_type.json"
}
}
}

View File

@@ -0,0 +1,114 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.behavior.transport_items",
"type": "object",
"title": "Transport Items",
"description": "Allows a mob to transport items from and to containers",
"additionalProperties": false,
"required": [],
"properties": {
"priority": {
"$ref": "./types/priority.json"
},
"source_container_types": {
"title": "Source Container Types",
"description": "A list of block descriptors that should be a container type to get items from. Default is any container",
"type": "array",
"items": {
"$ref": "../../../../general/block/reference.json"
}
},
"destination_container_types": {
"title": "Destination Container Types",
"description": "A list of block descriptors that should be a container type to put items in. Default is any container",
"type": "array",
"items": {
"$ref": "../../../../general/block/reference.json"
}
},
"max_stack_size": {
"title": "Max Stack Size",
"description": "The maximum stack size that the mob will try to take from a container.",
"type": "integer",
"minimum": 1,
"default": 16,
"maxItems": 64
},
"interaction_time": {
"title": "Interaction Time",
"description": "The amount of time spent interacting with the containers in seconds.",
"type": "number",
"minimum": 0,
"default": 3.0
},
"allow_simultaneous_interaction": {
"title": "Allow Simultaneous Interaction",
"description": "Whether the entity is allowed to simultaneously interact with a container that another non-player entity is already interacting with.",
"type": "boolean",
"default": false
},
"search_strategy": {
"title": "Search Strategy",
"description": "Whether to select the nearest valid container or a random valid container in range.",
"type": "string",
"enum": [
"nearest",
"random"
]
},
"search_distance": {
"title": "Search Distance",
"description": "The maximum horizontal and vertical distance at which to find containers for taking or placing items.",
"$ref": "../types/range_number_type.json",
"default": [
62,
32
]
},
"max_visited_containers": {
"title": "Max Visited Containers",
"description": "The maximum number of containers the mob will visit before resetting. 0 is unlimited.",
"type": "integer",
"minimum": 0,
"default": 16
},
"initial_cooldown": {
"title": "Initial Cooldwon",
"description": "ime, in seconds, the mob will wait after spawning or after its available goals have changed (e.g. due to a component group update).",
"type": "integer",
"minimum": 0,
"default": 0
},
"idle_cooldown": {
"title": "Idle Cooldown",
"description": "When the mob cannot find a valid container to interact with, the goal will be disabled for this amount of time in seconds.",
"type": "integer",
"minimum": 0,
"default": 20
},
"place_strategy": {
"title": "Place Strategy",
"description": "The strategy to use for placing the transported item.\nAny - always place if there is room,\nWith matching - place if there is a matching item in the container,\nWith matching or empty - like With matching but will also place in empty containers.",
"type": "string",
"default": "any",
"enum": [
"any",
"with_matching",
"with_matching_or_empty"
]
},
"allowed_items": {
"description": "A list of item descriptors that are the only items the mob is allowed to transport. If this and \"disallowed_items\" are both empty, then all items are allowed. If non-empty \"disallowed_items\" must be empty. Default value: empty.",
"type": "array",
"items": {
"type": "string"
}
},
"disallowed_items": {
"description": "A list of item descriptors that are the mob is not allowed to transport. If non-empty \"allowed_items\" must be empty. Default value: emtpy.",
"type": "array",
"items": {
"type": "string"
}
}
}
}

View File

@@ -24,7 +24,6 @@
"minecraft:block_climber": { "$ref": "./components/block_climber.json" },
"minecraft:block_sensor": { "$ref": "./components/block_sensor.json" },
"minecraft:body_rotation_always_follows_head": { "$ref": "./components/body_rotation_always_follows_head.json" },
"minecraft:body_rotation_axis_aligned": { "$ref": "./components/body_rotation_axis_aligned.json" },
"minecraft:body_rotation_blocked": { "$ref": "./components/body_rotation_blocked.json" },
"minecraft:boostable": { "$ref": "./components/boostable.json" },
"minecraft:boss": { "$ref": "./components/boss.json" },
@@ -169,6 +168,7 @@
"minecraft:rail_sensor": { "$ref": "./components/rail_sensor.json" },
"minecraft:ravager_blocked": { "$ref": "./components/ravager_blocked.json" },
"minecraft:rideable": { "$ref": "./components/rideable.json" },
"minecraft:rotation_axis_aligned": { "$ref": "./components/rotation_axis_aligned.json" },
"minecraft:reflect_projectiles": { "$ref": "./components/reflect_projectiles.json" },
"minecraft:remove_in_peaceful": { "$ref": "./components/remove_in_peaceful.json" },
"minecraft:renders_when_invisible": { "$ref": "./components/renders_when_invisible.json" },
@@ -241,8 +241,6 @@
"minecraft:behavior.eat_carried_item": { "$ref": "./behaviors/eat_carried_item.json" },
"minecraft:behavior.eat_mob": { "$ref": "./behaviors/eat_mob.json" },
"minecraft:behavior.emerge": { "$ref": "./behaviors/emerge.json" },
"minecraft:behavior.enderman_leave_block": { "$ref": "./behaviors/enderman_leave_block.json" },
"minecraft:behavior.enderman_take_block": { "$ref": "./behaviors/enderman_take_block.json" },
"minecraft:behavior.equip_item": { "$ref": "./behaviors/equip_item.json" },
"minecraft:behavior.explore_outskirts": { "$ref": "./behaviors/explore_outskirts.json" },
"minecraft:behavior.fertilize_farm_block": { "$ref": "./behaviors/fertilize_farm_block.json" },
@@ -311,6 +309,7 @@
"minecraft:behavior.panic": { "$ref": "./behaviors/panic.json" },
"minecraft:behavior.pet_sleep_with_owner": { "$ref": "./behaviors/pet_sleep_with_owner.json" },
"minecraft:behavior.pickup_items": { "$ref": "./behaviors/pickup_items.json" },
"minecraft:behavior.place_block": { "$ref": "./behaviors/place_block.json" },
"minecraft:behavior.play_dead": { "$ref": "./behaviors/play_dead.json" },
"minecraft:behavior.play": { "$ref": "./behaviors/play.json" },
"minecraft:behavior.player_ride_tamed": { "$ref": "./behaviors/player_ride_tamed.json" },
@@ -366,6 +365,7 @@
"minecraft:behavior.swim_wander": { "$ref": "./behaviors/swim_wander.json" },
"minecraft:behavior.swim_with_entity": { "$ref": "./behaviors/swim_with_entity.json" },
"minecraft:behavior.swoop_attack": { "$ref": "./behaviors/swoop_attack.json" },
"minecraft:behavior.take_block": { "$ref": "./behaviors/take_block.json" },
"minecraft:behavior.take_flower": { "$ref": "./behaviors/take_flower.json" },
"minecraft:behavior.teleport_to_owner": { "$ref": "./behaviors/teleport_to_owner.json" },
"minecraft:behavior.move_around_target": { "$ref": "./behaviors/move_around_target.json" },
@@ -376,6 +376,7 @@
"minecraft:behavior.timer_flag_3": { "$ref": "./behaviors/timer_flag.json" },
"minecraft:behavior.trade_interest": { "$ref": "./behaviors/trade_interest.json" },
"minecraft:behavior.trade_with_player": { "$ref": "./behaviors/trade_with_player.json" },
"minecraft:behavior.transport_items": { "$ref": "./behaviors/transport_items.json" },
"minecraft:behavior.vex_copy_owner_target": { "$ref": "./behaviors/vex_copy_owner_target.json" },
"minecraft:behavior.vex_random_move": { "$ref": "./behaviors/vex_random_move.json" },
"minecraft:behavior.wither_random_attack_pos_goal": { "$ref": "./behaviors/wither_random_attack_pos_goal.json" },

View File

@@ -14,6 +14,12 @@
"description": "Item that the entity should not equip.",
"title": "Excluded Items"
}
},
"can_wear_armor": {
"title": "Can Wear Armor",
"description": "Specifies if equipped armor should be added to the armor slot or hand slot",
"type": "boolean",
"default": false
}
}
}

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,6 +14,39 @@
"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.",
"oneOf": [
{
"$ref": "#/definitions/empty_element"
},
{
"$ref": "#/definitions/single_element"
}
]
},
"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": {
@@ -31,13 +64,6 @@
"title": "Processors",
"description": "The identifier of the processor list to use when placing the structure.",
"type": "string"
}
},
"required": [
"element_type",
"location",
"processors"
]
},
"projection": {
"title": "Projection",
@@ -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": {

View File

@@ -41,6 +41,12 @@
}
}
]
},
"grass_is_shaded": {
"title": "Grass Is Shaded",
"description": "Adds a shading effect to the grass as if there was a roof.",
"type": "boolean",
"default": false
}
}
}

View File

@@ -44,7 +44,14 @@
"required": ["path"],
"properties": {
"path": { "description": "A texture file.", "type": "string", "pattern": "^textures/.+$", "title": "Path" },
"weight": { "type": "integer", "title": "Weight", "description": "The weight of the texture.", "$comment": "UNDOCUMENTED" }
"weight": {
"type": "number",
"minimum": 0.05,
"maximum": 1000000,
"title": "Weight",
"description": "The weight of the texture.",
"$comment": "UNDOCUMENTED"
}
}
}
}