Updated for 1.21.70 along with other improvements (#337)

* Update vscode-settings.json

* - Updated map color

* - Added replaceable block component

* - Effect durations can be set to infinite now

* - Added support for entity sound variants

* - Fix description for renders_when_invisible entity component

* - Added is_collidable component

* - Updated entity_sensor

* - Added body_rotation_axis_aligned

* - Updated projectile > on_hit

* - Set min and max for collision_box

* - Added locator field to sounds in animation controllers and animations

* - Added new event response

* - Removed peak_factor from mountain_parameters component

* - Added isotropic field to material_instances

* - Added tint field to material_instances

* - Added input_air_controlled entity component

* - Added use_beta_features property to entity.json

* - Added missing match_tool property

* - Added use_home_position_restriction to float_wander goal

* - Added deferred client biome components

* - Added dry_foliage_color client biome component

* - Added destruction_particles

* - Marked biome tinting as experimental

* - Fix property_inheritance under breedable

* - Fix inconsistency with scatter feature

* - Update rideable description

* - Allowed event.add/remove to be strings

* - Added missing property in move_around_target behavior

* - Made features accept block references

* - Allowed repairable to use item descriptors

* - Fix typo
This commit is contained in:
Xterionix
2025-03-03 12:44:05 +05:00
committed by GitHub
parent 8de19607a3
commit c9449c75d6
51 changed files with 589 additions and 139 deletions

View File

@@ -39,6 +39,12 @@
"description": "If true, the mob will randomly pick a new point while moving to the previously selected one.",
"title": "Random Reselect"
},
"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.",
"type": "boolean",
"default": false
},
"float_duration": {
"$ref": "../types/range_number_type.json",
"default": [0.0, 0.0],

View File

@@ -21,6 +21,13 @@
"description": "The range of distances from the target entity within which the goal should look for a position to move the owner entity to.",
"$ref": "../../../../general/vectors/number2.json"
},
"destination_pos_spread_degrees": {
"title": "Desitnation Pos Spread Degrees",
"description": "UNDOCUMENTED",
"type": "number",
"minimum": 0,
"maximum": 360
},
"height_difference_limit": {
"title": "Height Difference Limit",
"type": "number",

View File

@@ -23,6 +23,7 @@
"minecraft:barter": { "$ref": "./components/barter.json" },
"minecraft:block_climber": { "$ref": "./components/block_climber.json" },
"minecraft:block_sensor": { "$ref": "./components/block_sensor.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" },
@@ -83,6 +84,7 @@
"minecraft:horse.jump_strength": { "$ref": "./components/horse.jump_strength.json" },
"minecraft:hurt_on_condition": { "$ref": "./components/hurt_on_condition.json" },
"minecraft:hurt_when_wet": { "$ref": "./components/hurt_when_wet.json" },
"minecraft:input_air_controlled": { "$ref": "./components/input_air_controlled.json" },
"minecraft:input_ground_controlled": { "$ref": "./components/input_ground_controlled.json" },
"minecraft:inside_block_notifier": { "$ref": "./components/inside_block_notifier.json" },
"minecraft:insomnia": { "$ref": "./components/insomnia.json" },
@@ -92,6 +94,7 @@
"minecraft:is_baby": { "$ref": "./components/is_baby.json" },
"minecraft:is_charged": { "$ref": "./components/is_charged.json" },
"minecraft:is_chested": { "$ref": "./components/is_chested.json" },
"minecraft:is_collidable": { "$ref": "./components/is_collidable.json" },
"minecraft:is_dyeable": { "$ref": "./components/is_dyeable.json" },
"minecraft:is_hidden_when_invisible": { "$ref": "./components/is_hidden_when_invisible.json" },
"minecraft:is_ignited": { "$ref": "./components/is_ignited.json" },

View File

@@ -4,7 +4,7 @@
"additionalProperties": false,
"title": "Attack",
"description": "Defines an entity's melee attack and any additional effects on it.",
"required": ["damage"],
"required": [ "damage" ],
"properties": {
"damage": {
"title": "Damage",
@@ -18,11 +18,19 @@
"title": "Effect Name"
},
"effect_duration": {
"type": "number",
"default": 1,
"anyOf": [
{
"type": "integer",
"default": 1,
"minimum": 0
},
{
"const": "infinite"
}
],
"description": "Duration in seconds of the status ailment applied to the damaged entity.",
"title": "Effect Duration"
}
},
"examples": [{ "damage": 1 }, { "damage": 1, "effect_name": "example", "effect_duration": 1 }]
"examples": [ { "damage": 1 }, { "damage": 1, "effect_name": "example", "effect_duration": 1 } ]
}

