| Crates.io | bevy-plugin-builder |
| lib.rs | bevy-plugin-builder |
| version | 0.1.5 |
| created_at | 2025-09-18 16:39:04.683952+00 |
| updated_at | 2025-09-24 19:31:10.087781+00 |
| description | Declarative plugin system for Bevy |
| homepage | https://github.com/noahsabaj/bevy-plugin-builder |
| repository | https://github.com/noahsabaj/bevy-plugin-builder |
| max_upload_size | |
| id | 1844990 |
| size | 194,872 |
Declarative plugin system for Bevy
pub struct GamePlugin;
impl Plugin for GamePlugin {
fn build(&self, app: &mut App) {
app.init_resource::<GameSettings>()
.init_resource::<PlayerStats>()
.add_event::<PlayerLevelUp>()
.add_event::<GameOver>()
.add_systems(Startup, initialize_game)
.add_systems(Update, (
handle_input,
update_player,
check_collisions
).chain().run_if(in_state(GameState::Playing)))
.add_systems(OnEnter(GameState::GameOver), cleanup_game);
}
}
After (bevy-plugin-builder)
use bevy_plugin_builder::define_plugin;
define_plugin!(GamePlugin {
resources: [GameSettings, PlayerStats],
events: [PlayerLevelUp, GameOver],
startup: [initialize_game],
update: [
(handle_input, update_player, check_collisions)
.chain().run_if(in_state(GameState::Playing))
],
on_enter: { GameState::GameOver => [cleanup_game] }
});
[dependencies] bevy-plugin-builder = "0.1" bevy = "0.16"