tiles_tools 0.2.0

High-performance tile-based game development toolkit with comprehensive coordinate systems (hexagonal, square, triangular, isometric), pathfinding, ECS integration, and grid management.
Documentation
[[bench]]
harness = false
name = "coordinate_benchmarks"
path = "benches/coordinate_benchmarks.rs"
required-features = ["enabled"]

[[bench]]
harness = false
name = "pathfinding_benchmarks"
path = "benches/pathfinding_benchmarks.rs"
required-features = ["enabled", "pathfinding-algorithms"]

[dependencies.bincode]
optional = true
version = "1.3"

[dependencies.error_tools]
optional = true
version = "0.22.0"

[dependencies.former]
optional = true
version = "~2.26.0"

[dependencies.hecs]
optional = true
version = "0.10"

[dependencies.mod_interface]
optional = true
version = "~0.34.0"

[dependencies.ndarray_cg]
optional = true
version = "~0.4.0"

[dependencies.pathfinding]
optional = true
version = "4.14.0"

[dependencies.ron]
optional = true
version = "0.8"

[dependencies.serde]
features = ["derive"]
optional = true
version = "1.0.219"

[dependencies.serde_json]
optional = true
version = "1.0"

[dev-dependencies.criterion]
features = ["html_reports"]
version = "0.5"

[dev-dependencies.rand]
features = ["std_rng"]
version = "0.8"

[dev-dependencies.serde_json]
version = "1.0.142"

[dev-dependencies.tempfile]
version = "3.0"

[dev-dependencies.test_tools]
version = "~0.16.0"

[[example]]
name = "advanced_pathfinding_demo"
path = "examples/advanced_pathfinding_demo.rs"

[[example]]
name = "animation_demo"
path = "examples/animation_demo.rs"

[[example]]
name = "beginner_tutorial"
path = "examples/beginner_tutorial.rs"

[[example]]
name = "behavior_tree_demo"
path = "examples/behavior_tree_demo.rs"

[[example]]
doc-scrape-examples = true
name = "debug_demo"
path = "examples/debug_demo.rs"
required-features = ["enabled"]

[[example]]
name = "ecs_collision_demo"
path = "examples/ecs_collision_demo.rs"

[[example]]
doc-scrape-examples = true
name = "event_system_demo"
path = "examples/event_system_demo.rs"
required-features = ["enabled"]

[[example]]
name = "field_of_view_demo"
path = "examples/field_of_view_demo.rs"

[[example]]
doc-scrape-examples = true
name = "game_of_life"
path = "examples/game_of_life.rs"
required-features = ["enabled"]

[[example]]
doc-scrape-examples = true
name = "game_systems_demo"
path = "examples/game_systems_demo.rs"
required-features = ["enabled"]

[[example]]
doc-scrape-examples = true
name = "serialization_demo"
path = "examples/serialization_demo.rs"
required-features = ["serialization"]

[[example]]
name = "simple_collision_demo"
path = "examples/simple_collision_demo.rs"

[[example]]
doc-scrape-examples = true
name = "stealth_game"
path = "examples/stealth_game.rs"
required-features = ["enabled", "ecs-systems"]

[[example]]
doc-scrape-examples = true
name = "tactical_rpg"
path = "examples/tactical_rpg.rs"
required-features = ["enabled", "ecs-systems", "pathfinding-algorithms"]

[features]
conversions = ["coordinates"]
coordinates = []
default = ["enabled"]
ecs-systems = ["enabled", "dep:hecs"]
enabled = ["dep:error_tools", "dep:former", "dep:mod_interface", "dep:hecs", "dep:pathfinding", "dep:serde", "dep:ndarray_cg"]
field-of-view = ["enabled"]
flow-fields = ["enabled"]
full = ["enabled", "serialization", "ecs-systems"]
grid-collections = ["dep:ndarray_cg"]
hexagonal = ["coordinates"]
integration = []
isometric = ["coordinates"]
pathfinding-algorithms = ["dep:pathfinding"]
serialization = ["enabled", "dep:serde", "dep:serde_json", "dep:bincode", "dep:ron"]
square = ["coordinates"]
triangular = ["coordinates"]

[lib]
name = "tiles_tools"
path = "src/lib.rs"

[lints.clippy]
absolute_paths = "allow"
allow_attributes = "allow"
allow_attributes_without_reason = "allow"
arbitrary_source_item_ordering = "allow"
else_if_without_else = "warn"
exhaustive_enums = "warn"
exhaustive_structs = "warn"
implicit_return = "warn"
inline_always = "allow"
many_single_char_names = "allow"
min_ident_chars = "warn"
missing_docs_in_private_items = "allow"
missing_inline_in_public_items = "warn"
mod_module_files = "allow"
module_name_repetitions = "allow"
pub_use = "allow"
self_named_module_files = "allow"
single_call_fn = "allow"
std_instead_of_alloc = "warn"
std_instead_of_core = "warn"
undocumented_unsafe_blocks = "deny"
wildcard_imports = "warn"

[lints.clippy.pedantic]
level = "warn"
priority = -1

[lints.rust]
future_incompatible = "warn"
missing_docs = "warn"
unsafe-code = "warn"

[lints.rust.rust_2018_idioms]
level = "deny"
priority = -1

[package]
authors = ["Kostiantyn Mysnyk <wandalen@obox.systems>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["game-development", "algorithms", "data-structures", "graphics", "mathematics"]
description = "High-performance tile-based game development toolkit with comprehensive coordinate systems (hexagonal, square, triangular, isometric), pathfinding, ECS integration, and grid management."
documentation = "https://docs.rs/tiles_tools"
edition = "2021"
homepage = "https://github.com/Wandalen/cgtools/tree/master/module/helper/tiles_tools"
include = ["src/**/*", "benches/**/*", "examples/**/*", "tests/**/*", "script/**/*", "Cargo.toml", "readme.md", "license*", "changelog*"]
keywords = ["gamedev", "tiles", "hexagonal", "grid", "ecs"]
license = "MIT"
name = "tiles_tools"
readme = "readme.md"
repository = "https://github.com/Wandalen/cgtools"
rust-version = "1.75.0"
version = "0.2.0"

[package.metadata.docs.rs]
all-features = true
default-target = "x86_64-unknown-linux-gnu"
rustdoc-args = ["--cfg", "docsrs"]
targets = ["x86_64-unknown-linux-gnu", "x86_64-pc-windows-msvc", "x86_64-apple-darwin", "wasm32-unknown-unknown"]

[[package.metadata.release.pre-release-replacements]]
file = "readme.md"
replace = 'tiles_tools = "{{version}}"'
search = 'tiles_tools = "[0-9.]+"'

[[package.metadata.release.pre-release-replacements]]
file = "changelog.md"
replace = """
## Unreleased

## {{version}} - {{date}}"""
search = "## Unreleased"

[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"