View File

@@ -0,0 +1,9 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.body_rotation_axis_aligned",
"type": "object",
"title": "Body Rotation Axis Aligned",
"description": "Causes the entity's body to automatically rotate to align with the nearest cardinal direction based on its current facing direction.\nCombining this with the \"minecraft:body_rotation_blocked\" component will cause the entity to align to the nearest cardinal direction and remain fixed in that orientation, regardless of future changes in its facing direction.",
"additionalProperties": false,
"properties": {},
"examples": [{}]
}

View File

@@ -233,8 +233,7 @@
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"additionalProperties": {
"mutation_chance": {
"title": "Mutation Chance",
"description": "The chance it should not inherit from either parent",
@@ -247,6 +246,9 @@
"type": "array",
"minItems": 1
}
},
"propertyNames": {
"pattern": "^[0-9a-zA-Z:_\\.\\-]+$"
}
}
},

View File

@@ -4,18 +4,22 @@
"title": "Collision Box",
"additionalProperties": false,
"description": "Sets the width and height of the Entity's collision box.",
"required": [],
"required": [ ],
"properties": {
"height": {
"title": "Height",
"type": "number",
"default": 1.0,
"minimum": -100000000,
"maximum": 100000000,
"description": "Height of the collision box in blocks. A negative value will be assumed to be 0."
},
"width": {
"title": "Width",
"type": "number",
"default": 1.0,
"minimum": -100000000,
"maximum": 100000000,
"description": "Width of the collision box in blocks. A negative value will be assumed to be 0."
}
},

View File

@@ -18,8 +18,16 @@
"title": "Apply To Self"
},
"regeneration_duration": {
"type": "integer",
"default": 5,
"anyOf": [
{
"type": "integer",
"default": 5,
"minimum": 0
},
{
"const": "infinite"
}
],
"description": "The duration in seconds of Regeneration I added to the mob.",
"title": "Regeneration Duration"
}

View File

@@ -12,6 +12,12 @@
"type": "number",
"default": -1
},
"y_offset": {
"title": "Y Offset",
"description": "Vertical offset applied to the entity's position when computing the distance from other entities.",
"type": "number",
"default": 0
},
"event_filters": {
"$ref": "../../filters/filters.json"
},
@@ -105,6 +111,12 @@
"default": true,
"description": "If true the sensor range is additive on top of the entity's size.",
"title": "Relative Range"
},
"find_players_only": {
"type": "boolean",
"default": true,
"description": "Limits the search to Players only for all subsensors.",
"title": "Find Players Only"
}
}
}

View File

@@ -16,9 +16,17 @@
"type": "string"
},
"duration": {
"type": "integer",
"default": 0,
"minimum": 0,
"title": "Duration",
"anyOf": [
{
"type": "integer",
"default": 1,
"minimum": 0
},
{
"const": "infinite"
}
],
"description": "The duration of the effect."
},
"amplifier": {

View File

@@ -0,0 +1,21 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.input_air_controlled",
"description": "When configured as a rideable entity, the entity will be controlled using WASD controls and mouse to move in three dimensions.\nOnly available with `\"use_beta_features\": true` and likely to be drastically changed or removed.",
"type": "object",
"title": "Input Air Controlled",
"additionalProperties": false,
"properties": {
"backwards_movement_modifier": {
"title": "Backwards Movement Modifier",
"description": "Modifies speed going backwards.",
"type": "number",
"minimum": 0
},
"strafe_speed_modifier": {
"title": "Strafe Speed Modifier",
"description": "Modifies the strafe speed.",
"type": "number",
"minimum": 0
}
}
}

