diff --git a/common/Cargo.toml b/common/Cargo.toml index ab7811d778..ad2fb77b80 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -6,6 +6,7 @@ edition = "2018" [features] no-assets = [] +hot-reloading = ["common-assets/hot-reloading"] simd = ["vek/platform_intrinsics"] bin_csv = ["ron", "csv", "structopt"] bin_graphviz = ["petgraph"] diff --git a/common/assets/Cargo.toml b/common/assets/Cargo.toml index b0897b8a5c..4b46aecac6 100644 --- a/common/assets/Cargo.toml +++ b/common/assets/Cargo.toml @@ -7,7 +7,7 @@ version = "0.10.0" [dependencies] lazy_static = "1.4.0" -assets_manager = {version = "0.5.0", features = ["bincode", "ron", "json", "hot-reloading"]} +assets_manager = {version = "0.5.0", features = ["bincode", "ron", "json"]} ron = { version = "0.6", default-features = false } dot_vox = "4.0" image = { version = "0.23.12", default-features = false, features = ["png"] } @@ -21,4 +21,5 @@ serial_test = {version = "0.5", optional = true} walkdir = "2.3.2" [features] -asset_tweak = ["serial_test", "serde"] +hot-reloading = ["assets_manager/hot-reloading"] +asset_tweak = ["serial_test", "serde", "hot-reloading"] diff --git a/common/assets/src/lib.rs b/common/assets/src/lib.rs index 43bca38377..b23f27bb2f 100644 --- a/common/assets/src/lib.rs +++ b/common/assets/src/lib.rs @@ -21,6 +21,7 @@ lazy_static! { AssetCache::new(&*ASSETS_PATH).unwrap(); } +#[cfg(feature = "hot-reloading")] pub fn start_hot_reloading() { ASSETS.enhance_hot_reloading(); } pub type AssetHandle = assets_manager::Handle<'static, T>; diff --git a/voxygen/Cargo.toml b/voxygen/Cargo.toml index bd569f7c4d..bee73360e0 100644 --- a/voxygen/Cargo.toml +++ b/voxygen/Cargo.toml @@ -24,6 +24,7 @@ buildInputs = ["xorg.libxcb"] [features] hot-anim = ["anim/use-dyn-lib"] hot-egui = ["voxygen-egui/use-dyn-lib", "egui"] +hot-reloading = ["common/hot-reloading"] singleplayer = ["server"] simd = ["vek/platform_intrinsics"] tracy = ["profiling", "profiling/profile-with-tracy", "common-frontend/tracy", "client/tracy"] @@ -32,7 +33,7 @@ egui-ui = ["voxygen-egui", "egui", "egui_wgpu_backend", "egui_winit_platform"] # We don't ship egui with published release builds so a separate feature is required that excludes it. default-publish = ["singleplayer", "native-dialog", "plugins", "simd"] -default = ["default-publish", "egui-ui"] +default = ["default-publish", "egui-ui", "hot-reloading"] [dependencies] client = {package = "veloren-client", path = "../client"} diff --git a/voxygen/src/main.rs b/voxygen/src/main.rs index b0270bc810..38f8bdad85 100644 --- a/voxygen/src/main.rs +++ b/voxygen/src/main.rs @@ -14,10 +14,9 @@ use veloren_voxygen::{ GlobalState, }; -use common::{ - assets::{self}, - clock::Clock, -}; +#[cfg(feature = "hot-reloading")] +use common::assets; +use common::clock::Clock; use std::panic; use tracing::{error, info, warn}; #[cfg(feature = "egui-ui")] @@ -145,6 +144,7 @@ fn main() { default_hook(panic_info); })); + #[cfg(feature = "hot-reloading")] assets::start_hot_reloading(); // Initialise watcher for animation hot-reloading