Updating filters and behaviors

This commit is contained in:
DaanV2
2023-10-24 21:58:11 +02:00
parent 96d0654970
commit b79f694f7a
25 changed files with 496 additions and 16 deletions

View File

@@ -80,6 +80,9 @@
}
},
"allOf": [
{ "if": { "properties": { "test": { "const": "actor_health" } } }, "then": { "$ref": "./filters/actor_health.json" } },
{ "if": { "properties": { "test": { "const": "all_slots_empty" } } }, "then": { "$ref": "./filters/all_slots_empty.json" } },
{ "if": { "properties": { "test": { "const": "any_slots_empty" } } }, "then": { "$ref": "./filters/any_slots_empty.json" } },
{ "if": { "properties": { "test": { "const": "bool_property" } } }, "then": { "$ref": "./filters/bool_property.json" } },
{ "if": { "properties": { "test": { "const": "clock_time" } } }, "then": { "$ref": "./filters/clock_time.json" } },
{ "if": { "properties": { "test": { "const": "distance_to_nearest_player" } } }, "then": { "$ref": "./filters/distance_to_nearest_player.json" } },
@@ -106,6 +109,7 @@
{ "if": { "properties": { "test": { "const": "in_contact_with_water" } } }, "then": { "$ref": "./filters/in_contact_with_water.json" } },
{ "if": { "properties": { "test": { "const": "in_lava" } } }, "then": { "$ref": "./filters/in_lava.json" } },
{ "if": { "properties": { "test": { "const": "in_nether" } } }, "then": { "$ref": "./filters/in_nether.json" } },
{ "if": { "properties": { "test": { "const": "in_overworld" } } }, "then": { "$ref": "./filters/in_overworld.json" } },
{ "if": { "properties": { "test": { "const": "in_water_or_rain" } } }, "then": { "$ref": "./filters/in_water_or_rain.json" } },
{ "if": { "properties": { "test": { "const": "in_water" } } }, "then": { "$ref": "./filters/in_water.json" } },
{ "if": { "properties": { "test": { "const": "inactivity_timer" } } }, "then": { "$ref": "./filters/inactivity_timer.json" } },
@@ -134,6 +138,7 @@
{ "if": { "properties": { "test": { "const": "is_riding" } } }, "then": { "$ref": "./filters/is_riding.json" } },
{ "if": { "properties": { "test": { "const": "is_skin_id" } } }, "then": { "$ref": "./filters/is_skin_id.json" } },
{ "if": { "properties": { "test": { "const": "is_sleeping" } } }, "then": { "$ref": "./filters/is_sleeping.json" } },
{ "if": { "properties": { "test": { "const": "is_sneak_held" } } }, "then": { "$ref": "./filters/is_sneak_held.json" } },
{ "if": { "properties": { "test": { "const": "is_sneaking" } } }, "then": { "$ref": "./filters/is_sneaking.json" } },
{ "if": { "properties": { "test": { "const": "is_snow_covered" } } }, "then": { "$ref": "./filters/is_snow_covered.json" } },
{ "if": { "properties": { "test": { "const": "is_target" } } }, "then": { "$ref": "./filters/is_target.json" } },
@@ -152,6 +157,8 @@
{ "if": { "properties": { "test": { "const": "random_chance" } } }, "then": { "$ref": "./filters/random_chance.json" } },
{ "if": { "properties": { "test": { "const": "rider_count" } } }, "then": { "$ref": "./filters/rider_count.json" } },
{ "if": { "properties": { "test": { "const": "surface_mob" } } }, "then": { "$ref": "./filters/surface_mob.json" } },
{ "if": { "properties": { "test": { "const": "taking_fire_damage" } } }, "then": { "$ref": "./filters/taking_fire_damage.json" } },
{ "if": { "properties": { "test": { "const": "target_distance" } } }, "then": { "$ref": "./filters/target_distance.json" } },
{ "if": { "properties": { "test": { "const": "trusts" } } }, "then": { "$ref": "./filters/trusts.json" } },
{ "if": { "properties": { "test": { "const": "weather_at_position" } } }, "then": { "$ref": "./filters/weather_at_position.json" } },
{ "if": { "properties": { "test": { "const": "weather" } } }, "then": { "$ref": "./filters/weather.json" } },

View File

@@ -0,0 +1,33 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.actor_health",
"type": "object",
"title": "Actor Health",
"description": "Tests the health of the subject.",
"required": ["value"],
"examples": [{ "test": "actor_health", "value": 10 }],
"properties": {
"test": {
"type": "string",
"title": "Test Property",
"description": "Tests the health of the subject."
},
"operator": {
"$ref": "./types/operator.json",
"description": "(Optional) The comparison to apply with `value`.",
"default": "equals",
"title": "Operator"
},
"subject": {
"$ref": "./types/subject.json",
"description": "(Optional) The subject of this filter test.",
"default": "self",
"title": "Subject"
},
"value": {
"type": "integer",
"description": "(Required) A integer value.",
"title": "Value",
"examples": [0, 1]
}
}
}