View File

@@ -0,0 +1,9 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.is_collidable",
"description": "Allows other mobs to have vertical and horizontal collisions with this mob. For a collision to occur, both mobs must have a \"minecraft:collision_box\" component. This component can only be used on mobs and enables collisions exclusively between mobs.\nPlease note that this type of collision is unreliable for moving collidable mobs. It is recommended to use this component only in scenarios where the collidable mob remains stationary.\nCollidable behavior is closely related to stackable behavior. While the \"minecraft:is_collidable\" component governs how other mobs interact with the component's owner, the \"minecraft:is_stackable\" component describes how an entity interacts with others of its own kind.",
"type": "object",
"title": "Is Collidable",
"additionalProperties": false,
"required": [ ],
"properties": { }
}

View File

@@ -19,8 +19,16 @@
},
"effect_time": {
"title": "Effect Time",
"type": "integer",
"default": 10,
"anyOf": [
{
"type": "integer",
"default": 10,
"minimum": 0
},
{
"const": "infinite"
}
],
"description": "How long the applied mob effect lasts in seconds."
},
"entity_filter": {

View File

@@ -128,7 +128,7 @@
},
"offset": {
"type": "array",
"default": [0, 0.0, 0],
"default": [ 0, 0.0, 0 ],
"description": "The offset from the entity's anchor where the projectile will spawn.",
"title": "Offset",
"$ref": "../../../../general/vectors/number3.json"
@@ -220,7 +220,7 @@
"additionalProperties": false,
"properties": {
"shape": {
"enum": ["sphere", "cube"],
"enum": [ "sphere", "cube" ],
"default": "sphere",
"description": "The shape of the area that is frozen.",
"title": "Shape"
@@ -404,26 +404,59 @@
},
"duration": {
"title": "Duration",
"type": "integer",
"default": 1,
"anyOf": [
{
"type": "integer",
"default": 1,
"minimum": 0
},
{
"const": "infinite"
}
],
"description": "The effect's duration."
},
"durationeasy": {
"title": "Duration Easy",
"type": "integer",
"default": 0,
"anyOf": [
{
"type": "integer",
"default": 0,
"minimum": 0
},
{
"const": "infinite"
}
],
"description": "The effect's duration on easy mode."
},
"durationhard": {
"title": "Duration Hard",
"type": "integer",
"default": 800,
"anyOf": [
{
"type": "integer",
"default": 800,
"minimum": 0
},
{
"const": "infinite"
}
],
"description": "The effect's duration on hard mode."
},
"durationnormal": {
"title": "Duration Normal",
"type": "integer",
"default": 200,
"anyOf": [
{
"type": "integer",
"default": 200,
"minimum": 0
},
{
"const": "infinite"
}
],
"description": "The effect's duration on normal mode."
},
"effect": {
@@ -474,6 +507,14 @@
"type": "string",
"default": "not set",
"description": "The id of the particle to spawn on hit."
},
"particle_item_name": {
"title": "Particle Item Name",
"description": "Maps an item name to an actor filter to determine what the name of the item used in the particle should be.",
"type": "object",
"additionalProperties": {
"$ref": "../../filters/filters.json"
}
}
}
},
@@ -488,7 +529,7 @@
"type": "object",
"description": "Removes the projectile.",
"additionalProperties": true,
"properties": {}
"properties": { }
},
"spawn_aoe_cloud": {
"title": "Spawn AOE Cloud",
@@ -593,6 +634,14 @@
"type": "string",
"default": "not set",
"description": "The entity that will spawn."
},
"on_spawn": {
"title": "On Spawn",
"description": "Triggered on the newly spawned entity with other set to the owning entity.",
"type": "array",
"items": {
"$ref": "../types/trigger.json"
}
}
}
},
@@ -716,9 +765,9 @@
"lightning": false,
"liquid_inertia": 0.6,
"multiple_targets": true,
"offset": [],
"offset": [ ],
"on_fire_time": 5,
"on_hit": {},
"on_hit": { },
"particle": "iconcrack",
"potion_effect": -1,
"power": 1.3,

