- Mar 08, 2023
-
-
Louis authored
-
- Nov 16, 2022
-
-
Jerome Humbert authored
Change the signature of `Tween::with_repeat_count()` to take an `impl Into<RepeatCount>` instead of a `RepeatCount` value, to make it easier to configure the `Tween`. Implement for `RepeatCount`: - `From<u32>` for an actual count, yielding `RepeatCount::Finite(value)` - `From<Duration>` for a duration "count", yielding `RepeatCount::For(value)`
-
- Nov 15, 2022
-
-
Jerome Humbert authored
-
Jerome Humbert authored
-
- Nov 14, 2022
-
-
Jerome Humbert authored
-
Jerome Humbert authored
Exposed the total animation duration via the `TotalDuration` enum and the `Tweenable<T>::total_duration() -> TotalDuration` API. Added a default implementation for some methods of `Tweenable<T>`, namely `set_progress()`, `progress()`, and `times_completed()`. These shared implementations are used by all built-in tweenables. Issue: #31
-
- Nov 09, 2022
-
-
Jerome Humbert authored
Change `Delay` into `Delay<T>`, and add support for raising a completion event or callback. Bug: #69
-
Jerome Humbert authored
Fix registration of the `component_animator_system::<Text>` in the `TweeningPlugin` to depend on the new `bevy_text` feature, and not on the `bevy_ui` one.
-
Jerome Humbert authored
Ensure change detection on components and assets is only triggered when an animator effectively modifies said component or asset, and not invariably just by the simple fact of the animator ticking each frame. This change modifies the signature of the `component_animator_system()` and `asset_animator_system()` public functions to directly consume a `ResMut<Events<TweenCompleted>>` instead of an `EventWriter<TweenCompleted>`, to work around some internal limitations. It also publicly exposes a new `Targetable` trait used to work around the impossibility to retrieve a `Mut<T>` from a `Mut<Assets<T>>`. Instead, the trait provides an "target dereferencing" method `target_mut()` which dereferences the target component or asset, and triggers its change detection. The trait is implemented for all components via the `ComponentTarget` object, and for all assets via the `AssetTarget` object. The 3 types described here are publicly exposed to workaround some Bevy limitations, and because the trait appears in the public `Tweenable<T>` API. However users are discouraged from taking strong dependencies on those, as they will be removed once Bevy provides a way to achieve this conditionaly dereferencing without this workaround. Fixes #33
-
- Nov 06, 2022
-
-
Jerome Humbert authored
Add a new `bevy_text` feature for more granular control over `Text`-related lenses, and change the `TextColorLens` to require that new feature instead of `bevy_ui`, as texts _can_ be used without the Bevy UI crate. Fixes #68
-
- Oct 02, 2022
-
-
Jerome Humbert authored
Add two new methods to the `Tweenable<T>` trait: - `set_elapsed(Duration)` sets the elapsed time of the tweenable. This is equivalent to `set_progress(duration().mul_f32(progress))`, with the added benefit of avoiding floating-point conversions and potential rounding errors resulting from it. `set_progress()` is now largely implemented in terms of and as a convenience wrapper to calling `set_elapsed()`. - `elapsed()` which queries the elapsed time of the tweenable. This is equivalent to `duration().mul_f32(progress())`, again with better precision. The elapsed API is the recommended way going forward to manipulate a tweenable's time outside of the normal `tick()` flow. It supersedes the progress API. This change purposedly skips any discussion about what happens to completion events when `set_progress()` or now `set_elpased()` is called with a lower value than the current one to seek time back. This design issue is logged as #60 and is still pending. The change also partially addresses #31, but without removing any existing API or feature.
-
Jerome Humbert authored
Clarify testing code and potential assertions message with the use of a new `assert_approx_eq!()` macro for `f32` equality check with a tolerance. The macro leverages `abs_diff_eq()` but produces a better assertion message in case of failure. It also allows skipping the tolerance parameter to use the default of `1e-5`, which is the "standard" tolerance to use for progress and other small-ish values that are expected to be equal but might be slightly off due to rounding errors. This change ignores the complications of testing for floating-point equality in a generic way, which is too complex, and instead restrict the usage to values like progress (range [0:1]) and other small position values around the origin.
-
shuo authored
-
- Oct 01, 2022
-
-
Jerome Humbert authored
Add some tests to fill gaps for: - `UiPositionLens` - `Animator::set_tweenable()` and `AssetAnimator::set_tweenable()` - `Sequence::from_single()` - `Delay`'s `then()`, `times_completed()`, and `set_progress()`
-
Jerome Humbert authored
Fix the animator speed applying, which got broken as part of the refactor of #44. Add a `speed()` getter to both `Animator<T>` and `AssetAnimator<T>`. Add some simple test for speed, but this is not enough to make sure the feature doesn't regress, so logged #62 to follow-up with a proper regression test. Fixes #61
-
- Sep 29, 2022
-
-
Jerome Humbert authored
Make it easy to exit an example with the ESC key by adding the built-in `bevy::window::close_on_esc()` system to all examples.
-
- Sep 28, 2022
-
-
Jerome Humbert authored
Fix the repeat mode being broken after the first iteration due to `AnimClock::progress()` reporting a progress greater than `1.`, which was breaking the logic of `Tween` and `Lens`. Also fix `Tween::rewind()` not restoring the original tween direction when using a repeat strategy of `RepeatStrategy::MirroredRepeat`. Fixes #42
-
- Sep 27, 2022
-
-
Jerome Humbert authored
Make `Delay::new()` panic if a zero duration is passed as argument. Fix the `menu` example to skip inserting a `Sequence<Transform>` containing a zero-duration `Delay`. Bug: #41
-
- Sep 21, 2022
-
-
Jerome Humbert authored
Upgrade `tarpaulin` to 0.21.0 to work around what looks like a bug in coverage report. Fixes #55
-
- Aug 12, 2022
-
-
Alex Saveau authored
-
- Aug 06, 2022
-
-
Alex Saveau authored
-
Franz Dietrich authored
-
- Aug 04, 2022
-
-
Jerome Humbert authored
This reverts commit f7647405.
-
Jerome Humbert authored
This reverts commit 971edb62.
-
Jerome Humbert authored
This reverts commit 87ac60b2.
-
Jerome Humbert authored
-
Jerome Humbert authored
-
Jerome Humbert authored
Upgrade to the latest released version 0.8.0 of Bevy. Add a new `bevy_asset` feature to enable animation of Bevy assets (types implementing the `Asset` trait). Bevy 0.8 does not contain `bevy_asset` in its defaul features, so this new feature reflects that new possibility to build Bevy and í½ Bevy Tweening without support for the `bevy_asset` crate. The new feature is enabled by default for discoverability and to prevent a behavior breaking change.
-
Jerome Humbert authored
This reverts commit 6a871576.
-
Jerome Humbert authored
This reverts commit 77b56f44.
-
Jerome Humbert authored
This reverts commit 722b62ec.
-
- Aug 03, 2022
-
-
Jerome Humbert authored
-
Gyrobifastigium authored
-
Alex Saveau authored
Remove `TweeningType` and split its functionalities between a new `RepeatCount` controlling the number of repeats of an animation on one hand, and `RepeatStrategy` controlling the way an animation restarts after a loop ended on the other hand. This allows more granular control on the type of playback. Remove the `tweening_type` parameter from `Tween<T>::new()` and replace it with builder methods `with_repeat_count()` and `with_repeat_strategy()`. Remove `is_looping()` from all tweenables, which was not implemented for most of them anyway.
-
- Jul 10, 2022
-
-
Alex Saveau authored
Signed-off-by:
Alex Saveau <saveau.alexandre@gmail.com>
-
- Jun 14, 2022
-
-
Alex Saveau authored
-
- Jun 01, 2022
-
-
Alex Saveau authored
Fix double-boxing by removing the `IntoBoxDynTweenable` trait and the impl of `Tweenable<T>` for `Box<dyn Tweenable>`, and instead using some `From` conversion implemented per concrete type.
-
- May 31, 2022
-
-
Alex Saveau authored
-
- May 17, 2022
-
-
Alex Saveau authored
-
Alex Saveau authored
This lets you not have to run after every single system and instead just pass in the label.
-