2020-04-07 00:56:17 +00:00
//! [![](https://bevyengine.org/assets/bevy_logo_docs.svg)](https://bevyengine.org)
//!
2020-04-07 00:39:06 +00:00
//! Bevy is an open-source modular game engine built in Rust, with a focus on developer productivity and performance.
//!
//! Check out the [Bevy website](https://bevyengine.org) for more information, read the
//! [Bevy Book](https://bevyengine.org/learn/book/introduction) for a step-by-step guide, and [engage with our
//! community](https://bevyengine.org/community/) if you have any questions or ideas!
2020-04-07 04:04:09 +00:00
//!
//! ## Example
//!Here is a simple "Hello World" Bevy app:
2020-04-07 00:39:06 +00:00
//! ```
//!use bevy::prelude::*;
//!
//!fn main() {
//! App::build()
//! .add_default_plugins()
//! .add_system_fn("hello", |_| println!("hello world!"))
//! .run();
//!}
//! ```
2020-04-07 04:04:09 +00:00
//! Don't let the simplicity of the example above fool you. Bevy is a [fully featured game engine](https://bevyengine.org/learn/book/introduction/features/)
//! and it gets more powerful every day!
//!
//! ### This Crate
2020-04-07 00:21:15 +00:00
//! The "bevy" crate is just a container crate that makes it easier to consume Bevy components.
//! The defaults provide a "full" engine experience, but you can easily enable / disable features
//! in your project's Cargo.toml to meet your specific needs. See Bevy's Cargo.toml for a full list of features available.
2020-04-07 04:04:09 +00:00
//!
//! If you prefer it, you can also consume the individual bevy crates directly.
2020-04-07 00:21:15 +00:00
2020-04-06 22:54:17 +00:00
#![ feature(min_specialization) ]
2020-04-07 00:21:15 +00:00
2020-01-14 03:20:58 +00:00
pub mod prelude ;
2019-11-13 03:36:02 +00:00
2020-04-06 21:20:53 +00:00
pub use bevy_app as app ;
2020-04-07 00:03:21 +00:00
pub use glam as math ;
pub use legion ;
#[ cfg(feature = " asset " ) ]
2020-04-06 21:20:53 +00:00
pub use bevy_asset as asset ;
2020-04-07 00:03:21 +00:00
#[ cfg(feature = " core " ) ]
2020-04-06 03:19:02 +00:00
pub use bevy_core as core ;
2020-04-07 00:03:21 +00:00
#[ cfg(feature = " derive " ) ]
pub use bevy_derive as derive ;
#[ cfg(feature = " diagnostic " ) ]
2020-04-06 07:12:54 +00:00
pub use bevy_diagnostic as diagnostic ;
2020-04-07 00:03:21 +00:00
#[ cfg(feature = " input " ) ]
2020-04-06 21:20:53 +00:00
pub use bevy_input as input ;
2020-04-07 00:03:21 +00:00
#[ cfg(feature = " render " ) ]
2020-04-06 03:19:02 +00:00
pub use bevy_render as render ;
2020-04-07 00:03:21 +00:00
#[ cfg(feature = " serialization " ) ]
2020-04-06 23:09:58 +00:00
pub use bevy_serialization as serialization ;
2020-04-07 00:03:21 +00:00
#[ cfg(feature = " transform " ) ]
2020-04-06 21:20:53 +00:00
pub use bevy_transform as transform ;
2020-04-07 00:03:21 +00:00
#[ cfg(feature = " ui " ) ]
2020-04-06 21:20:53 +00:00
pub use bevy_ui as ui ;
2020-04-07 00:03:21 +00:00
#[ cfg(feature = " window " ) ]
2020-04-06 03:19:02 +00:00
pub use bevy_window as window ;
use app ::AppBuilder ;
pub trait AddDefaultPlugins {
fn add_default_plugins ( & mut self ) -> & mut Self ;
}
impl AddDefaultPlugins for AppBuilder {
fn add_default_plugins ( & mut self ) -> & mut Self {
2020-04-07 00:03:21 +00:00
#[ cfg(feature = " core " ) ]
self . add_plugin ( bevy_core ::CorePlugin ::default ( ) ) ;
#[ cfg(feature = " input " ) ]
self . add_plugin ( bevy_input ::InputPlugin ::default ( ) ) ;
#[ cfg(feature = " window " ) ]
self . add_plugin ( bevy_window ::WindowPlugin ::default ( ) ) ;
#[ cfg(feature = " render " ) ]
self . add_plugin ( bevy_render ::RenderPlugin ::default ( ) ) ;
#[ cfg(feature = " ui " ) ]
self . add_plugin ( ui ::UiPlugin ::default ( ) ) ;
#[ cfg(feature = " winit " ) ]
self . add_plugin ( bevy_winit ::WinitPlugin ::default ( ) ) ;
#[ cfg(not(feature = " winit " )) ]
self . add_plugin ( bevy_app ::schedule_runner ::ScheduleRunnerPlugin ::default ( ) ) ;
#[ cfg(feature = " wgpu " ) ]
2020-04-07 04:44:32 +00:00
self . add_plugin ( bevy_wgpu ::WgpuPlugin ::default ( ) ) ;
2020-04-06 03:19:02 +00:00
self
}
}