cs2_nav/
lib.rs

1#![allow(unknown_lints)]
2#![allow(clippy::suboptimal_flops)]
3#![allow(clippy::similar_names)]
4#![allow(clippy::many_single_char_names)]
5#![allow(clippy::multiple_crate_versions)]
6#![allow(clippy::implicit_hasher)]
7#![allow(clippy::unsafe_derive_deserialize)]
8#![allow(clippy::redundant_pub_crate)]
9
10use crate::collisions::{CollisionChecker, Triangle};
11use crate::nav::{
12    DynamicAttributeFlags, InvalidNavFileError, Nav, NavArea, PathResult, py_group_nav_areas,
13    py_regularize_nav_areas,
14};
15use crate::position::{Position, idw_py};
16use pyo3::{
17    Python,
18    prelude::{Bound, PyModule, PyResult, pymodule},
19    types::PyModuleMethods,
20    wrap_pyfunction,
21};
22
23pub mod collisions;
24pub mod constants;
25pub mod nav;
26pub mod position;
27pub mod spread;
28pub mod utils;
29
30#[pymodule]
31fn cs2_nav(py: Python<'_>, m: &Bound<'_, PyModule>) -> PyResult<()> {
32    m.add_class::<Position>()?;
33    m.add_function(wrap_pyfunction!(idw_py, m)?)?;
34    m.add_class::<DynamicAttributeFlags>()?;
35    m.add_class::<NavArea>()?;
36    m.add_class::<Nav>()?;
37    m.add_class::<PathResult>()?;
38    m.add_function(wrap_pyfunction!(py_group_nav_areas, m)?)?;
39    m.add_function(wrap_pyfunction!(py_regularize_nav_areas, m)?)?;
40    m.add_class::<Triangle>()?;
41    m.add_class::<CollisionChecker>()?;
42    m.add("InvalidNavFileError", py.get_type::<InvalidNavFileError>())?;
43    Ok(())
44}