use bevy::prelude::*;
use super::{systems::*, gizmo_material::{GizmoMaterial, self}};
use bevy_component_extras::components::*;
pub struct TransformWidgetPlugin;
use super::components::*;
impl Plugin for TransformWidgetPlugin {
fn build(&self, app: &mut App) {
let mut shaders = app.world.get_resource_mut::<Assets<Shader>>().unwrap();
shaders.set_untracked(
gizmo_material::GIZMO_SHADER_HANDLE,
Shader::from_wgsl(
include_str!("./gizmo_material.wgsl"),
" ", ),
);
app
.add_plugins(MaterialPlugin::<GizmoMaterial>::default())
.register_type::<LastMouseInteraction>()
.register_type::<Tug>()
.add_systems(Update, widget_despawn_for_deselected)
.add_systems(Update, (manage_tugs, manage_rings, widget_spawn_for_selected, transform_widget_behaviour)
.before(widget_despawn_for_deselected))
;
}
}