# XYZgrid Contribution by Griatch 2021 Places Evennia's game world on an xy (z being different maps) coordinate grid. Grid is created and maintained externally by drawing and parsing 2D ASCII maps, including teleports, map transitions and special markers to aid pathfinding. Supports very fast shortest-route pathfinding on each map. Also includes a fast view function for seeing only a limited number of steps away from your current location (useful for displaying the grid as an in-game, updating map). Grid-management is done outside of the game using a new evennia-launcher option. ## Examples ``` #-#-#-# # | / d #-# | # \ u |\ o---#-----#---+-#-# | ^ |/ | | # v | \ #-#-#-#-#-# #---# |x|x| / #-#-# #- ``` ``` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #---# / @- -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dungeon Entrance To the east, a narrow opening leads into darkness. Exits: northeast and east ``` ## Installation 1. XYZGrid requires the `scipy` library. Easiest is to get the 'extra' dependencies of Evennia with pip install evennia[extra] If you use the `git` install, you can also (cd to evennia/ folder) pip install --upgrade -e .[extra] This will install all optional requirements of Evennia. 2. Import and [add] the `evennia.contrib.grid.xyzgrid.commands.XYZGridCmdSet` to the `CharacterCmdset` cmdset in `mygame/commands.default_cmds.py`. Reload the server. This makes the `map`, `goto/path` and the modified `teleport` and `open` commands available in-game. [add]: ../Components/Command-Sets 3. Edit `mygame/server/conf/settings.py` and add EXTRA_LAUNCHER_COMMANDS['xyzgrid'] = 'evennia.contrib.grid.xyzgrid.launchcmd.xyzcommand' PROTOTYPE_MODULES += ['evennia.contrib.grid.xyzgrid.prototypes'] This will add the new ability to enter `evennia xyzgrid