* - Updated old biome format

* - Added biome tags component

* - Added dismount mode, and rider enter/exit event

* - Made surface_color not required

* - Update float wander goal

* - Update follow mob behavior

* - Added music def field

* - Added camera fields to rideable

* - Add array snippet

* - Updated leashable component with presets

* - Made texture field optional in destruction particles

* - Marked isotropic as stable

* - Moved can_be_stolen back

* - Updated tempt goal

* - Added float tempt behavior

* - Made heightmap project optional

* - Added distance based render methods

* - Marked tint method as stable

* - Added droop item y offset

* - Added has_equipment_tag filter

* - Remove unnused test.json

* - Allow for custom components

* - Add new block culling support

* - Removed enum for biome tags in support of custom biomes

* - Added replace_biomes component

* - Fix errors
This commit is contained in:
Xterionix
2025-04-29 12:02:06 +05:00
committed by GitHub
parent 9a916b580b
commit ae9e79c04d
50 changed files with 799 additions and 568 deletions

View File

@@ -0,0 +1,90 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.behavior.float_tempt",
"description": "Allows an entity to be tempted by a set item.",
"type": "object",
"title": "Float Tempt",
"additionalProperties": false,
"properties": {
"priority": { "$ref": "types/priority.json" },
"speed_multiplier": { "$ref": "types/speed_multiplier.json" },
"can_get_scared": {
"type": "boolean",
"default": false,
"description": "If true, the mob can stop being tempted if the player moves too fast while close to this mob.",
"title": "Can Get Scared"
},
"can_tempt_while_ridden": {
"type": "boolean",
"default": false,
"title": "Can Tempt While Ridden",
"description": "If true, the mob can be tempted even if it has a passenger (i.e. if being ridden)."
},
"can_tempt_vertically": {
"type": "boolean",
"default": false,
"title": "Can Tempt Vertically",
"description": "If true, vertical distance to the player will be considered when tempting."
},
"items": {
"type": "array",
"title": "Items",
"description": "List of items this mob is tempted by.",
"items": {
"$ref": "../../../../general/item/descriptor.json"
}
},
"sound_interval": {
"description": "Range of random ticks to wait between tempt sounds.",
"title": "Sound Interval",
"oneOf": [
{
"type": "number",
"minimum": 0
},
{
"items": [
{ "type": "integer", "minimum": 0, "title": "Minimum" },
{ "type": "integer", "minimum": 0, "title": "Maximum" }
]
}
]
},
"stop_distance": {
"title": "Stop Distance",
"description": "The distance at which the mob will stop following the player.",
"type": "number",
"default": 1.5,
"minimum": 0
},
"tempt_sound": {
"$ref": "../../../../general/sound_event.json",
"description": "Sound to play while the mob is being tempted.",
"title": "Tempt Sound"
},
"within_radius": {
"type": "number",
"default": 0,
"description": "Distance in blocks this mob can get tempted by a player holding an item they like.",
"title": "Within Radius"
},
"on_start": {
"title": "On Start",
"description": "Specifies the event to trigger when the goal starts",
"$ref": "../types/trigger.json"
},
"on_end": {
"title": "On End",
"description": "Specifies the event to trigger when the goal ends",
"$ref": "../types/trigger.json"
}
},
"examples": [
{
"can_get_scared": false,
"can_tempt_while_ridden": true,
"can_tempt_vertically": true,
"items": [],
"within_radius": 0
}
]
}

View File

