diff --git a/Cargo.toml b/Cargo.toml index 09d2a2a..e54ecbe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,9 @@ embed-resource = "1.6.3" # embedding of .exe metadata [features] default = ["x11", "embed_assets"] -dev = ["bevy/dynamic_linking", "bevy/file_watcher"] +mute_music = [] +dev_mode = [] +dev = ["dev_mode", "mute_music", "bevy/dynamic_linking", "bevy/file_watcher"] wasm = ["bevy/webgl2"] x11 = ["bevy/x11"] wayland = ["bevy/wayland"] diff --git a/README.md b/README.md index 8a4e7d2..6c11962 100644 --- a/README.md +++ b/README.md @@ -138,12 +138,6 @@ See https://superuser.com/questions/1202989/how-to-you-add-a-parameter-to-an-exe If there is no package for the version or operating system that you need, or if you wish to tinker on the game, you can also build outfly yourself. -For development, it's recommended to use `--features dev` to enable dynamic linking for faster compile times, e.g. like this: - -``` -cargo [run|build] --features dev -``` - ## On Linux Install the build dependencies. On ArchLinux, it's the following, though you can replace `rust` with `rustup`: @@ -160,8 +154,6 @@ cd outfly cargo run --release ``` -NOTE: Audio is muted by default when run through `cargo run`, unless you add `--release` - ## Building for Windows on Linux ``` @@ -206,6 +198,21 @@ echo '' > w python -m http.server -d wasm ``` +## Dev Features + +For development, it's recommended to use `--features dev`: + +``` +cargo [run|build] --features dev +``` + +This enables the following: + +- Mutes music by default (you can still unmute it) +- Enables "dev mode", which changes the game slightly, e.g. enables some debugging features and additional cheats. +- Enables dynamic linking for faster compile times. Note that this makes it harder to run the game directly with `./outfly`, please use `cargo run` instead. +- Enables bevy's "file watcher" feature that auto-reloads changed assets while the game is running. This obviously works if the assets are not embedded directly into the binary with the `embed_assets` feature. To use this, customize the compile features like this: `--no-default-features --features "dev x11"` + # Changelog - git: Add command line options to set window/fullscreen mode diff --git a/src/var.rs b/src/var.rs index bb1de78..46199a8 100644 --- a/src/var.rs +++ b/src/var.rs @@ -13,7 +13,6 @@ use bevy::prelude::*; use std::collections::HashMap; -use std::env; pub const SCOPE_SEPARATOR: &str = "$"; @@ -122,21 +121,9 @@ pub struct Settings { impl Default for Settings { fn default() -> Self { - let dev_mode; - + let dev_mode = cfg!(feature = "dev_mode"); let default_mute_sfx = false; - let default_mute_music; - if let Ok(_) = env::var("CARGO") { - // Mute audio by default when run through `cargo` - default_mute_music = cfg!(debug_assertions); - - // Enable dev mode when running `cargo run` without `--release` - dev_mode = cfg!(debug_assertions); - } - else { - default_mute_music = false; - dev_mode = false; - } + let default_mute_music = cfg!(feature = "mute_music"); let version = if let Some(version) = option_env!("CARGO_PKG_VERSION") { version.to_string() } else {