[package] name = "perovskite_game_api" version = "0.0.4" edition = "2021" license = "Apache-2.0" description = "Multiplayer voxel game written in Rust - default game content + plugin API" authors = ["drey7925 "] repository = "https://github.com/drey7925/perovskite" categories = ["game-engines", "games"] maintenance = { status = "experimental" } [dependencies] perovskite_server = { path = "../perovskite_server", version = "0.0.4" } perovskite_core = { path = "../perovskite_core", version = "0.0.4" } anyhow = "1.0.70" bitvec = "1.0.1" env_logger = "0.11.3" noise = "0.9.0" parking_lot = "0.12.1" log = "0.4.17" prost = "0.12.6" dhat = "0.3.2" hashbrown = "0.14.0" console-subscriber = { version = "0.3.0", optional = true } tracing = "0.1.37" tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter", "std"] } tracing-log = "0.2.0" tracing-tracy = { version = "0.11.0", default-features = false, features = [ "system-tracing", "context-switch-tracing", "sampling", "code-transfer", "broadcast" ] } splines = "4.2.0" rand = "0.8.5" rustc-hash = "2.0.0" mimalloc = { version = "0.1.37", default-features = false } async-trait = "0.1.73" ron = "0.8.0" serde = { version = "1.0.163", features = ["derive"] } cgmath = "0.18.0" tokio = { version = "1.38.0", features = ["full", "tracing"] } smallvec = "1.11.2" regex = "1.10.2" serenity = { version = "0.12.0", optional = true } image = { version = "0.25.1" } petgraph = "0.6.4" lazy_static = "1.4.0" wildmatch = "2.3.3" itertools = "0.13.0" [features] default = ["default_game", "agriculture", "circuits", "discord", "carts"] # When enabled, re-exports selected from perovskite_server. These are subject to change # in the current version. unstable_api = [] # Provides a simple default game, centered around exploration, small-scale resource # collection, mining, building, etc. This game may expand over time. # # It also provides the following abstractions/functionality (WIP): # * Recipe book for crafting/smelting # * A basic furnate that follows the recipe book # * A simple inventory UI with creative support and a crafting tool # * Map generator implementation # * Helpers for defining tools # * Useful commands for game administration default_game = [] # Provides a plugin for making digital circuits that have simple in-game behaviors. Still a WIP circuits = [] # Carts that operate on rails. These rely on circuits for signalling and control. carts = ["circuits"] # Provides basic agriculture functionality that other plugins can use. Relies on default_game for # dirt and other interactions agriculture = ["default_game"] # If enabled, server will detect deadlocks and log them. deadlock_detection = ["perovskite_server/deadlock_detection"] # Performance tracing tracy = ["perovskite_server/tracy", "tracing-tracy/enable"] # Heap profiling dhat-heap = [] # tokio-console; Requires RUSTFLAGS="--cfg tokio_unstable" tokio-console = ["dep:console-subscriber"] # Connects game chat and other events to a discord channel. WIP. # Requires rust 1.74.0 or higher discord = ["dep:serenity"] [dev-dependencies] criterion = { version = "0.4", features = ["html_reports"] } [[bench]] name = "mapgen_bench" harness = false [[bench]] name = "game_map_bench" harness = false