@@ -9,6 +9,18 @@
"priority": {
"$ref": "./types/priority.json"
},
"additional_collision_buffer": {
"title": "Additional Collision Buffer",
"description": "If true, the mob will have an additional buffer zone around it to avoid collisions with blocks when picking a position to wander to.",
"type": "boolean",
"default": false
},
"allow_navigating_through_liquids": {
"title": "Allow Navigating Through Liquids",
"description": "If true allows the mob to navigate through liquids on its way to the target position.",
"type": "boolean",
"default": false
},
"xz_dist": {
"type": "integer",
"default": 10,
@@ -39,12 +51,32 @@
"type": "boolean",
"default": true
},
"navigate_around_surface": {
"title": "Navigate Around Surface",
"description": "If true, will prioritize finding random positions in the vicinity of surfaces, i.e. blocks that are not Air or Liquid.",
"type": "boolean",
"default": false
},
"random_reselect": {
"type": "boolean",
"default": false,
"description": "If true, the mob will randomly pick a new point while moving to the previously selected one.",
"title": "Random Reselect"
},
"surface_xz_dist": {
"title": "Surface XZ Dist",
"description": "The horizontal distance in blocks that the goal will check for a surface from a candidate position. Only valid when `navigate_around_surface` is true.",
"type": "integer",
"minimum": 0,
"default": 0
},
"surface_y_dist": {
"title": "Surface Y Dist",
"description": "The vertical distance in blocks that the goal will check for a surface from a candidate position. Only valid when `navigate_around_surface` is true.",
"type": "integer",
"minimum": 0,
"default": 0
},
"use_home_position_restriction": {
"title": "Use Home Position Restriction",
"description": "If true, the mob will respect home position restrictions when choosing new target positions. If false, it will choose target position without considering home restrictions.",

View File

@@ -4,11 +4,20 @@
"title": "Follow Mob",
"description": "Allows the mob to follow other mobs.",
"additionalProperties": false,
"required": [],
"properties": {
"priority": {
"$ref": "types/priority.json"
},
"filters": {
"title": "Filters",
"description": "If non-empty, provides criteria for filtering which nearby Mobs can be followed. If empty default criteria will be used, which will exclude Players, Squid variants, Fish variants, Tadpoles, Dolphins, and mobs of the same type as the owner of the Goal.",
"$ref": "../../filters/filters.json"
},
"preferred_actor_type": {
"title": "Preferred Actor Type",
"description": "The type of actor to prefer following. If left unspecified, a random actor among those in range will be chosen.",
"type": "string"
},
"speed_multiplier": {
"$ref": "./types/speed_multiplier.json"
},
@@ -23,6 +32,12 @@
"default": 2,
"description": "The distance in blocks this mob stops from the mob it is following.",
"title": "Stop Distance"
},
"use_home_position_restriction": {
"title": "Use Home Position Restriction",
"description": "If true, the mob will respect the 'minecraft:home' component's 'restriction_radius' field when choosing a target to follow. If false, it will choose target position without considering home restrictions.",
"type": "boolean",
"default": true
}
},
"examples": [

View File

@@ -49,6 +49,13 @@
}
]
},
"stop_distance": {
"title": "Stop Distance",
"description": "The distance at which the mob will stop following the player.",
"type": "number",
"default": 1.5,
"minimum": 0
},
"tempt_sound": {
"$ref": "../../../../general/sound_event.json",
"description": "Sound to play while the mob is being tempted.",
@@ -59,6 +66,16 @@
"default": 0,
"description": "Distance in blocks this mob can get tempted by a player holding an item they like.",
"title": "Within Radius"
},
"on_start": {
"title": "On Start",
"description": "Specifies the event to trigger when the goal starts",
"$ref": "../types/trigger.json"
},
"on_end": {
"title": "On End",
"description": "Specifies the event to trigger when the goal ends",
"$ref": "../types/trigger.json"
}
},
"examples": [

View File

@@ -250,6 +250,7 @@
"minecraft:behavior.flee_sun": { "$ref": "./behaviors/flee_sun.json" },
"minecraft:behavior.float_wander": { "$ref": "./behaviors/float_wander.json" },
"minecraft:behavior.float": { "$ref": "./behaviors/float.json" },
"minecraft:behavior.float_tempt": { "$ref": "./behaviors/float_tempt.json" },
"minecraft:behavior.follow_caravan": { "$ref": "./behaviors/follow_caravan.json" },
"minecraft:behavior.follow_mob": { "$ref": "./behaviors/follow_mob.json" },
"minecraft:behavior.follow_owner": { "$ref": "./behaviors/follow_owner.json" },

View File

@@ -157,24 +157,20 @@
"drop_item_slot": {
"title": "Drop Item Slot",
"type": "string",
"examples": [
"slot.armor.head",
"slot.armor.chest",
"slot.armor.legs",
"slot.armor.feet"
],
"examples": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet"],
"description": "The entity's equipment slot to remove and drop the item from, if any, upon successful interaction."
},
"drop_item_y_offset": {
"title": "Drop Item Y Offset",
"description": "Will offset the item drop position this amount in the y direction. Requires \"drop_item_slot\" to be specified.",
"type": "number",
"default": 0
},
"equip_item_slot": {
"title": "Equip Item Slot",
"type": "string",
"description": "The entity's equipment slot to equip the item to, if any, upon successful interaction.",
"examples": [
"slot.armor.head",
"slot.armor.chest",
"slot.armor.legs",
"slot.armor.feet"
]
"examples": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet"]
},
"repair_entity_item": {
"title": "Repair Entity Item",
@@ -191,12 +187,7 @@
"title": "Slot",
"description": "The entity's slot containing the item to be repaired.",
"type": "string",
"examples": [
"slot.armor.head",
"slot.armor.chest",
"slot.armor.legs",
"slot.armor.feet"
]
"examples": ["slot.armor.head", "slot.armor.chest", "slot.armor.legs", "slot.armor.feet"]
}
}
}

