@@ -8,7 +8,10 @@ use crate::{
88 ForkableRng , ForkableSeed ,
99 } ,
1010} ;
11- use bevy:: prelude:: { Reflect , ReflectFromReflect , ReflectFromWorld , ReflectResource , Resource } ;
11+ use bevy:: {
12+ prelude:: { Reflect , ReflectFromReflect , ReflectFromWorld , ReflectResource , Resource } ,
13+ reflect:: Typed ,
14+ } ;
1215use bevy_prng:: SeedableEntropySource ;
1316use rand_core:: { RngCore , SeedableRng } ;
1417
@@ -62,8 +65,8 @@ use serde::{Deserialize, Serialize};
6265 feature = "serialize" ,
6366 serde( bound( deserialize = "R: for<'a> Deserialize<'a>, R::Seed: for<'a> Deserialize<'a>" ) )
6467) ]
65- #[ cfg_attr( feature = "serialize" , reflect( where R :: Seed : PartialEq + Debug + Sync + Send + Clone + Serialize + for <' a> Deserialize <' a>) ) ]
66- #[ cfg_attr( not( feature = "serialize" ) , reflect( where R :: Seed : PartialEq + Debug + Sync + Send + Clone ) ) ]
68+ #[ cfg_attr( feature = "serialize" , reflect( where R :: Seed : PartialEq + Debug + Sync + Send + Clone + Serialize + Typed + for <' a> Deserialize <' a>) ) ]
69+ #[ cfg_attr( not( feature = "serialize" ) , reflect( where R :: Seed : PartialEq + Debug + Sync + Send + Clone + Typed ) ) ]
6770pub struct GlobalEntropy < R : SeedableEntropySource + ' static > {
6871 seed : R :: Seed ,
6972 rng : R ,
@@ -273,7 +276,7 @@ mod tests {
273276 fn rng_untyped_serialization ( ) {
274277 use bevy:: reflect:: {
275278 serde:: { ReflectDeserializer , ReflectSerializer } ,
276- TypeRegistry ,
279+ FromReflect , TypeRegistry ,
277280 } ;
278281 use ron:: ser:: to_string;
279282 use serde:: de:: DeserializeSeed ;
@@ -301,7 +304,7 @@ mod tests {
301304
302305 let value = de. deserialize ( & mut deserializer) . unwrap ( ) ;
303306
304- let mut dynamic = value . take :: < GlobalEntropy < ChaCha8Rng > > ( ) . unwrap ( ) ;
307+ let mut dynamic = GlobalEntropy :: < ChaCha8Rng > :: take_from_reflect ( value ) . unwrap ( ) ;
305308
306309 // The two instances should be the same
307310 assert_eq ! (
@@ -321,7 +324,7 @@ mod tests {
321324 fn rng_typed_serialization ( ) {
322325 use bevy:: reflect:: {
323326 serde:: { TypedReflectDeserializer , TypedReflectSerializer } ,
324- GetTypeRegistration , TypeRegistry ,
327+ FromReflect , GetTypeRegistration , TypeRegistry ,
325328 } ;
326329 use ron:: to_string;
327330 use serde:: de:: DeserializeSeed ;
@@ -351,7 +354,7 @@ mod tests {
351354
352355 let value = de. deserialize ( & mut deserializer) . unwrap ( ) ;
353356
354- let mut dynamic = value . take :: < GlobalEntropy < ChaCha8Rng > > ( ) . unwrap ( ) ;
357+ let mut dynamic = GlobalEntropy :: < ChaCha8Rng > :: take_from_reflect ( value ) . unwrap ( ) ;
355358
356359 // The two instances should be the same
357360 assert_eq ! (
0 commit comments