@@ -7,7 +7,7 @@ use crate::{
7
7
use bevy_ecs:: {
8
8
component:: Component ,
9
9
schedule:: {
10
- RunOnce , Schedule , Stage , StageLabel , StateStage , SystemDescriptor , SystemSet , SystemStage ,
10
+ RunOnce , Schedule , Stage , StageLabel , State , SystemDescriptor , SystemSet , SystemStage ,
11
11
} ,
12
12
system:: { IntoExclusiveSystem , IntoSystem } ,
13
13
world:: { FromWorld , World } ,
@@ -177,37 +177,18 @@ impl AppBuilder {
177
177
self
178
178
}
179
179
180
- pub fn on_state_enter < T : Clone + Component > (
181
- & mut self ,
182
- stage : impl StageLabel ,
183
- state : T ,
184
- system : impl Into < SystemDescriptor > ,
185
- ) -> & mut Self {
186
- self . stage ( stage, |stage : & mut StateStage < T > | {
187
- stage. on_state_enter ( state, system)
188
- } )
180
+ pub fn add_state < T : Component + Clone + Eq > ( & mut self , initial : T ) -> & mut Self {
181
+ self . insert_resource ( State :: new ( initial) )
182
+ . add_system_set ( State :: < T > :: make_driver ( ) )
189
183
}
190
184
191
- pub fn on_state_update < T : Clone + Component > (
185
+ pub fn add_state_to_stage < T : Component + Clone + Eq > (
192
186
& mut self ,
193
187
stage : impl StageLabel ,
194
- state : T ,
195
- system : impl Into < SystemDescriptor > ,
196
- ) -> & mut Self {
197
- self . stage ( stage, |stage : & mut StateStage < T > | {
198
- stage. on_state_update ( state, system)
199
- } )
200
- }
201
-
202
- pub fn on_state_exit < T : Clone + Component > (
203
- & mut self ,
204
- stage : impl StageLabel ,
205
- state : T ,
206
- system : impl Into < SystemDescriptor > ,
188
+ initial : T ,
207
189
) -> & mut Self {
208
- self . stage ( stage, |stage : & mut StateStage < T > | {
209
- stage. on_state_exit ( state, system)
210
- } )
190
+ self . insert_resource ( State :: new ( initial) )
191
+ . add_system_set_to_stage ( stage, State :: < T > :: make_driver ( ) )
211
192
}
212
193
213
194
pub fn add_default_stages ( & mut self ) -> & mut Self {
0 commit comments