bevy_transform/
plugins.rs1use crate::systems::{
2 mark_dirty_trees, propagate_parent_transforms, sync_simple_transforms,
3 StaticTransformOptimizations,
4};
5use bevy_app::{App, Plugin, PostStartup, PostUpdate};
6use bevy_ecs::schedule::{IntoScheduleConfigs, SystemSet};
7
8#[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)]
10pub enum TransformSystems {
11 Propagate,
13}
14
15#[derive(Default)]
17pub struct TransformPlugin;
18
19impl Plugin for TransformPlugin {
20 fn build(&self, app: &mut App) {
21 app.init_resource::<StaticTransformOptimizations>()
22 .add_systems(
24 PostStartup,
25 (
26 mark_dirty_trees,
27 propagate_parent_transforms,
28 sync_simple_transforms,
29 )
30 .chain()
31 .in_set(TransformSystems::Propagate),
32 )
33 .add_systems(
34 PostUpdate,
35 (
36 mark_dirty_trees,
37 propagate_parent_transforms,
38 sync_simple_transforms,
40 )
41 .chain()
42 .in_set(TransformSystems::Propagate),
43 );
44 }
45}