bevy_cobweb_ui 0.22.2

UI framework for the bevy game engine
use std::borrow::Cow;

use bevy::prelude::*;
use bevy_cobweb::prelude::*;

use crate::prelude::*;

//-------------------------------------------------------------------------------------------------------------------

/// Plugin that sets up `bevy_cobweb_ui` in an app.
pub struct CobwebUiPlugin;

impl Plugin for CobwebUiPlugin
{
    fn build(&self, app: &mut App)
    {
        if !app.is_plugin_added::<ReactPlugin>() {
            app.add_plugins(ReactPlugin);
        }
        if !app.is_plugin_added::<BevyCobwebUiCorePlugin>() {
            app.add_plugins(BevyCobwebUiCorePlugin);
        }

        app.register_type::<Cow<str>>()
            .register_type_data::<Cow<str>, ReflectDeserialize>()
            .add_plugins(crate::builtin::BuiltinPlugin)
            .add_plugins(ReactExtPlugin)
            .add_plugins(BevyExtPlugin)
            .add_plugins(LocalizationPlugin)
            .add_plugins(SickleExtPlugin)
            .add_plugins(ToolsPlugin)
            .add_plugins(AssetsExtPlugin)
            .add_plugins(CobwebBevyUiPlugin);

        #[cfg(feature = "editor")]
        app.add_plugins(crate::editor::CobEditorPlugin);
    }
}

//-------------------------------------------------------------------------------------------------------------------