Skip to content

Upgrade to Bevy 0.14.0-rc.* & upgrade egui-gizmo dependency #107

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 14 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,22 @@ repository = "https://github.com/jakobhellermann/bevy_editor_pls"
description = "In-App editor tools for bevy apps"
readme = "README.md"

[patch.crates-io]
bevy_egui = { git = "https://github.com/zhaop/bevy_egui.git", branch = "bevy-0.14" }
bevy-inspector-egui = { git = "https://github.com/kristoff3r/bevy-inspector-egui.git", branch = "main", package = "bevy-inspector-egui" }
bevy_mod_debugdump = { git = "https://github.com/Vrixyz/bevy_mod_debugdump.git", branch = "bevy_0.14" }
transform-gizmo-bevy = { git = "https://github.com/zhaop/transform-gizmo.git", branch = "bevy-0.14.0-rc", package = "transform-gizmo-bevy" }

[workspace.dependencies]
bevy_editor_pls = { version = "0.8.0", path = "crates/bevy_editor_pls" }
bevy_editor_pls_core = { version = "0.8.0", path = "crates/bevy_editor_pls_core" }
bevy_editor_pls_default_windows = { version = "0.8.0", path = "crates/bevy_editor_pls_default_windows" }
bevy_editor_pls = { version = "0.8.1", path = "crates/bevy_editor_pls" }
bevy_editor_pls_core = { version = "0.8.1", path = "crates/bevy_editor_pls_core" }
bevy_editor_pls_default_windows = { version = "0.8.1", path = "crates/bevy_editor_pls_default_windows" }

bevy-inspector-egui = "0.23.0"
egui = "0.26"
egui_dock = "0.11"
egui-gizmo = "0.16"
bevy-inspector-egui = "0.24.0"
egui = "0.27"
egui_dock = "0.12"
# used to be egui-gizmo 0.16
transform-gizmo-bevy = "0.2"

[profile.dev.package."*"]
opt-level = 2
6 changes: 3 additions & 3 deletions crates/bevy_editor_pls/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ default = ["default_windows"]
[dependencies]
bevy_editor_pls_core.workspace = true
bevy_editor_pls_default_windows = { workspace = true, optional = true }
bevy = { version = "0.13", default-features = false, features = ["x11"] }
bevy = { version = "0.14.0-rc", default-features = false, features = ["x11"] }
egui.workspace = true
egui-gizmo.workspace = true
transform-gizmo-bevy.workspace = true
# bevy_framepace = { version = "0.12", default-features = false }

