Source code for evennia.contrib.grid.xyzgrid.utils

"""

Helpers and resources for the map system.

"""

BIGVAL = 999999999999

REVERSE_DIRECTIONS = {
    "n": "s",
    "ne": "sw",
    "e": "w",
    "se": "nw",
    "s": "n",
    "sw": "ne",
    "w": "e",
    "nw": "se",
}

MAPSCAN = {
    "n": (0, 1),
    "ne": (1, 1),
    "e": (1, 0),
    "se": (1, -1),
    "s": (0, -1),
    "sw": (-1, -1),
    "w": (-1, 0),
    "nw": (-1, 1),
}

# errors for Map system


[docs]class MapError(RuntimeError):
[docs] def __init__(self, error="", node_or_link=None): prefix = "" if node_or_link: prefix = ( f"{node_or_link.__class__.__name__} '{node_or_link.symbol}' " f"at XYZ=({node_or_link.X:g},{node_or_link.Y:g},{node_or_link.Z}) " ) self.node_or_link = node_or_link self.message = f"{prefix}{error}" super().__init__(self.message)
[docs]class MapParserError(MapError): pass
[docs]class MapTransition(RuntimeWarning): """ Used when signaling to the parser that a link leads to another map. """ pass