Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
53c89d2
Add Component Viewer pane and integrate bevy_remote functionality by …
jbuehler23 Jun 20, 2025
c729f1c
Refactor connect_to_remote function to use IoTaskPool for asynchronou…
jbuehler23 Jun 23, 2025
a97f4e4
Add JSON deserialization for the bevy_remote responses, as well as im…
jbuehler23 Jun 24, 2025
b4b6937
Code cleanup
jbuehler23 Jun 24, 2025
2a8eb81
Refactor changes to create a new bevy_transform widget, and bevy_enti…
jbuehler23 Jun 26, 2025
3c13346
Major refactor to use rows of entity data, and reflected components t…
jbuehler23 Jul 4, 2025
5903ae2
feat: Refactor Bevy Entity Inspector with Event-Driven Architecture a…
jbuehler23 Jul 9, 2025
e59e0dd
chore: Remove outdated CHANGELOG and PR_DESCRIPTION files after refac…
jbuehler23 Jul 9, 2025
f0fe730
docs: add more docs to fix warnings
jbuehler23 Jul 9, 2025
ab58b16
feat: Add entity inspector with property panel and event handling
jbuehler23 Jul 9, 2025
9240695
refactor: Update UI layout and improve property panel width for bette…
jbuehler23 Jul 9, 2025
b0a1256
Merge branch 'main' of https://github.com/bevyengine/bevy_editor_prot…
jbuehler23 Jul 9, 2025
cdca15d
feat: Add missing dependency for bevy_remote in Cargo.toml
jbuehler23 Jul 9, 2025
51feed0
Update tree.rs
jbuehler23 Jul 10, 2025
dcd5dfb
refactor: Remove bevy_transform plugin and associated files
jbuehler23 Jul 10, 2025
65fbf09
Merge branch 'investigate-brp-usage' of https://github.com/bevyengine…
jbuehler23 Jul 10, 2025
4fc287e
docs: Enhance documentation across entity inspector modules with rela…
jbuehler23 Jul 10, 2025
0092e30
docs: Improve documentation for tree structure components and their i…
jbuehler23 Jul 10, 2025
ecbc03c
Merge branch 'main' into investigate-brp-usage
jbuehler23 Jul 10, 2025
bb26983
refactor: Reorder imports in cube_server.rs for clarity
jbuehler23 Jul 10, 2025
bddf2e4
Merge branch 'investigate-brp-usage' of https://github.com/bevyengine…
jbuehler23 Jul 10, 2025
1c8e4f5
fix clippy!
jbuehler23 Jul 10, 2025
df9b950
refactor: Change ui module from public to private
jbuehler23 Jul 10, 2025
87fb203
docs: Fix formatting in inspector example documentation
jbuehler23 Jul 10, 2025
3181962
fix: Correct documentation formatting and improve clarity in reflecti…
jbuehler23 Jul 10, 2025
8adfb02
Update entity_inspector to workspace version of bevy (#266)
syborg64 Mar 2, 2026
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
30 changes: 28 additions & 2 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: --deny warnings
RUSTFLAGS: --deny warnings -C debuginfo=line-tables-only
RUSTDOCFLAGS: --deny warnings
# This can be any valid Cargo version requirement, but should start with a caret `^` to opt-in to
# SemVer-compatible changes. Please keep this in sync with `book.yaml`.
Expand All @@ -30,7 +30,33 @@ jobs:
uses: dtolnay/rust-toolchain@stable

- name: Install dependencies
run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev

# Uninstall unneeded tools
# .NET
sudo rm -rf /usr/share/dotnet || true
sudo apt-get remove -y '^aspnetcore-.*' || true
sudo apt-get remove -y '^dotnet-.*' --fix-missing || true
# Haskell
sudo rm -rf /opt/ghc || true
sudo rm -rf /usr/local/.ghcup || true
# Android
sudo rm -rf /usr/local/lib/android || true
# PHP
sudo apt-get remove -y 'php.*' --fix-missing || true
# Database
sudo apt-get remove -y '^mongodb-.*' --fix-missing || true
sudo apt-get remove -y '^mysql-.*' --fix-missing || true
# Cloud
sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing || true
sudo apt-get remove -y google-cloud-sdk --fix-missing || true
sudo apt-get remove -y google-cloud-cli --fix-missing || true

# Clean up unused packages
sudo apt-get autoremove -y
sudo apt-get clean

- name: Populate target directory from cache
uses: Leafwing-Studios/cargo-cache@v2
Expand Down
12 changes: 5 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
# Generated by Cargo
# will have compiled files and executables
debug/
target/
target

# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock

# Local cargo config overrides
.cargo/config
.cargo/config.toml

# These are backup files generated by rustfmt
**/*.rs.bk

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb


# Added by cargo

/target

# mdbook generated files
design-book/book
23 changes: 14 additions & 9 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
resolver = "2"
resolver = "3"
members = ["crates/*", "bevy_editor_panes/*", "bevy_widgets/*"]
exclude = ["templates/"]
default-members = ["crates/bevy_editor_launcher"]
Expand Down Expand Up @@ -27,18 +27,20 @@ unsafe_op_in_unsafe_fn = "warn"
unused_qualifications = "warn"

[workspace.dependencies]
bevy = { git = "https://github.com/bevyengine/bevy.git", rev = "a3d406dd497205253e34ace757ab0076d50eec14", features = [
"wayland",
] }
bevy_derive = { git = "https://github.com/bevyengine/bevy.git", rev = "a3d406dd497205253e34ace757ab0076d50eec14" }
bevy_macro_utils = { git = "https://github.com/bevyengine/bevy.git", rev = "a3d406dd497205253e34ace757ab0076d50eec14" }
thiserror = "2.0"
bevy = { git = "https://github.com/cart/bevy.git", rev = "87a21ecafa51bfaea02834b5933f08397b45b984", features = ["experimental_bevy_feathers"] }
bevy_derive = { git = "https://github.com/cart/bevy.git", rev = "87a21ecafa51bfaea02834b5933f08397b45b984" }
bevy_macro_utils = { git = "https://github.com/cart/bevy.git", rev = "87a21ecafa51bfaea02834b5933f08397b45b984" }
bevy_remote = { git = "https://github.com/cart/bevy.git", rev = "87a21ecafa51bfaea02834b5933f08397b45b984" }

thiserror = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1.0.140"
ureq = {version = "3.0.12", features = ["json"]}
tracing-test = "0.2.5"
tracing = "0.1.41"
atomicow = "1.1.0"
rfd = "0.15.3"
ron = "0.10.1"
rfd = "0.17.2"
ron = "0.12.0"
variadics_please = "1.0"

# local crates
Expand All @@ -61,9 +63,12 @@ bevy_menu_bar = { path = "bevy_widgets/bevy_menu_bar" }
bevy_scroll_box = { path = "bevy_widgets/bevy_scroll_box" }
bevy_footer_bar = { path = "bevy_widgets/bevy_footer_bar" }
bevy_toolbar = { path = "bevy_widgets/bevy_toolbar" }
bevy_gizmo_indicator = { path = "bevy_widgets/bevy_gizmo_indicator" }
bevy_tooltips = { path = "bevy_widgets/bevy_tooltips" }
bevy_text_editing = { path = "bevy_widgets/bevy_text_editing" }
bevy_field_forms = { path = "bevy_widgets/bevy_field_forms" }
bevy_focus = { path = "bevy_widgets/bevy_focus" }
bevy_transform = { path = "bevy_widgets/bevy_transform" }

# general crates
bevy_editor_core = { path = "crates/bevy_editor_core" }
Expand Down
2 changes: 1 addition & 1 deletion bevy_editor_panes/bevy_2d_viewport/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "bevy_2d_viewport"
version = "0.1.0"
edition = "2021"
edition = "2024"

[dependencies]
bevy.workspace = true
Expand Down
66 changes: 31 additions & 35 deletions bevy_editor_panes/bevy_2d_viewport/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
//! 2d Viewport for Bevy
use bevy::{
camera::{RenderTarget, visibility::RenderLayers},
feathers::theme::ThemedText,
prelude::*,
render::{
camera::RenderTarget,
render_resource::{Extent3d, TextureFormat, TextureUsages},
view::RenderLayers,
},
render::render_resource::{Extent3d, TextureFormat, TextureUsages},
scene2::{CommandsSpawnScene, bsn, on},
ui::ui_layout_system,
};
use bevy_editor_camera::{EditorCamera2d, EditorCamera2dPlugin};
Expand Down Expand Up @@ -48,7 +47,7 @@ impl Plugin for Viewport2dPanePlugin {
query: Query<&Bevy2dViewport>| {
// Despawn the viewport camera
commands
.entity(query.get(trigger.target()).unwrap().camera_id)
.entity(query.get(trigger.event().event_target()).unwrap().camera_id)
.despawn();
},
);
Expand Down Expand Up @@ -87,20 +86,8 @@ fn on_pane_creation(

let image_handle = images.add(image);

let image_id = commands
.spawn((
ImageNode::new(image_handle.clone()),
Node {
position_type: PositionType::Absolute,
top: Val::ZERO,
bottom: Val::ZERO,
left: Val::ZERO,
right: Val::ZERO,
..default()
},
ChildOf(structure.content),
))
.id();
// Remove the existing structure
commands.entity(structure.area).despawn();

let camera_id = commands
.spawn((
Expand All @@ -110,7 +97,7 @@ fn on_pane_creation(
..default()
},
Camera {
target: RenderTarget::Image(image_handle.into()),
target: RenderTarget::Image(image_handle.clone().into()),
clear_color: ClearColorConfig::Custom(theme.viewport.background_color),
..default()
},
Expand All @@ -119,18 +106,25 @@ fn on_pane_creation(
.id();

commands
.entity(image_id)
.observe(
move |_trigger: On<Pointer<Move>>, mut query: Query<&mut EditorCamera2d>| {
let mut editor_camera = query.get_mut(camera_id).unwrap();
editor_camera.enabled = true;
},
)
.observe(
move |_trigger: On<Pointer<Out>>, mut query: Query<&mut EditorCamera2d>| {
query.get_mut(camera_id).unwrap().enabled = false;
},
);
.spawn_scene(bsn! {
:editor_pane [
:editor_pane_header [
(Text("2D Viewport") ThemedText),
],
:editor_pane_body [
ImageNode::new(image_handle.clone())
:fit_to_parent
on(move |_trigger: On<Pointer<Move>>, mut query: Query<&mut EditorCamera2d>| {
let mut editor_camera = query.get_mut(camera_id).unwrap();
editor_camera.enabled = true;
})
on(move |_trigger: On<Pointer<Out>>, mut query: Query<&mut EditorCamera2d>| {
query.get_mut(camera_id).unwrap().enabled = false;
})
],
]
})
.insert(ChildOf(structure.root));

commands
.entity(structure.root)
Expand All @@ -149,10 +143,12 @@ fn update_render_target_size(
mut images: ResMut<Assets<Image>>,
) {
for (pane_root, viewport) in &query {
let content_node_id = children_query
let Some(content_node_id) = children_query
.iter_descendants(pane_root)
.find(|e| content.contains(*e))
.unwrap();
else {
continue;
};

let Ok((computed_node, global_transform)) = pos_query.get(content_node_id) else {
continue;
Expand Down
3 changes: 2 additions & 1 deletion bevy_editor_panes/bevy_3d_viewport/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "bevy_3d_viewport"
version = "0.1.0"
edition = "2021"
edition = "2024"

[dependencies]
bevy.workspace = true
Expand All @@ -10,6 +10,7 @@ bevy_editor_cam.workspace = true
bevy_editor_styles.workspace = true
bevy_infinite_grid.workspace = true
bevy_editor_core.workspace = true
bevy_transform_gizmos.workspace = true

[lints]
workspace = true
Loading