From 933a9710a644eefbcf879cac874213634d85b322 Mon Sep 17 00:00:00 2001 From: qhdwight Date: Thu, 27 Nov 2025 15:21:21 -0800 Subject: [PATCH] Update to Bevy v0.17 --- .github/workflows/rust.yml | 5 +++-- Cargo.toml | 8 ++++---- examples/minimal_avian.rs | 31 ++++++++++++++----------------- examples/minimal_rapier.rs | 30 ++++++++++++++---------------- src/controller_avian.rs | 2 +- src/controller_rapier.rs | 2 +- 6 files changed, 37 insertions(+), 41 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 78f3ba4..6812223 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -14,8 +14,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Install alsa and udev - run: sudo apt-get update; sudo apt-get install --no-install-recommends libasound2-dev libudev-dev + # See: https://github.com/bevyengine/bevy/blob/main/docs/linux_dependencies.md + - name: Install Bevy dependencies + run: sudo apt-get update; sudo apt-get install --no-install-recommends g++ pkg-config libx11-dev libasound2-dev libudev-dev libxkbcommon-x11-0 libwayland-dev libxkbcommon-dev - name: Build Rapier run: cargo build --verbose --features rapier --examples - name: Build Avian diff --git a/Cargo.toml b/Cargo.toml index ca3faed..1e03440 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bevy_fps_controller" -version = "16.1.0" +version = "17.0.0" edition = "2021" authors = ["bevy_fps_controller"] repository = "https://github.com/qhdwight/bevy_fps_controller" @@ -10,9 +10,9 @@ readme = "README.md" description = "Bevy plugin that adds a Source engine inspired FPS movement controller" [dependencies] -bevy = "0.16" -bevy_rapier3d = { version = "0.31", optional = true } -avian3d = { version = "0.3", optional = true } +bevy = "0.17" +bevy_rapier3d = { version = "0.32", optional = true } +avian3d = { version = "0.4", optional = true } [features] default = [] diff --git a/examples/minimal_avian.rs b/examples/minimal_avian.rs index 8227f61..c8ce30a 100644 --- a/examples/minimal_avian.rs +++ b/examples/minimal_avian.rs @@ -2,11 +2,11 @@ use std::f32::consts::TAU; use avian3d::prelude::*; use bevy::{ + camera::Exposure, gltf::{Gltf, GltfMesh, GltfNode}, math::Vec3Swizzles, prelude::*, - render::camera::Exposure, - window::CursorGrabMode, + window::{CursorGrabMode, CursorOptions}, }; use bevy_fps_controller::controller::*; @@ -70,7 +70,6 @@ fn setup(mut commands: Commands, mut window: Query<&mut Window>, assets: Res>, key: Res>, - mut window_query: Query<&mut Window>, + mut cursor: Single<&mut CursorOptions>, mut controller_query: Query<&mut FpsController>, ) { - for mut window in &mut window_query { - if btn.just_pressed(MouseButton::Left) { - window.cursor_options.grab_mode = CursorGrabMode::Locked; - window.cursor_options.visible = false; - for mut controller in &mut controller_query { - controller.enable_input = true; - } + if btn.just_pressed(MouseButton::Left) { + cursor.grab_mode = CursorGrabMode::Locked; + cursor.visible = false; + for mut controller in &mut controller_query { + controller.enable_input = true; } - if key.just_pressed(KeyCode::Escape) { - window.cursor_options.grab_mode = CursorGrabMode::None; - window.cursor_options.visible = true; - for mut controller in &mut controller_query { - controller.enable_input = false; - } + } + if key.just_pressed(KeyCode::Escape) { + cursor.grab_mode = CursorGrabMode::None; + cursor.visible = true; + for mut controller in &mut controller_query { + controller.enable_input = false; } } } diff --git a/examples/minimal_rapier.rs b/examples/minimal_rapier.rs index d0cdce1..6148ad8 100644 --- a/examples/minimal_rapier.rs +++ b/examples/minimal_rapier.rs @@ -1,11 +1,11 @@ use std::f32::consts::TAU; use bevy::{ + camera::Exposure, gltf::{Gltf, GltfMesh, GltfNode}, math::Vec3Swizzles, prelude::*, - render::camera::Exposure, - window::CursorGrabMode, + window::{CursorGrabMode, CursorOptions}, }; use bevy_rapier3d::prelude::*; @@ -183,23 +183,21 @@ fn scene_colliders( fn manage_cursor( btn: Res>, key: Res>, - mut window_query: Query<&mut Window>, + mut cursor: Single<&mut CursorOptions>, mut controller_query: Query<&mut FpsController>, ) { - for mut window in &mut window_query { - if btn.just_pressed(MouseButton::Left) { - window.cursor_options.grab_mode = CursorGrabMode::Locked; - window.cursor_options.visible = false; - for mut controller in &mut controller_query { - controller.enable_input = true; - } + if btn.just_pressed(MouseButton::Left) { + cursor.grab_mode = CursorGrabMode::Locked; + cursor.visible = false; + for mut controller in &mut controller_query { + controller.enable_input = true; } - if key.just_pressed(KeyCode::Escape) { - window.cursor_options.grab_mode = CursorGrabMode::None; - window.cursor_options.visible = true; - for mut controller in &mut controller_query { - controller.enable_input = false; - } + } + if key.just_pressed(KeyCode::Escape) { + cursor.grab_mode = CursorGrabMode::None; + cursor.visible = true; + for mut controller in &mut controller_query { + controller.enable_input = false; } } } diff --git a/src/controller_avian.rs b/src/controller_avian.rs index d304eb5..f251939 100644 --- a/src/controller_avian.rs +++ b/src/controller_avian.rs @@ -195,7 +195,7 @@ const SLIGHT_SCALE_DOWN: f32 = 0.9375; pub fn fps_controller_input( key_input: Res>, - mut mouse_events: EventReader, + mut mouse_events: MessageReader, mut query: Query<(&FpsController, &mut FpsControllerInput)>, ) { for (controller, mut input) in query diff --git a/src/controller_rapier.rs b/src/controller_rapier.rs index 86dde63..c35618a 100644 --- a/src/controller_rapier.rs +++ b/src/controller_rapier.rs @@ -190,7 +190,7 @@ const SLIGHT_SCALE_DOWN: f32 = 0.9375; pub fn fps_controller_input( key_input: Res>, - mut mouse_events: EventReader, + mut mouse_events: MessageReader, mut query: Query<(&FpsController, &mut FpsControllerInput)>, ) { for (controller, mut input) in query