Skip to content

Commit b80a99f

Browse files
committed
update plugin crates
1 parent 8206f8a commit b80a99f

File tree

68 files changed

+471
-390
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+471
-390
lines changed

crates/bevy_asset/src/io/embedded/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ macro_rules! embedded_asset {
224224

225225
($app: ident, $source_path: expr, $path: expr) => {{
226226
let mut embedded = $app
227-
.world
227+
.world_mut()
228228
.resource_mut::<$crate::io::embedded::EmbeddedAssetRegistry>();
229229
let path = $crate::embedded_path!($source_path, $path);
230230
let watched_path = $crate::io::embedded::watched_path(file!(), $path);
@@ -253,7 +253,7 @@ pub fn watched_path(_source_file_path: &'static str, _asset_path: &'static str)
253253
#[macro_export]
254254
macro_rules! load_internal_asset {
255255
($app: ident, $handle: expr, $path_str: expr, $loader: expr) => {{
256-
let mut assets = $app.world.resource_mut::<$crate::Assets<_>>();
256+
let mut assets = $app.world_mut().resource_mut::<$crate::Assets<_>>();
257257
assets.insert($handle.id(), ($loader)(
258258
include_str!($path_str),
259259
std::path::Path::new(file!())
@@ -265,7 +265,7 @@ macro_rules! load_internal_asset {
265265
}};
266266
// we can't support params without variadic arguments, so internal assets with additional params can't be hot-reloaded
267267
($app: ident, $handle: ident, $path_str: expr, $loader: expr $(, $param:expr)+) => {{
268-
let mut assets = $app.world.resource_mut::<$crate::Assets<_>>();
268+
let mut assets = $app.world_mut().resource_mut::<$crate::Assets<_>>();
269269
assets.insert($handle.id(), ($loader)(
270270
include_str!($path_str),
271271
std::path::Path::new(file!())
@@ -282,7 +282,7 @@ macro_rules! load_internal_asset {
282282
#[macro_export]
283283
macro_rules! load_internal_binary_asset {
284284
($app: ident, $handle: expr, $path_str: expr, $loader: expr) => {{
285-
let mut assets = $app.world.resource_mut::<$crate::Assets<_>>();
285+
let mut assets = $app.world_mut().resource_mut::<$crate::Assets<_>>();
286286
assets.insert(
287287
$handle.id(),
288288
($loader)(

crates/bevy_asset/src/lib.rs

Lines changed: 48 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -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

319319
impl 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

Comments
 (0)