[package]
name = "veloren-common"
version = "0.10.0"
authors = ["Joshua Barretto <joshua.s.barretto@gmail.com>", "Luna Ćwięka <luna@lunareclipse.zone>", "Imbris <imbrisf@gmail.com>"]
edition = "2021"

[features]
no-assets = []
hot-reloading = ["common-assets/hot-reloading"]
simd = ["vek/platform_intrinsics"]
bin_csv = ["ron", "csv", "clap"]
bin_graphviz = ["petgraph", "clap"]
bin_cmd_doc_gen = []
bin_asset_migrate = ["ron"]
rrt_pathfinding = ["kiddo"]
calendar_events = []

default = ["simd"]

[dependencies]

common-base = { package = "veloren-common-base", path = "base" }
common-i18n = { package = "veloren-common-i18n", path = "i18n" }
# inline_tweak = { workspace = true }

# Serde
serde = { workspace = true, features = ["rc"] }

# Util
enum-map = { workspace = true, features = ["serde"] }
vek = { workspace = true }
chrono = { workspace = true }
chrono-tz = { workspace = true }
itertools = { workspace = true }
serde_json = { workspace = true }
sha2 = "0.10"

# Strum
strum = { workspace = true }

approx = "0.5.1"
crossbeam-utils = { workspace = true }
bitflags = { workspace = true, features = ["serde"] }
lazy_static = { workspace = true }
num-derive = "0.4.0"
num-traits = { workspace = true }
ordered-float = { workspace = true }
rayon = { workspace = true }
roots = "0.0.8"
spin_sleep = "1.0"
tracing = { workspace = true }
uuid = { version = "1.4.1", default-features = false, features = ["serde", "v4"] }
rand = { workspace = true }
fxhash = { workspace = true }

# Assets
common-assets = {package = "veloren-common-assets", path = "assets"}
dot_vox = "5.1"
serde_repr = "0.1.6"

# csv import
ron = { workspace = true, optional = true }
# csv export
csv = { version = "1.1.3", optional = true }
# graphviz exporters
petgraph = { version = "0.6", optional = true }
# K-d trees used for RRT pathfinding
kiddo = { version = "0.2", optional = true }
clap = { workspace = true, optional = true }

# Data structures
hashbrown = { workspace = true }
slab = { workspace = true }
slotmap = { version = "1.0", features = ["serde"] }
indexmap = { version = "1.9.3", features = ["rayon"] }

# ECS
specs = { workspace = true, features = ["serde", "storage-event-control", "shred-derive"] }

[dev-dependencies]
#bench
criterion = { version = "0.5.1", default-features=false, features=["rayon", "cargo_bench_support"]}
rand_chacha = { workspace = true }

#test
tracing-subscriber = { version = "0.3.7", default-features = false, features = ["fmt", "time", "ansi", "smallvec", "env-filter"] }
petgraph = "0.6.0"

[[bench]]
name = "chonk_benchmark"
harness = false

[[bench]]
name = "color_benchmark"
harness = false

[[bench]]
name = "loot_benchmark"
harness = false

[[bin]]
name = "csv_export"
required-features = ["bin_csv"]

[[bin]]
name = "csv_import"
required-features = ["bin_csv"]

[[bin]]
name = "asset_migrate"
required-features = ["bin_asset_migrate"]

[[bin]]
name = "recipe_graphviz"
required-features = ["bin_graphviz"]

[[bin]]
name = "skill_graphviz"
required-features = ["bin_graphviz"]

[[bin]]
name = "cmd_doc_gen"
required-features = ["bin_cmd_doc_gen"]