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