View File

@@ -1,8 +1,8 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.renders_when_invisible",
"title": "Renders When Invisible",
"description": "Marks the entity as being able to fly, the pathfinder won't be restricted to paths where a solid block is required underneath it.",
"description": "When set, the entity will render even when invisible. Appropriate rendering behavior can then be specified in the corresponding \"minecraft:client_entity\".",
"type": "object",
"additionalProperties": false,
"properties": {}
"properties": { }
}

View File

@@ -1,6 +1,6 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.rideable",
"description": "Determines whether this entity can be ridden. Allows specifying the different seat positions and quantity.",
"description": "Determines whether this entity can be ridden. Allows specifying the different seat positions and amount.",
"type": "object",
"title": "Rideable",
"additionalProperties": false,
@@ -45,7 +45,7 @@
"controlling_seat": {
"type": "integer",
"default": 0,
"description": "The seat that designates the driver of the entity.",
"description": "The seat that designates the driver of the entity. Entities with the \"minecraft:behavior.controlled_by_player\" goal ignore this field and give control to any player in any seat.",
"title": "Controlling Seat"
},
"crouching_skip_interact": {
@@ -71,7 +71,7 @@
},
"passenger_max_width": {
"title": "Passenger Max Width",
"description": "The max width a mob can be to be a passenger. A value of 0 ignores this parameter.",
"description": "The max width a mob can have to be a rider. A value of 0 ignores this parameter.",
"type": "number",
"default": 0.0
},

View File

@@ -4,7 +4,7 @@
"title": "Spell Effects",
"additionalProperties": false,
"description": "Defines what mob effects to add and remove to the entity when adding this component.",
"required": [],
"required": [ ],
"properties": {
"add_effects": {
"type": "array",
@@ -32,8 +32,16 @@
"duration": {
"title": "Duration",
"description": "The amount of time in seconds the effect should last. This allows for fractional numbers. For example, instant effects should be set to 0.05 seconds (one tick).",
"type": "number",
"minimum": 0
"anyOf": [
{
"type": "integer",
"default": 1,
"minimum": 0
},
{
"const": "infinite"
}
]
},
"display_on_screen_animation": {
"type": "boolean",
@@ -63,7 +71,7 @@
{
"type": "array",
"items": {
"type": ["string"],
"type": [ "string" ],
"title": "Spell Effect ID",
"description": "identifier of the effect to be removed from this entity after adding this component."
}
@@ -76,7 +84,7 @@
},
"examples": [
{
"add_effects": []
"add_effects": [ ]
}
]
}

View File

@@ -15,8 +15,15 @@
"component_groups": {
"title": "Component Groups",
"description": "The components groups to add or remove.",
"type": "array",
"items": { "type": "string", "description": "A reference to a component group.", "title": "Component Groups" }
"anyOf": [
{
"type": "array",
"items": { "type": "string", "description": "A reference to a component group.", "title": "Component Groups" }
},
{
"type": "string", "description": "A reference to a component group.", "title": "Component Groups"
}
]
}
}
},
@@ -190,6 +197,40 @@
"type": "string"
}
}
},
"stop_movement": {
"title": "Stop Movement",
"description": "Stops the entity's movement",
"type": "object",
"additionalProperties": false,
"properties": {
"stop_vertical_movement": {
"title": "Stop Vertical Movement",
"description": "Specifies whether vertical movement should be stopped",
"type": "boolean",
"default": false
},
"stop_horizontal_movement": {
"title": "Stop Horizontal Movement",
"description": "Specifies whether horizontal movement should be stopped",
"type": "boolean",
"default": false
}
}
},
"set_home_position": {
"title": "Set Home Position",
"description": "Sets the entity's home position to its current position",
"type": "object",
"additionalProperties": false,
"properties": { }
},
"first_valid": {
"title": "First Valid",
"description": "Will evaluate every filter in order and execute the first valid one",
"type": "object",
"additionalProperties": false,
"properties": { }
}
}
},