
# Objective Users shouldn't need to change their source code between "development workflows" and "releasing". Currently, Bevy Asset V2 has two "processed" asset modes `Processed` (assumes assets are already processed) and `ProcessedDev` (starts an asset processor and processes assets). This means that the mode must be changed _in code_ when switching from "app dev" to "release". Very suboptimal. We have already removed "runtime opt-in" for hot-reloading. Enabling the `file_watcher` feature _automatically_ enables file watching in code. This means deploying a game (without hot reloading enabled) just means calling `cargo build --release` instead of `cargo run --features bevy/file_watcher`. We should adopt this pattern for asset processing. ## Solution This adds the `asset_processor` feature, which will start the `AssetProcessor` when an `AssetPlugin` runs in `AssetMode::Processed`. The "asset processing workflow" is now: 1. Enable `AssetMode::Processed` on `AssetPlugin` 2. When developing, run with the `asset_processor` and `file_watcher` features 3. When releasing, build without these features. The `AssetMode::ProcessedDev` mode has been removed.
53 lines
1.7 KiB
TOML
53 lines
1.7 KiB
TOML
[package]
|
|
name = "bevy_asset"
|
|
version = "0.12.0-dev"
|
|
edition = "2021"
|
|
description = "Provides asset functionality for Bevy Engine"
|
|
homepage = "https://bevyengine.org"
|
|
repository = "https://github.com/bevyengine/bevy"
|
|
license = "MIT OR Apache-2.0"
|
|
keywords = ["bevy"]
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[features]
|
|
file_watcher = ["notify-debouncer-full", "watch"]
|
|
embedded_watcher = ["file_watcher"]
|
|
multi-threaded = ["bevy_tasks/multi-threaded"]
|
|
asset_processor = []
|
|
watch = []
|
|
|
|
[dependencies]
|
|
bevy_app = { path = "../bevy_app", version = "0.12.0-dev" }
|
|
bevy_asset_macros = { path = "macros", version = "0.12.0-dev" }
|
|
bevy_ecs = { path = "../bevy_ecs", version = "0.12.0-dev" }
|
|
bevy_log = { path = "../bevy_log", version = "0.12.0-dev" }
|
|
bevy_reflect = { path = "../bevy_reflect", version = "0.12.0-dev" }
|
|
bevy_tasks = { path = "../bevy_tasks", version = "0.12.0-dev" }
|
|
bevy_utils = { path = "../bevy_utils", version = "0.12.0-dev" }
|
|
|
|
async-broadcast = "0.5"
|
|
async-fs = "1.5"
|
|
async-lock = "2.8"
|
|
crossbeam-channel = "0.5"
|
|
downcast-rs = "1.2"
|
|
futures-io = "0.3"
|
|
futures-lite = "1.12"
|
|
md5 = "0.7"
|
|
parking_lot = { version = "0.12", features = ["arc_lock", "send_guard"] }
|
|
ron = "0.8"
|
|
serde = { version = "1", features = ["derive"] }
|
|
thiserror = "1.0"
|
|
notify-debouncer-full = { version = "0.3.1", optional = true }
|
|
|
|
[target.'cfg(target_os = "android")'.dependencies]
|
|
bevy_winit = { path = "../bevy_winit", version = "0.12.0-dev" }
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
wasm-bindgen = { version = "0.2" }
|
|
web-sys = { version = "0.3", features = ["Request", "Window", "Response"] }
|
|
wasm-bindgen-futures = "0.4"
|
|
js-sys = "0.3"
|
|
|
|
[dev-dependencies]
|
|
bevy_core = { path = "../bevy_core", version = "0.12.0-dev" } |