From af8167e2256d404491b5584236db09e79c474c81 Mon Sep 17 00:00:00 2001 From: Blazepaws Date: Sun, 15 Sep 2024 19:21:22 +0200 Subject: [PATCH 1/3] Reflected traits for resources and components --- crates/bevy_transform/src/components/global_transform.rs | 4 ++++ crates/bevy_transform/src/components/transform.rs | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/crates/bevy_transform/src/components/global_transform.rs b/crates/bevy_transform/src/components/global_transform.rs index dd8f4ca08f5a3..a2473294eacf8 100644 --- a/crates/bevy_transform/src/components/global_transform.rs +++ b/crates/bevy_transform/src/components/global_transform.rs @@ -41,6 +41,10 @@ use bevy_reflect::{std_traits::ReflectDefault, Reflect}; derive(Component, Reflect), reflect(Component, Default, PartialEq) )] +#[cfg_attr( + all(feature = "bevy-support", feature = "serialize"), + reflect(serde::Serialize, serde::Deserialize) +)] pub struct GlobalTransform(Affine3A); macro_rules! impl_local_axis { diff --git a/crates/bevy_transform/src/components/transform.rs b/crates/bevy_transform/src/components/transform.rs index f0d89017454d3..752d654e68c03 100644 --- a/crates/bevy_transform/src/components/transform.rs +++ b/crates/bevy_transform/src/components/transform.rs @@ -40,6 +40,10 @@ use std::ops::Mul; derive(Component, Reflect), reflect(Component, Default, PartialEq) )] +#[cfg_attr( + all(feature = "bevy-support", feature = "serialize"), + reflect(serde::Serialize, serde::Deserialize) +)] pub struct Transform { /// Position of the entity. In 2d, the last value of the `Vec3` is used for z-ordering. /// From 58f82afea059553c89aca24f7a819d883b9ac8c4 Mon Sep 17 00:00:00 2001 From: Blazepaws Date: Sun, 15 Sep 2024 20:07:24 +0200 Subject: [PATCH 2/3] Fixed wrong reflect trait --- crates/bevy_transform/src/components/global_transform.rs | 6 ++++-- crates/bevy_transform/src/components/transform.rs | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/crates/bevy_transform/src/components/global_transform.rs b/crates/bevy_transform/src/components/global_transform.rs index a2473294eacf8..d5a5d12c4d570 100644 --- a/crates/bevy_transform/src/components/global_transform.rs +++ b/crates/bevy_transform/src/components/global_transform.rs @@ -6,6 +6,8 @@ use bevy_ecs::{component::Component, reflect::ReflectComponent}; use bevy_math::{Affine3A, Dir3, Isometry3d, Mat4, Quat, Vec3, Vec3A}; #[cfg(feature = "bevy-support")] use bevy_reflect::{std_traits::ReflectDefault, Reflect}; +#[cfg(all(feature = "bevy-support", feature = "serialize"))] +use bevy_reflect::{ReflectSerialize, ReflectDeserialize}; /// [`GlobalTransform`] is an affine transformation from entity-local coordinates to worldspace coordinates. /// @@ -39,11 +41,11 @@ use bevy_reflect::{std_traits::ReflectDefault, Reflect}; #[cfg_attr( feature = "bevy-support", derive(Component, Reflect), - reflect(Component, Default, PartialEq) + reflect(Component, Default, PartialEq, Debug) )] #[cfg_attr( all(feature = "bevy-support", feature = "serialize"), - reflect(serde::Serialize, serde::Deserialize) + reflect(Serialize, Deserialize) )] pub struct GlobalTransform(Affine3A); diff --git a/crates/bevy_transform/src/components/transform.rs b/crates/bevy_transform/src/components/transform.rs index 752d654e68c03..9202b0618c940 100644 --- a/crates/bevy_transform/src/components/transform.rs +++ b/crates/bevy_transform/src/components/transform.rs @@ -3,7 +3,7 @@ use super::GlobalTransform; use bevy_ecs::{component::Component, reflect::ReflectComponent}; use bevy_math::{Affine3A, Dir3, Isometry3d, Mat3, Mat4, Quat, Vec3}; #[cfg(feature = "bevy-support")] -use bevy_reflect::{prelude::*, Reflect}; +use bevy_reflect::prelude::*; use std::ops::Mul; /// Describe the position of an entity. If the entity has a parent, the position is relative @@ -38,11 +38,11 @@ use std::ops::Mul; #[cfg_attr( feature = "bevy-support", derive(Component, Reflect), - reflect(Component, Default, PartialEq) + reflect(Component, Default, PartialEq, Debug) )] #[cfg_attr( all(feature = "bevy-support", feature = "serialize"), - reflect(serde::Serialize, serde::Deserialize) + reflect(Serialize, Deserialize) )] pub struct Transform { /// Position of the entity. In 2d, the last value of the `Vec3` is used for z-ordering. From 62a998804b0efb47812fd09f000cf98a01d9f870 Mon Sep 17 00:00:00 2001 From: Blazepaws Date: Sun, 15 Sep 2024 20:08:53 +0200 Subject: [PATCH 3/3] Fixed formatting --- crates/bevy_transform/src/components/global_transform.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bevy_transform/src/components/global_transform.rs b/crates/bevy_transform/src/components/global_transform.rs index d5a5d12c4d570..0b377567966d9 100644 --- a/crates/bevy_transform/src/components/global_transform.rs +++ b/crates/bevy_transform/src/components/global_transform.rs @@ -7,7 +7,7 @@ use bevy_math::{Affine3A, Dir3, Isometry3d, Mat4, Quat, Vec3, Vec3A}; #[cfg(feature = "bevy-support")] use bevy_reflect::{std_traits::ReflectDefault, Reflect}; #[cfg(all(feature = "bevy-support", feature = "serialize"))] -use bevy_reflect::{ReflectSerialize, ReflectDeserialize}; +use bevy_reflect::{ReflectDeserialize, ReflectSerialize}; /// [`GlobalTransform`] is an affine transformation from entity-local coordinates to worldspace coordinates. ///