View File

@@ -0,0 +1,33 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.all_slots_empty",
"type": "object",
"title": "All Slots Empty",
"description": "Returns true when the designated equipment location for the subject entity is completely empty.",
"required": ["value"],
"examples": [{ "test": "all_slots_empty", "subject": "self", "operator": "equals", "value": "any" }, { "test": "all_slots_empty" }],
"properties": {
"test": {
"type": "string",
"title": "Test Property",
"description": "Returns true when the designated equipment location for the subject entity is completely empty."
},
"operator": {
"$ref": "./types/operator.json",
"description": "(Optional) The comparison to apply with `value`.",
"default": "equals",
"title": "Operator"
},
"subject": {
"$ref": "./types/subject.json",
"description": "(Optional) The subject of this filter test.",
"default": "self",
"title": "Subject"
},
"value": {
"title": "Value",
"description": "The equipment location to test.",
"type": "integer",
"$ref": "./types/equipment_location.json"
}
}
}

View File

@@ -0,0 +1,33 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.any_slots_empty",
"type": "object",
"title": "Any Slots Empty",
"description": "Returns true when the designated equipment location for the subject entity has any empty slot.",
"required": ["value"],
"examples": [{ "test": "any_slots_empty", "subject": "self", "operator": "equals", "value": "any" }, { "test": "Any_slots_empty" }],
"properties": {
"test": {
"type": "string",
"title": "Test Property",
"description": "Returns true when the designated equipment location for the subject entity has any empty slot."
},
"operator": {
"$ref": "./types/operator.json",
"description": "(Optional) The comparison to apply with `value`.",
"default": "equals",
"title": "Operator"
},
"subject": {
"$ref": "./types/subject.json",
"description": "(Optional) The subject of this filter test.",
"default": "self",
"title": "Subject"
},
"value": {
"title": "Value",
"description": "The equipment location to test.",
"type": "integer",
"$ref": "./types/equipment_location.json"
}
}
}

View File

@@ -0,0 +1,32 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.in_overworld",
"type": "object",
"title": "In Overworld",
"description": "Returns true when the subject entity is in Overworld.",
"properties": {
"test": {
"type": "string",
"title": "Test",
"description": "The test property."
},
"operator": {
"$ref": "./types/operator.json"
},
"subject": {
"$ref": "./types/subject.json"
},
"value": {
"description": "True or false.",
"type": "boolean",
"default": true,
"title": "Value"
}
},
"examples": [
{
"test": "in_overworld",
"value": true
},
{ "test": "in_overworld" }
]
}

View File

@@ -0,0 +1,31 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.is_sneak_held",
"type": "object",
"title": "Is Sneak Held",
"description": "Returns true if the subject entity has the sneak input held.",
"properties": {
"test": {
"type": "string",
"title": "Test Property",
"description": "The test property."
},
"operator": {
"$ref": "./types/operator.json"
},
"subject": {
"$ref": "./types/subject.json"
},
"value": {
"title": "Value",
"description": "True or false.",
"type": "boolean",
"default": true
}
},
"examples": [
{
"test": "is_sneak_held",
"value": true
}
]
}

View File

@@ -0,0 +1,32 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.taking_fire_damage",
"type": "object",
"title": "Taking Fire Damage",
"description": "Tests if the subject is taking fire damage. Requires the damage_sensor component",
"properties": {
"test": {
"type": "string",
"title": "Test",
"description": "Tests if the subject is taking fire damage. Requires the damage_sensor component"
},
"operator": {
"$ref": "./types/operator.json"
},
"subject": {
"$ref": "./types/subject.json"
},
"value": {
"description": "True or false.",
"type": "boolean",
"default": true,
"title": "Value"
}
},
"examples": [
{
"test": "taking_fire_damage",
"value": true
},
{ "test": "taking_fire_damage" }
]
}

View File

@@ -0,0 +1,26 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.target_distance",
"type": "object",
"title": "Target Distance",
"description": "Tests the distance between the calling entity and its target.",
"required": ["value"],
"properties": {
"test": {
"type": "string",
"title": "Test",
"description": "The test property."
},
"operator": {
"$ref": "./types/operator.json"
},
"subject": {
"$ref": "./types/subject.json"
},
"value": {
"description": "(Required) A floating point value.",
"type": "number",
"default": true,
"title": "Value"
}
}
}

