1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//! Plugins
//!
//! Any entity located directly in this module is [`Plugin`](bevy::app::Plugin).

use crate::{
    assets::{bundle::BundleAssetLoader, resource::ResourceAssetLoader},
    systems::update_bundle_asset,
    BundleAsset, ResourceAsset,
};
use bevy::prelude::*;

/// Adds support for Fluent file loading to applications
#[derive(Default)]
pub struct FluentPlugin;

impl Plugin for FluentPlugin {
    fn build(&self, app: &mut App) {
        app.add_asset::<ResourceAsset>()
            .init_asset_loader::<ResourceAssetLoader>()
            .add_asset::<BundleAsset>()
            .init_asset_loader::<BundleAssetLoader>() 
            .add_system(update_bundle_asset.in_base_set(CoreSet::PreUpdate));
    }
}