## Bevy Variable Property A convenience library to genericize generating values for a given field. Includes a batteries-included component trait that can be utilized to automatically update another component with new values. ## Examples ### Property ```rust use bevy::prelude::*; use bevy_variable_property::prelude::*; fn main() { let p1 = Property::Static(Vec2::new(0.0, 1.0)); let p2 = Property::RandomRange((Vec2::new(0.0, -100.0)..=Vec2::new(100.0, 0.0)).into()); let p3 = Property::Random; for _ in 0..10 { for p in [&p1, &p2, &p3] { println!("{:?}", p.get_value()); } } } ``` ### IntervalProperty ```rust, no_run use bevy::prelude::*; use bevy_variable_property::prelude::*; #[derive(Component)] struct MyComponent(pub IntervalProperty>); fn main() { App::new() .add_plugins(DefaultPlugins) .add_systems(Startup, setup) .add_systems(Update, tick) .run(); } fn setup(mut commands: Commands) { commands.spawn(Camera2dBundle::default()); commands.spawn(MyComponent(IntervalProperty::new( (0.0..=100.0).into(), 0.5, ))); } fn tick(mut query: Query<&mut MyComponent>, time: Res