{
  "$id": "blockception.minecraft.behavior.entities.minecraft.behavior.circle_around_anchor",
  "type": "object",
  "title": "Circle Around Anchor",
  "additionalProperties": false,
  "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": { "$ref": "types/speed_multiplier.json" },
    "radius_range": {
      "$ref": "../types/range_number_type.json",
      "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": {
      "type": "integer",
      "default": 250,
      "description": "A random value to determine when to increase the size of the radius up to the maximum. This has a 1/value chance every tick to do so.",
      "title": "Radius Change Chance"
    },
    "height_above_target_range": {
      "$ref": "../types/range_number_type.json",
      "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],
      "description": "The range of height in blocks offset the mob can have from it's anchor point.",
      "title": "Height Offset Range"
    },
    "height_change_chance": {
      "type": "integer",
      "default": 350,
      "description": "A random value to determine when to change the height of the mob from the anchor point. This has a 1/value chance every tick to do so.",
      "title": "Height Change Chance"
    },
    "goal_radius": {
      "type": "number",
      "default": 0.5,
      "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": "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.",
      "default": 1.0
    },
    "radius_adjustment_chance": {
      "type": "number",
      "title": "Radius Adjustment Chance",
      "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`.",
      "default": 0.004
    },
    "height_adjustment_chance": {
      "type": "number",
      "title": "Height Adjustment Chance",
      "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`.",
      "default": 0.002857
    },
    "angle_change": {
      "type": "number",
      "title": "Angle Change",
      "description": "Number of degrees to change this entity's facing by, when the entity selects its next anchor point.",
      "default": 15.0
    }
  },
  "examples": [
    {
      "speed_multiplier": 1.0,
      "radius_change_chance": 250,
      "height_change_chance": 350,
      "goal_radius": 0.5,
      "radius_change": 0.0,
      "radius_adjustment_chance": 0.0,
      "height_adjustment_chance": 0.0,
      "angle_change": 0.0
    }
  ]
}
