diff --git a/Cargo.toml b/Cargo.toml index ad067f0d..d5ec36ec 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,22 +18,22 @@ all-features = true members = ["crates/*", "backends/*"] [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_core = { version = "0.14.0", default-features = false } -bevy_core_pipeline = { version = "0.14.0", optional = true, default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_math = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } -bevy_text = { version = "0.14.0", optional = true, default-features = false, features = [ +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_core = { version = "0.15.0-dev", default-features = false } +bevy_core_pipeline = { version = "0.15.0-dev", optional = true, default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_math = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } +bevy_text = { version = "0.15.0-dev", optional = true, default-features = false, features = [ "default_font", ] } -bevy_utils = { version = "0.14.0", default-features = false } -bevy_window = { version = "0.14.0", default-features = false } +bevy_utils = { version = "0.15.0-dev", default-features = false } +bevy_window = { version = "0.15.0-dev", default-features = false } # Optional -bevy_color = { version = "0.14.0", optional = true, default-features = false } -bevy_ui = { version = "0.14.0", optional = true, default-features = false } +bevy_color = { version = "0.15.0-dev", optional = true, default-features = false } +bevy_ui = { version = "0.15.0-dev", optional = true, default-features = false } bevy_eventlistener = "0.8.0" bevy_egui = { optional = true, version = "0.28.0" } # >=0.28, <=0.XX @@ -55,7 +55,7 @@ bevy_picking_xpbd = { optional = true, path = "backends/bevy_picking_xpbd", vers bevy_picking_avian = { optional = true, path = "backends/bevy_picking_avian", version = "0.20.0" } [dev-dependencies] -bevy = { version = "0.14.0", default-features = false, features = [ +bevy = { version = "0.15.0-dev", default-features = false, features = [ "bevy_winit", "x11", "bevy_gltf", @@ -137,3 +137,36 @@ required-features = ["backend_xpbd"] name = "avian" path = "examples/avian.rs" required-features = ["backend_avian"] + +[patch.crates-io] +bevy_app = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_core = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_core_pipeline = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159", optional = true } +bevy_ecs = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_math = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_reflect = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_render = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_text = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159", optional = true } +bevy_utils = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_window = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } + +# transitive dependencies +bevy_derive = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_transform = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_asset = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_pbr = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159" } +bevy_mod_raycast = { path = "../bevy_mod_raycast" } + +# Optional +bevy_color = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159", optional = true } +bevy_ui = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159", optional = true } +bevy_input = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159", optional = true } +bevy_sprite = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159", optional = true } +bevy_hierarchy = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159", optional = true } +bevy = { git = "https://github.com/bevyengine/bevy.git", rev = "9386bd0114c44c9f00a2e9c41db1225aaa78d159", optional = true } + +bevy_eventlistener = { git = "https://github.com/vrixyz/bevy_eventlistener.git", branch = "bevy_main" } +# bevy_egui = { optional = true, version = "0.28.0" } # >=0.28, <=0.XX +# bevy_rapier3d = { optional = true, version = "0.27.0-rc.1" } +# bevy_xpbd_3d = { optional = true, version = "0.5.0" } +# avian3d = { optional = true, version = '0.1' } diff --git a/backends/bevy_picking_avian/Cargo.toml b/backends/bevy_picking_avian/Cargo.toml index 1f4696ab..92b48a92 100644 --- a/backends/bevy_picking_avian/Cargo.toml +++ b/backends/bevy_picking_avian/Cargo.toml @@ -13,14 +13,14 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_math = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } -bevy_transform = { version = "0.14.0", default-features = false } -bevy_utils = { version = "0.14.0", default-features = false } -bevy_window = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_math = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } +bevy_transform = { version = "0.15.0-dev", default-features = false } +bevy_utils = { version = "0.15.0-dev", default-features = false } +bevy_window = { version = "0.15.0-dev", default-features = false } avian3d = "0.1" # Local diff --git a/backends/bevy_picking_egui/Cargo.toml b/backends/bevy_picking_egui/Cargo.toml index ce0223e1..d85f5c99 100644 --- a/backends/bevy_picking_egui/Cargo.toml +++ b/backends/bevy_picking_egui/Cargo.toml @@ -13,10 +13,10 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } bevy_egui = "0.28" # Local diff --git a/backends/bevy_picking_rapier/Cargo.toml b/backends/bevy_picking_rapier/Cargo.toml index 6e4ed22a..16c7b4f8 100644 --- a/backends/bevy_picking_rapier/Cargo.toml +++ b/backends/bevy_picking_rapier/Cargo.toml @@ -13,12 +13,12 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } -bevy_transform = { version = "0.14.0", default-features = false } -bevy_window = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } +bevy_transform = { version = "0.15.0-dev", default-features = false } +bevy_window = { version = "0.15.0-dev", default-features = false } bevy_rapier3d = "0.27.0-rc.0" # Local diff --git a/backends/bevy_picking_raycast/Cargo.toml b/backends/bevy_picking_raycast/Cargo.toml index d9ce0ea8..37fc1131 100644 --- a/backends/bevy_picking_raycast/Cargo.toml +++ b/backends/bevy_picking_raycast/Cargo.toml @@ -13,12 +13,12 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } -bevy_transform = { version = "0.14.0", default-features = false } -bevy_window = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } +bevy_transform = { version = "0.15.0-dev", default-features = false } +bevy_window = { version = "0.15.0-dev", default-features = false } bevy_mod_raycast = { version = "0.18" } # Local diff --git a/backends/bevy_picking_sprite/Cargo.toml b/backends/bevy_picking_sprite/Cargo.toml index c93c494a..73ab7e99 100644 --- a/backends/bevy_picking_sprite/Cargo.toml +++ b/backends/bevy_picking_sprite/Cargo.toml @@ -13,13 +13,13 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_asset = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_math = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } -bevy_sprite = { version = "0.14.0", default-features = false } -bevy_transform = { version = "0.14.0", default-features = false } -bevy_window = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_asset = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_math = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } +bevy_sprite = { version = "0.15.0-dev", default-features = false } +bevy_transform = { version = "0.15.0-dev", default-features = false } +bevy_window = { version = "0.15.0-dev", default-features = false } # Local bevy_picking_core = { path = "../../crates/bevy_picking_core", version = "0.20.0" } diff --git a/backends/bevy_picking_ui/Cargo.toml b/backends/bevy_picking_ui/Cargo.toml index 268a4bcb..0afe07ba 100644 --- a/backends/bevy_picking_ui/Cargo.toml +++ b/backends/bevy_picking_ui/Cargo.toml @@ -13,15 +13,15 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_hierarchy = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } -bevy_transform = { version = "0.14.0", default-features = false } -bevy_window = { version = "0.14.0", default-features = false } -bevy_ui = { version = "0.14.0", default-features = false } -bevy_utils = { version = "0.14.0", default-features = false } -bevy_math = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_hierarchy = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } +bevy_transform = { version = "0.15.0-dev", default-features = false } +bevy_window = { version = "0.15.0-dev", default-features = false } +bevy_ui = { version = "0.15.0-dev", default-features = false } +bevy_utils = { version = "0.15.0-dev", default-features = false } +bevy_math = { version = "0.15.0-dev", default-features = false } # Local bevy_picking_core = { path = "../../crates/bevy_picking_core", version = "0.20.0" } diff --git a/backends/bevy_picking_xpbd/Cargo.toml b/backends/bevy_picking_xpbd/Cargo.toml index 2faadd3c..7d4ee0d1 100644 --- a/backends/bevy_picking_xpbd/Cargo.toml +++ b/backends/bevy_picking_xpbd/Cargo.toml @@ -13,14 +13,14 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_math = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } -bevy_transform = { version = "0.14.0", default-features = false } -bevy_utils = { version = "0.14.0", default-features = false } -bevy_window = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_math = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } +bevy_transform = { version = "0.15.0-dev", default-features = false } +bevy_utils = { version = "0.15.0-dev", default-features = false } +bevy_window = { version = "0.15.0-dev", default-features = false } bevy_xpbd_3d = "0.5" # Local diff --git a/crates/bevy_picking_core/Cargo.toml b/crates/bevy_picking_core/Cargo.toml index 7980697f..1aae345e 100644 --- a/crates/bevy_picking_core/Cargo.toml +++ b/crates/bevy_picking_core/Cargo.toml @@ -13,16 +13,16 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_derive = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_math = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } -bevy_utils = { version = "0.14.0", default-features = false } -bevy_window = { version = "0.14.0", default-features = false } -bevy_transform = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_derive = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_math = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } +bevy_utils = { version = "0.15.0-dev", default-features = false } +bevy_window = { version = "0.15.0-dev", default-features = false } +bevy_transform = { version = "0.15.0-dev", default-features = false } uuid = { version = "1.1", features = ["v4"] } -bevy_eventlistener = "0.8.0" +bevy_eventlistener = { git = "https://github.com/vrixyz/bevy_eventlistener.git", branch = "bevy_main" } diff --git a/crates/bevy_picking_core/src/backend.rs b/crates/bevy_picking_core/src/backend.rs index fe4b910c..3ddd44a8 100644 --- a/crates/bevy_picking_core/src/backend.rs +++ b/crates/bevy_picking_core/src/backend.rs @@ -227,6 +227,7 @@ pub mod ray { let viewport_logical = camera.to_logical(viewport.physical_position)?; viewport_pos -= viewport_logical; } - camera.viewport_to_world(camera_tfm, viewport_pos) + // TODO: Thierry: propagate the result? + camera.viewport_to_world(camera_tfm, viewport_pos).ok() } } diff --git a/crates/bevy_picking_highlight/Cargo.toml b/crates/bevy_picking_highlight/Cargo.toml index 407cf59e..bab67364 100644 --- a/crates/bevy_picking_highlight/Cargo.toml +++ b/crates/bevy_picking_highlight/Cargo.toml @@ -13,14 +13,14 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_asset = { version = "0.14.0", default-features = false } -bevy_color = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", optional = true, default-features = false } -bevy_pbr = { version = "0.14.0", optional = true, default-features = false } -bevy_sprite = { version = "0.14.0", optional = true, default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_asset = { version = "0.15.0-dev", default-features = false } +bevy_color = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", optional = true, default-features = false } +bevy_pbr = { version = "0.15.0-dev", optional = true, default-features = false } +bevy_sprite = { version = "0.15.0-dev", optional = true, default-features = false } bevy_picking_core = { path = "../bevy_picking_core", version = "0.20.0" } bevy_picking_selection = { optional = true, path = "../bevy_picking_selection", version = "0.20.0" } diff --git a/crates/bevy_picking_input/Cargo.toml b/crates/bevy_picking_input/Cargo.toml index ee1ff3d6..bf938de6 100644 --- a/crates/bevy_picking_input/Cargo.toml +++ b/crates/bevy_picking_input/Cargo.toml @@ -13,15 +13,15 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_hierarchy = { version = "0.14.0", default-features = false } -bevy_input = { version = "0.14.0", default-features = false } -bevy_math = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_render = { version = "0.14.0", default-features = false } -bevy_utils = { version = "0.14.0", default-features = false } -bevy_window = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_hierarchy = { version = "0.15.0-dev", default-features = false } +bevy_input = { version = "0.15.0-dev", default-features = false } +bevy_math = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_render = { version = "0.15.0-dev", default-features = false } +bevy_utils = { version = "0.15.0-dev", default-features = false } +bevy_window = { version = "0.15.0-dev", default-features = false } bevy_picking_core = { path = "../bevy_picking_core", version = "0.20.0" } bevy_picking_selection = { optional = true, path = "../bevy_picking_selection", version = "0.20.0" } diff --git a/crates/bevy_picking_selection/Cargo.toml b/crates/bevy_picking_selection/Cargo.toml index 531c0071..642048b0 100644 --- a/crates/bevy_picking_selection/Cargo.toml +++ b/crates/bevy_picking_selection/Cargo.toml @@ -13,11 +13,11 @@ resolver = "2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_app = { version = "0.14.0", default-features = false } -bevy_ecs = { version = "0.14.0", default-features = false } -bevy_input = { version = "0.14.0", default-features = false } -bevy_reflect = { version = "0.14.0", default-features = false } -bevy_utils = { version = "0.14.0", default-features = false } +bevy_app = { version = "0.15.0-dev", default-features = false } +bevy_ecs = { version = "0.15.0-dev", default-features = false } +bevy_input = { version = "0.15.0-dev", default-features = false } +bevy_reflect = { version = "0.15.0-dev", default-features = false } +bevy_utils = { version = "0.15.0-dev", default-features = false } bevy_eventlistener = "0.8.0" diff --git a/examples/debug.rs b/examples/debug.rs index bddef130..234c7040 100644 --- a/examples/debug.rs +++ b/examples/debug.rs @@ -13,7 +13,7 @@ fn main() { ..default() }), ) - .add_plugins(DefaultPickingPlugins) + .add_plugins(bevy_mod_picking::DefaultPickingPlugins) .add_systems(Startup, setup) // Set the value of the DebugPickingMode resource to change picking debugging settings .insert_resource(DebugPickingMode::Normal) diff --git a/examples/minimal.rs b/examples/minimal.rs index f1b096cc..ce104ea7 100644 --- a/examples/minimal.rs +++ b/examples/minimal.rs @@ -9,7 +9,7 @@ fn main() { // All you need to do is add the picking plugin, with your backend of choice enabled in the // cargo features. By default, the bevy_mod_raycast backend is enabled via the // `backend_raycast` feature. - .add_plugins(DefaultPickingPlugins) + .add_plugins(bevy_mod_picking::DefaultPickingPlugins) .insert_resource(DebugPickingMode::Normal) .add_systems(Startup, setup) .run();