@@ -153,7 +153,7 @@ impl Plugin for AssetPlugin {
153153 let embedded = EmbeddedAssetRegistry :: default ( ) ;
154154 {
155155 let mut sources = app
156- . world
156+ . world_mut ( )
157157 . get_resource_or_insert_with :: < AssetSourceBuilders > ( Default :: default) ;
158158 sources. init_default_source (
159159 & self . file_path ,
@@ -169,10 +169,10 @@ impl Plugin for AssetPlugin {
169169 }
170170 match self . mode {
171171 AssetMode :: Unprocessed => {
172- let mut builders = app. world . resource_mut :: < AssetSourceBuilders > ( ) ;
172+ let mut builders = app. world_mut ( ) . resource_mut :: < AssetSourceBuilders > ( ) ;
173173 let sources = builders. build_sources ( watch, false ) ;
174174 let meta_check = app
175- . world
175+ . world ( )
176176 . get_resource :: < AssetMetaCheck > ( )
177177 . cloned ( )
178178 . unwrap_or_else ( AssetMetaCheck :: default) ;
@@ -187,7 +187,7 @@ impl Plugin for AssetPlugin {
187187 AssetMode :: Processed => {
188188 #[ cfg( feature = "asset_processor" ) ]
189189 {
190- let mut builders = app. world . resource_mut :: < AssetSourceBuilders > ( ) ;
190+ let mut builders = app. world_mut ( ) . resource_mut :: < AssetSourceBuilders > ( ) ;
191191 let processor = AssetProcessor :: new ( & mut builders) ;
192192 let mut sources = builders. build_sources ( false , watch) ;
193193 sources. gate_on_processor ( processor. data . clone ( ) ) ;
@@ -204,7 +204,7 @@ impl Plugin for AssetPlugin {
204204 }
205205 #[ cfg( not( feature = "asset_processor" ) ) ]
206206 {
207- let mut builders = app. world . resource_mut :: < AssetSourceBuilders > ( ) ;
207+ let mut builders = app. world_mut ( ) . resource_mut :: < AssetSourceBuilders > ( ) ;
208208 let sources = builders. build_sources ( false , watch) ;
209209 app. insert_resource ( AssetServer :: new_with_meta_check (
210210 sources,
@@ -318,12 +318,14 @@ pub trait AssetApp {
318318
319319impl AssetApp for App {
320320 fn register_asset_loader < L : AssetLoader > ( & mut self , loader : L ) -> & mut Self {
321- self . world . resource :: < AssetServer > ( ) . register_loader ( loader) ;
321+ self . world ( )
322+ . resource :: < AssetServer > ( )
323+ . register_loader ( loader) ;
322324 self
323325 }
324326
325327 fn register_asset_processor < P : Process > ( & mut self , processor : P ) -> & mut Self {
326- if let Some ( asset_processor) = self . world . get_resource :: < AssetProcessor > ( ) {
328+ if let Some ( asset_processor) = self . world ( ) . get_resource :: < AssetProcessor > ( ) {
327329 asset_processor. register_processor ( processor) ;
328330 }
329331 self
@@ -335,13 +337,13 @@ impl AssetApp for App {
335337 source : AssetSourceBuilder ,
336338 ) -> & mut Self {
337339 let id = id. into ( ) ;
338- if self . world . get_resource :: < AssetServer > ( ) . is_some ( ) {
340+ if self . world ( ) . get_resource :: < AssetServer > ( ) . is_some ( ) {
339341 error ! ( "{} must be registered before `AssetPlugin` (typically added as part of `DefaultPlugins`)" , id) ;
340342 }
341343
342344 {
343345 let mut sources = self
344- . world
346+ . world_mut ( )
345347 . get_resource_or_insert_with ( AssetSourceBuilders :: default) ;
346348 sources. insert ( id, source) ;
347349 }
@@ -350,22 +352,24 @@ impl AssetApp for App {
350352 }
351353
352354 fn set_default_asset_processor < P : Process > ( & mut self , extension : & str ) -> & mut Self {
353- if let Some ( asset_processor) = self . world . get_resource :: < AssetProcessor > ( ) {
355+ if let Some ( asset_processor) = self . world ( ) . get_resource :: < AssetProcessor > ( ) {
354356 asset_processor. set_default_processor :: < P > ( extension) ;
355357 }
356358 self
357359 }
358360
359361 fn init_asset_loader < L : AssetLoader + FromWorld > ( & mut self ) -> & mut Self {
360- let loader = L :: from_world ( & mut self . world ) ;
362+ let loader = L :: from_world ( self . world_mut ( ) ) ;
361363 self . register_asset_loader ( loader)
362364 }
363365
364366 fn init_asset < A : Asset > ( & mut self ) -> & mut Self {
365367 let assets = Assets :: < A > :: default ( ) ;
366- self . world . resource :: < AssetServer > ( ) . register_asset ( & assets) ;
367- if self . world . contains_resource :: < AssetProcessor > ( ) {
368- let processor = self . world . resource :: < AssetProcessor > ( ) ;
368+ self . world ( )
369+ . resource :: < AssetServer > ( )
370+ . register_asset ( & assets) ;
371+ if self . world ( ) . contains_resource :: < AssetProcessor > ( ) {
372+ let processor = self . world ( ) . resource :: < AssetProcessor > ( ) ;
369373 // The processor should have its own handle provider separate from the Asset storage
370374 // to ensure the id spaces are entirely separate. Not _strictly_ necessary, but
371375 // desirable.
@@ -394,7 +398,7 @@ impl AssetApp for App {
394398 where
395399 A : Asset + Reflect + FromReflect + GetTypeRegistration ,
396400 {
397- let type_registry = self . world . resource :: < AppTypeRegistry > ( ) ;
401+ let type_registry = self . world ( ) . resource :: < AppTypeRegistry > ( ) ;
398402 {
399403 let mut type_registry = type_registry. write ( ) ;
400404
@@ -408,7 +412,7 @@ impl AssetApp for App {
408412 }
409413
410414 fn preregister_asset_loader < L : AssetLoader > ( & mut self , extensions : & [ & str ] ) -> & mut Self {
411- self . world
415+ self . world_mut ( )
412416 . resource_mut :: < AssetServer > ( )
413417 . preregister_loader :: < L > ( extensions) ;
414418 self
@@ -628,7 +632,7 @@ mod tests {
628632 pub fn run_app_until ( app : & mut App , mut predicate : impl FnMut ( & mut World ) -> Option < ( ) > ) {
629633 for _ in 0 ..LARGE_ITERATION_COUNT {
630634 app. update ( ) ;
631- if predicate ( & mut app. world ) . is_some ( ) {
635+ if predicate ( app. world_mut ( ) ) . is_some ( ) {
632636 return ;
633637 }
634638 }
@@ -718,13 +722,13 @@ mod tests {
718722 . init_resource :: < StoredEvents > ( )
719723 . register_asset_loader ( CoolTextLoader )
720724 . add_systems ( Update , store_asset_events) ;
721- let asset_server = app. world . resource :: < AssetServer > ( ) . clone ( ) ;
725+ let asset_server = app. world ( ) . resource :: < AssetServer > ( ) . clone ( ) ;
722726 let handle: Handle < CoolText > = asset_server. load ( a_path) ;
723727 let a_id = handle. id ( ) ;
724- let entity = app. world . spawn ( handle) . id ( ) ;
728+ let entity = app. world_mut ( ) . spawn ( handle) . id ( ) ;
725729 app. update ( ) ;
726730 {
727- let a_text = get :: < CoolText > ( & app. world , a_id) ;
731+ let a_text = get :: < CoolText > ( app. world ( ) , a_id) ;
728732 let ( a_load, a_deps, a_rec_deps) = asset_server. get_load_states ( a_id) . unwrap ( ) ;
729733 assert ! ( a_text. is_none( ) , "a's asset should not exist yet" ) ;
730734 assert_eq ! ( a_load, LoadState :: Loading , "a should still be loading" ) ;
@@ -906,27 +910,27 @@ mod tests {
906910 } ) ;
907911
908912 {
909- let mut texts = app. world . resource_mut :: < Assets < CoolText > > ( ) ;
913+ let mut texts = app. world_mut ( ) . resource_mut :: < Assets < CoolText > > ( ) ;
910914 let a = texts. get_mut ( a_id) . unwrap ( ) ;
911915 a. text = "Changed" . to_string ( ) ;
912916 }
913917
914- app. world . despawn ( entity) ;
918+ app. world_mut ( ) . despawn ( entity) ;
915919 app. update ( ) ;
916920 assert_eq ! (
917- app. world. resource:: <Assets <CoolText >>( ) . len( ) ,
921+ app. world( ) . resource:: <Assets <CoolText >>( ) . len( ) ,
918922 0 ,
919923 "CoolText asset entities should be despawned when no more handles exist"
920924 ) ;
921925 app. update ( ) ;
922926 // this requires a second update because the parent asset was freed in the previous app.update()
923927 assert_eq ! (
924- app. world. resource:: <Assets <SubText >>( ) . len( ) ,
928+ app. world( ) . resource:: <Assets <SubText >>( ) . len( ) ,
925929 0 ,
926930 "SubText asset entities should be despawned when no more handles exist"
927931 ) ;
928- let events = app. world . remove_resource :: < StoredEvents > ( ) . unwrap ( ) ;
929- let id_results = app. world . remove_resource :: < IdResults > ( ) . unwrap ( ) ;
932+ let events = app. world_mut ( ) . remove_resource :: < StoredEvents > ( ) . unwrap ( ) ;
933+ let id_results = app. world_mut ( ) . remove_resource :: < IdResults > ( ) . unwrap ( ) ;
930934 let expected_events = vec ! [
931935 AssetEvent :: Added { id: a_id } ,
932936 AssetEvent :: LoadedWithDependencies {
@@ -1030,7 +1034,7 @@ mod tests {
10301034 let ( mut app, gate_opener) = test_app ( dir) ;
10311035 app. init_asset :: < CoolText > ( )
10321036 . register_asset_loader ( CoolTextLoader ) ;
1033- let asset_server = app. world . resource :: < AssetServer > ( ) . clone ( ) ;
1037+ let asset_server = app. world ( ) . resource :: < AssetServer > ( ) . clone ( ) ;
10341038 let handle: Handle < CoolText > = asset_server. load ( a_path) ;
10351039 let a_id = handle. id ( ) ;
10361040 {
@@ -1046,7 +1050,7 @@ mod tests {
10461050 ) ;
10471051 }
10481052
1049- app. world . spawn ( handle) ;
1053+ app. world_mut ( ) . spawn ( handle) ;
10501054 gate_opener. open ( a_path) ;
10511055 gate_opener. open ( b_path) ;
10521056 gate_opener. open ( c_path) ;
@@ -1117,23 +1121,23 @@ mod tests {
11171121
11181122 let id = {
11191123 let handle = {
1120- let mut texts = app. world . resource_mut :: < Assets < CoolText > > ( ) ;
1124+ let mut texts = app. world_mut ( ) . resource_mut :: < Assets < CoolText > > ( ) ;
11211125 let handle = texts. add ( CoolText :: default ( ) ) ;
11221126 texts. get_strong_handle ( handle. id ( ) ) . unwrap ( )
11231127 } ;
11241128
11251129 app. update ( ) ;
11261130
11271131 {
1128- let text = app. world . resource :: < Assets < CoolText > > ( ) . get ( & handle) ;
1132+ let text = app. world ( ) . resource :: < Assets < CoolText > > ( ) . get ( & handle) ;
11291133 assert ! ( text. is_some( ) ) ;
11301134 }
11311135 handle. id ( )
11321136 } ;
11331137 // handle is dropped
11341138 app. update ( ) ;
11351139 assert ! (
1136- app. world. resource:: <Assets <CoolText >>( ) . get( id) . is_none( ) ,
1140+ app. world( ) . resource:: <Assets <CoolText >>( ) . get( id) . is_none( ) ,
11371141 "asset has no handles, so it should have been dropped last update"
11381142 ) ;
11391143 }
@@ -1161,7 +1165,7 @@ mod tests {
11611165
11621166 let id = {
11631167 let handle = {
1164- let mut texts = app. world . resource_mut :: < Assets < CoolText > > ( ) ;
1168+ let mut texts = app. world_mut ( ) . resource_mut :: < Assets < CoolText > > ( ) ;
11651169 texts. add ( CoolText {
11661170 text : hello. clone ( ) ,
11671171 embedded : empty. clone ( ) ,
@@ -1174,7 +1178,7 @@ mod tests {
11741178
11751179 {
11761180 let text = app
1177- . world
1181+ . world ( )
11781182 . resource :: < Assets < CoolText > > ( )
11791183 . get ( & handle)
11801184 . unwrap ( ) ;
@@ -1185,40 +1189,40 @@ mod tests {
11851189 // handle is dropped
11861190 app. update ( ) ;
11871191 assert ! (
1188- app. world. resource:: <Assets <CoolText >>( ) . get( id) . is_none( ) ,
1192+ app. world( ) . resource:: <Assets <CoolText >>( ) . get( id) . is_none( ) ,
11891193 "asset has no handles, so it should have been dropped last update"
11901194 ) ;
11911195 // remove event is emitted
11921196 app. update ( ) ;
1193- let events = std:: mem:: take ( & mut app. world . resource_mut :: < StoredEvents > ( ) . 0 ) ;
1197+ let events = std:: mem:: take ( & mut app. world_mut ( ) . resource_mut :: < StoredEvents > ( ) . 0 ) ;
11941198 let expected_events = vec ! [
11951199 AssetEvent :: Added { id } ,
11961200 AssetEvent :: Unused { id } ,
11971201 AssetEvent :: Removed { id } ,
11981202 ] ;
11991203 assert_eq ! ( events, expected_events) ;
12001204
1201- let dep_handle = app. world . resource :: < AssetServer > ( ) . load ( dep_path) ;
1205+ let dep_handle = app. world ( ) . resource :: < AssetServer > ( ) . load ( dep_path) ;
12021206 let a = CoolText {
12031207 text : "a" . to_string ( ) ,
12041208 embedded : empty,
12051209 // this dependency is behind a manual load gate, which should prevent 'a' from emitting a LoadedWithDependencies event
12061210 dependencies : vec ! [ dep_handle. clone( ) ] ,
12071211 sub_texts : Vec :: new ( ) ,
12081212 } ;
1209- let a_handle = app. world . resource :: < AssetServer > ( ) . load_asset ( a) ;
1213+ let a_handle = app. world ( ) . resource :: < AssetServer > ( ) . load_asset ( a) ;
12101214 app. update ( ) ;
12111215 // TODO: ideally it doesn't take two updates for the added event to emit
12121216 app. update ( ) ;
12131217
1214- let events = std:: mem:: take ( & mut app. world . resource_mut :: < StoredEvents > ( ) . 0 ) ;
1218+ let events = std:: mem:: take ( & mut app. world_mut ( ) . resource_mut :: < StoredEvents > ( ) . 0 ) ;
12151219 let expected_events = vec ! [ AssetEvent :: Added { id: a_handle. id( ) } ] ;
12161220 assert_eq ! ( events, expected_events) ;
12171221
12181222 gate_opener. open ( dep_path) ;
12191223 loop {
12201224 app. update ( ) ;
1221- let events = std:: mem:: take ( & mut app. world . resource_mut :: < StoredEvents > ( ) . 0 ) ;
1225+ let events = std:: mem:: take ( & mut app. world_mut ( ) . resource_mut :: < StoredEvents > ( ) . 0 ) ;
12221226 if events. is_empty ( ) {
12231227 continue ;
12241228 }
@@ -1232,7 +1236,7 @@ mod tests {
12321236 break ;
12331237 }
12341238 app. update ( ) ;
1235- let events = std:: mem:: take ( & mut app. world . resource_mut :: < StoredEvents > ( ) . 0 ) ;
1239+ let events = std:: mem:: take ( & mut app. world_mut ( ) . resource_mut :: < StoredEvents > ( ) . 0 ) ;
12361240 let expected_events = vec ! [ AssetEvent :: Added {
12371241 id: dep_handle. id( ) ,
12381242 } ] ;
@@ -1283,7 +1287,7 @@ mod tests {
12831287 app. init_asset :: < CoolText > ( )
12841288 . init_asset :: < SubText > ( )
12851289 . register_asset_loader ( CoolTextLoader ) ;
1286- let asset_server = app. world . resource :: < AssetServer > ( ) . clone ( ) ;
1290+ let asset_server = app. world ( ) . resource :: < AssetServer > ( ) . clone ( ) ;
12871291 let handle: Handle < LoadedFolder > = asset_server. load_folder ( "text" ) ;
12881292 gate_opener. open ( a_path) ;
12891293 gate_opener. open ( b_path) ;
@@ -1438,12 +1442,12 @@ mod tests {
14381442 ( asset_event_handler, asset_load_error_event_handler) . chain ( ) ,
14391443 ) ;
14401444
1441- let asset_server = app. world . resource :: < AssetServer > ( ) . clone ( ) ;
1445+ let asset_server = app. world ( ) . resource :: < AssetServer > ( ) . clone ( ) ;
14421446 let a_path = format ! ( "unstable://{a_path}" ) ;
14431447 let a_handle: Handle < CoolText > = asset_server. load ( a_path) ;
14441448 let a_id = a_handle. id ( ) ;
14451449
1446- app. world . spawn ( a_handle) ;
1450+ app. world_mut ( ) . spawn ( a_handle) ;
14471451
14481452 run_app_until ( & mut app, |world| {
14491453 let tracker = world. resource :: < ErrorTracker > ( ) ;
@@ -1476,7 +1480,7 @@ mod tests {
14761480 } ) ;
14771481
14781482 // running schedule does not error on ambiguity between the 2 uses_assets systems
1479- app. world . run_schedule ( Update ) ;
1483+ app. world_mut ( ) . run_schedule ( Update ) ;
14801484 }
14811485
14821486 // validate the Asset derive macro for various asset types
0 commit comments