[workspace.package] version = "0.11.0" authors = ["BlondeBurrito"] edition = "2021" rust-version = "1.80" readme = "README.md" license = "MIT OR Apache-2.0" homepage = "https://github.com/BlondeBurrito/bevy_flowfield_tiles_plugin" repository = "https://github.com/BlondeBurrito/bevy_flowfield_tiles_plugin" keywords = ["navigation", "pathfinding", "bevy"] categories = ["game-development", "algorithms"] exclude = [".github/", "crates/", "assets/", "docs/png/", "justfile"] [workspace] members = ["crates/*"] # Centralised way of managing versions across all crates and packages [workspace.dependencies] bevy = { version = "0.14", default-features = false, features = ["bevy_render", "wayland"] } serde = { version = "1", features = ["derive"] } ron = { version = "0.8" } csv = { version = "1" } photon-rs = { version = "0.3"} [workspace.lints.clippy] cargo_common_metadata = "deny" missing_docs_in_private_items = "deny" todo = "deny" unimplemented = "warn" [workspace.lints.rust] unexpected_cfgs = { level = "allow", check-cfg = ['cfg(tarpaulin_include)'] } [package] name = "bevy_flowfield_tiles_plugin" version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true description = "An implementation of FlowField (vector field) pathfinding as a plugin to the Bevy game engine" readme.workspace = true license.workspace = true homepage.workspace = true repository.workspace = true keywords.workspace = true categories.workspace = true exclude.workspace = true publish = true [dev-dependencies] criterion = "0.5" bevy = { workspace = true, default-features = true, features=["wayland"]} rand = "0.8" avian2d = { version = "0.1", default-features = false, features = ["2d", "f32", "parry-f32", "default-collider", "parallel", "debug-plugin"]} # used in 2d exmaples for collision detection examples_utils = { path = "crates/examples_utils" } [dependencies] bevy = { workspace = true, features = ["bevy_render", "wayland"] } serde = { workspace = true, optional = true} ron = { workspace = true, optional = true} csv = { workspace = true, optional = true} photon-rs = {workspace = true, optional = true} [lints] workspace = true [features] serde = ["dep:serde"] ron = ["serde", "dep:ron"] csv = ["serde", "dep:csv"] 2d = [] 3d = [] heightmap = ["dep:photon-rs"] # multithread = [] [package.metadata.docs.rs] features = ["serde", "ron", "csv", "2d", "3d", "heightmap"] [profile.dev] opt-level = 1 [profile.flamegraph] inherits = "release" debug = true strip = false [profile.codecov] inherits = "release" strip = false [profile.release] codegen-units = 2 # lto = true # slow strip = true # strip symbols to reduce binary size on linux and mac [[bench]] name = "calc_route" harness = false [[bench]] name = "calc_flow_open" harness = false [[bench]] name = "calc_flow_sparse" harness = false [[bench]] name = "calc_flow_maze" harness = false [[bench]] name = "init_bundle" harness = false [[bench]] name = "init_cost_fields" harness = false [[bench]] name = "init_portals" harness = false [[bench]] name = "init_portal_graph" harness = false ################### [[example]] name = "visualise_cost_field" path = "examples/visualise_cost_field.rs" required-features = ["ron"] [[example]] name = "visualise_cost_field_heightmap" path = "examples/visualise_cost_field_heightmap.rs" required-features = ["heightmap"] [[example]] name = "visualise_portals" path = "examples/visualise_portals.rs" required-features = ["csv", "2d"] [[example]] name = "visualise_integration_field_los" path = "examples/visualise_integration_field_los.rs" required-features = ["ron"] [[example]] name = "visualise_integration_field" path = "examples/visualise_integration_field.rs" required-features = ["ron"] [[example]] name = "visualise_integration_fields" path = "examples/visualise_integration_fields.rs" required-features = ["ron"] [[example]] name = "visualise_flow_field_tiles" path = "examples/visualise_flow_field_tiles.rs" required-features = ["ron"] [[example]] name = "flow_field_right_click" path = "examples/flow_field_right_click.rs" required-features = ["ron", "2d"] [[example]] name = "2d_with_steering" path = "examples/2d_with_steering.rs" required-features = ["ron", "2d"] [[example]] name = "2d_variety_costs" path = "examples/2d_variety_costs.rs" required-features = ["heightmap", "2d"] [[example]] name = "2d_complex_movement" path = "examples/2d_complex_movement.rs" required-features = ["csv", "2d"] [[example]] name = "2d_multi_actor" path = "examples/2d_multi_actor.rs" required-features = ["ron", "2d"] [[example]] name = "2d_multi_actor_controls" path = "examples/2d_multi_actor_controls.rs" required-features = ["ron", "2d"] [[example]] name = "2d_mutate_costfields" path = "examples/2d_mutate_costfields.rs" required-features = ["ron", "2d"] [[example]] name = "3d_actor_movement" path = "examples/3d_actor_movement.rs" required-features = ["ron", "3d"] [[example]] name = "2d_continuous" path = "examples/2d_continuous.rs" required-features = ["ron", "2d"] [[example]] name = "2d_large_actor" path = "examples/2d_large_actor.rs" required-features = ["ron", "2d"] [[example]] name = "2d_from_mesh" path = "examples/2d_from_mesh.rs" required-features = ["2d"]