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!
|
|
|
|
//!
|
|
|
|
//! ```
|
|
|
|
//!use bevy::prelude::*;
|
|
|
|
//!
|
|
|
|
//!fn main() {
|
|
|
|
//! App::build()
|
|
|
|
//! .add_default_plugins()
|
|
|
|
//! .add_system_fn("hello", |_| println!("hello world!"))
|
|
|
|
//! .run();
|
|
|
|
//!}
|
|
|
|
//! ```
|
|
|
|
//!
|
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-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")]
|
|
|
|
self.add_plugin(bevy_wgpu::WgpuRendererPlugin::default());
|
2020-04-06 03:19:02 +00:00
|
|
|
|
|
|
|
self
|
|
|
|
}
|
|
|
|
}
|