Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - add serialize feature to bevy_transform #6379

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion crates/bevy_internal/Cargo.toml
Expand Up @@ -45,7 +45,7 @@ wav = ["bevy_audio/wav"]
# Enable watching file system for asset hot reload
filesystem_watcher = ["bevy_asset/filesystem_watcher"]

serialize = ["bevy_input/serialize", "bevy_time/serialize", "bevy_window/serialize"]
serialize = ["bevy_input/serialize", "bevy_time/serialize", "bevy_window/serialize", "bevy_transform/serialize", "bevy_math/serialize"]

# Display server protocol support (X11 is enabled by default)
wayland = ["bevy_winit/wayland"]
Expand Down
5 changes: 3 additions & 2 deletions crates/bevy_math/Cargo.toml
Expand Up @@ -9,9 +9,10 @@ license = "MIT OR Apache-2.0"
keywords = ["bevy"]

[dependencies]
glam = { version = "0.21", features = ["serde", "bytemuck"] }
serde = "1"
glam = { version = "0.21", features = ["bytemuck"] }
serde = { version = "1", features = ["derive"], optional = true }

[features]
# Enable interoperation of glam types with mint-compatible libraries
mint = ["glam/mint"]
serialize = ["dep:serde", "glam/serde"]
4 changes: 2 additions & 2 deletions crates/bevy_math/src/ray.rs
@@ -1,8 +1,8 @@
use crate::Vec3;
use serde::{Deserialize, Serialize};

/// A ray is an infinite line starting at `origin`, going in `direction`.
#[derive(Default, Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
#[derive(Default, Clone, Copy, Debug, PartialEq)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
pub struct Ray {
/// The origin of the ray.
pub origin: Vec3,
Expand Down
4 changes: 2 additions & 2 deletions crates/bevy_math/src/rect.rs
@@ -1,5 +1,4 @@
use crate::Vec2;
use serde::{Deserialize, Serialize};

/// A rectangle defined by two opposite corners.
///
Expand All @@ -10,7 +9,8 @@ use serde::{Deserialize, Serialize};
/// methods instead, which will ensure this invariant is met, unless you already have
/// the minimum and maximum corners.
#[repr(C)]
#[derive(Default, Clone, Copy, Debug, Serialize, Deserialize, PartialEq)]
#[derive(Default, Clone, Copy, Debug, PartialEq)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
pub struct Rect {
/// The minimum corner point of the rect.
pub min: Vec2,
Expand Down
2 changes: 1 addition & 1 deletion crates/bevy_reflect/Cargo.toml
Expand Up @@ -18,7 +18,7 @@ documentation = ["bevy_reflect_derive/documentation"]

[dependencies]
# bevy
bevy_math = { path = "../bevy_math", version = "0.9.0-dev", optional = true }
bevy_math = { path = "../bevy_math", version = "0.9.0-dev", features = ["serialize"], optional = true }
bevy_reflect_derive = { path = "bevy_reflect_derive", version = "0.9.0-dev" }
bevy_utils = { path = "../bevy_utils", version = "0.9.0-dev" }
bevy_ptr = { path = "../bevy_ptr", version = "0.9.0-dev" }
Expand Down
4 changes: 4 additions & 0 deletions crates/bevy_transform/Cargo.toml
Expand Up @@ -15,3 +15,7 @@ bevy_ecs = { path = "../bevy_ecs", version = "0.9.0-dev", features = ["bevy_refl
bevy_hierarchy = { path = "../bevy_hierarchy", version = "0.9.0-dev" }
bevy_math = { path = "../bevy_math", version = "0.9.0-dev" }
amiani marked this conversation as resolved.
Show resolved Hide resolved
bevy_reflect = { path = "../bevy_reflect", version = "0.9.0-dev", features = ["bevy"] }
serde = { version = "1", features = ["derive"], optional = true }

[features]
serialize = ["dep:serde", "bevy_math/serialize"]
1 change: 1 addition & 0 deletions crates/bevy_transform/src/components/global_transform.rs
Expand Up @@ -32,6 +32,7 @@ use bevy_reflect::{std_traits::ReflectDefault, FromReflect, Reflect};
///
/// [`global_vs_local_translation`]: https://github.com/bevyengine/bevy/blob/latest/examples/transforms/global_vs_local_translation.rs
#[derive(Component, Debug, PartialEq, Clone, Copy, Reflect, FromReflect)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
#[reflect(Component, Default, PartialEq)]
pub struct GlobalTransform(Affine3A);

Expand Down
1 change: 1 addition & 0 deletions crates/bevy_transform/src/components/transform.rs
Expand Up @@ -35,6 +35,7 @@ use std::ops::Mul;
/// [`global_vs_local_translation`]: https://github.com/bevyengine/bevy/blob/latest/examples/transforms/global_vs_local_translation.rs
/// [`transform`]: https://github.com/bevyengine/bevy/blob/latest/examples/transforms/transform.rs
#[derive(Component, Debug, PartialEq, Clone, Copy, Reflect, FromReflect)]
#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))]
#[reflect(Component, Default, PartialEq)]
pub struct Transform {
/// Position of the entity. In 2d, the last value of the `Vec3` is used for z-ordering.
Expand Down