Skip to content

Commit

Permalink
Add new Schedule for all plugins in quick.rs
Browse files Browse the repository at this point in the history
  • Loading branch information
oscrim authored and jakobhellermann committed Jul 6, 2024
1 parent bc964b2 commit 12d1522
Showing 1 changed file with 40 additions and 7 deletions.
47 changes: 40 additions & 7 deletions crates/bevy-inspector-egui/src/quick.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@
use std::{marker::PhantomData, sync::Mutex};

use bevy_app::{Plugin, Update};
use bevy_app::{App, MainScheduleOrder, Plugin, Update};
use bevy_asset::Asset;
use bevy_core::TypeRegistrationPlugin;
use bevy_ecs::{prelude::*, query::QueryFilter, schedule::BoxedCondition};
use bevy_ecs::{
prelude::*,
query::QueryFilter,
schedule::{BoxedCondition, ScheduleLabel},
};
use bevy_egui::{EguiContext, EguiPlugin};
use bevy_reflect::Reflect;
use bevy_state::state::FreelyMutableState;
Expand All @@ -22,6 +26,20 @@ use crate::{bevy_inspector, DefaultInspectorConfigPlugin};

const DEFAULT_SIZE: (f32, f32) = (320., 160.);

#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
struct Inspect;

struct InspectSchedulePlugin;
impl Plugin for InspectSchedulePlugin {
fn build(&self, app: &mut App) {
app.init_schedule(Inspect);

app.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(Update, Inspect);
}
}

/// Plugin displaying a egui window with an entity list, resources and assets
///
/// You can use [`WorldInspectorPlugin::run_if`] to control when the window is shown, for example
Expand Down Expand Up @@ -67,13 +85,16 @@ impl Plugin for WorldInspectorPlugin {
if !app.is_plugin_added::<EguiPlugin>() {
app.add_plugins(EguiPlugin);
}
if !app.is_plugin_added::<InspectSchedulePlugin>() {
app.add_plugins(InspectSchedulePlugin);
}

let condition = self.condition.lock().unwrap().take();
let mut system = world_inspector_ui.into_configs();
if let Some(condition) = condition {
system.run_if_dyn(condition);
}
app.add_systems(Update, system);
app.add_systems(Inspect, system);
}
}

Expand Down Expand Up @@ -165,13 +186,16 @@ impl<T: Resource + Reflect> Plugin for ResourceInspectorPlugin<T> {
if !app.is_plugin_added::<EguiPlugin>() {
app.add_plugins(EguiPlugin);
}
if !app.is_plugin_added::<InspectSchedulePlugin>() {
app.add_plugins(InspectSchedulePlugin);
}

let condition = self.condition.lock().unwrap().take();
let mut system = inspector_ui::<T>.into_configs();
if let Some(condition) = condition {
system.run_if_dyn(condition);
}
app.add_systems(Update, system);
app.add_systems(Inspect, system);
}
}

Expand Down Expand Up @@ -261,13 +285,16 @@ impl<T: FreelyMutableState + Reflect> Plugin for StateInspectorPlugin<T> {
if !app.is_plugin_added::<EguiPlugin>() {
app.add_plugins(EguiPlugin);
}
if !app.is_plugin_added::<InspectSchedulePlugin>() {
app.add_plugins(InspectSchedulePlugin);
}

let condition = self.condition.lock().unwrap().take();
let mut system = state_ui::<T>.into_configs();
if let Some(condition) = condition {
system.run_if_dyn(condition);
}
app.add_systems(Update, system);
app.add_systems(Inspect, system);
}
}

Expand Down Expand Up @@ -345,13 +372,16 @@ impl<A: Asset + Reflect> Plugin for AssetInspectorPlugin<A> {
if !app.is_plugin_added::<EguiPlugin>() {
app.add_plugins(EguiPlugin);
}
if !app.is_plugin_added::<InspectSchedulePlugin>() {
app.add_plugins(InspectSchedulePlugin);
}

let condition = self.condition.lock().unwrap().take();
let mut system = asset_inspector_ui::<A>.into_configs();
if let Some(condition) = condition {
system.run_if_dyn(condition);
}
app.add_systems(Update, system);
app.add_systems(Inspect, system);
}
}

Expand Down Expand Up @@ -427,14 +457,17 @@ where
if !app.is_plugin_added::<EguiPlugin>() {
app.add_plugins(EguiPlugin);
}
if !app.is_plugin_added::<InspectSchedulePlugin>() {
app.add_plugins(InspectSchedulePlugin);
}

let condition: Option<Box<dyn ReadOnlySystem<In = (), Out = bool>>> =
self.condition.lock().unwrap().take();
let mut system = entity_query_ui::<F>.into_configs();
if let Some(condition) = condition {
system.run_if_dyn(condition);
}
app.add_systems(Update, system);
app.add_systems(Inspect, system);
}
}

Expand Down

0 comments on commit 12d1522

Please # to comment.