diff --git a/source/behavior/entities/format/behaviors/celebrate.json b/source/behavior/entities/format/behaviors/celebrate.json index 32ada0f6..a7e9052d 100644 --- a/source/behavior/entities/format/behaviors/celebrate.json +++ b/source/behavior/entities/format/behaviors/celebrate.json @@ -2,27 +2,25 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.celebrate", "type": "object", "title": "Celebrate", - "description": "This allows the mob celebrate by jumping up and playing a sound periodically.", + "description": "Allows this entity to celebrate surviving a raid by making celebration sounds and jumping.", "additionalProperties": false, "properties": { - "priority": { - "$ref": "types/priority.json" - }, + "priority": { "$ref": "types/priority.json" }, "celebration_sound": { "type": "string", "default": "", - "description": "The sound to occasionally play.", + "description": "The sound event to trigger during the celebration.", "title": "Celebration Sound" }, "duration": { "type": "number", - "default": 1, - "description": "The duration of the celebration (in seconds).", + "default": 30, + "description": "The duration in seconds that the celebration lasts for.", "title": "Duration" }, "jump_interval": { - "default": 0, - "description": "The range of time in seconds to randomly wait before jumping again.", + "default": [1, 3.5], + "description": "Minimum and maximum time between jumping (positive, in seconds).", "title": "Jump Interval", "oneOf": [ { @@ -62,38 +60,9 @@ }, "sound_interval": { "default": 0, - "description": "The range of time in seconds to randomly wait before playing the sound again.", + "description": "Minimum and maximum time between sound events (positive, in seconds).", "title": "Sound Interval", - "oneOf": [ - { - "type": "array", - "items": [ - { - "type": "number", - "title": "Maximum" - }, - { - "type": "number", - "title": "Maximum" - } - ] - }, - { - "type": "number" - }, - { - "type": "object", - "additionalProperties": false, - "properties": { - "range_min": { - "type": "number" - }, - "range_max": { - "type": "number" - } - } - } - ] + "$ref": "../types/range_number_type.json" } }, "examples": [ @@ -102,4 +71,4 @@ "duration": 1 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/charge_attack.json b/source/behavior/entities/format/behaviors/charge_attack.json index 01fc50c4..b8398185 100644 --- a/source/behavior/entities/format/behaviors/charge_attack.json +++ b/source/behavior/entities/format/behaviors/charge_attack.json @@ -3,14 +3,28 @@ "additionalProperties": false, "type": "object", "title": "Charge Attack", - "description": "Allows the mob to attack its target by running at it.", + "description": "Allows this entity to damage a target by using a running attack.", "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, + "max_distance": { + "title": "Max Distance", + "type": "number", + "default": 3, + "description": "A charge attack cannot start if the entity is farther than this distance to the target." }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" + "min_distance": { + "title": "Min Distance", + "type": "number", + "default": 2, + "description": "A charge attack cannot start if the entity is closer than this distance to the target." + }, + "success_rate": { + "title": "Success Rate", + "type": "number", + "default": 0.1428, + "description": "Percent chance this entity will start a charge attack, if not already attacking (1.0 = 100%)" } } } diff --git a/source/behavior/entities/format/behaviors/charge_held_item.json b/source/behavior/entities/format/behaviors/charge_held_item.json index 02c60922..cdf07107 100644 --- a/source/behavior/entities/format/behaviors/charge_held_item.json +++ b/source/behavior/entities/format/behaviors/charge_held_item.json @@ -2,7 +2,7 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.charge_held_item", "type": "object", "title": "Charge Held Item", - "description": "Allows this mob to charge and use their held item.", + "description": "Allows an entity to charge and use their held item.", "additionalProperties": false, "required": [], "properties": { @@ -12,7 +12,7 @@ "items": { "type": "array", "title": "Items", - "description": "The list of items that can be used to charge the held item.", + "description": "The list of items that can be used to charge the held item. This list is required and must have at least one item in it.", "items": { "type": "string", "description": "Items names to be used.", @@ -25,4 +25,4 @@ "items": [] } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/circle_around_anchor.json b/source/behavior/entities/format/behaviors/circle_around_anchor.json index 46122bd7..96346280 100644 --- a/source/behavior/entities/format/behaviors/circle_around_anchor.json +++ b/source/behavior/entities/format/behaviors/circle_around_anchor.json @@ -3,25 +3,15 @@ "type": "object", "title": "Circle Around Anchor", "additionalProperties": false, - "description": "Allows the mob to move in a circle around a point or a target.", + "description": "Causes an entity to circle around an anchor point placed near a point or target.", "required": [], "properties": { - "priority": { - "$ref": "./types/priority.json" - }, - "speed_multiplier": { - "type": "number", - "default": 1.0, - "description": "Movement speed multiplier of the mob when using this AI Goal", - "title": "Speed Multiplier" - }, + "priority": { "$ref": "./types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "radius_range": { "$ref": "../types/range_number_type.json", - "default": [ - 5.0, - 15.0 - ], - "description": "Range of radius in blocks of the circle to move around.", + "default": [5.0, 15.0], + "description": "Horizontal distance from the anchor point this entity must stay within upon a successful radius adjustment.", "title": "Radius Range" }, "radius_change_chance": { @@ -32,19 +22,13 @@ }, "height_above_target_range": { "$ref": "../types/range_number_type.json", - "default": [ - 0.0, - 0.0 - ], - "description": "When the mob finds a target, the range of height in blocks above the target to start the anchor point.", + "default": [0.0, 0.0], + "description": "The number of blocks above the target that the next anchor point can be set. This value is used only when the entity is tracking a target.", "title": "Height Above Target Range" }, "height_offset_range": { "$ref": "../types/range_number_type.json", - "default": [ - 0.0, - 0.0 - ], + "default": [0.0, 0.0], "description": "The range of height in blocks offset the mob can have from it's anchor point.", "title": "Height Offset Range" }, @@ -57,32 +41,28 @@ "goal_radius": { "type": "number", "default": 0.5, - "description": "Distance in blocks within the mob considers it has reached the goal. This is the `wiggle room` to stop the AI from bouncing back and forth trying to reach a specific spot", + "description": "Maximum distance from the anchor-point in which this entity considers itself to have reached the anchor point. This is to prevent the entity from bouncing back and forth trying to reach a specific spot.", "title": "Goal Radius" }, "radius_change": { "type": "number", "title": "Radius Change", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "description": "The number of blocks to increase the current movement radius by, upon successful `radius_adjustment_chance`. If the current radius increases over the range maximum, the current radius will be set back to the range minimum and the entity will change between clockwise and counter-clockwise movement." }, "radius_adjustment_chance": { "type": "number", "title": "Radius Adjustment Chance", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "description": "Percent chance to determine how often to increase the size of the current movement radius around the anchor point. 1 = 100%. `radius_change_chance` is deprecated and has been replaced with `radius_adjustment_chance`." }, "height_adjustment_chance": { "type": "number", "title": "Height Adjustment Chance", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "description": "Percent chance to determine how often to increase or decrease the current height around the anchor point. 1 = 100%. `height_change_chance` is deprecated and has been replaced with `height_adjustment_chance`." }, "angle_change": { "type": "number", "title": "Angle Change", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "description": "Number of degrees to change this entity's facing by, when the entity selects its next anchor point." } }, "examples": [ @@ -97,4 +77,4 @@ "angle_change": 0.0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/controlled_by_player.json b/source/behavior/entities/format/behaviors/controlled_by_player.json index e1f791f9..c0e2a3ce 100644 --- a/source/behavior/entities/format/behaviors/controlled_by_player.json +++ b/source/behavior/entities/format/behaviors/controlled_by_player.json @@ -3,16 +3,26 @@ "additionalProperties": false, "type": "object", "title": "Controlled By Player", - "description": "Allows the mob to be controlled by the player.", + "description": "Allows the entity to be controlled by the player using an item in the item_controllable property (required). Also requires the minecraft:movement property, and the minecraft:rideable property. On every tick, the entity will attempt to rotate towards where the player is facing with the control item whilst simultaneously moving forward.", "properties": { - "priority": { - "$ref": "./types/priority.json" + "priority": { "$ref": "./types/priority.json" }, + "fractional_rotation": { + "title": "Fractional Rotation", + "type": "number", + "default": 0.5, + "description": "The entity will attempt to rotate to face where the player is facing each tick. The entity will target this percentage of their difference in their current facing angles each tick (from 0.0 to 1.0 where 1.0 = 100%). This is limited by FractionalRotationLimit. A value of 0.0 will result in the entity no longer turning to where the player is facing." + }, + "fractional_rotation_limit": { + "title": "Fractional Rotation Limit", + "type": "number", + "default": 5.0, + "description": "Limits the total degrees the entity can rotate to face where the player is facing on each tick." }, "mount_speed_multiplier": { + "title": "Mount Speed Multiplier", "type": "number", - "default": 1, - "description": "Speed multiplier of mount when controlled by player, defaults to 1.0f", - "title": "Mount Speed Multiplier" + "default": 1.0, + "description": "Speed multiplier of mount when controlled by player." } }, "examples": [ @@ -20,4 +30,4 @@ "mount_speed_multiplier": 1 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/defend_village_target.json b/source/behavior/entities/format/behaviors/defend_village_target.json index 7ef3f3e8..76cc622d 100644 --- a/source/behavior/entities/format/behaviors/defend_village_target.json +++ b/source/behavior/entities/format/behaviors/defend_village_target.json @@ -3,14 +3,13 @@ "additionalProperties": false, "type": "object", "title": "Defend Village Target", - "description": "Allows the mob to stay in the village and fight mobs hostile to the villagers.", + "description": "Allows the entity to stay in a village and defend the village from aggressors. If a player is in bad standing with the village this goal will cause the entity to attack the player regardless of filter conditions.", "properties": { - "priority": { - "$ref": "./types/priority.json" - }, + "priority": { "$ref": "./types/priority.json" }, "entity_types": { "$ref": "../types/entity_types.json", "description": "List of entity types this mob considers a threat to the village", + "$comment": "UNDOCUMENTED", "title": "Entity Types" }, "must_reach": { @@ -21,9 +20,9 @@ }, "attack_chance": { "title": "Attack Chance", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" + "description": "The percentage chance that the entity has to attack aggressors of its village, where 1.0 = 100%.", + "type": "number", + "default": 0.05 } }, "examples": [ @@ -32,4 +31,4 @@ "attack_chance": 0.0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/delayed_attack.json b/source/behavior/entities/format/behaviors/delayed_attack.json index 3ef157f2..c6c8fb2d 100644 --- a/source/behavior/entities/format/behaviors/delayed_attack.json +++ b/source/behavior/entities/format/behaviors/delayed_attack.json @@ -5,64 +5,142 @@ "title": "Delayed Attack", "description": "Allows the mob to drink potions based on specified environment conditions.", "properties": { - "priority": { - "$ref": "./types/priority.json" - }, - "speed_multiplier": { - "$ref": "./types/speed_multiplier.json" - }, + "priority": { "$ref": "./types/priority.json" }, + "speed_multiplier": { "$ref": "./types/speed_multiplier.json" }, "attack_duration": { + "title": "Attack Duration", "type": "number", - "default": 1, - "description": "The duration of the attack animation in seconds", - "title": "Attack Duration" + "default": 0.75, + "description": "The entity's attack animation will play out over this duration (in seconds). Also controls attack cooldown." }, "attack_once": { + "title": "Attack Once", "type": "boolean", "default": false, - "description": "If true, this mob will attack only one time.", - "title": "Attack Once" + "description": "Allows the entity to use this attack behavior, only once EVER." }, "attack_types": { + "title": "Attack Types", "type": "string", - "default": "", - "description": "Defines the entity types this mob will attack", - "title": "Attack Types" + "default": "N/A", + "description": "Defines the entity types this entity will attack." }, - "hit_delay_pct": { + "cooldown_time": { + "title": "Cooldown Time", "type": "number", "default": 1, - "description": "The percentage of the attack_duration that must pass before the hit is made", - "title": "Hit Delay Percentage" + "description": "Cooldown time (in seconds) between attacks." + }, + "hit_delay_pct": { + "title": "Hit Delay Pct", + "type": "number", + "default": 0.5, + "description": "The percentage into the attack animation to apply the damage of the attack (1.0 = 100%)." + }, + "inner_boundary_time_increase": { + "title": "Inner Boundary Time Increase", + "type": "number", + "default": 0.25, + "description": "Time (in seconds) to add to attack path recalculation when the target is beyond the \"path_inner_boundary\"." + }, + "max_dist": { + "title": "Max Dist", + "type": "number", + "description": "Unused. No effect on \"minecraft:behavior.melee_attack\"." + }, + "max_path_time": { + "title": "Max Path Time", + "type": "number", + "default": 0.55, + "description": "Maximum base time (in seconds) to recalculate new attack path to target (before increases applied)." + }, + "melee_fov": { + "title": "Melee Fov", + "type": "number", + "default": 90, + "description": "Field of view (in degrees) when using the sensing component to detect an attack target." + }, + "min_path_time": { + "title": "Min Path Time", + "type": "number", + "default": 0.2, + "description": "Minimum base time (in seconds) to recalculate new attack path to target (before increases applied)." + }, + "on_attack": { + "title": "On Attack", + "description": "Defines the event to trigger when this entity successfully attacks.", + "$ref": "../types/trigger.json" + }, + "outer_boundary_time_increase": { + "title": "Outer Boundary Time Increase", + "type": "number", + "default": 0.5, + "description": "Time (in seconds) to add to attack path recalculation when the target is beyond the \"path_outer_boundary\"." + }, + "path_fail_time_increase": { + "title": "Path Fail Time Increase", + "type": "number", + "default": 0.75, + "description": "Time (in seconds) to add to attack path recalculation when this entity cannot move along the current path." + }, + "path_inner_boundary": { + "title": "Path Inner Boundary", + "type": "number", + "default": 16, + "description": "Distance at which to increase attack path recalculation by \"inner_boundary_tick_increase\"." + }, + "path_outer_boundary": { + "title": "Path Outer Boundary", + "type": "number", + "default": 32, + "description": "Distance at which to increase attack path recalculation by \"outer_boundary_tick_increase\"." }, "random_stop_interval": { + "title": "Random Stop Interval", "type": "integer", "default": 0, - "description": "Defines the probability the mob will stop fighting. A value of 0 disables randomly stopping, while a value of 1 defines a 50% chance", - "title": "Random Stop Interval" + "description": "This entity will have a 1 in N chance to stop it's current attack, where N = \"random_stop_interval\"." }, "reach_multiplier": { + "title": "Reach Multiplier", "type": "number", "default": 2, - "description": "Multiplier for how far outside its box the mob can reach its target (this can be used to simulate a mob with longer arms by making this bigger)", - "title": "Reach Multiplier" + "description": "Used with the base size of the entity to determine minimum target-distance before trying to deal attack damage." }, "require_complete_path": { - "type": "boolean", - "title": "Require Complet Path", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" - }, - "sound_event": { - "type": "string", - "description": "The sound event to play when the attack starts", - "title": "Sound Event" - }, - "track_target": { + "title": "Require Complete Path", "type": "boolean", "default": false, - "description": "If true, this mob will chase after the target as long as it's a valid target", - "title": "Track Target" + "description": "Toggles (on/off) the need to have a full path from the entity to the target when using this melee attack behavior." + }, + "set_persistent": { + "title": "Set Persistent", + "type": "boolean", + "default": false, + "description": "Allows the actor to be set to persist upon targeting a player" + }, + "target_dist": { + "title": "Target Dist", + "type": "number", + "description": "Unused. No effect on \"minecraft:behavior.melee_attack\"." + }, + "track_target": { + "title": "Track Target", + "type": "boolean", + "default": false, + "description": "Allows the entity to track the attack target, even if the entity has no sensing." + }, + "x_max_rotation": { + "title": "X Max Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the X-axis, this entity can rotate while trying to look at the target." + }, + "y_max_head_rotation": { + "title": "Y Max Head Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the Y-axis, this entity can rotate its head while trying to look at the target." } }, "examples": [ @@ -78,4 +156,4 @@ "track_target": false } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/dragonchargeplayer.json b/source/behavior/entities/format/behaviors/dragonchargeplayer.json index 20a5115d..3bab7c35 100644 --- a/source/behavior/entities/format/behaviors/dragonchargeplayer.json +++ b/source/behavior/entities/format/behaviors/dragonchargeplayer.json @@ -3,10 +3,40 @@ "additionalProperties": false, "type": "object", "title": "Dragonchargeplayer", - "description": "Allows the dragon to attack a player by flying fast at them. The player is chosen by the dragonscanning goal. Can only be used by the Ender Dragon.", + "description": "Allows this entity to attack a player by charging at them. The player is chosen by the \"minecraft:behavior.dragonscanning\". Can only be used by the Ender Dragon.", "properties": { "priority": { "$ref": "./types/priority.json" + }, + "active_speed": { + "title": "Active Speed", + "type": "number", + "default": 1, + "description": "The speed this entity moves when this behavior has started or while it's active." + }, + "continue_charge_threshold_time": { + "title": "Continue Charge Threshold Time", + "type": "number", + "default": 0.5, + "description": "If the dragon is outside the \"target_zone\" for longer than \"continue_charge_threshold_time\" seconds, the charge is canceled." + }, + "flight_speed": { + "title": "Flight Speed", + "type": "number", + "default": 0.6, + "description": "The speed this entity moves while this behavior is not active." + }, + "target_zone": { + "title": "Target Zone", + "$ref": "../types/range_number_type.json", + "default": [10, 150], + "description": "Minimum and maximum distance, from the target, this entity can use this behavior." + }, + "turn_speed": { + "title": "Turn Speed", + "type": "number", + "default": 0.7, + "description": "The speed at which this entity turns while using this behavior." } } } diff --git a/source/behavior/entities/format/behaviors/dragonflaming.json b/source/behavior/entities/format/behaviors/dragonflaming.json index abb1ad4a..5f0cc96e 100644 --- a/source/behavior/entities/format/behaviors/dragonflaming.json +++ b/source/behavior/entities/format/behaviors/dragonflaming.json @@ -7,6 +7,30 @@ "properties": { "priority": { "$ref": "./types/priority.json" + }, + "cooldown_time": { + "title": "Cooldown Time", + "type": "number", + "default": 10, + "description": "Time (in seconds), after roar, to breath flame." + }, + "flame_time": { + "title": "Flame Time", + "type": "number", + "default": 0.5, + "description": "Time (in seconds), after roar, to breath flame." + }, + "ground_flame_count": { + "title": "Ground Flame Count", + "type": "integer", + "default": 4, + "description": "Number of ground flame-breath attacks to use before flight-takeoff." + }, + "roar_time": { + "title": "Roar Time", + "type": "number", + "default": 2, + "description": "Time (in seconds) to roar, before breathing flame." } } } diff --git a/source/behavior/entities/format/behaviors/dragonstrafeplayer.json b/source/behavior/entities/format/behaviors/dragonstrafeplayer.json index 826ff3ba..2e6e6f07 100644 --- a/source/behavior/entities/format/behaviors/dragonstrafeplayer.json +++ b/source/behavior/entities/format/behaviors/dragonstrafeplayer.json @@ -3,10 +3,58 @@ "additionalProperties": false, "type": "object", "title": "Dragonstrafeplayer", - "description": "Allows the dragon to fly around looking for a player and shoot fireballs at them. Can only be used by the Ender Dragon.", + "description": "Allows this entity to fly around looking for a player to shoot fireballs at. Can only be used by the Ender Dragon.", "properties": { "priority": { "$ref": "./types/priority.json" + }, + "active_speed": { + "title": "Active Speed", + "type": "number", + "default": 1, + "description": "The speed this entity moves when this behavior has started or while it's active." + }, + "fireball_range": { + "title": "Fireball Range", + "type": "number", + "default": 64, + "description": "Maximum distance of this entity's fireball attack while strafing." + }, + "flight_speed": { + "title": "Flight Speed", + "type": "number", + "default": 0.6, + "description": "The speed this entity moves while this behavior is not active." + }, + "switch_direction_probability": { + "title": "Switch Direction Probability", + "type": "number", + "default": 0.125, + "description": "Percent chance to to switch this entity's strafe direction between clockwise and counterclockwise. Switch direction chance occurs each time a new target is chosen (1.0 = 100%)." + }, + "target_in_range_and_in_view_time": { + "title": "Target In Range And In View Time", + "type": "number", + "default": 0.25, + "description": "Time (in seconds) the target must be in fireball range, and in view [ie, no solid terrain in-between the target and this entity], before a fireball can be shot." + }, + "target_zone": { + "title": "Target Zone", + "$ref": "../types/range_number_type.json", + "default": [10, 150], + "description": "Minimum and maximum distance, from the target, this entity can use this behavior." + }, + "turn_speed": { + "title": "Turn Speed", + "type": "number", + "default": 0.7, + "description": "The speed at which this entity turns while using this behavior." + }, + "view_angle": { + "title": "View Angle", + "type": "number", + "default": 10, + "description": "The target must be within \"view_angle\" degrees of the dragon's current rotation before a fireball can be shot." } } } diff --git a/source/behavior/entities/format/behaviors/drop_item_for.json b/source/behavior/entities/format/behaviors/drop_item_for.json index 89e0f2ae..c01b2e82 100644 --- a/source/behavior/entities/format/behaviors/drop_item_for.json +++ b/source/behavior/entities/format/behaviors/drop_item_for.json @@ -1,157 +1,105 @@ { "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.drop_item_for", "additionalProperties": false, - "description": "Allows the mob to move near a target and drop an item.", + "description": "Allows the entity to move toward a target, and drop an item near the target. This goal requires a \"minecraft:navigation\" to execute.", "title": "Drop Item For", "type": "object", "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, - "cooldown": { - "title": "Cooldown", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - "drop_item_chance": { - "type": "number", - "default": [ - 1.0 - ], - "description": "The probability that the mob will drop an item.", - "title": "Drop Item Chance" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "entity_types": { - "description": "List of entity types this mob will drop items for.", + "description": "The list of conditions another entity must meet to be a valid target to drop an item for.", "title": "Entity Types", "$ref": "../types/entity_types.json" }, + "cooldown": { + "title": "Cooldown", + "type": "number", + "default": 0.2, + "description": "Total time that the goal is on cooldown before it can be used again." + }, + "drop_item_chance": { + "title": "Drop Item Chance", + "type": "number", + "default": 1.0, + "description": "The percent chance the entity will drop an item when using this goal." + }, "goal_radius": { + "title": "Goal Radius", "type": "number", "default": 0.5, - "description": "Distance in blocks within the mob considers it has reached the goal. This is the `wiggle room` to stop the AI from bouncing back and forth trying to reach a specific spot", - "title": "Goal Radius" + "description": "Distance in blocks within the entity considers it has reached it's target position." }, "loot_table": { + "title": "Loot Table", "type": "string", - "pattern": "^loot_tables.*\\.json$", - "description": "Loot table to select items from.", - "title": "Loot Table" + "description": "The loot table that contains the possible loot the entity can drop with this goal.", + "examples": ["loot_tables/"] }, - "max_dist": { + "max_head_look_at_height": { + "title": "Max Head Look At Height", "type": "number", - "default": 0, - "description": "Maximum distance in blocks this mob will look for entities to drop an item for.", - "title": "Maximum Dist" + "default": 10.0, + "description": "The maximum height the entities head will look at when dropping the item. The entity will always be looking at its target." }, "minimum_teleport_distance": { "title": "Minimum Teleport Distance", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - "max_head_look_at_height": { - "title": "Maximum Head Look At Height", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" + "type": "number", + "default": 2.0, + "description": "If the target position is farther away than this distance on any tick, the entity will teleport to the target position." }, "offering_distance": { + "title": "Offering Distance", "type": "number", - "default": [ - 1.0 - ], - "description": "The distance in blocks the mob will try to be away from the entity when it drops the item.", - "title": "Offering Distance" + "default": 1.0, + "description": "The preferred distance the entity tries to be from the target it is dropping an item for." }, "on_drop_attempt": { - "$ref": "../types/event.json", - "description": "Event to run when this mob attempts to drop an item.", - "title": "On Drop Attempt" + "title": "On Drop Attempt", + "$ref": "../types/trigger.json", + "description": "The event to trigger when the entity attempts to drop an item." + }, + "search_count": { + "title": "Search Count", + "type": "integer", + "default": 0, + "description": "The number of blocks each tick that the entity will check within its search range and height for a valid block to move to. A value of 0 will have the mob check every block within range in one tick." + }, + "search_height": { + "title": "Search Height", + "type": "integer", + "default": 1, + "description": "The Height in blocks the entity will search within to find a valid target position." + }, + "search_range": { + "title": "Search Range", + "type": "integer", + "default": 0, + "description": "The distance in blocks the entity will search within to find a valid target position." }, "seconds_before_pickup": { "title": "Seconds Before Pickup", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - "search_count": { - "type": "integer", - "default": 1, - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "title": "Search Height" - }, - "search_height": { - "type": "integer", - "default": 1, - "description": "Height in blocks from the target the mob can be.", - "title": "Search Height" - }, - "search_range": { - "type": "integer", - "default": 0, - "description": "The distance in blocks from the target the mob can be.", - "title": "Search Range" + "type": "number", + "default": 0.0, + "description": "The numbers of seconds that will pass before the dropped entity can be picked up from the ground." }, "target_range": { "title": "Target Range", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "array", - "items": [ - { - "type": "number" - }, - { - "type": "number" - }, - { - "type": "number" - } - ] + "$ref": "../../../../general/vectors/number3.json", + "default": [1, 1, 1], + "description": "The range in blocks within which the entity searches to find a target to drop an item for." }, "teleport_offset": { "title": "Teleport Offset", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "array", - "items": [ - { - "type": "number" - }, - { - "type": "number" - }, - { - "type": "number" - } - ] + "$ref": "../../../../general/vectors/number3.json", + "default": [0, 1, 0], + "description": "When the entity teleports, offset the teleport position by this many blocks in the X, Y, and Z coordinate." }, "time_of_day_range": { - "default": [ - 0.0, - 1.0 - ], - "description": "The valid times of day that this goal can be used. For reference: noon is 0.0, sunset is 0.25, midnight is 0.5, and sunrise is 0.75, and back to noon for 1.0.", "title": "Time Of Day Range", - "type": "array", - "items": [ - { - "type": "number", - "minimum": 0, - "maximum": 1 - }, - { - "type": "number", - "minimum": 0, - "maximum": 1 - } - ] + "$ref": "../types/range_number_type.json", + "default": [0, 1], + "description": "The valid times of day that this goal can be used. For reference: noon is 0.0, sunset is 0.25, midnight is 0.5, and sunrise is 0.75, and back to noon for 1.0." } }, "examples": [ @@ -173,4 +121,4 @@ "time_of_day_range": [] } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/eat_block.json b/source/behavior/entities/format/behaviors/eat_block.json index c6436c3a..d6298701 100644 --- a/source/behavior/entities/format/behaviors/eat_block.json +++ b/source/behavior/entities/format/behaviors/eat_block.json @@ -2,37 +2,32 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.eat_block", "type": "object", "title": "Eat Block", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", + "description": "Allows the entity to consume a block, replace the eaten block with another block, and trigger an event as a result.", "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "./types/priority.json" - }, + "priority": { "$ref": "./types/priority.json" }, "on_eat": { "$ref": "../types/trigger.json", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", + "description": "The event to trigger when the block eating animation has completed.", "title": "On Eat" }, "success_chance": { "title": "Succes Chance", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", + "description": "A molang expression defining the success chance the entity has to consume a block.", + "default": 0.02, "$ref": "../../../../molang/number.json" }, "time_until_eat": { "title": "Time Until Eat", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", + "description": "The amount of time (in seconds) it takes for the block to be eaten upon a successful eat attempt.", + "default": 1.8, "type": "number" }, "eat_and_replace_block_pairs": { "type": "array", "title": "Eat And Replace Block Pairs", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", + "description": "A collection of pairs of blocks; the first (\"eat_block\")is the block the entity should eat, the second (\"replace_block\") is the block that should replace the eaten block.", "items": { "type": "object", "title": "Eat And Replace Block Pair", @@ -60,7 +55,12 @@ "examples": [ { "time_until_eat": 0.0, - "eat_and_replace_block_pairs": [] + "eat_and_replace_block_pairs": [ + { + "eat_block": "minecraft:grass", + "replace_block": "minecraft:dirt" + } + ] } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/equip_item.json b/source/behavior/entities/format/behaviors/equip_item.json index fac49e2d..7fc798ef 100644 --- a/source/behavior/entities/format/behaviors/equip_item.json +++ b/source/behavior/entities/format/behaviors/equip_item.json @@ -2,7 +2,7 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.equip_item", "type": "object", "title": "Equip Item", - "description": "Allows the entity to equip desired equipment.", + "description": "The entity puts on the desired equipment.", "additionalProperties": false, "properties": { "priority": { diff --git a/source/behavior/entities/format/behaviors/explore_outskirts.json b/source/behavior/entities/format/behaviors/explore_outskirts.json index 870730c0..0d707d0b 100644 --- a/source/behavior/entities/format/behaviors/explore_outskirts.json +++ b/source/behavior/entities/format/behaviors/explore_outskirts.json @@ -2,101 +2,71 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.explore_outskirts", "type": "object", "title": "Explore Outskirts", - "description": "behavior explore outskirts", + "description": "Allows the entity to first travel to a random point on the outskirts of the village, and then explore random points within a small distance. This goal requires \"minecraft:dweller\" and \"minecraft:navigation\" to execute.", "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, + "dist_from_boundary": { + "title": "Dist From Boundary", + "default": [5, 0, 5], + "description": "The distance from the boundary the villager must be within in to explore the outskirts.", + "$ref": "../../../../general/vectors/number3.json" }, "explore_dist": { + "title": "Explore Dist", "type": "number", - "default": 5, - "description": "The distance in which the mob will proceed past the village bounds", - "title": "Explore Dist" + "default": 5.0, + "description": "Total distance in blocks the the entity will explore beyond the village bounds when choosing its travel point." }, - "wait_time": { - "type": "integer", - "default": 0, - "description": "The time the mob will stand around `searching` for POIs", - "title": "Wait Time" + "max_travel_time": { + "title": "Max Travel Time", + "type": "number", + "default": 60.0, + "description": "This is the maximum amount of time an entity will attempt to reach it's travel point on the outskirts of the village before the goal exits." + }, + "max_wait_time": { + "title": "Max Wait Time", + "type": "number", + "default": 0.0, + "description": "The wait time in seconds between choosing new explore points will be chosen on a random interval between this value and the minimum wait time. This value is also the total amount of time the entity will explore random points before the goal stops." + }, + "min_dist_from_target": { + "title": "Min Dist From Target", + "type": "number", + "default": 2.2, + "description": "The entity must be within this distance for it to consider it has successfully reached its target." + }, + "min_perimeter": { + "title": "Min Perimeter", + "type": "number", + "default": 1.0, + "description": "The minimum perimeter of the village required to run this goal." + }, + "min_wait_time": { + "title": "Min Wait Time", + "type": "number", + "default": 3.0, + "description": "The wait time in seconds between choosing new explore points will be chosen on a random interval between this value and the maximum wait time." }, "next_xz": { "title": "Next XZ", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "integer" + "type": "integer", + "default": 5, + "description": "A new explore point will randomly be chosen within this XZ distance of the current target position when navigation has finished and the wait timer has elapsed." }, "next_y": { "title": "Next Y", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "integer" - }, - "min_wait_time": { - "title": "Minimum Wait Time", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - "max_wait_time": { - "title": "Maximum Wait Time", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - "max_travel_time": { - "title": "Maximum Travel Time", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - "min_perimeter": { - "title": "Minimum Perimeter", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - "min_dist_from_target": { - "title": "Minimum Distance From Target", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" + "type": "integer", + "default": 3, + "description": "A new explore point will randomly be chosen within this Y distance of the current target position when navigation has finished and the wait timer has elapsed." }, "timer_ratio": { "title": "Timer Ratio", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - "dist_from_boundary": { - "title": "Distance From Boundary", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "array", - "items": [ - { - "title": "X", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - { - "title": "Y", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - }, - { - "title": "Z", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "type": "number" - } - ] + "type": "number", + "default": 2.0, + "description": "Each new explore point will be chosen on a random interval between the minimum and the maximum wait time, divided by this value. This does not apply to the first explore point chosen when the goal runs." } }, "examples": [ @@ -114,4 +84,4 @@ "dist_from_boundary": [] } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/find_cover copy.json b/source/behavior/entities/format/behaviors/find_cover copy.json deleted file mode 100644 index 2a7bc812..00000000 --- a/source/behavior/entities/format/behaviors/find_cover copy.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.find_cover", - "type": "object", - "title": "Find Cover", - "description": "Allows the mob to seek shade.", - "additionalProperties": false, - "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, - "cooldown_time": { - "type": "number", - "default": 0, - "description": "Time in seconds the mob has to wait before using the goal again", - "title": "Cooldown Time" - } - }, - "examples": [ - { - "cooldown_time": 0 - } - ] -} \ No newline at end of file diff --git a/source/behavior/entities/format/behaviors/find_cover.json b/source/behavior/entities/format/behaviors/find_cover.json index 2a7bc812..55da1986 100644 --- a/source/behavior/entities/format/behaviors/find_cover.json +++ b/source/behavior/entities/format/behaviors/find_cover.json @@ -5,12 +5,8 @@ "description": "Allows the mob to seek shade.", "additionalProperties": false, "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "cooldown_time": { "type": "number", "default": 0, @@ -23,4 +19,4 @@ "cooldown_time": 0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/follow_owner.json b/source/behavior/entities/format/behaviors/follow_owner.json index 8f5c57d6..e10c1cf1 100644 --- a/source/behavior/entities/format/behaviors/follow_owner.json +++ b/source/behavior/entities/format/behaviors/follow_owner.json @@ -2,7 +2,7 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.follow_owner", "type": "object", "title": "Follow Owner", - "description": "Allows the mob to follow their parent around.", + "description": "Allows the mob to follow the player that owns them.", "additionalProperties": false, "required": [], "properties": { @@ -12,17 +12,35 @@ "speed_multiplier": { "$ref": "./types/speed_multiplier.json" }, - "start_distance": { + "can_teleport": { + "title": "Can Teleport", + "type": "boolean", + "default": true, + "description": "Specify if the mob can teleport to the player if it is too far away" + }, + "ignore_vibration": { + "title": "Ignore Vibration", + "type": "boolean", + "default": true, + "description": "Specify if the mob will follow the owner if it has heard a vibration lately" + }, + "max_distance": { + "title": "Max Distance", "type": "number", - "default": 10, - "description": "The distance in blocks that the owner can be away from this mob before it starts following it", - "title": "Start Distance" + "default": 60.0, + "description": "The maximum distance in blocks this mob can be from its owner to start following, only used when canTeleport is false" + }, + "start_distance": { + "title": "Start Distance", + "type": "number", + "default": 10.0, + "description": "The distance in blocks that the owner can be away from this mob before it starts following it" }, "stop_distance": { + "title": "Stop Distance", "type": "number", - "default": 2, - "description": "The distance in blocks this mob will stop from its owner while following it", - "title": "Stop Distance" + "default": 2.0, + "description": "The distance in blocks this mob will stop from its owner while following it" } }, "examples": [ @@ -31,4 +49,4 @@ "stop_distance": 2 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/follow_target_captain.json b/source/behavior/entities/format/behaviors/follow_target_captain.json index eab226d7..33e1dd45 100644 --- a/source/behavior/entities/format/behaviors/follow_target_captain.json +++ b/source/behavior/entities/format/behaviors/follow_target_captain.json @@ -6,12 +6,8 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "follow_distance": { "type": "number", "default": 0, @@ -31,4 +27,4 @@ "within_radius": 0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/go_home.json b/source/behavior/entities/format/behaviors/go_home.json index 4e3fcf55..8dba9c49 100644 --- a/source/behavior/entities/format/behaviors/go_home.json +++ b/source/behavior/entities/format/behaviors/go_home.json @@ -5,12 +5,8 @@ "title": "Go Home", "type": "object", "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "goal_radius": { "type": "number", "default": 0.5, @@ -24,15 +20,20 @@ "title": "Interval" }, "on_home": { - "description": "Event to run when this mob gets home.", + "description": "Event(s) to run when this mob gets home.", "title": "On Home", "oneOf": [{ "$ref": "../types/trigger.json" }, { "type": "array", "items": { "$ref": "../types/trigger.json" } }] }, "on_failed": { "title": "On Failed", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", + "description": "Event(s) to run when this goal fails.", "oneOf": [{ "$ref": "../types/event.json" }, { "type": "array", "items": { "$ref": "../types/event.json" } }] + }, + "calculate_new_path_radius": { + "title": "Calculate New Path Radius", + "type": "number", + "default": 2.0, + "description": "Distance in blocks that the mob is considered close enough to the end of the current path. A new path will then be calculated to continue toward home." } }, "examples": [ diff --git a/source/behavior/entities/format/behaviors/guardian_attack.json b/source/behavior/entities/format/behaviors/guardian_attack.json index 7fb108a6..7a56c9d6 100644 --- a/source/behavior/entities/format/behaviors/guardian_attack.json +++ b/source/behavior/entities/format/behaviors/guardian_attack.json @@ -2,12 +2,54 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.guardian_attack", "type": "object", "title": "Guardian Attack", - "description": "Allows the guardian to use its laser beam attack. Can only be used by Guardians and Elder Guardians.", + "description": "Allows this entity to use a laser beam attack. Can only be used by Guardians and Elder Guardians.", "additionalProperties": false, "required": [], "properties": { "priority": { "$ref": "./types/priority.json" + }, + "elder_extra_magic_damage": { + "title": "Elder Extra Magic Damage", + "type": "integer", + "default": 2, + "description": "Amount of additional damage dealt from an elder guardian's magic attack." + }, + "hard_mode_extra_magic_damage": { + "title": "Hard Mode Extra Magic Damage", + "type": "integer", + "default": 2, + "description": "In hard difficulty, amount of additional damage dealt from a guardian's magic attack." + }, + "magic_damage": { + "title": "Magic Damage", + "type": "integer", + "default": 1, + "description": "Amount of damage dealt from a guardian's magic attack. Magic attack damage is added to the guardian's base attack damage." + }, + "min_distance": { + "title": "Min Distance", + "type": "number", + "default": 3, + "description": "Guardian attack behavior stops if the target is closer than this distance (doesn't apply to elders)." + }, + "sound_delay_time": { + "title": "Sound Delay Time", + "type": "number", + "default": 0.5, + "description": "Time (in seconds) to wait after starting an attack before playing the guardian attack sound." + }, + "x_max_rotation": { + "title": "X Max Rotation", + "type": "number", + "default": 90, + "description": "Maximum rotation (in degrees), on the X-axis, this entity can rotate while trying to look at the target." + }, + "y_max_head_rotation": { + "title": "Y Max Head Rotation", + "type": "number", + "default": 90, + "description": "Maximum rotation (in degrees), on the Y-axis, this entity can rotate its head while trying to look at the target." } } } diff --git a/source/behavior/entities/format/behaviors/harvest_farm_block.json b/source/behavior/entities/format/behaviors/harvest_farm_block.json index c3eee1f1..4a75cd64 100644 --- a/source/behavior/entities/format/behaviors/harvest_farm_block.json +++ b/source/behavior/entities/format/behaviors/harvest_farm_block.json @@ -6,12 +6,8 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "max_seconds_before_search": { "title": "Maximum Seconds Before Search", "description": "UNDOCUMENTED", @@ -38,4 +34,4 @@ "seconds_until_new_task": 0.0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/hide.json b/source/behavior/entities/format/behaviors/hide.json index 6a52eaa1..eda8e96c 100644 --- a/source/behavior/entities/format/behaviors/hide.json +++ b/source/behavior/entities/format/behaviors/hide.json @@ -6,12 +6,8 @@ "description": "Allows a mob with the hide component to attempt to move to - and hide at - an owned or nearby POI.", "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "duration": { "type": "number", "default": 1, @@ -23,9 +19,7 @@ "default": "", "description": "Defines what POI type to hide at.", "title": "Point Of Interest Type", - "examples": [ - "bed" - ] + "examples": ["bed"] }, "timeout_cooldown": { "type": "number", @@ -41,4 +35,4 @@ "timeout_cooldown": 8 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/inspect_bookshelf.json b/source/behavior/entities/format/behaviors/inspect_bookshelf.json index df53ccb4..8c497cb9 100644 --- a/source/behavior/entities/format/behaviors/inspect_bookshelf.json +++ b/source/behavior/entities/format/behaviors/inspect_bookshelf.json @@ -6,12 +6,8 @@ "description": "Allows the mob to inspect bookshelves.", "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "goal_radius": { "type": "number", "default": 0.5, @@ -45,4 +41,4 @@ "search_range": 0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/jump_to_block.json b/source/behavior/entities/format/behaviors/jump_to_block.json index 52de59f8..1cc581ca 100644 --- a/source/behavior/entities/format/behaviors/jump_to_block.json +++ b/source/behavior/entities/format/behaviors/jump_to_block.json @@ -2,61 +2,76 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.jump_to_block", "type": "object", "title": "Melee Attack", - "description": "Allows the mob to search around for a block to jump to and then jump to that block.", + "description": "Allows an entity to jump to another random block.", "additionalProperties": false, "required": [], "properties": { "priority": { "$ref": "./types/priority.json" }, - "search_width": { - "type": "integer", - "title": "Search Width", - "default": 8, - "description": "The maximum width in blocks that the mob will search. Range [2, 15]." - }, - "search_height": { - "type": "integer", - "default": 10, - "title": "Search Height", - "description": "The maximum height in blocks that the mob will search. Range [2, 15]." - }, - "minimum_path_length": { - "type": "integer", - "default": 5, - "title": "Minimum Path Length", - "description": "The minimum length in blocks of the mob's path to a block in order to consider jumping to it." - }, - "minimum_distance": { - "type": "number", - "default": 5, - "title": "Minimum Distance", - "description": "The minimum distance in blocks from the mob to a block in order to consider jumping to it." - }, - "scale_factor": { - "type": "number", - "title": "Scale Factor", - "default": 0.7, - "description": "The scale factor of the bounding box of the mob while it is jumping." - }, "cooldown_range": { "title": "Cooldown Range", - "description": "The minimum and maximum cooldown time-range in seconds between each attempted jump.", + "$ref": "../types/range_number_type.json", + "default": [10, 20], + "description": "Minimum and maximum cooldown time-range (positive, in seconds) between each attempted jump." + }, + "forbidden_blocks": { + "title": "Forbidden Blocks", "type": "array", - "items": [ - { - "title": "Minimum", - "description": "Minimum", - "type": "number", - "minimum": 0 - }, - { - "title": "Maximum", - "description": "Maximum", - "type": "number", - "minimum": 0 - } - ] + "description": "Blocks that the mob can't jump to.", + "items": { + "$ref": "../../../../general/block/identifier.json" + } + }, + "max_velocity": { + "title": "Max Velocity", + "type": "number", + "default": 1500000, + "description": "The maximum velocity with which the mob can jump." + }, + "minimum_distance": { + "title": "Minimum Distance", + "type": "integer", + "default": 2, + "description": "The minimum distance (in blocks) from the mob to a block, in order to consider jumping to it." + }, + "minimum_path_length": { + "title": "Minimum Path Length", + "type": "integer", + "default": 5, + "description": "The minimum length (in blocks) of the mobs path to a block, in order to consider jumping to it." + }, + "preferred_blocks": { + "title": "Preferred Blocks", + "type": "array", + "description": "Blocks that the mob prefers jumping to.", + "items": { + "$ref": "../../../../general/block/identifier.json" + } + }, + "preferred_blocks_chance": { + "title": "Preferred Blocks Chance", + "type": "number", + "default": 1000000, + "description": "Chance (between 0.0 and 1.0) that the mob will jump to a preferred block, if in range. Only matters if preferred blocks are defined." + }, + "scale_factor": { + "title": "Scale Factor", + "type": "number", + "default": 0.7, + "description": "The scalefactor of the bounding box of the mob while it is jumping." + }, + "search_height": { + "title": "Search Height", + "type": "integer", + "default": 10, + "description": "The height (in blocks, in range [2, 15]) of the search box, centered around the mob." + }, + "search_width": { + "title": "Search Width", + "type": "integer", + "default": 8, + "description": "The width (in blocks, in range [2, 15]) of the search box, centered around the mob." } }, "examples": [ diff --git a/source/behavior/entities/format/behaviors/knockback_roar.json b/source/behavior/entities/format/behaviors/knockback_roar.json index 89cbde14..7213512c 100644 --- a/source/behavior/entities/format/behaviors/knockback_roar.json +++ b/source/behavior/entities/format/behaviors/knockback_roar.json @@ -9,16 +9,21 @@ "$ref": "./types/priority.json" }, "attack_time": { + "title": "Attack Time", "type": "number", - "default": 0.5, - "description": "The delay after which the knockback occurs (in seconds).", - "title": "Attack Time" + "default": 1.0, + "description": "The delay after which the knockback occurs (in seconds)." }, "cooldown_time": { + "title": "Cooldown Time", "type": "number", "default": 0, - "description": "Time in seconds the mob has to wait before using the goal again", - "title": "Cooldown Time" + "description": "Time in seconds the mob has to wait before using the goal again" + }, + "damage_filters": { + "$ref": "../../filters/filters.json", + "description": "The list of conditions another entity must meet to be a valid target to apply damage to.", + "title": "Damage Filters" }, "duration": { "type": "number", @@ -32,6 +37,17 @@ "description": "The damage dealt by the knockback roar.", "title": "Knockback Damage" }, + "knockback_strength": { + "type": "integer", + "default": 4, + "description": "The strength of the knockback.", + "title": "Knockback Strength" + }, + "knockback_filters": { + "$ref": "../../filters/filters.json", + "description": "The list of conditions another entity must meet to be a valid target to apply knockback to.", + "title": "Knockback Filters" + }, "knockback_horizontal_strength": { "type": "integer", "default": 4, @@ -50,31 +66,21 @@ "description": "The strength of the vertical knockback.", "title": "Knockback Vertical Strength" }, + "knockback_height_cap": { + "title": "Knockback Height Cap", + "type": "number", + "default": 0.4, + "description": "The maximum height for vertical knockback." + }, "track_target": { "type": "boolean", "default": false, "description": "If true, this mob will chase after the target as long as it's a valid target", "title": "Track Target" }, - "knockback_strength": { - "type": "integer", - "default": 4, - "description": "The strength of the knockback.", - "title": "Knockback Strength" - }, - "knockback_filters": { - "$ref": "../../filters/filters.json", - "description": "filters to use to decide what is affected by knockback roar.", - "title": "Knockback Filters" - }, - "damage_filters": { - "$ref": "../../filters/filters.json", - "description": "filters to use to decide what is damaged by knockback roar.", - "title": "Damage Filters" - }, "on_roar_end": { "$ref": "../types/event.json", - "description": "Event to run when knockback roar has finished.", + "description": "Event that is triggered when the roar ends.", "title": "On Roar End" } }, diff --git a/source/behavior/entities/format/behaviors/lay_egg.json b/source/behavior/entities/format/behaviors/lay_egg.json index e225b9c4..0f2a353e 100644 --- a/source/behavior/entities/format/behaviors/lay_egg.json +++ b/source/behavior/entities/format/behaviors/lay_egg.json @@ -6,12 +6,8 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "goal_radius": { "type": "number", "default": 0.5, @@ -43,4 +39,4 @@ "search_range": 0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/melee_attack.json b/source/behavior/entities/format/behaviors/melee_attack.json index 6ca6d89a..d30bc60c 100644 --- a/source/behavior/entities/format/behaviors/melee_attack.json +++ b/source/behavior/entities/format/behaviors/melee_attack.json @@ -12,64 +12,129 @@ "speed_multiplier": { "$ref": "./types/speed_multiplier.json" }, - "melee_fov": { - "type": "number", - "default": 90.0, - "description": "The allowable FOV the actor will use to determine if it can make a valid melee attack", - "title": "Melee Fov" - }, - "track_target": { + + "attack_once": { + "title": "Attack Once", "type": "boolean", "default": false, - "description": "If true, this mob will chase after the target as long as it's a valid target", - "title": "Track Target" + "description": "Allows the entity to use this attack behavior, only once EVER." }, "attack_types": { + "title": "Attack Types", "type": "string", - "description": "Defines the entity types this mob will attack", - "title": "Attack Types" - }, - "random_stop_interval": { - "type": "integer", - "default": 0, - "description": "Defines the probability the mob will stop fighting. A value of 0 disables randomly stopping, while a value of 1 defines a 50% chance", - "title": "Random Stop Interval" - }, - "reach_multiplier": { - "type": "number", - "default": 2.0, - "description": "Multiplier for how far outside its box the mob can reach its target (this can be used to simulate a mob with longer arms by making this bigger)", - "title": "Reach Multiplier" - }, - "attack_once": { - "type": "boolean", - "default": false, - "description": "If true, this mob will attack only one time.", - "title": "Attack Once" - }, - "require_complete_path": { - "type": "boolean", - "default": false, - "description": "If true, this goal will only trigger if the mob can reach its target.", - "title": "Require Complete Path" + "default": "N/A", + "description": "Defines the entity types this entity will attack." }, "cooldown_time": { - "type": "number", "title": "Cooldown Time", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "type": "number", + "default": 1, + "description": "Cooldown time (in seconds) between attacks." + }, + "inner_boundary_time_increase": { + "title": "Inner Boundary Time Increase", + "type": "number", + "default": 0.25, + "description": "Time (in seconds) to add to attack path recalculation when the target is beyond the \"path_inner_boundary\"." + }, + "max_dist": { + "title": "Max Dist", + "type": "number", + "description": "Unused. No effect on \"minecraft:behavior.melee_attack\"." + }, + "max_path_time": { + "title": "Max Path Time", + "type": "number", + "default": 0.55, + "description": "Maximum base time (in seconds) to recalculate new attack path to target (before increases applied)." + }, + "melee_fov": { + "title": "Melee Fov", + "type": "number", + "default": 90, + "description": "Field of view (in degrees) when using the sensing component to detect an attack target." + }, + "min_path_time": { + "title": "Min Path Time", + "type": "number", + "default": 0.2, + "description": "Minimum base time (in seconds) to recalculate new attack path to target (before increases applied)." }, "on_attack": { - "$ref": "../types/event.json", "title": "On Attack", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "$ref": "../types/trigger.json", + "description": "Defines the event to trigger when this entity successfully attacks." }, - "on_kill": { - "$ref": "../types/event.json", - "title": "On Attack", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "outer_boundary_time_increase": { + "title": "Outer Boundary Time Increase", + "type": "number", + "default": 0.5, + "description": "Time (in seconds) to add to attack path recalculation when the target is beyond the \"path_outer_boundary\"." + }, + "path_fail_time_increase": { + "title": "Path Fail Time Increase", + "type": "number", + "default": 0.75, + "description": "Time (in seconds) to add to attack path recalculation when this entity cannot move along the current path." + }, + "path_inner_boundary": { + "title": "Path Inner Boundary", + "type": "number", + "default": 16, + "description": "Distance at which to increase attack path recalculation by \"inner_boundary_tick_increase\"." + }, + "path_outer_boundary": { + "title": "Path Outer Boundary", + "type": "number", + "default": 32, + "description": "Distance at which to increase attack path recalculation by \"outer_boundary_tick_increase\"." + }, + "random_stop_interval": { + "title": "Random Stop Interval", + "type": "integer", + "default": 0, + "description": "This entity will have a 1 in N chance to stop it's current attack, where N = \"random_stop_interval\"." + }, + "reach_multiplier": { + "title": "Reach Multiplier", + "type": "number", + "default": 2, + "description": "Used with the base size of the entity to determine minimum target-distance before trying to deal attack damage." + }, + "require_complete_path": { + "title": "Require Complete Path", + "type": "boolean", + "default": false, + "description": "Toggles (on/off) the need to have a full path from the entity to the target when using this melee attack behavior." + }, + "set_persistent": { + "title": "Set Persistent", + "type": "boolean", + "default": false, + "description": "Allows the actor to be set to persist upon targeting a player" + }, + "target_dist": { + "title": "Target Dist", + "type": "number", + "description": "Unused. No effect on \"minecraft:behavior.melee_attack\"." + }, + "track_target": { + "title": "Track Target", + "type": "boolean", + "default": false, + "description": "Allows the entity to track the attack target, even if the entity has no sensing." + }, + "x_max_rotation": { + "title": "X Max Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the X-axis, this entity can rotate while trying to look at the target." + }, + "y_max_head_rotation": { + "title": "Y Max Head Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the Y-axis, this entity can rotate its head while trying to look at the target." } }, "examples": [ @@ -84,4 +149,4 @@ "cooldown_time": 0.0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/mingle.json b/source/behavior/entities/format/behaviors/mingle.json index 20bb2640..5ea50687 100644 --- a/source/behavior/entities/format/behaviors/mingle.json +++ b/source/behavior/entities/format/behaviors/mingle.json @@ -6,12 +6,8 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "cooldown_time": { "type": "number", "default": 0, @@ -54,4 +50,4 @@ "mingle_distance": 2.0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/move_indoors.json b/source/behavior/entities/format/behaviors/move_indoors.json index ae7b0cdc..56d98ce0 100644 --- a/source/behavior/entities/format/behaviors/move_indoors.json +++ b/source/behavior/entities/format/behaviors/move_indoors.json @@ -15,7 +15,7 @@ "timeout_cooldown": { "type": "number", "default": 8, - "description": "The cooldown time in seconds before the goal can be reused after a internal failure or timeout condition", + "description": "The cooldown time in seconds before the goal can be reused after pathfinding fails", "title": "Timeout Cooldown" } }, @@ -24,4 +24,4 @@ "timeout_cooldown": 8 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/move_outdoors.json b/source/behavior/entities/format/behaviors/move_outdoors.json index 2fd57893..c37eae16 100644 --- a/source/behavior/entities/format/behaviors/move_outdoors.json +++ b/source/behavior/entities/format/behaviors/move_outdoors.json @@ -8,10 +8,35 @@ "properties": { "priority": { "$ref": "types/priority.json" }, "speed_multiplier": { "$ref": "./types/speed_multiplier.json" }, + "goal_radius": { + "title": "Goal Radius", + "type": "number", + "default": 0.5, + "description": "The radius away from the target block to count as reaching the goal." + }, + "search_count": { + "title": "Search Count", + "type": "integer", + "default": 0.0, + "description": "The amount of times to try finding a random outdoors position before failing." + }, + "search_height": { + "title": "Search Height", + "type": "integer", + "default": 0.0, + "description": "The y range to search for an outdoors position for." + }, + "search_range": { + "title": "Search Range", + "type": "integer", + "default": 0.0, + "description": "The x and z range to search for an outdoors position for." + }, "timeout_cooldown": { - "title": "Duration", - "description": "The duration in ticks of the celebration", - "type": "number" + "title": "Timeout Cooldown", + "type": "number", + "default": 8000000, + "description": "The cooldown time in seconds before the goal can be reused after pathfinding fails" } } } diff --git a/source/behavior/entities/format/behaviors/move_to_lava.json b/source/behavior/entities/format/behaviors/move_to_lava.json index 66b88761..d4762e75 100644 --- a/source/behavior/entities/format/behaviors/move_to_lava.json +++ b/source/behavior/entities/format/behaviors/move_to_lava.json @@ -5,12 +5,8 @@ "description": "Allows the mob to move back into lava when on land.", "additionalProperties": false, "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "goal_radius": { "type": "number", "default": 0.5, @@ -44,4 +40,4 @@ "search_range": 0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/move_to_liquid.json b/source/behavior/entities/format/behaviors/move_to_liquid.json index 2064ecfb..05a6b207 100644 --- a/source/behavior/entities/format/behaviors/move_to_liquid.json +++ b/source/behavior/entities/format/behaviors/move_to_liquid.json @@ -5,12 +5,8 @@ "description": "Allows the mob to move back into lava when on land.", "additionalProperties": false, "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "goal_radius": { "type": "number", "default": 0.5, @@ -50,4 +46,4 @@ "material_type": "example" } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/move_towards_dwelling_restriction.json b/source/behavior/entities/format/behaviors/move_towards_dwelling_restriction.json index 56d9c06e..96bc4e75 100644 --- a/source/behavior/entities/format/behaviors/move_towards_dwelling_restriction.json +++ b/source/behavior/entities/format/behaviors/move_towards_dwelling_restriction.json @@ -3,7 +3,7 @@ "type": "object", "title": "Move Towards Dwelling Restriction", "additionalProperties": false, - "description": "UNDOCUMENTED, comes from cat", + "description": "Allows mobs with the dweller component to move toward their Village area that the mob should be restricted to.", "required": [], "properties": { "priority": { diff --git a/source/behavior/entities/format/behaviors/move_towards_home_restriction.json b/source/behavior/entities/format/behaviors/move_towards_home_restriction.json index f3042355..96aa258d 100644 --- a/source/behavior/entities/format/behaviors/move_towards_home_restriction.json +++ b/source/behavior/entities/format/behaviors/move_towards_home_restriction.json @@ -2,8 +2,7 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.move_towards_home_restriction", "type": "object", "title": "Move Towards Home Restriction", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", + "description": "Allows mobs with the home component to move toward their pre-defined area that the mob should be restricted to.", "additionalProperties": false, "properties": { "priority": { diff --git a/source/behavior/entities/format/behaviors/nap.json b/source/behavior/entities/format/behaviors/nap.json index 441dc721..0d0366c1 100644 --- a/source/behavior/entities/format/behaviors/nap.json +++ b/source/behavior/entities/format/behaviors/nap.json @@ -5,12 +5,8 @@ "description": "Allows the mob to move back into lava when on land.", "additionalProperties": false, "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "cooldown_max": { "type": "number", "default": 0, diff --git a/source/behavior/entities/format/behaviors/ocelotattack.json b/source/behavior/entities/format/behaviors/ocelotattack.json index 7d8a42f1..c3ace98f 100644 --- a/source/behavior/entities/format/behaviors/ocelotattack.json +++ b/source/behavior/entities/format/behaviors/ocelotattack.json @@ -9,65 +9,66 @@ "priority": { "$ref": "./types/priority.json" }, - "walk_speed_multiplier": { - "type": "number", - "default": 1.0, - "description": "Multiplier for the walking speed while using this attack", - "title": "Walk Speed Multiplier" - }, - "sprint_speed_multiplier": { - "type": "number", - "default": 1.0, - "description": "Multiplier for the running speed of this mob while using this attack", - "title": "Sprint Speed Multiplier" - }, - "sneak_speed_multiplier": { - "type": "number", - "default": 1.0, - "description": "Multiplier for the sneaking speed. 1.0 means the ocelot will move at the speed it normally sneaks", - "title": "Sneak Speed Multiplier" - }, + "cooldown_time": { - "type": "number", "title": "Cooldown Time", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" - }, - "x_max_rotation": { "type": "number", - "title": "X Maximum Rotation", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" - }, - "y_max_head_rotation": { - "type": "number", - "title": "Y Maximum Head Rotation", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "default": 1, + "description": "Time (in seconds) between attacks." }, "max_distance": { + "title": "Max Distance", "type": "number", - "title": "Maximum Distance", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "default": 15, + "description": "Max distance from the target, this entity will use this attack behavior." }, "max_sneak_range": { + "title": "Max Sneak Range", "type": "number", - "title": "Maximum Sneak Range", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "default": 15, + "description": "Max distance from the target, this entity starts sneaking." }, "max_sprint_range": { + "title": "Max Sprint Range", "type": "number", - "title": "Maximum Sprint Range", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "default": 4, + "description": "Max distance from the target, this entity starts sprinting (sprinting takes priority over sneaking)." }, "reach_multiplier": { - "type": "number", "title": "Reach Multiplier", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "type": "number", + "default": 2, + "description": "Used with the base size of the entity to determine minimum target-distance before trying to deal attack damage." + }, + "sneak_speed_multiplier": { + "title": "Sneak Speed Multiplier", + "type": "number", + "default": 0.6, + "description": "Modifies the attacking entity's movement speed while sneaking." + }, + "sprint_speed_multiplier": { + "title": "Sprint Speed Multiplier", + "type": "number", + "default": 1.33, + "description": "Modifies the attacking entity's movement speed while sprinting." + }, + "walk_speed_multiplier": { + "title": "Walk Speed Multiplier", + "type": "number", + "default": 0.8, + "description": "Modifies the attacking entity's movement speed when not sneaking or sprinting, but still within attack range." + }, + "x_max_rotation": { + "title": "X Max Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the X-axis, this entity can rotate while trying to look at the target." + }, + "y_max_head_rotation": { + "title": "Y Max Head Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the Y-axis, this entity can rotate its head while trying to look at the target." } }, "examples": [ @@ -84,4 +85,4 @@ "reach_multiplier": 0.0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/pet_sleep_with_owner.json b/source/behavior/entities/format/behaviors/pet_sleep_with_owner.json index 4178c54c..6e753f53 100644 --- a/source/behavior/entities/format/behaviors/pet_sleep_with_owner.json +++ b/source/behavior/entities/format/behaviors/pet_sleep_with_owner.json @@ -5,12 +5,8 @@ "title": "Tempt", "additionalProperties": false, "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "goal_radius": { "type": "number", "default": 0.5, diff --git a/source/behavior/entities/format/behaviors/pickup_items.json b/source/behavior/entities/format/behaviors/pickup_items.json index 9e90cfe7..f7ca21e2 100644 --- a/source/behavior/entities/format/behaviors/pickup_items.json +++ b/source/behavior/entities/format/behaviors/pickup_items.json @@ -5,12 +5,8 @@ "type": "object", "title": "Pickup Items", "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "can_pickup_any_item": { "type": "boolean", "default": false, diff --git a/source/behavior/entities/format/behaviors/play_dead.json b/source/behavior/entities/format/behaviors/play_dead.json index 7317708e..50322e91 100644 --- a/source/behavior/entities/format/behaviors/play_dead.json +++ b/source/behavior/entities/format/behaviors/play_dead.json @@ -9,46 +9,48 @@ "priority": { "$ref": "types/priority.json" }, + "apply_regeneration": { + "title": "Apply Regeneration", + "type": "boolean", + "default": true, + "description": "Whether the mob will receive the regeneration effect while playing dead." + }, "duration": { "title": "Duration", - "description": "The amount of time in seconds that the mob will remain playing dead.", "type": "number", - "minimum": 0 + "default": 1000000, + "description": "The amount of time the mob will remain playing dead (in seconds)." + }, + "filters": { + "title": "Filters", + "description": "The list of other triggers that are required for the mob to activate play dead", + "$ref": "../../filters/filters.json" }, "force_below_health": { "title": "Force Below Health", - "description": "The amount of health at which the mob will start to play dead.", - "type": "number", - "minimum": 0 + "type": "integer", + "default": 0, + "description": "The amount of health at which damage will cause the mob to play dead." }, "random_start_chance": { "title": "Random Start Chance", - "description": "The likelihood that the mob will start to play dead upon taking damage.", "type": "number", - "minimum": 0 + "default": 1000000, + "description": "The likelihood of this goal starting upon taking damage." }, "random_damage_range": { "title": "Random Damage Range", - "description": "The range of damage that may cause the mob to start playing dead. Damage taken below the minimum value will never cause the mob to start playing dead. Damage taken above the maximum value will always cause the mob to start playing dead.", + "description": "The range of damage that may cause the goal to start depending on randomness. Damage taken below the min will never cause the goal to start. Damage taken above the max will always cause the goal to start.", "type": "array", "items": [ - { - "title": "Minimum", - "description": "Minimum", - "type": "integer", - "minimum": 0 - }, - { - "title": "Maximum", - "description": "Maximum", - "type": "integer", - "minimum": 0 - } + { "title": "Minimum", "description": "Minimum", "type": "integer", "minimum": 0 }, + { "title": "Maximum", "description": "Maximum", "type": "integer", "minimum": 0 } ] }, "damage_sources": { "title": "Damage Sources", - "description": "The list of Entity Damage Sources that will cause this mob to start playing dead.", + "description": "The list of Entity Damage Sources that will cause this mob to play dead.", + "default": ["all"], "oneOf": [ { "type": "string", @@ -62,14 +64,6 @@ } } ] - }, - "apply_regeneration": { - "title": "Apply Regeneration", - "description": "Whether the mob will receive the effect of CombatRegeneration while playing dead.", - "type": "boolean" - }, - "filters": { - "$ref": "../../filters/filters.json" } }, "examples": [ @@ -81,4 +75,4 @@ "apply_regeneration": true } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/raid_garden.json b/source/behavior/entities/format/behaviors/raid_garden.json index 9d9bcf57..dd928fed 100644 --- a/source/behavior/entities/format/behaviors/raid_garden.json +++ b/source/behavior/entities/format/behaviors/raid_garden.json @@ -6,12 +6,8 @@ "title": "Raid Garden", "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "blocks": { "type": "array", "description": "Blocks that the mob is looking for to eat", @@ -79,4 +75,4 @@ "search_height": 0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/ram_attack.json b/source/behavior/entities/format/behaviors/ram_attack.json index 189537c3..649049c4 100644 --- a/source/behavior/entities/format/behaviors/ram_attack.json +++ b/source/behavior/entities/format/behaviors/ram_attack.json @@ -10,100 +10,74 @@ "$ref": "types/priority.json" }, "baby_knockback_modifier": { - "type": "integer", - "default": 4, - "description": "The modifier to knockback for baby mobs.", - "title": "Baby Knockback Modifier" + "title": "Baby Knockback Modifier", + "type": "number", + "default": 0.333333, + "description": "The modifier to knockback that babies have." }, "cooldown_range": { - "type": "array", - "default": [ - 10.0, - 20.0 - ], - "description": "The minimum and maximum cooldown time-range in seconds between each attempted ram attack.", "title": "Cooldown Range", - "items": [ - { - "title": "Minimum", - "description": "Minimum", - "type": "number", - "minimum": 0 - }, - { - "title": "Maximum", - "description": "Maximum", - "type": "number", - "minimum": 0 - } - ] + "$ref": "../types/range_number_type.json", + "default": [10, 20], + "description": "Minimum and maximum cooldown time-range (positive, in seconds) between each attempted ram attack." }, "knockback_force": { + "title": "Knockback Force", "type": "number", - "default": 5, - "description": "The force of the knockback of the ram's attack.", - "title": "Knockback Force" + "default": 5000000, + "description": "The force of the knockback of the ram attack." }, "knockback_height": { + "title": "Knockback Height", "type": "number", "default": 0.1, - "description": "The height in blocks of the knockback of the ram attack.", - "title": "Knockback Height" + "description": "The height of the knockback of the ram attack." }, "min_ram_distance": { - "type": "integer", - "default": 4, - "description": "The minimum distance in blocks at which the mob can start a ram attack.", - "title": "Min Ram Distance" + "title": "Min Ram Distance", + "type": "number", + "default": 0.0, + "description": "The minimum distance at which the mob can start a ram attack." + }, + "on_start": { + "title": "On Start", + "$ref": "../types/trigger.json", + "description": "The event to trigger when attacking" }, "pre_ram_sound": { + "title": "Pre Ram Sound", "type": "string", - "description": "The sound to play when the mob is about to perform a ram attack.", - "title": "Pre Ram Sound" + "default": "", + "description": "The sound to play when an entity is about to perform a ram attack." }, "ram_distance": { - "type": "integer", - "default": 7, - "description": "The distance in blocks at which the mob will start to ram its target.", - "title": "Ram Distance" + "title": "Ram Distance", + "type": "number", + "default": 0.0, + "description": "The distance at which the mob start to run with ram speed." }, "ram_impact_sound": { + "title": "Ram Impact Sound", "type": "string", - "description": "The sound to play when the mob hits the target with a ram attack .", - "title": "Ram Impact Sound" + "default": "", + "description": "The sound to play when an entity is impacting on a ram attack." }, "ram_speed": { + "title": "Ram Speed", "type": "number", - "default": 2, - "description": "Sets the mob's speed when performing a ram attack toward the target.", - "title": "Ram Speed" + "default": 2000000, + "description": "Sets the entity's speed when charging toward the target." }, "run_speed": { + "title": "Run Speed", "type": "number", - "default": 1, - "description": "Sets the mob's speed when running toward the target.", - "title": "Run Speed" + "default": 1000000, + "description": "Sets the entity's speed when running toward the target." }, "trigger": { "description": "The event to trigger when attacking.", "title": "Trigger", "$ref": "../types/trigger.json" - }, - "on_start": { - "title": "On Start", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "oneOf": [ - { - "$ref": "../types/event.json" - }, - { - "type": "array", - "items": { - "$ref": "../types/event.json" - } - } - ] } }, "examples": [ @@ -120,4 +94,4 @@ "run_speed": 1 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/random_breach.json b/source/behavior/entities/format/behaviors/random_breach.json index 51033325..46e2354d 100644 --- a/source/behavior/entities/format/behaviors/random_breach.json +++ b/source/behavior/entities/format/behaviors/random_breach.json @@ -6,12 +6,8 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "cooldown_time": { "type": "number", "default": 0, @@ -45,4 +41,4 @@ "y_dist": 7 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/random_fly.json b/source/behavior/entities/format/behaviors/random_fly.json index e34961a0..88e17b13 100644 --- a/source/behavior/entities/format/behaviors/random_fly.json +++ b/source/behavior/entities/format/behaviors/random_fly.json @@ -5,12 +5,8 @@ "title": "Random Fly", "additionalProperties": false, "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "avoid_damage_blocks": { "type": "boolean", "description": "UNDOCUMENTED", @@ -51,4 +47,4 @@ "y_offset": 0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/random_hover.json b/source/behavior/entities/format/behaviors/random_hover.json index 05fce57d..ef6b3e98 100644 --- a/source/behavior/entities/format/behaviors/random_hover.json +++ b/source/behavior/entities/format/behaviors/random_hover.json @@ -5,12 +5,8 @@ "title": "Random Hover", "additionalProperties": false, "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "hover_height": { "type": "array", "description": "UNDOCUMENTED", @@ -59,4 +55,4 @@ "y_offset": 0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/random_sitting.json b/source/behavior/entities/format/behaviors/random_sitting.json index 4c83bc64..5f75122e 100644 --- a/source/behavior/entities/format/behaviors/random_sitting.json +++ b/source/behavior/entities/format/behaviors/random_sitting.json @@ -6,12 +6,8 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "cooldown": { "type": "number", "default": 0, @@ -52,4 +48,4 @@ "stop_chance": 0.3 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/random_stroll.json b/source/behavior/entities/format/behaviors/random_stroll.json index 478076a2..0b0fb3e7 100644 --- a/source/behavior/entities/format/behaviors/random_stroll.json +++ b/source/behavior/entities/format/behaviors/random_stroll.json @@ -5,12 +5,8 @@ "title": "Random Stroll", "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "interval": { "type": "integer", "default": 120, @@ -38,4 +34,4 @@ "y_dist": 7 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/random_swim.json b/source/behavior/entities/format/behaviors/random_swim.json index 55b8b354..1d28c1be 100644 --- a/source/behavior/entities/format/behaviors/random_swim.json +++ b/source/behavior/entities/format/behaviors/random_swim.json @@ -5,12 +5,8 @@ "description": "Allows an entity to randomly move through water", "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "avoid_surface": { "type": "boolean", "default": true, @@ -45,4 +41,4 @@ "y_dist": 7 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/ranged_attack.json b/source/behavior/entities/format/behaviors/ranged_attack.json index 24d729ae..e9fd70ba 100644 --- a/source/behavior/entities/format/behaviors/ranged_attack.json +++ b/source/behavior/entities/format/behaviors/ranged_attack.json @@ -6,78 +6,97 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "attack_interval": { + "title": "Attack Interval", "type": "number", "default": 0, - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", - "title": "Attack Interval" + "description": "Alternative to \"attack_interval_min\" & \"attack_interval_max\". Consistent reload-time (in seconds), when not using a charged shot. Does not scale with target-distance." }, "attack_interval_max": { + "title": "Attack Interval Max", "type": "number", "default": 0, - "description": "Maximum amount of time in seconds the entity will wait after an attack before launching another", - "title": "Attack Interval Maximum" + "description": "Maximum bound for reload-time range (in seconds), when not using a charged shot. Reload-time range scales with target-distance." }, "attack_interval_min": { + "title": "Attack Interval Min", "type": "number", "default": 0, - "description": "Minimum amount of time in seconds the entity will wait after an attack before launching another", - "title": "Attack Interval Minimum" + "description": "Minimum bound for reload-time range (in seconds), when not using a charged shot. Reload-time range scales with target-distance." }, "attack_radius": { + "title": "Attack Radius", "type": "number", "default": 0, - "description": "Maximum distance the target can be for this mob to fire. If the target is further away, this mob will move first before firing", - "title": "Attack Radius" - }, - "burst_interval": { - "type": "number", - "default": 0, - "description": "Amount of time in seconds between each individual shot when firing multiple shots per attack", - "title": "Burst Interval" - }, - "burst_shots": { - "type": "integer", - "default": 1, - "description": "Number of shots fired every time the mob uses a charged attack", - "title": "Burst Shots" - }, - "charge_charged_trigger": { - "type": "number", - "default": 0, - "description": "The minimum amount of time in ticks the mob has to charge before firing a charged attack", - "title": "Charge Charged Trigger" - }, - "charge_shoot_trigger": { - "type": "number", - "default": 0, - "description": "The minimum amount of time in ticks for the mob to start charging a charged shot. Must be greater than 0 to enable burst shots", - "title": "Charge Shoot Trigger" - }, - "ranged_fov": { - "type": "number", - "default": 90, - "description": "The allowable FOV the actor will use to determine if it can make a valid ranged attack", - "title": "Ranged FOV" - }, - "target_in_sight_time": { - "type": "number", - "title": "Target In Sight Time", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "description": "Minimum distance to target before this entity will attempt to shoot." }, "attack_radius_min": { - "type": "number", "title": "Attack Radius Min", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "type": "number", + "default": 0, + "description": "Minimum distance the target can be for this mob to fire. If the target is closer, this mob will move first before firing" + }, + "burst_interval": { + "title": "Burst Interval", + "type": "number", + "default": 0, + "description": "Time (in seconds) between each individual shot when firing a burst of shots from a charged up attack." + }, + "burst_shots": { + "title": "Burst Shots", + "type": "integer", + "default": 1, + "description": "Number of shots fired every time the attacking entity uses a charged up attack." + }, + "charge_charged_trigger": { + "title": "Charge Charged Trigger", + "type": "number", + "default": 0, + "description": "Time (in seconds, then add \"charge_shoot_trigger\"), before a charged up attack is done charging. Charge-time decays while target is not in sight." + }, + "charge_shoot_trigger": { + "title": "Charge Shoot Trigger", + "type": "number", + "default": 0, + "description": "Amount of time (in seconds, then doubled) a charged shot must be charging before reloading burst shots. Charge-time decays while target is not in sight." + }, + "ranged_fov": { + "title": "Ranged Fov", + "type": "number", + "default": 90, + "description": "Field of view (in degrees) when using sensing to detect a target for attack." + }, + "set_persistent": { + "title": "Set Persistent", + "type": "boolean", + "default": false, + "description": "Allows the actor to be set to persist upon targeting a player" + }, + "swing": { + "title": "Swing", + "type": "boolean", + "default": false, + "description": "If a swing animation (using variable.attack_time) exists, this causes the actor to swing their arm(s) upon firing the ranged attack." + }, + "target_in_sight_time": { + "title": "Target In Sight Time", + "type": "number", + "default": 1, + "description": "Minimum amount of time (in seconds) the attacking entity needs to see the target before moving toward it." + }, + "x_max_rotation": { + "title": "X Max Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the X-axis, this entity can rotate while trying to look at the target." + }, + "y_max_head_rotation": { + "title": "Y Max Head Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the Y-axis, this entity can rotate its head while trying to look at the target." } }, "examples": [ @@ -95,4 +114,4 @@ "attack_radius_min": 0.0 } ] -} \ No newline at end of file +} diff --git a/source/behavior/entities/format/behaviors/share_items.json b/source/behavior/entities/format/behaviors/share_items.json index 82e70ed1..e4d85a2b 100644 --- a/source/behavior/entities/format/behaviors/share_items.json +++ b/source/behavior/entities/format/behaviors/share_items.json @@ -6,12 +6,8 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "entity_types": { "$ref": "../types/entity_types.json", "description": "List of entities this mob will share items with", diff --git a/source/behavior/entities/format/behaviors/sleep.json b/source/behavior/entities/format/behaviors/sleep.json index a56f9a8d..dd3bab9a 100644 --- a/source/behavior/entities/format/behaviors/sleep.json +++ b/source/behavior/entities/format/behaviors/sleep.json @@ -6,12 +6,8 @@ "title": "Sleep", "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "cooldown_time": { "type": "number", "default": 0, diff --git a/source/behavior/entities/format/behaviors/slime_attack.json b/source/behavior/entities/format/behaviors/slime_attack.json index 88e64c26..5e793c77 100644 --- a/source/behavior/entities/format/behaviors/slime_attack.json +++ b/source/behavior/entities/format/behaviors/slime_attack.json @@ -5,14 +5,25 @@ "type": "object", "title": "Slime Attack", "properties": { - "priority": { - "$ref": "./types/priority.json" - }, + "priority": { "$ref": "./types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "set_persistent": { + "title": "Set Persistent", "type": "boolean", "default": false, - "description": "Allows the actor to be set to persist upon targeting a player", - "title": "Set Persistent" + "description": "Allows the actor to be set to persist upon targeting a player" + }, + "x_max_rotation": { + "title": "X Max Rotation", + "type": "number", + "default": 10, + "description": "Maximum rotation (in degrees), on the X-axis, this entity can rotate while trying to look at the target." + }, + "y_max_rotation": { + "title": "Y Max Rotation", + "type": "number", + "default": 10, + "description": "Maximum rotation (in degrees), on the Y-axis, this entity can rotate while trying to look at the target." } }, "examples": [ diff --git a/source/behavior/entities/format/behaviors/slime_float.json b/source/behavior/entities/format/behaviors/slime_float.json index 59b71170..a8a4e8f0 100644 --- a/source/behavior/entities/format/behaviors/slime_float.json +++ b/source/behavior/entities/format/behaviors/slime_float.json @@ -1,22 +1,18 @@ { "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.slime_float", "additionalProperties": false, - "description": "Can only be used by Slimes and Magma Cubes. Controls their ability to float in water / lava.", + "description": "Allow slimes to float in water / lava. Can only be used by Slime and Magma Cubes.", "type": "object", "title": "Slime Float", "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "jump_chance_percentage": { "type": "number", - "title": "Sink Delta", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "title": "Jump Chance Percentage", + "default": 0.8, + "description": "Percent chance a slime or magma cube has to jump while in water / lava." } }, "examples": [ diff --git a/source/behavior/entities/format/behaviors/slime_random_direction.json b/source/behavior/entities/format/behaviors/slime_random_direction.json index 09c38378..588d5ee9 100644 --- a/source/behavior/entities/format/behaviors/slime_random_direction.json +++ b/source/behavior/entities/format/behaviors/slime_random_direction.json @@ -10,22 +10,22 @@ "$ref": "./types/priority.json" }, "add_random_time_range": { - "type": "number", "title": "Add Random Time Range", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" - }, - "turn_range": { - "type": "number", - "title": "Turn Range", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "type": "integer", + "default": 3, + "description": "Additional time (in whole seconds), chosen randomly in the range of [0, \"add_random_time_range\"], to add to \"min_change_direction_time\"." }, "min_change_direction_time": { + "title": "Min Change Direction Time", "type": "number", - "title": "Minimum Change Direction Time", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "default": 2, + "description": "Constant minimum time (in seconds) to wait before choosing a new direction." + }, + "turn_range": { + "title": "Turn Range", + "type": "integer", + "default": 360, + "description": "Maximum rotation angle range (in degrees) when randomly choosing a new direction." } }, "examples": [ diff --git a/source/behavior/entities/format/behaviors/stomp_attack.json b/source/behavior/entities/format/behaviors/stomp_attack.json index f7f550b2..2602dada 100644 --- a/source/behavior/entities/format/behaviors/stomp_attack.json +++ b/source/behavior/entities/format/behaviors/stomp_attack.json @@ -6,70 +6,143 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, + "attack_once": { + "title": "Attack Once", "type": "boolean", "default": false, - "description": "If true, this mob will attack only one time.", - "title": "Attack Once" + "description": "Allows the entity to use this attack behavior, only once EVER." }, "attack_types": { + "title": "Attack Types", "type": "string", - "default": "", - "description": "Defines the entity types this mob will attack", - "title": "Attack Types" + "default": "N/A", + "description": "Defines the entity types this entity will attack." }, - "probability": { + "cooldown_time": { + "title": "Cooldown Time", "type": "number", - "default": 0.02, - "description": "The probability of sneezing. A value of 1.00 is 100%", - "title": "Probability" + "default": 1, + "description": "Cooldown time (in seconds) between attacks." }, - "random_stop_interval": { - "type": "integer", - "default": 0, - "description": "Defines the probability the mob will stop fighting. A value of 0 disables randomly stopping, while a value of 1 defines a 50% chance", - "title": "Random Stop Interval" - }, - "reach_multiplier": { + "inner_boundary_time_increase": { + "title": "Inner Boundary Time Increase", "type": "number", - "default": 2, - "description": "Multiplier for how far outside its box the mob can reach its target (this can be used to simulate a mob with longer arms by making this bigger)", - "title": "Reach Multiplier" + "default": 0.25, + "description": "Time (in seconds) to add to attack path recalculation when the target is beyond the \"path_inner_boundary\"." }, - "require_complete_path": { - "type": "boolean", - "default": false, - "description": "If true, this goal will only trigger if the mob can reach its target.", - "title": "Require Complete Path" - }, - "sound": { - "type": "string", - "description": "Sound to play when the sneeze occurs.", - "title": "Sound" - }, - "track_target": { - "type": "boolean", - "default": false, - "description": "If true, this mob will chase after the target as long as it's a valid target", - "title": "Track Target" - }, - "stomp_range_multiplier": { + "max_dist": { + "title": "Max Dist", "type": "number", - "title": "Stomp Range Multiplier", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "description": "Unused. No effect on \"minecraft:behavior.melee_attack\"." + }, + "max_path_time": { + "title": "Max Path Time", + "type": "number", + "default": 0.55, + "description": "Maximum base time (in seconds) to recalculate new attack path to target (before increases applied)." + }, + "melee_fov": { + "title": "Melee Fov", + "type": "number", + "default": 90, + "description": "Field of view (in degrees) when using the sensing component to detect an attack target." + }, + "min_path_time": { + "title": "Min Path Time", + "type": "number", + "default": 0.2, + "description": "Minimum base time (in seconds) to recalculate new attack path to target (before increases applied)." }, "no_damage_range_multiplier": { - "type": "number", "title": "No Damage Range Multiplier", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "type": "number", + "default": 2, + "description": "Multiplied with the final AoE damage range to determine a no damage range. The stomp attack will go on cooldown if target is in this no damage range." + }, + "on_attack": { + "title": "On Attack", + "$ref": "../types/trigger.json", + "description": "Defines the event to trigger when this entity successfully attacks." + }, + "outer_boundary_time_increase": { + "title": "Outer Boundary Time Increase", + "type": "number", + "default": 0.5, + "description": "Time (in seconds) to add to attack path recalculation when the target is beyond the \"path_outer_boundary\"." + }, + "path_fail_time_increase": { + "title": "Path Fail Time Increase", + "type": "number", + "default": 0.75, + "description": "Time (in seconds) to add to attack path recalculation when this entity cannot move along the current path." + }, + "path_inner_boundary": { + "title": "Path Inner Boundary", + "type": "number", + "default": 16, + "description": "Distance at which to increase attack path recalculation by \"inner_boundary_tick_increase\"." + }, + "path_outer_boundary": { + "title": "Path Outer Boundary", + "type": "number", + "default": 32, + "description": "Distance at which to increase attack path recalculation by \"outer_boundary_tick_increase\"." + }, + "random_stop_interval": { + "title": "Random Stop Interval", + "type": "integer", + "default": 0, + "description": "This entity will have a 1 in N chance to stop it's current attack, where N = \"random_stop_interval\"." + }, + "reach_multiplier": { + "title": "Reach Multiplier", + "type": "number", + "default": 2, + "description": "Used with the base size of the entity to determine minimum target-distance before trying to deal attack damage." + }, + "require_complete_path": { + "title": "Require Complete Path", + "type": "boolean", + "default": false, + "description": "Toggles (on/off) the need to have a full path from the entity to the target when using this melee attack behavior." + }, + "set_persistent": { + "title": "Set Persistent", + "type": "boolean", + "default": false, + "description": "Allows the actor to be set to persist upon targeting a player" + }, + "stomp_range_multiplier": { + "title": "Stomp Range Multiplier", + "type": "number", + "default": 2, + "description": "Multiplied with the base size of the entity to determine stomp AoE damage range." + }, + "target_dist": { + "title": "Target Dist", + "type": "number", + "description": "Unused. No effect on \"minecraft:behavior.melee_attack\"." + }, + "track_target": { + "title": "Track Target", + "type": "boolean", + "default": false, + "description": "Allows the entity to track the attack target, even if the entity has no sensing." + }, + "x_max_rotation": { + "title": "X Max Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the X-axis, this entity can rotate while trying to look at the target." + }, + "y_max_head_rotation": { + "title": "Y Max Head Rotation", + "type": "number", + "default": 30, + "description": "Maximum rotation (in degrees), on the Y-axis, this entity can rotate its head while trying to look at the target." } }, "examples": [ diff --git a/source/behavior/entities/format/behaviors/stomp_turtle_egg.json b/source/behavior/entities/format/behaviors/stomp_turtle_egg.json index 0a718e2c..4589ca8f 100644 --- a/source/behavior/entities/format/behaviors/stomp_turtle_egg.json +++ b/source/behavior/entities/format/behaviors/stomp_turtle_egg.json @@ -5,12 +5,8 @@ "title": "Stomp Turtle Egg", "additionalProperties": false, "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "goal_radius": { "type": "number", "default": 0.5, diff --git a/source/behavior/entities/format/behaviors/swim_idle.json b/source/behavior/entities/format/behaviors/swim_idle.json index cc3cac81..8f1eea12 100644 --- a/source/behavior/entities/format/behaviors/swim_idle.json +++ b/source/behavior/entities/format/behaviors/swim_idle.json @@ -1,7 +1,6 @@ { "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.swim_idle", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED", + "description": "Allows the entity go idle, if swimming. Entity must be in water.", "type": "object", "title": "Swim Idle", "additionalProperties": false, @@ -12,14 +11,14 @@ "idle_time": { "type": "number", "title": "Idle Time", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "default": 5, + "description": "Amount of time (in seconds) to stay idle." }, "success_rate": { "type": "number", "title": "Succes Rate", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "default": 0.1, + "description": "Percent chance this entity will go idle, 1.0 = 100%." } }, "examples": [ diff --git a/source/behavior/entities/format/behaviors/swim_wander.json b/source/behavior/entities/format/behaviors/swim_wander.json index ad518f98..537ba818 100644 --- a/source/behavior/entities/format/behaviors/swim_wander.json +++ b/source/behavior/entities/format/behaviors/swim_wander.json @@ -6,29 +6,25 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "interval": { - "type": "number", "title": "Interval", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "type": "number", + "default": 0.00833, + "description": "Percent chance to start wandering, when not path-finding. 1 = 100%" }, "look_ahead": { - "type": "number", "title": "Look Ahead", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "type": "number", + "default": 5, + "description": "Distance to look ahead for obstacle avoidance, while wandering." }, "wander_time": { - "type": "number", "title": "Wander Time", - "description": "UNDOCUMENTED", - "$comment": "UNDOCUMENTED" + "type": "number", + "default": 5, + "description": "Amount of time (in seconds) to wander after wandering behavior was successfully started." } }, "examples": [ diff --git a/source/behavior/entities/format/behaviors/swim_with_entity.json b/source/behavior/entities/format/behaviors/swim_with_entity.json index 978e1bcc..e878b51f 100644 --- a/source/behavior/entities/format/behaviors/swim_with_entity.json +++ b/source/behavior/entities/format/behaviors/swim_with_entity.json @@ -7,12 +7,8 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "success_rate": { "type": "number", "title": "Success Rate", diff --git a/source/behavior/entities/format/behaviors/swoop_attack.json b/source/behavior/entities/format/behaviors/swoop_attack.json index 8a71bc1d..26715cfb 100644 --- a/source/behavior/entities/format/behaviors/swoop_attack.json +++ b/source/behavior/entities/format/behaviors/swoop_attack.json @@ -6,12 +6,8 @@ "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "types/priority.json" - }, - "speed_multiplier": { - "$ref": "types/speed_multiplier.json" - }, + "priority": { "$ref": "types/priority.json" }, + "speed_multiplier": { "$ref": "types/speed_multiplier.json" }, "damage_reach": { "type": "number", "title": "Damage Reach", diff --git a/source/behavior/entities/format/behaviors/work.json b/source/behavior/entities/format/behaviors/work.json index bacd30c6..4400ac67 100644 --- a/source/behavior/entities/format/behaviors/work.json +++ b/source/behavior/entities/format/behaviors/work.json @@ -2,56 +2,52 @@ "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.work", "type": "object", "title": "Work", - "description": "Allows an entity to navigate and interact with a point of interest that has been assigned as their worksite.", + "description": "Allows the NPC to use the POI", "additionalProperties": false, "required": [], "properties": { - "priority": { - "$ref": "./types/priority.json" - }, - "speed_multiplier": { - "$ref": "./types/speed_multiplier.json" - }, + "priority": { "$ref": "./types/priority.json" }, + "speed_multiplier": { "$ref": "./types/speed_multiplier.json" }, "active_time": { + "title": "Active Time", "type": "integer", "default": 0, - "description": "The amount of ticks the NPC will stay in their the work location", - "title": "Active Time" + "description": "The amount of ticks the NPC will stay in their the work location" }, "can_work_in_rain": { + "title": "Can Work In Rain", "type": "boolean", "default": false, - "description": "If true, this entity can work when their jobsite POI is being rained on.", - "title": "Can Work In Rain" + "description": "If true, this entity can work when their jobsite POI is being rained on." }, "goal_cooldown": { + "title": "Goal Cooldown", "type": "integer", "default": 0, - "description": "The amount of ticks the goal will be on cooldown before it can be used again", - "title": "Goal Cooldown" + "description": "The amount of ticks the goal will be on cooldown before it can be used again" }, "on_arrival": { - "$ref": "../types/event.json", - "description": "Event to run when the mob reaches their jobsite and finishes working.", - "title": "On Arrival" + "title": "On Arrival", + "$ref": "../types/trigger.json", + "description": "Event to run when the mob reaches their jobsite." }, "sound_delay_max": { + "title": "Sound Delay Max", "type": "integer", "default": 0, - "description": "The Maximum interval in which a sound will play", - "title": "Sound Delay Maximum" + "description": "The max interval in which a sound will play." }, "sound_delay_min": { + "title": "Sound Delay Min", "type": "integer", "default": 0, - "description": "The Minimum interval in which a sound will play", - "title": "Sound Delay Minimum" + "description": "The min interval in which a sound will play." }, "work_in_rain_tolerance": { + "title": "Work In Rain Tolerance", "type": "integer", "default": -1, - "description": "If `can_work_in_rain` is false, this is the maximum number of ticks left in the goal where rain will not interrupt the goal", - "title": "Work In Rain Tolerance" + "description": "If \"can_work_in_rain\" is false, this is the maximum number of ticks left in the goal where rain will not interrupt the goal" } }, "examples": [ diff --git a/source/behavior/entities/format/components/block_climber.json b/source/behavior/entities/format/components/block_climber.json index 1b408e48..7d20ac79 100644 --- a/source/behavior/entities/format/components/block_climber.json +++ b/source/behavior/entities/format/components/block_climber.json @@ -3,6 +3,29 @@ "type": "object", "title": "Block Climber", "additionalProperties": false, - "description": "Allows the player to detect and maneuver on the scaffolding block.", - "properties": {} + "description": "Fires off a specified event when a block in the block list is broken within the sensor range.", + "properties": { + "on_break": { + "title": "On Break", + "type": "array", + "description": "List of blocks to watch for being broken to fire off a specified event. If a block is in multiple lists, multiple events will fire.", + "items": { + "$ref": "../../../../general/block/identifier.json" + } + }, + "sensor_radius": { + "title": "Sensor Radius", + "type": "number", + "default": 16.0, + "description": "The maximum radial distance in which a specified block can be detected. The biggest radius is 32.0." + }, + "sources": { + "title": "Sources", + "type": "array", + "description": "List of sources that break the block to listen for. If none are specified, all block breaks will be detected.", + "items": { + "$ref": "../../../../general/block/identifier.json" + } + } + } } diff --git a/source/behavior/entities/format/components/inventory.json b/source/behavior/entities/format/components/inventory.json index 22023ad3..d4f4df71 100644 --- a/source/behavior/entities/format/components/inventory.json +++ b/source/behavior/entities/format/components/inventory.json @@ -20,9 +20,9 @@ "container_type": { "type": "string", "default": "none", - "description": "Type of container this entity has. Can be horse, minecart_chest, minecart_hopper, inventory, container or hopper", + "description": "Type of container this entity has. Can be horse, minecart_chest, chest_boat, minecart_hopper, inventory, container or hopper", "title": "Container Type", - "enum": ["horse", "minecart_chest", "minecart_hopper", "inventory", "container", "hopper"] + "enum": ["horse", "minecart_chest", "chest_boat", "minecart_hopper", "inventory", "container", "hopper"] }, "inventory_size": { "type": "integer", diff --git a/tools/table to json schema.xlsm b/tools/table to json schema.xlsm index 6b6a3b12..da619f49 100644 Binary files a/tools/table to json schema.xlsm and b/tools/table to json schema.xlsm differ