#系统信息 #eve #在线 #游戏 #范围 #查询 #导航

neweden

用于 Eve Online 系统信息、导航和范围查询的库

10 个版本

0.3.3 2023年7月11日
0.3.2 2023年7月6日
0.2.2 2023年7月5日
0.1.2 2022年1月4日
0.1.1 2019年12月28日

#399数据库接口

Download history 15/week @ 2024-03-10 63/week @ 2024-03-31

每月 65 次下载

MIT 许可证

63KB
1.5K SLoC

neweden:Eve Online 的导航库

neweden 是一个用于 CCP Games 的 MMORPG 游戏 Eve Online 的系统信息、导航和范围查询的 Rust 库。

Docs Crates.io License

示例

获取一个星系的信息

use neweden::source::sqlite::DatabaseBuilder;
use neweden::Navigatable;

let universe = DatabaseBuilder::new("./sqlite-latest.sqlite").build().unwrap();
let system_id = 30000142.into(); // returns a SystemId

println!("{:?}", universe.get_system(&system_id).unwrap().name); // Jita

寻找一条路径

use neweden::source::sqlite::DatabaseBuilder;
use neweden::Navigatable;
use neweden::navigation::PathBuilder;

let universe = DatabaseBuilder::new("./sqlite-latest.sqlite").build().unwrap();
let jita = 30000142;
let camal = 30000049;
let path = PathBuilder::new(&universe)
    .waypoint(&universe.get_system(&jita.into()).unwrap())
    .waypoint(&universe.get_system(&camal.into()).unwrap())
    .build();

for system in path {
    println!("Waypoint: {}", system.name)
}

开发状态

该库处于开发阶段,处于早期 alpha 阶段。API 将会改变,您的代码可能会出错。这也意味着构建和测试机制略显复杂,但会随着时间的推移而改进。

构建

该库使用 features 来定义检索系统和连接信息的后端。默认情况下,库会构建而不包含任何功能,您只能通过创建自己的数据加载器来创建宇宙。为 CCP 的静态转储提供了构建内数据加载器。您可以使用 postgres 功能启用 PostgreSQL 数据库后端,或使用 sqlite 功能启用 SQLite。

rpc 功能仅供内部使用,依赖于一个非开源的 crate。

构建仓库

git clone https://github.com/dsp/neweden
cd neweden
cargo build --features sqlite

运行测试

要运行测试或基准测试,您必须使用 nightly。如果您使用 database 标志构建,您必须通过环境变量 DATABASE_URL 提供数据库连接。

git clone https://github.com/dsp/neweden
cd neweden
export SQLITE_URI="/path/to/sde/dump"
cargo +nightly test --features sqlite

依赖项

~2.7–7.5MB
~141K SLoC