ED_LRR/README.md

2.3 KiB

Elite: Dangerous Long-range router

Features

  • Three different routing algorithms:
    • Breadth-first search:, always finds the shortest route but is quite slow
    • A-Star: has an adjustable tradeoff between speed and quality
    • Greedy search: always picks the next reachable star that's closest to the destination, very fast but very poor quality routes
  • Nice GUI! (made with PyQt5)
  • Two themes! (Dark and Light)
  • Uses data from (EDSM)[https://edsm.net/] for star data
  • Only routes through scoopable systems, no more running out of fuel! (assuming you have a fuel scoop)
  • Precomputing of BFS routing graphs for near-instant routing from your home system to any destination!
  • Routing code written in Rust, so it's quite speedy!
  • Export routes as HTML, JSON, CSV and SVG (WIP!)
  • Automagically copy next jump destination into system clipboard (works by monitoring the player journal file)

Installation

Prerequisites

  • Python:
    • conda (miniconda/anaconda)
    • tox (conda install tox)
    • Inno Setup Compiler
      • Download from here
      • or install via scoop scoop install inno-setup)
  • Visual Studio 2019
  • nightly rust compiler (x86_64-pc-windows-msvc)

Building an installer

(Assuming conda is in your PATH)

  1. Start a Visual Studio 2019 x64 command prompt
  2. Run tox
  3. Grab the installer from installer/Output/

Manual installation

(Assuming conda is in your PATH)

  1. Start a Visual Studio 2019 x64 command prompt
  2. Run the following commands:
conda install pycrypto nuitka
pip install PyQt5 setuptools_rust
python build_gui.py
pip install .

then you can run ed_lrr -h from your command prompt to get help

To do

Router

  • Caching wrapper for System
    • Only fetch position once when building Spatial-Tree
    • Fetch data on demand

GUI

  • Implement estimate time to completion display for route computation and preprocessing
  • Export route as:
    • JSON
    • HTML (WIP)
    • CSV
    • SVG

Installer

  • Update PATH from installer

Preprocessing

  • Build index over systemsWithCoordinates.json instead of loading it into RAM (reuse modified LineCache from router.rs)

Misc

  • Luigi based Task queue for distributed routing