bevy-game

A bevy game
git clone git://archive.git.mtrnord.blog/MTRNord/bevy-game.git
Log | Files | Refs | README | LICENSE

lib.rs (1378B)


      1 mod actions;
      2 mod audio;
      3 mod loading;
      4 mod menu;
      5 mod player;
      6 
      7 use crate::actions::ActionsPlugin;
      8 use crate::audio::InternalAudioPlugin;
      9 use crate::loading::LoadingPlugin;
     10 use crate::menu::MenuPlugin;
     11 use crate::player::PlayerPlugin;
     12 
     13 use bevy::app::App;
     14 #[cfg(debug_assertions)]
     15 use bevy::diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin};
     16 use bevy::prelude::*;
     17 
     18 // This example game uses States to separate logic
     19 // See https://bevy-cheatbook.github.io/programming/states.html
     20 // Or https://github.com/bevyengine/bevy/blob/main/examples/ecs/state.rs
     21 #[derive(Clone, Eq, PartialEq, Debug, Hash)]
     22 enum GameState {
     23     // During the loading State the LoadingPlugin will load our assets
     24     Loading,
     25     // During this State the actual game logic is executed
     26     Playing,
     27     // Here the menu is drawn and waiting for player interaction
     28     Menu,
     29 }
     30 
     31 pub struct GamePlugin;
     32 
     33 impl Plugin for GamePlugin {
     34     fn build(&self, app: &mut App) {
     35         app.add_state(GameState::Loading)
     36             .add_plugin(LoadingPlugin)
     37             .add_plugin(MenuPlugin)
     38             .add_plugin(ActionsPlugin)
     39             .add_plugin(InternalAudioPlugin)
     40             .add_plugin(PlayerPlugin);
     41 
     42         #[cfg(debug_assertions)]
     43         {
     44             app.add_plugin(FrameTimeDiagnosticsPlugin::default())
     45                 .add_plugin(LogDiagnosticsPlugin::default());
     46         }
     47     }
     48 }