[dev-dependencies]
bevy = { version = "0.13", default-features = false, features = [
bevy = { version = "0.14.0-rc", default-features = false, features = [
"bevy_winit",
"bevy_core_pipeline",
"x11",
Expand Down
22 changes: 11 additions & 11 deletions crates/bevy_editor_pls/examples/ui.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
border: UiRect::all(Val::Px(2.0)),
..default()
},
background_color: Color::rgb(0.65, 0.65, 0.65).into(),
background_color: Color::srgb(0.65, 0.65, 0.65).into(),
..default()
})
.with_children(|parent| {
Expand All @@ -55,7 +55,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
height: Val::Percent(100.0),
..default()
},
background_color: Color::rgb(0.15, 0.15, 0.15).into(),
background_color: Color::srgb(0.15, 0.15, 0.15).into(),
..default()
})
.with_children(|parent| {
Expand Down Expand Up @@ -86,7 +86,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
height: Val::Percent(100.0),
..default()
},
background_color: Color::rgb(0.15, 0.15, 0.15).into(),
background_color: Color::srgb(0.15, 0.15, 0.15).into(),
..default()
})
.with_children(|parent| {
Expand Down Expand Up @@ -122,7 +122,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
overflow: Overflow::clip(),
..default()
},
background_color: Color::rgb(0.10, 0.10, 0.10).into(),
background_color: Color::srgb(0.10, 0.10, 0.10).into(),
..default()
})
.with_children(|parent| {
Expand Down Expand Up @@ -178,7 +178,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
border: UiRect::all(Val::Px(20.0)),
..default()
},
background_color: Color::rgb(0.4, 0.4, 1.0).into(),
background_color: Color::srgb(0.4, 0.4, 1.0).into(),
..default()
})
.with_children(|parent| {
Expand All @@ -188,7 +188,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
height: Val::Percent(100.0),
..default()
},
background_color: Color::rgb(0.8, 0.8, 1.0).into(),
background_color: Color::srgb(0.8, 0.8, 1.0).into(),
..default()
});
});
Expand All @@ -213,7 +213,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
height: Val::Px(100.0),
..default()
},
background_color: Color::rgb(1.0, 0.0, 0.0).into(),
background_color: Color::srgb(1.0, 0.0, 0.0).into(),
..default()
})
.with_children(|parent| {
Expand All @@ -226,7 +226,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
bottom: Val::Px(20.0),
..default()
},
background_color: Color::rgb(1.0, 0.3, 0.3).into(),
background_color: Color::srgb(1.0, 0.3, 0.3).into(),
..default()
});
parent.spawn(NodeBundle {
Expand All @@ -238,7 +238,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
bottom: Val::Px(40.0),
..default()
},
background_color: Color::rgb(1.0, 0.5, 0.5).into(),
background_color: Color::srgb(1.0, 0.5, 0.5).into(),
..default()
});
parent.spawn(NodeBundle {
Expand All @@ -250,7 +250,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
bottom: Val::Px(60.0),
..default()
},
background_color: Color::rgb(1.0, 0.7, 0.7).into(),
background_color: Color::srgb(1.0, 0.7, 0.7).into(),
..default()
});
// alpha test
Expand All @@ -263,7 +263,7 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
bottom: Val::Px(80.0),
..default()
},
background_color: Color::rgba(1.0, 0.9, 0.9, 0.4).into(),
background_color: Color::srgba(1.0, 0.9, 0.9, 0.4).into(),
..default()
});
});
Expand Down
8 changes: 5 additions & 3 deletions crates/bevy_editor_pls/src/controls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ pub enum Action {
PauseUnpauseTime,
FocusSelected,

// maybe investigate [GizmoOptions].hotkeys
// https://docs.rs/transform-gizmo-bevy/latest/transform_gizmo_bevy/struct.GizmoHotkeys.html
#[cfg(feature = "default_windows")]
SetGizmoModeTranslate,
#[cfg(feature = "default_windows")]
Expand Down Expand Up @@ -240,7 +242,7 @@ pub fn editor_controls_system(
editor
.window_state_mut::<bevy_editor_pls_default_windows::gizmos::GizmoWindow>()
.unwrap()
.gizmo_mode = egui_gizmo::GizmoMode::Translate;
.gizmo_modes = transform_gizmo_bevy::GizmoMode::all_translate();
}
if controls.just_pressed(
Action::SetGizmoModeRotate,
Expand All @@ -251,7 +253,7 @@ pub fn editor_controls_system(
editor
.window_state_mut::<bevy_editor_pls_default_windows::gizmos::GizmoWindow>()
.unwrap()
.gizmo_mode = egui_gizmo::GizmoMode::Rotate;
.gizmo_modes = transform_gizmo_bevy::GizmoMode::all_rotate();
}
if controls.just_pressed(
Action::SetGizmoModeScale,
Expand All @@ -262,7 +264,7 @@ pub fn editor_controls_system(
editor
.window_state_mut::<bevy_editor_pls_default_windows::gizmos::GizmoWindow>()
.unwrap()
.gizmo_mode = egui_gizmo::GizmoMode::Scale;
.gizmo_modes = transform_gizmo_bevy::GizmoMode::all_scale();
}
}
}
Expand Down
9 changes: 7 additions & 2 deletions crates/bevy_editor_pls/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ impl Plugin for EditorPlugin {
if window.title == "Bevy App" {
window.title = "bevy_editor_pls".into();
}
let entity = app.world.spawn(window);
let entity = app.world_mut().spawn(window);
WindowRef::Entity(entity.id())
}
EditorWindowPlacement::Window(entity) => WindowRef::Entity(entity),
Expand Down Expand Up @@ -128,10 +128,15 @@ impl Plugin for EditorPlugin {

app.add_plugins(bevy::pbr::wireframe::WireframePlugin);

// required for the GizmoWindow
if !app.is_plugin_added::<transform_gizmo_bevy::TransformGizmoPlugin>() {
app.add_plugins(transform_gizmo_bevy::TransformGizmoPlugin);
}

app.insert_resource(controls::EditorControls::default_bindings())
.add_systems(Update, controls::editor_controls_system);

let mut internal_state = app.world.resource_mut::<editor::EditorInternalState>();
let mut internal_state = app.world_mut().resource_mut::<editor::EditorInternalState>();

let [game, _inspector] =
internal_state.split_right::<InspectorWindow>(egui_dock::NodeIndex::root(), 0.75);
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_editor_pls_core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description.workspace = true
readme.workspace = true

[dependencies]
bevy = { version = "0.13", default-features = false }
bevy = { version = "0.14.0-rc", default-features = false }
bevy-inspector-egui.workspace = true
indexmap = "2"
egui_dock.workspace = true
1 change: 1 addition & 0 deletions crates/bevy_editor_pls_core/src/editor_window.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ pub trait EditorWindow: 'static {
const DEFAULT_SIZE: (f32, f32) = (0.0, 0.0);

fn ui(world: &mut World, cx: EditorWindowContext, ui: &mut egui::Ui);

/// Ui shown in the `Open Window` menu item. By default opens the window as a floating window.
fn menu_ui(world: &mut World, mut cx: EditorWindowContext, ui: &mut egui::Ui) {
let _ = world;
Expand Down
6 changes: 3 additions & 3 deletions crates/bevy_editor_pls_core/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ impl<W: EditorWindow> Plugin for WindowSetupPlugin<W> {

impl AddEditorWindow for App {
fn add_editor_window<W: EditorWindow>(&mut self) -> &mut Self {
let mut editor = self.world.get_resource_mut::<Editor>().expect("Editor resource missing. Make sure to add the `EditorPlugin` before calling `app.add_editor_window`.");
let mut editor = self.world_mut().get_resource_mut::<Editor>().expect("Editor resource missing. Make sure to add the `EditorPlugin` before calling `app.add_editor_window`.");
editor.add_window::<W>();

self.add_plugins(WindowSetupPlugin::<W>(PhantomData));
Expand Down Expand Up @@ -69,9 +69,9 @@ impl Plugin for EditorPlugin {
let (window_entity, always_active) = match self.window {
WindowRef::Primary => {
let entity = app
.world
.world_mut()
.query_filtered::<Entity, With<PrimaryWindow>>()
.single(&app.world);
.single(&app.world());
(entity, false)
}
WindowRef::Entity(entity) => (entity, true),
Expand Down
4 changes: 2 additions & 2 deletions crates/bevy_editor_pls_default_windows/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ readme.workspace = true
highlight_changes = ["bevy-inspector-egui/highlight_changes"]

[dependencies]
bevy = { version = "0.13", default-features = false, features = [
bevy = { version = "0.14.0-rc", default-features = false, features = [
"bevy_scene",
"bevy_text",
"bevy_ui",
Expand All @@ -31,4 +31,4 @@ indexmap = "2"
pretty-type-name = "1.0"
bevy_mod_debugdump = "0.10"
opener = "0.6.0"
egui-gizmo.workspace = true
transform-gizmo-bevy.workspace = true
16 changes: 10 additions & 6 deletions crates/bevy_editor_pls_default_windows/src/cameras/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,14 @@ use bevy_editor_pls_core::{
Editor, EditorEvent,
};
use bevy_inspector_egui::egui;
use transform_gizmo_bevy::GizmoCamera;
// use bevy_mod_picking::prelude::PickRaycastSource;

use crate::hierarchy::{HideInEditor, HierarchyWindow};

use self::camera_3d_panorbit::PanOrbitCamera;

pub const EDITOR_RENDER_LAYER: u8 = 19;
pub const EDITOR_RENDER_LAYER: usize = 19;

// Present on all editor cameras
#[derive(Component)]
Expand Down Expand Up @@ -232,7 +233,8 @@ fn spawn_editor_cameras(mut commands: Commands, editor: Res<Editor>) {
HideInEditor,
Name::new("Editor Camera 3D Free"),
NotInScene,
render_layers,
GizmoCamera,
render_layers.clone(),
));

commands.spawn((
Expand All @@ -254,7 +256,8 @@ fn spawn_editor_cameras(mut commands: Commands, editor: Res<Editor>) {
HideInEditor,
Name::new("Editor Camera 3D Pan/Orbit"),
NotInScene,
render_layers,
GizmoCamera,
render_layers.clone(),
));

commands.spawn((
Expand All @@ -275,6 +278,7 @@ fn spawn_editor_cameras(mut commands: Commands, editor: Res<Editor>) {
HideInEditor,
Name::new("Editor Camera 2D Pan/Zoom"),
NotInScene,
GizmoCamera,
render_layers,
));
}
Expand Down Expand Up @@ -600,7 +604,7 @@ fn set_main_pass_viewport(
}
});

cameras.iter_mut().for_each(|mut cam| {
cam.viewport = viewport.clone();
});
cameras
.iter_mut()
.for_each(|mut cam| cam.viewport.clone_from(&viewport));
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ pub struct DotGraphs {

pub fn setup(app: &mut App) {
let render_app = match app.get_sub_app(RenderApp) {
Ok(render_app) => render_app,
Err(_label) => {
Some(render_app) => render_app,
None => {
return;
}
};
let render_graph = render_app.world.get_resource::<RenderGraph>().unwrap();
let render_graph = render_app.world().get_resource::<RenderGraph>().unwrap();

let schedule_settings = schedule_graph::settings::Settings {
include_system: Some(Box::new(|system| {
Expand All @@ -35,18 +35,18 @@ pub fn setup(app: &mut App) {
let rendergraph_settings = render_graph::settings::Settings::default();

let update_schedule = app.get_schedule(Update).map(|schedule| {
schedule_graph::schedule_graph_dot(schedule, &app.world, &schedule_settings)
schedule_graph::schedule_graph_dot(schedule, &app.world(), &schedule_settings)
});

let fixed_update_schedule = app.get_schedule(FixedUpdate).map(|schedule| {
schedule_graph::schedule_graph_dot(schedule, &app.world, &schedule_settings)
schedule_graph::schedule_graph_dot(schedule, &app.world(), &schedule_settings)
});

let render_main_schedule = render_app.get_schedule(Render).map(|schedule| {
schedule_graph::schedule_graph_dot(schedule, &app.world, &schedule_settings)
schedule_graph::schedule_graph_dot(schedule, &app.world(), &schedule_settings)
});
let render_extract_schedule = render_app.get_schedule(ExtractSchedule).map(|schedule| {
schedule_graph::schedule_graph_dot(schedule, &app.world, &schedule_settings)
schedule_graph::schedule_graph_dot(schedule, &app.world(), &schedule_settings)
});

let render_graph = render_graph::render_graph_dot(render_graph, &rendergraph_settings);
Expand Down
Loading