1use assembler::LoaderPlugin;
2use bevy::prelude::*;
3
4use blenvy::BlenvyPlugin;
5#[cfg(feature = "editor")]
6use editor::EditorPlugin;
7
8#[cfg(feature = "pathfind")]
9use pathfind::{events::PathEvent, PathFindPlugin};
10use resources::HammerspaceConfig;
11
12pub mod assembler;
13#[cfg(feature = "editor")]
14pub mod editor;
15#[cfg(feature = "pathfind")]
16pub mod pathfind;
17
18pub mod resources;
19
20#[cfg(feature = "proc_terrain")]
21pub mod terrain;
22
23pub struct HammerspacePlugin {
24 pub config: HammerspaceConfig,
25}
26
27impl Plugin for HammerspacePlugin {
28 fn build(&self, app: &mut App) {
29 app.add_plugins((
30 LoaderPlugin,
31 BlenvyPlugin::default(),
32 #[cfg(feature = "pathfind")]
33 PathFindPlugin,
34 #[cfg(feature = "proc_terrain")]
35 TerrainPlugin,
36 #[cfg(feature = "editor")]
37 EditorPlugin,
38 ));
39 #[cfg(feature = "pathfind")]
40 app.add_event::<PathEvent>();
41 app.insert_resource::<HammerspaceConfig>(self.config.clone());
42 }
43}