diff --git a/CHANGELOG.md b/CHANGELOG.md index c5d75f1..3dcf6e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,96 @@ # Changelog +## v0.3.0 - 2024-04-03 + +### Release Notes + +#### New features +- **Tween events!**
+ You can now add custom events that will be fired at arbitary time with optional custom data + via `TweenEvent` and `TweenEventData` +- **Configurable schedule**
+ This crate previously uses `PostUpdate` schedule by default for all APIs and plugins. + It is now configurable via `TweenAppResource` within `TweenCorePlugin`. +- **Jumping to an arbitary time**
+ You can jump to an arbitary time using the `TweenTimer::set_tick()` method. +- **Skip tween**
+ If you want to skip a tween or tweener from functioning then use `SkipTween` + or `SkipTweener` component. + +### Breaking Changes +- Remove unnecessary generics from `TargetComponent` and `TargetResource` +- Add `app_resource: TweenAppResource` field to `TweenCorePlugin` +- All plugins and APIs that uses `PostUpdate` schedule is changed to use schedule from + `TweenAppResource` +- Delegate `span_tweener_system()`'s ticking responsibility to `tick_span_tweener_system()` +- Remove `Eq` and `Hash` derives from `SpanTweener`, `Elasped`, and `TweenTimer` +- Remove `new()` from `Elasped` +- Remove `state: TweenState` field from SpanTweenBundle +- Remove `TweenState` +- Remove `TweenTarget` impl from `TargetComponent`, `TargetResource` and, `TargetAsset` +- Change `component_tween_system_full`, `resource_tween_system_full`, and `asset_tween_system_full` + function signature to account for `SkipTween` component +- Remove `TickResult` +- Change `Elasped` struct definition +- Combine `repeat` and `repeat_style` in `TweenTimer` to just `repeat` then + change corresponding methods. +- Change `TweenTimer::tick()` to accepts `f32` instead of `Duration` +- Change `TweenTimer::tick()` behavior to not update `previous` field in `Elasped`. + `collaspe_elasped` will update the `previous` field instead. +- Change `Repeat` to use `i32` instead of `usize` and update their corresponding methods. + +### Adds +- Add `TweenAppResource` +- Add `DefaultTweenEventsPlugin` +- Add `TweenEventData` +- Add `TweenEvent` +- Add `TweenTimer::set_tick` +- Add `TweenTimer::collaspe_elasped` +- Add `Repeat::advance_counter_by` +- Add `apply_component_tween_system`, `apply_resource_tween_system`, + and `apply_asset_tween_system` +- Add `SkipTween` +- Add `SkipTweener` +- Add `TweenProgress` to replace `TweenState` +- Add `SpanTweensBuilderExt` +- Add `SpanTweensBuilder` +- Add `tick_span_tweener_system()` +- Add `SpanTweenerBundle::tween_here()` +- Add `SpanTweenHereBundle` +- Add `DefaultTweenEventsPlugin` to `DefaultTweenPlugins` +- Add `BoxedInterpolator` alias for `Box` +- Add impl `Interpolator` for `Arc` and `dyn Fn` +- Register `EaseFunction` in `EaseFunctionPlugin` +- Register `TweenProgress` in `TweenCorePlugin` +- Add unit tests for `TweenTimer` +- Lots of documentations and code examples + +### Changes +- Remove `TweenTarget` and `Interpolator` trait requirement from `Tween` +- Remove many `TweenTarget` requirement from `Tween` implementations +- Improves `TweenTimer::tick()` code to account to new `Elasped` +- Improves `span_tweener_system` code to account to new `TweenTimer::tick()` behavior + +### Fixes +- Fixed missing `AngleZ` tween system in `DefaultInterpolatorsPlugin` + +### Examples +- New `click` example +- New `hold` example + +### Deprecates +- Deprecate `QuickSpanTweenBundle` +- Deprecate `span_tween::span_tween()` +- Deprecate `ChildSpanTweenBuilder` +- Deprecate `ChildSpanTweenBuilderExt` +- Deprecate `WorldChildSpanTweenBuilder` +- Deprecate `WorldChildSpanTweenBuilderExt` +- Deprecate `TweenTarget` +- Deprecate `component_tween_system_full` +- Deprecate `resource_tween_system_full` +- Deprecate `asset_tween_system_full` +- Deprecate `Repeat::try_advance_counter` + ## v0.2.0 - 2024-03-14 _First release!_