Elite: Dangerous Long Range Router
.chglog | ||
celery | ||
docs | ||
ed_lrr_gui | ||
icon | ||
installer | ||
rust | ||
tests | ||
.env | ||
.gitignore | ||
appveyor.yml | ||
build_gui.py | ||
CHANGELOG.md | ||
LICENSE | ||
MANIFEST.in | ||
noxfile.py | ||
pyproject.toml | ||
README.md | ||
setup.cfg | ||
setup.py |
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:
- Visual Studio 2019
- nightly rust compiler (
x86_64-pc-windows-msvc
)
Building an installer
(Assuming conda
is in your PATH
)
- Start a Visual Studio 2019 x64 command prompt
- Run
tox
- Grab the installer from
installer/Output/
Manual installation
(Assuming conda
is in your PATH
)
- Start a Visual Studio 2019 x64 command prompt
- 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
TODO
Routing
- Custom weights and filtering for routing
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 modifiedLineCache
fromrouter.rs
)
Misc
- Luigi based Task queue for distributed routing
- Full route tree computation
- overlap elimination