View File

@@ -4,13 +4,7 @@
"title": "Leashable",
"description": "Allows this entity to be leashed and defines the conditions and events for this entity when is leashed.",
"additionalProperties": false,
"properties": {
"can_be_stolen": {
"type": "boolean",
"default": false,
"description": "If true, players can leash this entity even if it is already leashed to another mob.",
"title": "Can Be Stolen"
},
"definitions": {
"hard_distance": {
"type": "number",
"default": 6,
@@ -23,6 +17,32 @@
"description": "Distance in blocks at which the leash breaks.",
"title": "Maximum Distance"
},
"soft_distance": {
"type": "number",
"default": 4,
"description": "Distance in blocks at which the `spring` effect starts acting to keep this entity close to the entity that leashed it.",
"title": "Soft Distance"
}
},
"properties": {
"can_be_stolen": {
"type": "boolean",
"default": false,
"description": "If true, players can leash this entity even if it is already leashed to another mob.",
"title": "Can Be Stolen"
},
"on_unleash_interact_only": {
"title": "On Unleash Interact Only",
"description": "When set to true, \"on_unleash\" does not trigger when the entity gets unleashed for other reasons such as being stolen or the leash breaking.",
"type": "boolean",
"default": false
},
"hard_distance": {
"$ref": "#/definitions/hard_distance"
},
"max_distance": {
"$ref": "#/definitions/max_distance"
},
"on_leash": {
"$ref": "../types/event_object.json",
"description": "Event to call when this entity is leashed.",
@@ -34,10 +54,31 @@
"title": "On Unleash"
},
"soft_distance": {
"type": "number",
"default": 4,
"description": "Distance in blocks at which the `spring` effect starts acting to keep this entity close to the entity that leashed it.",
"title": "Soft Distance"
"$ref": "#/definitions/soft_distance"
},
"presets": {
"title": "Presets",
"description": "Defines how this entity behaves when leashed to another entity. A preset is selected upon leashing and remains until the entity is leashed to something else. The first preset whose \"filter\" conditions are met will be applied; if none match, a default configuration is used instead.",
"type": "array",
"items": {
"title": "Preset",
"type": "object",
"additionalProperties": false,
"properties": {
"filter": {
"$ref": "../../filters/filters.json"
},
"hard_distance": {
"$ref": "#/definitions/hard_distance"
},
"max_distance": {
"$ref": "#/definitions/max_distance"
},
"soft_distance": {
"$ref": "#/definitions/soft_distance"
}
}
}
}
},
"examples": [

View File

@@ -9,6 +9,38 @@
"additionalProperties": false,
"type": "object",
"properties": {
"dismount_mode": {
"title": "Dismount Mode",
"description": "Defines where riders are placed when dismounting this entity:\n- \"default\", riders are placed on a valid ground position around the entity, or at the center of the entity's collision box if none is found.\n- \"on_top_center\", riders are placed at the center of the top of the entity's collision box.",
"type": "string",
"enum": ["default", "on_top_center"]
},
"on_rider_enter_event": {
"title": "On Rider Enter Event",
"description": "Event to execute on the owner entity when an entity starts riding it.",
"type": "string"
},
"on_rider_exit_event": {
"title": "On Rider Exit Event",
"description": "Event to execute on the owner entity when an entity stops riding it.",
"type": "string"
},
"third_person_camera_radius": {
"title": "Third Person Camera Radius",
"description": "Can be used to set a different camera radius when in third person or third person front camera. Value 0.0 is ignored.",
"type": "number",
"default": 0.0,
"minimum": 0.0,
"maximum": 64.0
},
"camera_relax_distance_smoothing": {
"title": "Camera Relax Distance Smoothing",
"description": "Adds springiness to the camera movement when the camera moves back to its radius after being pushed closer to the player by and obstacle. A higher value means a stiffer spring. Value 0.0 is ignored.",
"type": "number",
"default": 0.0,
"minimum": 0.0,
"maximum": 32.0
},
"lock_rider_rotation": {
"type": "number",
"default": 181,