[package]
edition = "2024"
rust-version = "1.92"
name = "nightshade-api"
version = "0.53.0"
authors = ["Matthew Berger <matthewjordanberger@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Procedural high level API for the nightshade game engine"
homepage = "https://github.com/matthewjberger/nightshade"
readme = "README.md"
keywords = [
"gamedev",
"engine",
"graphics",
"3d",
"wgpu",
]
categories = [
"game-engines",
"graphics",
"rendering::engine",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/matthewjberger/nightshade"
resolver = "2"
[package.metadata.docs.rs]
features = [
"leptos",
"offscreen",
"scripting",
"terrain",
"egui",
"protocol-agent",
]
[features]
audio = [
"engine",
"nightshade/audio",
]
default = [
"engine",
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
egui = [
"engine",
"nightshade/egui",
]
engine = [
"dep:nightshade",
"dep:bincode",
"dep:enum2schema",
]
gamepad = [
"engine",
"nightshade/gamepad",
]
grass = [
"engine",
"nightshade/grass",
]
leptos = [
"dep:leptos",
"dep:web-sys",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:js-sys",
"dep:serde-wasm-bindgen",
"dep:serde_json",
"dep:zip",
]
navmesh = [
"engine",
"nightshade/navmesh",
"nightshade/navmesh-bake",
]
net = [
"engine",
"dep:hearsay",
"dep:tokio",
"dep:serde_json",
]
offscreen = [
"engine",
"picking",
"nightshade/engine",
"nightshade/wgpu",
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:js-sys",
"dep:serde-wasm-bindgen",
"dep:console_error_panic_hook",
"dep:web-sys",
"dep:serde_json",
]
physics = [
"engine",
"nightshade/physics",
]
picking = [
"engine",
"nightshade/picking",
]
protocol = [
"audio",
"physics",
"navmesh",
"scripting",
"nightshade/engine",
"nightshade/wgpu",
"nightshade/gizmos",
]
protocol-agent = [
"protocol",
"dep:serde_json",
]
scripting = [
"engine",
"dep:rhai",
"dep:serde_json",
"physics",
]
terrain = [
"grass",
"nightshade/terrain",
]
[lib]
name = "nightshade_api"
path = "src/lib.rs"
[[example]]
name = "agents"
path = "examples/agents.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "animation"
path = "examples/animation.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "audio_garden"
path = "examples/audio_garden.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "cameras"
path = "examples/cameras.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "clock"
path = "examples/clock.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "collector"
path = "examples/collector.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "commands"
path = "examples/commands.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "day_night"
path = "examples/day_night.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "dump_manifest"
path = "examples/dump_manifest.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "events"
path = "examples/events.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "fps_walk"
path = "examples/fps_walk.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "gallery"
path = "examples/gallery.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "grand_tour"
path = "examples/grand_tour.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "hud"
path = "examples/hud.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "input"
path = "examples/input.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "inspector"
path = "examples/inspector.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "juice"
path = "examples/juice.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "materials_extra"
path = "examples/materials_extra.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "member_world"
path = "examples/member_world.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "model_viewer"
path = "examples/model_viewer.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "net_chat"
path = "examples/net_chat.rs"
required-features = ["net"]
[[example]]
name = "parity"
path = "examples/parity.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "particles"
path = "examples/particles.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "physics_lab"
path = "examples/physics_lab.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "physics_playground"
path = "examples/physics_playground.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "post_fx"
path = "examples/post_fx.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "poster"
path = "examples/poster.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "prefabs"
path = "examples/prefabs.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "procedural_mesh"
path = "examples/procedural_mesh.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "save_load"
path = "examples/save_load.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "solar_system"
path = "examples/solar_system.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "spinning_cube"
path = "examples/spinning_cube.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "terrain_walk"
path = "examples/terrain_walk.rs"
required-features = ["terrain"]
[[example]]
name = "tower_defense"
path = "examples/tower_defense.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "tower_defense_scripted"
path = "examples/tower_defense_scripted.rs"
required-features = ["scripting"]
[[example]]
name = "widgets"
path = "examples/widgets.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[[example]]
name = "world_space_ui"
path = "examples/world_space_ui.rs"
required-features = [
"audio",
"physics",
"gamepad",
"picking",
"navmesh",
]
[dependencies.bincode]
version = "1.3"
optional = true
[dependencies.console_error_panic_hook]
version = "0.1"
optional = true
[dependencies.enum2schema]
version = "0.1.2"
features = ["nalgebra-glm"]
optional = true
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.leptos]
version = "0.7"
features = ["csr"]
optional = true
[dependencies.nightshade]
version = "0.53.0"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde-wasm-bindgen]
version = "0.6"
optional = true
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.wasm-bindgen]
version = "0.2.114"
optional = true
[dependencies.wasm-bindgen-futures]
version = "0.4.64"
optional = true
[dependencies.web-sys]
version = "0.3"
features = [
"Window",
"Document",
"Element",
"HtmlElement",
"HtmlInputElement",
"HtmlTextAreaElement",
"HtmlCanvasElement",
"HtmlStyleElement",
"Node",
"NodeList",
"OffscreenCanvas",
"DomRect",
"DomRectReadOnly",
"Worker",
"WorkerOptions",
"WorkerType",
"MessageEvent",
"Event",
"EventTarget",
"AddEventListenerOptions",
"PointerEvent",
"MouseEvent",
"WheelEvent",
"KeyboardEvent",
"DragEvent",
"DataTransfer",
"ResizeObserver",
"Storage",
"WebSocket",
"HtmlAnchorElement",
"Blob",
"File",
"FileList",
"FileReader",
"Navigator",
"Clipboard",
"CompositionEvent",
"DedicatedWorkerGlobalScope",
"Performance",
"Url",
"BlobPropertyBag",
]
optional = true
[dependencies.zip]
version = "2"
features = ["deflate"]
optional = true
default-features = false
[dev-dependencies.web-time]
version = "1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hearsay]
version = "0.1"
features = ["websockets"]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rhai]
version = "1.23"
features = [
"sync",
"serde",
]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"net",
"sync",
"time",
"macros",
]
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.rhai]
version = "1.23"
features = [
"sync",
"wasm-bindgen",
"serde",
]
optional = true