From a0b964e77472c795a691e4ea1784fab849d72ff2 Mon Sep 17 00:00:00 2001 From: "Arend van Beelen jr." Date: Thu, 1 Feb 2024 10:33:07 +0100 Subject: [PATCH 1/2] Updates for Bevy main (will become 0.13) --- benchmarks/benches/lens.rs | 2 +- examples/menu.rs | 2 +- examples/sequence.rs | 6 +++--- src/color_vec4_ext.rs | 22 ++++++++++++++++++++++ src/lens.rs | 25 +++++++++++++------------ src/lib.rs | 1 + 6 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 src/color_vec4_ext.rs diff --git a/benchmarks/benches/lens.rs b/benchmarks/benches/lens.rs index 1972252..130c460 100644 --- a/benchmarks/benches/lens.rs +++ b/benchmarks/benches/lens.rs @@ -19,7 +19,7 @@ fn text_color_lens(c: &mut Criterion) { color: Color::WHITE, }, ) - .with_alignment(TextAlignment::Center); + .with_justify(JustifyText::Center); c.bench_function("TextColorLens", |b| { b.iter(|| lens.lerp(&mut text, black_box(0.3))) }); diff --git a/examples/menu.rs b/examples/menu.rs index c15eef3..e909055 100644 --- a/examples/menu.rs +++ b/examples/menu.rs @@ -126,7 +126,7 @@ fn setup(mut commands: Commands, asset_server: Res) { color: TEXT_COLOR, }, ) - .with_alignment(TextAlignment::Center), + .with_alignment(JustifyText::Center), ..default() }); }); diff --git a/examples/sequence.rs b/examples/sequence.rs index 7be09f0..f4ab3b6 100644 --- a/examples/sequence.rs +++ b/examples/sequence.rs @@ -49,7 +49,7 @@ fn setup(mut commands: Commands, asset_server: Res) { color: Color::BLUE, }; - let text_alignment = TextAlignment::Center; + let justify = JustifyText::Center; // Text with the index of the active tween in the sequence commands.spawn(( @@ -65,7 +65,7 @@ fn setup(mut commands: Commands, asset_server: Res) { style: text_style_red, }, ], - alignment: text_alignment, + justify, ..default() }, transform: Transform::from_translation(Vec3::new(0., 40., 0.)), @@ -88,7 +88,7 @@ fn setup(mut commands: Commands, asset_server: Res) { style: text_style_blue, }, ], - alignment: text_alignment, + justify, ..default() }, transform: Transform::from_translation(Vec3::new(0., -40., 0.)), diff --git a/src/color_vec4_ext.rs b/src/color_vec4_ext.rs new file mode 100644 index 0000000..f19adf1 --- /dev/null +++ b/src/color_vec4_ext.rs @@ -0,0 +1,22 @@ +use bevy::math::Vec4; +use bevy::render::color::Color; + +pub(crate) trait ColorExt { + fn to_vec(&self) -> Vec4; +} + +impl ColorExt for Color { + fn to_vec(&self) -> Vec4 { + Vec4::new(self.r(), self.g(), self.b(), self.a()) + } +} + +pub(crate) trait Vec4Ext { + fn to_color(&self) -> Color; +} + +impl Vec4Ext for Vec4 { + fn to_color(&self) -> Color { + Color::rgba(self.x, self.y, self.z, self.w) + } +} diff --git a/src/lens.rs b/src/lens.rs index a48a0c4..e08feab 100644 --- a/src/lens.rs +++ b/src/lens.rs @@ -35,6 +35,7 @@ //! [`Transform`]: https://docs.rs/bevy/0.12.0/bevy/transform/components/struct.Transform.html //! [`Quat::slerp()`]: https://docs.rs/bevy/0.12.0/bevy/math/struct.Quat.html#method.slerp +use crate::color_vec4_ext::*; use bevy::prelude::*; /// A lens over a subset of a component. @@ -95,12 +96,12 @@ impl Lens for TextColorLens { fn lerp(&mut self, target: &mut Text, ratio: f32) { // Note: Add for Color affects alpha, but not Mul. So use Vec4 for // consistency. - let start: Vec4 = self.start.into(); - let end: Vec4 = self.end.into(); + let start: Vec4 = self.start.to_vec(); + let end: Vec4 = self.end.to_vec(); let value = start.lerp(end, ratio); if let Some(section) = target.sections.get_mut(self.section) { - section.style.color = value.into(); + section.style.color = value.to_color(); } } } @@ -335,10 +336,10 @@ pub struct UiBackgroundColorLens { #[cfg(feature = "bevy_ui")] impl Lens for UiBackgroundColorLens { fn lerp(&mut self, target: &mut BackgroundColor, ratio: f32) { - let start: Vec4 = self.start.into(); - let end: Vec4 = self.end.into(); + let start: Vec4 = self.start.to_vec(); + let end: Vec4 = self.end.to_vec(); let value = start.lerp(end, ratio); - target.0 = value.into(); + target.0 = value.to_color(); } } @@ -360,10 +361,10 @@ impl Lens for ColorMaterialColorLens { fn lerp(&mut self, target: &mut ColorMaterial, ratio: f32) { // Note: Add for Color affects alpha, but not Mul. So use Vec4 for // consistency. - let start: Vec4 = self.start.into(); - let end: Vec4 = self.end.into(); + let start: Vec4 = self.start.to_vec(); + let end: Vec4 = self.end.to_vec(); let value = start.lerp(end, ratio); - target.color = value.into(); + target.color = value.to_color(); } } @@ -385,10 +386,10 @@ impl Lens for SpriteColorLens { fn lerp(&mut self, target: &mut Sprite, ratio: f32) { // Note: Add for Color affects alpha, but not Mul. So use Vec4 for // consistency. - let start: Vec4 = self.start.into(); - let end: Vec4 = self.end.into(); + let start: Vec4 = self.start.to_vec(); + let end: Vec4 = self.end.to_vec(); let value = start.lerp(end, ratio); - target.color = value.into(); + target.color = value.to_color(); } } diff --git a/src/lib.rs b/src/lib.rs index 6aeb71f..639db90 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -221,6 +221,7 @@ pub use tweenable::{ TweenState, Tweenable, }; +mod color_vec4_ext; pub mod lens; mod plugin; mod tweenable; From 57007339c38e6da70f6447422a18b09092a8ce09 Mon Sep 17 00:00:00 2001 From: Seldom <38388947+Seldom-SE@users.noreply.github.com> Date: Mon, 19 Feb 2024 13:25:05 -0700 Subject: [PATCH 2/2] Bevy 0.13 dep, test fixes --- Cargo.toml | 2 +- src/lib.rs | 10 +++------- src/tweenable.rs | 4 ++-- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 35d25e5..d4c913d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,7 @@ bevy_text = ["bevy/bevy_text", "bevy/bevy_render", "bevy/bevy_sprite"] [dependencies] interpolation = "0.2" -bevy = { version = "0.12", default-features = false } +bevy = { version = "0.13", default-features = false } [dev-dependencies] bevy-inspector-egui = "0.21" diff --git a/src/lib.rs b/src/lib.rs index 639db90..db34cf7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -542,9 +542,6 @@ impl AssetAnimator { #[cfg(test)] mod tests { - #[cfg(feature = "bevy_asset")] - use bevy::reflect::TypeUuid; - use super::*; use crate::test_utils::*; @@ -559,15 +556,14 @@ mod tests { } #[cfg(feature = "bevy_asset")] - #[derive(Asset, Debug, Default, Reflect, TypeUuid)] - #[uuid = "a33abc11-264e-4bbb-82e8-b87226bb4383"] + #[derive(Asset, Debug, Default, Reflect)] struct DummyAsset { value: f32, } impl Lens for DummyLens { fn lerp(&mut self, target: &mut DummyComponent, ratio: f32) { - target.value = self.start.lerp(&self.end, &ratio); + target.value = self.start.lerp(self.end, ratio); } } @@ -584,7 +580,7 @@ mod tests { #[cfg(feature = "bevy_asset")] impl Lens for DummyLens { fn lerp(&mut self, target: &mut DummyAsset, ratio: f32) { - target.value = self.start.lerp(&self.end, &ratio); + target.value = self.start.lerp(self.end, ratio); } } diff --git a/src/tweenable.rs b/src/tweenable.rs index 45476e1..3f3f91c 100644 --- a/src/tweenable.rs +++ b/src/tweenable.rs @@ -486,7 +486,7 @@ impl Tween { /// .with_completed_event(42); /// /// fn my_system(mut reader: EventReader) { - /// for ev in reader.iter() { + /// for ev in reader.read() { /// assert_eq!(ev.user_data, 42); /// println!("Entity {:?} raised TweenCompleted!", ev.entity); /// } @@ -991,7 +991,7 @@ impl Delay { /// .with_completed_event(42); /// /// fn my_system(mut reader: EventReader) { - /// for ev in reader.iter() { + /// for ev in reader.read() { /// assert_eq!(ev.user_data, 42); /// println!("Entity {:?} raised TweenCompleted!", ev.entity); /// }