bevy_editor_extras 0.1.0

A crate containing utilities to make a
Documentation
use bevy::prelude::*;
use bevy_camera_extras::plugins::DefaultCameraPlugin;
use bevy_mod_raycast::RaycastSystem;
use bevy_mod_raycast::DefaultRaycastingPlugin;
use bevy_inspector_egui::quick::WorldInspectorPlugin;
use bevy::pbr::wireframe::WireframePlugin;
use bevy_component_extras::components::*;
use crate::transform_widget::plugins::TransformWidgetPlugin;
use crate::ui::*;
use super::systems::*;
use bevy_ui_extras::systems::*;
pub struct SelecterPlugin;


impl Plugin for SelecterPlugin {
    fn build(&self, app: &mut App) {
        app
        .add_plugins(
            (
            DefaultRaycastingPlugin::<Selectable>::default(),
            WireframePlugin,
            )
        )
        .add_systems(
            First,update_raycast_with_cursor::<Selectable>.before(RaycastSystem::BuildRays::<Selectable>)
        )
        .add_systems(Update, ( hover_mesh_at_mouse::<Selectable>, manage_selection_behaviour::<Selectable>))
        .add_systems(Update, attach_selector_to_cam::<Selectable>)

        ;
    }
}

pub struct EditorPlugin;

impl Plugin for EditorPlugin {
    fn build(&self, app: &mut App) {
        app
        .add_plugins(
            (
            TransformWidgetPlugin,
            SelecterPlugin,
            DefaultCameraPlugin,
            WorldInspectorPlugin::new(),
            )
        )
        .add_systems(Update, (visualize_right_sidepanel_for::<Selected>, build_menu))
        ;
    }
}