View File

@@ -0,0 +1,8 @@
{
"$id": "blockception.minecraft.behavior.entities.filters.equipment_location",
"title": "Equipment Location",
"type": "string",
"description": "The equipment location to test.",
"default": "self",
"enum": ["any", "armor", "feet", "hand", "head", "inventory", "leg", "torse"]
}

View File

@@ -25,6 +25,12 @@
"default": "N/A",
"description": "Defines the entity types this entity will attack."
},
"can_spread_on_fire": {
"title": "Can Spread On Fire",
"type": "boolean",
"default": false,
"description": "If the entity is on fire, this allows the entity's target to catch on fire after being hi"
},
"cooldown_time": {
"title": "Cooldown Time",
"type": "number",

View File

@@ -12,7 +12,6 @@
"speed_multiplier": {
"$ref": "./types/speed_multiplier.json"
},
"attack_once": {
"title": "Attack Once",
"type": "boolean",
@@ -25,6 +24,12 @@
"default": "N/A",
"description": "Defines the entity types this entity will attack."
},
"can_spread_on_fire": {
"title": "Can Spread On Fire",
"type": "boolean",
"default": false,
"description": "If the entity is on fire, this allows the entity's target to catch on fire after being hi"
},
"cooldown_time": {
"title": "Cooldown Time",
"type": "number",

View File

@@ -19,6 +19,12 @@
"description": "Time in seconds before selecting a target.",
"title": "Attack Interval"
},
"cooldown": {
"title": "Cooldown",
"description": "The amount of time in seconds that the mob has to wait before selecting a target of the same type again",
"default": 0.0,
"type": "number"
},
"must_reach": {
"type": "boolean",
"default": false,

View File

@@ -14,6 +14,12 @@
"default": false,
"description": "If the goal should continue to be used as long as the mob is leashed."
},
"continue_sitting_on_reload": {
"title": "Continue Sitting On Reload",
"type": "boolean",
"default": false,
"description": "The mob will stay sitting on reload."
},
"max_angle_of_view_horizontal": {
"title": "Max Angle Of View Horizontal",
"type": "number",

View File

@@ -0,0 +1,112 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.behavior.random_search_and_dig",
"additionalProperties": false,
"description": "Allows this entity to locate a random target block that it can path find to. Once found, the entity will move towards it and dig up an item.",
"type": "object",
"title": "Random Look Around",
"required": [],
"properties": {
"priority": { "$ref": "types/priority.json" },
"speed_multiplier": { "$ref": "types/speed_multiplier.json" },
"cooldown_range": {
"title": "Cooldown Range",
"default": [0.0, 0.0],
"description": "Goal cooldown range in seconds.",
"$ref": "../../../../general/vectors/number2.json"
},
"digging_duration_range": {
"title": "Digging Duration Range",
"$ref": "../../../../general/vectors/number2.json",
"default": [0.0, 0.0],
"description": "Digging duration in seconds."
},
"find_valid_position_retries": {
"title": "Find Valid Position Retries",
"type": "number",
"default": 0.0,
"description": "Amount of retries to find a valid target position within search range."
},
"goal_radius": {
"title": "Goal Radius",
"type": "number",
"default": 1500000,
"description": "Distance in blocks within the entity to considers it has reached it's target position."
},
"item_table": {
"title": "Item Table",
"type": "string",
"default": "",
"description": "File path relative to the resource pack root for items to spawn list (loot table format)."
},
"on_digging_start": {
"title": "On Digging Start",
"$ref": "../types/trigger.json",
"description": "Event to run when the goal ends searching has begins digging."
},
"on_fail_during_digging": {
"title": "On Fail During Digging",
"$ref": "../types/trigger.json",
"description": "Event to run when the goal failed while in digging state."
},
"on_fail_during_searching": {
"title": "On Fail During Searching",
"$ref": "../types/trigger.json",
"description": "Event to run when the goal failed while in searching state."
},
"on_item_found": {
"title": "On Item Found",
"$ref": "../types/trigger.json",
"description": "Event to run when the goal find a item."
},
"on_searching_start": {
"title": "On Searching Start",
"$ref": "../types/trigger.json",
"description": "Event to run when the goal starts searching."
},
"on_success": {
"title": "On Success",
"$ref": "../types/trigger.json",
"description": "Event to run when searching and digging has ended."
},
"search_range_xz": {
"title": "Search Range XZ",
"type": "number",
"default": 0.0,
"description": "Width and length of the volume around the entity used to find a valid target position"
},
"search_range_y": {
"title": "Search Range Y",
"type": "number",
"default": 0.0,
"description": "Height of the volume around the entity used to find a valid target position"
},
"spawn_item_after_seconds": {
"title": "Spawn Item After Seconds",
"type": "number",
"default": 0.0,
"description": "Digging duration before spawning item in seconds."
},
"spawn_item_pos_offset": {
"title": "Spawn Item Pos Offset",
"type": "number",
"default": 0.0,
"description": "Distance to offset the item's spawn location in the direction the mob is facing."
},
"target_blocks": {
"title": "Target Blocks",
"type": "array",
"description": "List of target block types the goal will look to dig on. Overrides the default list.",
"items": {
"$ref": "../../../../general/block/reference.json"
}
},
"target_dig_position_offset": {
"title": "Target Dig Position Offset",
"type": "number",
"default": 2250000,
"description": "Dig target position offset from the feet position of the mob in their facing direction."
}
}
}

View File

@@ -8,7 +8,6 @@
"properties": {
"priority": { "$ref": "types/priority.json" },
"speed_multiplier": { "$ref": "types/speed_multiplier.json" },
"attack_once": {
"title": "Attack Once",
"type": "boolean",
@@ -21,6 +20,12 @@
"default": "N/A",
"description": "Defines the entity types this entity will attack."
},
"can_spread_on_fire": {
"title": "Can Spread On Fire",
"type": "boolean",
"default": false,
"description": "If the entity is on fire, this allows the entity's target to catch on fire after being hi"
},
"cooldown_time": {
"title": "Cooldown Time",
"type": "number",

View File

@@ -0,0 +1,31 @@
{
"$id": "blockception.minecraft.behavior.entities.minecraft.behavior.timer_flag",
"title": "Timer Flag",
"description": "Fires an event when this behavior starts, then waits for a duration before stopping. When stopping due to that timeout or due to being interrupted by another behavior, fires another event. query.timer_flag_<n> will return 1.0 on both the client and server when this behavior is running, and 0.0 otherwise.",
"type": "object",
"additionalProperties": false,
"properties": {
"cooldown_range": {
"title": "Cooldown Range",
"$ref": "../../../../general/vectors/number2.json",
"default": [10.0, 10.0],
"description": "Goal cooldown range in seconds."
},
"duration_range": {
"title": "Duration Range",
"$ref": "../../../../general/vectors/number2.json",
"default": [2.0, 2.0],
"description": "Goal duration range in seconds."
},
"on_end": {
"title": "On End",
"$ref": "../types/trigger.json",
"description": "Event to run when the goal ends."
},
"on_start": {
"title": "On Start",
"$ref": "../types/trigger.json",
"description": "Event to run when the goal starts."
}
}
}

View File

@@ -348,6 +348,10 @@
"minecraft:behavior.take_flower": { "$ref": "./behaviors/take_flower.json" },
"minecraft:behavior.target_when_pushed": { "$ref": "./behaviors/target_when_pushed.json" },
"minecraft:behavior.tempt": { "$ref": "./behaviors/tempt.json" },
"minecraft:behavior.timer_flag_1": { "$ref": "./behaviors/timer_flag.json" },
"minecraft:behavior.timer_flag_2": { "$ref": "./behaviors/timer_flag.json" },
"minecraft:behavior.timer_flag_3": { "$ref": "./behaviors/timer_flag.json" },
"minecraft:behavior.random_search_and_dig": { "$ref": "./behaviors/random_search_and_dig.json" },
"minecraft:behavior.trade_interest": { "$ref": "./behaviors/trade_interest.json" },
"minecraft:behavior.trade_with_player": { "$ref": "./behaviors/trade_with_player.json" },
"minecraft:behavior.vex_copy_owner_target": { "$ref": "./behaviors/vex_copy_owner_target.json" },

View File

@@ -75,7 +75,7 @@
"title": "Allow Sitting"
},
"blend_attributes": {
"description": "If true, the entities will blend their attributes in the offspring after they breed. For example, horses blend their health, movement, and jump_strength in their offspring.",
"description": "If true, the entities will blend their attributes in the offspring after they breed.",
"type": "boolean",
"default": true,
"title": "Blend Attributes"
@@ -123,6 +123,12 @@
}
]
},
"causes_pregnancy": {
"type": "boolean",
"default": false,
"description": "If true, the entity will become pregnant instead of spawning a baby.",
"title": "Causes Pregnancy"
},
"deny_parents_variant": {
"type": "object",
"description": "Determines how likely the baby of parents with the same variant will deny that variant and take a random variant within the given range instead.",
@@ -210,11 +216,28 @@
},
"title": "Mutation Factor"
},
"causes_pregnancy": {
"type": "boolean",
"default": false,
"description": "If true, the entity will become pregnant instead of spawning a baby.",
"title": "Causes Pregnancy"
"mutation_strategy": {
"title": "Mutation Strategy",
"type": "string",
"default": "none",
"description": "Strategy used for mutating variants and extra variants for offspring. Current valid alternatives are 'random' and 'none'."
},
"parent_centric_attribute_blending": {
"title": "Parent Centric Attribute Blending",
"type": "array",
"description": "[EXPERIMENTAL] List of attributes that should benefit from parent centric attribute blending. For example, horses blend their health, movement, and jump_strength in their offspring."
},
"random_extra_variant_mutation_interval": {
"title": "Random Extra Variant Mutation Interval",
"default": 0,
"$ref": "../../../../general/vectors/number2.json",
"description": "Range used to determine random extra variant."
},
"random_variant_mutation_interval": {
"title": "Random Variant Mutation Interval",
"default": 0,
"$ref": "../../../../general/vectors/number2.json",
"description": "Range used to determine random variant."
},
"inherit_tamed": {
"type": "boolean",

View File

@@ -7,16 +7,16 @@
"required": [],
"properties": {
"height": {
"title": "Height",
"type": "number",
"default": 1,
"description": "Height of the collision box in blocks. A negative value will be assumed to be 0",
"title": "Height"
"default": 1.0,
"description": "Height of the collision box in blocks. A negative value will be assumed to be 0."
},
"width": {
"title": "Width",
"type": "number",
"default": 1,
"description": "Width and Depth of the collision box in blocks. A negative value will be assumed to be 0",
"title": "Width"
"default": 1.0,
"description": "Width of the collision box in blocks. A negative value will be assumed to be 0."
}
},
"examples": [

View File

@@ -4,5 +4,17 @@
"title": "Equip Item",
"description": "The entity puts on the desired equipment.",
"additionalProperties": false,
"properties": {}
"properties": {
"excluded_items": {
"title": "Excluded Items",
"type": "array",
"description": "List of items that the entity should not equip.",
"items": {
"type": "string",
"$ref": "../../../../../general/item/descriptor.json",
"description": "Item that the entity should not equip.",
"title": "Excluded Items"
}
}
}
}

View File

@@ -131,6 +131,19 @@
"description": "Defines the behaviors that may execute on a projectile's hit, including impact damage, impact effect, and stuck in ground. See more on these parameters below.",
"title": "On Hit",
"properties": {
"arrow_effect": {
"title": "Arrow Effect",
"type": "object",
"description": "The target receives a mob effect. See the table below for all arrow_effect parameters.",
"additionalProperties": false,
"properties": {
"apply_effect_to_blocking_targets": {
"type": "boolean",
"title": "Apply Effect To Blocking Targets",
"description": "If true, the effect will be applied to blocking targets."
}
}
},
"catch_fire": {
"title": "Catch Fire",
"type": "boolean",

View File

@@ -106,6 +106,11 @@
}
}
}
},
"singular_pickup": {
"type": "boolean",
"description": "Determines whether the mob can only pickup one item at a time.",
"title": "Singular Pickup"
}
},
"examples": [

View File

@@ -9,6 +9,12 @@
"additionalProperties": false,
"properties": {
"filters": { "$ref": "../../filters/filters.json" },
"cooldown": {
"title": "Cooldown",
"description": "The amount of time in seconds that the mob has to wait before selecting a target of the same type again",
"default": 0.0,
"type": "number"
},
"max_dist": {
"type": "number",
"description": "Maximum distance this mob can be away to be a valid choice.",

View File

@@ -190,6 +190,11 @@
"additionalProperties": { "oneOf": [{ "type": "string" }, { "type": "boolean" }, { "type": "number" }] }
}
},
"rebuild_animation_matrices": {
"type": "boolean",
"description": "Whenever or not to rebuild the animation matrices.",
"title": "Rebuild Animation Matrices"
},
"textures": {
"title": "Textures",
"description": "The texture to apply, multiple texture can be used as to create an overlay effect, a specific material is required though.",

View File

@@ -87,7 +87,13 @@
"max_distance": {
"title": "Max Distance",
"description": "UNDOCUMENTED.",
"type": "number",
"type": ["number", "null"],
"minimum": 0
},
"min_distance": {
"title": "Min Distance",
"description": "UNDOCUMENTED.",
"type": ["number", "null"],
"minimum": 0
}
}