Skip to content

Areas

Areas are predefined regions that you can run checks with. This allows you to remodel things based on their location, while we also get the benefit of optimizing it.

You can define areas under <namespace>/catharsis/areas/<id>.json

The definition follows the following scheme

An Area definition object
  • type: One of the area definition types defined below
  • Additional fields depending on the value of type, see the respective area type documentation for more details.

Supported Types

Simple (catharsis:simple)

The most simple type of area.

Example

A Simple area that only matches positions in the hub that are in the specified box.

json
{
  "type": "simple",
  "box": {
    "min": "-42:51:-183",
    "max": "-4:87:-145"
  },
  "islands": "hub"
}
Root simple object
  • type: catharsis:simple
  • box: One single bounding box
    • An array with two positions
      •  A position with int precision
        • An array of three ints
        • A string of coordinates parts formatted as x:y:z
        • An object with the coordinate values
          •  x: The x part of the coordinate
          •  y: The y part of the coordinate
          •  z: The z part of the coordinate
    • An array with 6 ints
      • The coordinates in order minX, minY, minZ, maxX, maxY, maxZ
    • An object with min and max
      •  min: The min position
        • An array of three ints
        • A string of coordinates parts formatted as x:y:z
        • An object with the coordinate values
          •  x: The x part of the coordinate
          •  y: The y part of the coordinate
          •  z: The z part of the coordinate
      •  max: The max position
        • An array of three ints
        • A string of coordinates parts formatted as x:y:z
        • An object with the coordinate values
          •  x: The x part of the coordinate
          •  y: The y part of the coordinate
          •  z: The z part of the coordinate
  • islands (Optional) A list of skyblock islands
    • Either the value of mode in /locraw or one of the enum values

Multiple (catharsis:multiple)

Groups multiple boxes into one area.

Example

An area that matches all blocks in the dwarven mines that are in either of the two regions.
In addition, it also specifies a min branch size of 16, meaning that everything under side length 16 automatically collapses into a leaf.

json
{
  "type": "multiple",
  "boxes": [
    {
      "min": "-51:180:-134",
      "max": "-13:210:-96"
    },
    {
      "min": "42:180:-135",
      "max": "80:210:-97"
    }
  ],
  "islands": "dwarven_mines",
  "min_size": 16
}
Root multiple object
  • type: catharsis:multiple
  • boxes: A list of bounding boxes
    •  A bounding box marking a region in 3d space
      • An array with two positions
        •  A position with int precision
          • An array of three ints
          • A string of coordinates parts formatted as x:y:z
          • An object with the coordinate values
            •  x: The x part of the coordinate
            •  y: The y part of the coordinate
            •  z: The z part of the coordinate
      • An array with 6 ints
        • The coordinates in order minX, minY, minZ, maxX, maxY, maxZ
      • An object with min and max
        •  min: The min position
          • An array of three ints
          • A string of coordinates parts formatted as x:y:z
          • An object with the coordinate values
            •  x: The x part of the coordinate
            •  y: The y part of the coordinate
            •  z: The z part of the coordinate
        •  max: The max position
          • An array of three ints
          • A string of coordinates parts formatted as x:y:z
          • An object with the coordinate values
            •  x: The x part of the coordinate
            •  y: The y part of the coordinate
            •  z: The z part of the coordinate
  • islands: (Optional) A list of skyblock islands
    • Either the value of mode in /locraw or one of the enum values
  • min_size: (Optional, at least 4) The lowest size a branch can reach in the tree, before falling over to a leaf.

Always (catharsis:always)

Always matches

Example

An area that always matches any block everywhere.

json
{
  "type": "always"
}
Root always object
  • type: catharsis:always

On Island (catharsis:on_island)

Similar to catharsis:always, the only difference is, that it also takes an island predicate.

Example

Matches while any of the specified islands.
json
{
  "type": "on_island",
  "islands": [
    "mining_1",
    "mining_2"
  ]
}
Root On Island object
  • type: catharsis:on_island
  • islands: (Optional) A list of skyblock islands
    • Either the value of mode in /locraw or one of the enum values

Per Island (catharsis:per_island)

Allows to change the definition based on the current island.

Example

Changes the definition based on the island, `always` and `on_island` have the exact same function in this case.
json
{
  "type": "per_island",
  "entries": [
    {
      "islands": "dwarven_mines",
      "type": "multiple",
      "boxes": [
        {
          "min": "-51:180:-134",
          "max": "-13:210:-96"
        },
        {
          "min": "42:180:-135",
          "max": "80:210:-97"
        }
      ]
    },
    {
      "islands": "mining_2",
      "type": "always"
    },
    {
      "islands": "mining_1",
      "type": "on_island"
    }
  ]
}
Root On Island object
  • type: catharsis:per_island
  • entries: A list of area definitions
    • islands: A list of skyblock islands
      • Either the value of mode in /locraw or one of the enum values
    • type: One of the area definition types
    • Additional fields depending on the value of type, see the respective area type documentation for more details.