Skip to content

Structure Spawn Conditions

Apollo edited this page Nov 22, 2024 · 5 revisions

Structures can be given more refined spawning conditions with the lithostitched:delegating structure type. Below is the list of available structure conditions.

true

Always passes. No further fields.


all_of

Checks a list of structure conditions. If all pass, this passes.

{
  "type": "lithostitched:all_of",
  "conditions": [
    {
      "type": "lithostitched:true"
    }
  ]
}
  • conditions: The list of conditions to check.

any_of

Checks a list of structure conditions. If any pass, this passes.

{
  "type": "lithostitched:any_of",
  "conditions": [
    {
      "type": "lithostitched:true"
    }
  ]
}
  • conditions: The list of conditions to check.

multiple_of

Checks a list of structure conditions. If the number of predicates in the allowed_count pass, this predicate passes.

{
  "type": "lithostitched:multiple_of",
  "predicates": [
    {
      "type": "lithostitched:true"
    },
    {
      "type": "lithostitched:true"
    },
    {
      "type": "lithostitched:not",
      "predicate": {
        "type": "lithostitched:true"
      }
    }
  ],
  "allowed_count": [1, 2]
}
  • predicates: A list of structure conditions.
  • allowed_count: An integer range (64, [64,96], {"min_inclusive":64,"max_inclusive":96}).

not

Inverts the supplied condition. If the condition fails, this passes.

{
  "type": "lithostitched:not",
  "condition": {
    "type": "lithostitched:true"
  }
}
  • condition: The structure conditions to invert.

offset

Offsets the block position where the condition is checked.

{
  "type": "lithostitched:offset",
  "condition": {
    "type": "lithostitched:true"
  },
  "offset": [ 50, 0, 0 ]
},
  • condition: The structure conditions to check.
  • offset: The block pos for the offset, as a list of 3 integers.

height_filter

Checks if the current position is within a certain range.

{
  "type": "lithostitched:height_filter",
  "range_type": "absolute"
  "heightmap": "WORLD_SURFACE_WG",
  "permitted_range": [90,160]
}
  • range_type: The range type to use. Can be either absolute or heightmap_relative
    • If the range type is absolute and a heightmap isn't given, permitted_range will check if the current y-pos is within it.
    • If the range type is absolute and a heightmap is given, permitted_range will check if the heightmap at the current x/z-pos is within it.
    • If the range type is heightmap_relative, permitted_range will check if the current position's offset from the heightmap is within it.
  • heightmap: The heightmap to check at the given position. If not defined, the current position being checked is used.
  • permitted_range: An int range (64, [64,96], {"min_inclusive":64,"max_inclusive":96}) to check.

in_biome

Checks if the current position is in certain biome(s).

{
  "type": "lithostitched:in_biome",
  "biomes": "#minecraft:is_beach"
}
  • biomes: A biome, list of biomes, or biome tag to check.

sample_density

Checks if the result of a density function at the current position falls between certain values.

{
  "type": "lithostitched:sample_density",
  "density_function": "minecraft:overworld/erosion",
  "min_inclusive": -0.2,
  "max_inclusive": 0.3
}
  • density_function: The density function to check.
  • min_inclusive: The minimum allowed density. If omitted, there is no minimum.
  • max_inclusive: The maximum allowed density. If omitted, there is no maximum.