[package] name = "benilla-world" version.workspace = true edition.workspace = true license.workspace = true description = "The world renderer: terrain, water, sky, weather, models, lighting, collision and the frame ladder — everything needed to put something in a world and ask the world about itself, with no game attached (decision 1160)" [features] # Forwarded dev/player seam (0026 · 1173/1174 · 1175). Default-on. `benilla-formats` must be taken # with `default-features = false` and its `dev` re-exported here: it is default-on there too, so # without this a `--no-default-features` player build gets the feature back through unification and # the binary carries the build machine's source-tree path after all. default = ["dev"] # # `bevy/debug` rides with it (decision 1451): without it every ECS diagnostic — a panicking system, # a parameter that will not validate, the enforcer's whole fault list — reads ``, which is what the frame-one crash it fixes was reported as. It stores # `&'static str` names on systems and params; it is diagnostics, not an instrument, so nothing # depends on it and the player build simply says less. Enabled here rather than in `benilla-app` # so `benilla-worldview` — the enforcer, whose entire output is these names — carries it too. dev = ["benilla-formats/dev", "benilla-assets/dev", "bevy/debug"] [dependencies] avian3d = "0.6" benilla-assets = { path = "../benilla-assets", default-features = false } benilla-formats = { path = "../benilla-formats", default-features = false } # The wire crate (`benilla_protocol`) is deliberately NOT here. The engine renders a world; it # does not speak a protocol. Decision 1177 took the last crossing out — `WorldUnit.kind: # EntityKind` became `WorldUnit.wades: bool` — and the absence of that dependency line IS the # record's gate: the crate graph enforces it, so no test has to. # The WMO group parser — the portal audit re-parses a group to pin its own decode against the file. benilla-wmo = { path = "../benilla-wmo" } bevy.workspace = true bytemuck = { version = "1", features = ["derive"] } image = { version = "0.25", default-features = false, features = ["png"] } libc = "0.2" # macOS: `bgwin` demotes the app to Accessory for a background run and orders the window out of # the way. Same pins as `benilla-app`'s — one objc2 in the graph. [target.'cfg(target_os = "macos")'.dependencies] objc2-app-kit = { version = "0.2", features = [ # `bgwin`'s Accessory demotion and window ordering, and `modkeys`' modifier read. "NSApplication", "NSEvent", # `mac_quit` walks the default menu bar to re-point the Quit item (decision 1528). "NSMenu", "NSMenuItem", "NSResponder", "NSRunningApplication", "NSWindow", ] } # `MainThreadMarker`, for the AppKit calls above. objc2-foundation = "0.2" # `sel!`, for the two selectors `mac_quit` swaps. The pin objc2-app-kit 0.2 itself builds against, # so this adds a name to the manifest and nothing to the graph. objc2 = "0.5"