Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use bevy_app::{App, Last, Plugin};
#[cfg(feature = "bevy_defaults")]
mod bevy_tweenables;
mod commands;
mod components;
mod easing;
mod events;
mod systems;
#[cfg(feature = "bevy_defaults")]
pub use bevy_tweenables::{
TweenImageNodeColour, TweenSpriteColour, TweenTextColour, TweenTransformScale,
TweenTransformTranslation, TweenableColour,
};
pub use commands::{ClearTweensExt, RegisterTweenableExt, UpdateOwnTweenExt, UpdateTweenExt};
pub use components::{
ActiveTweens, Tween, TweenMode, TweenTarget, Tweenable, UpdateTween, UpdateUserData,
};
pub use easing::{EaseTween, easing_functions};
pub use events::{
DESPAWN_ANCESTORS_ON_TWEEN_COMPLETE_EVENT, DESPAWN_ON_TWEEN_COMPLETE_EVENT, TweenComplete,
TweenLooped,
};
pub struct TweenPlugin;
impl Plugin for TweenPlugin {
fn build(&self, app: &mut App) {
#[cfg(feature = "bevy_defaults")]
{
app.register_tweenable::<TweenImageNodeColour>()
.register_tweenable::<TweenSpriteColour>()
.register_tweenable::<TweenTextColour>()
.register_tweenable::<TweenTransformTranslation>()
.register_tweenable::<TweenTransformScale>();
}
app.add_event::<TweenComplete>()
.add_event::<TweenLooped>()
.add_systems(
Last,
(
systems::despawn_on_complete,
systems::despawn_ancestors_on_complete,
),
);
}
}