bevy/examples/asset
Ricky Taylor efcb6d6c11
Make LoadContext use the builder pattern for loading dependent assets (#13465)
# Objective
- Fixes #13445.

## Solution
- Removes all `load_` methods from `LoadContext`.
- Introduces `fn loader()` which returns a builder.

## Testing
- I've tested with `cargo test --package=bevy_asset` and run the two
relevant examples (`asset_processing` & `asset_decompression`).

---

## Changelog
- Replaced all `load_` methods on `LoadContext` with the new `loader()`
pattern.

## Migration Guide
- Several LoadContext method calls will need to be updated:
- `load_context.load_with_settings(path, settings)` =>
`load_context.loader().with_settings(settings).load(path)`
- `load_context.load_untyped(path)` =>
`load_context.loader().untyped().load(path)`
- `load_context.load_direct(path)` =>
`load_context.loader().direct().load(path)`
- `load_context.load_direct_untyped(path)` =>
`load_context.loader().direct().untyped().load(path)`
- `load_context.load_direct_with_settings(path, settings)` =>
`load_context.loader().with_settings(settings).direct().load(path)`
- `load_context.load_direct_with_reader(reader, path)` =>
`load_context.loader().direct().with_reader(reader).load(path)`
- `load_context.load_direct_with_reader_and_settings(reader, path,
settings)` =>
`load_context.loader().with_settings(settings).direct().with_reader(reader).load(path)`
- `load_context.load_direct_untyped_with_reader(reader, path)` =>
`load_context.loader().direct().with_reader(reader).untyped().load(path)`

---

CC @alice-i-cecile / @bushrat011899 

Examples:
```rust
load_context.loader()
    .with_asset_type::<A>()
    .with_asset_type_id(TypeId::of::<A>())
    .with_settings(|mut settings| { settings.key = value; })
    // Then, for a Handle<A>:
    .load::<A>()
    // Or, for a Handle<LoadedUntypedAsset>:
    .untyped()
    .load()
    // Or, to load an `A` directly:
    .direct()
    .load::<A>()
    .await
    // Or, to load an `ErasedLoadedAsset` directly:
    .direct()
    .untyped()
    .load()
    .await
```
2024-05-22 23:35:41 +00:00
..
files Add example for using .meta files (#12882) 2024-04-08 17:10:56 +00:00
processing Make LoadContext use the builder pattern for loading dependent assets (#13465) 2024-05-22 23:35:41 +00:00
asset_decompression.rs Make LoadContext use the builder pattern for loading dependent assets (#13465) 2024-05-22 23:35:41 +00:00
asset_loading.rs Migrate from LegacyColor to bevy_color::Color (#12163) 2024-02-29 19:35:12 +00:00
asset_settings.rs Fix unfinished sentence in a comment in asset_settings example (#13243) 2024-05-05 14:13:27 +00:00
custom_asset_reader.rs Use async-fn in traits rather than BoxedFuture (#12550) 2024-03-18 17:56:57 +00:00
custom_asset.rs Fix some doc warnings (#12961) 2024-04-14 15:23:44 +00:00
embedded_asset.rs Add extra_asset_source example (#11824) 2024-03-06 16:00:03 +00:00
extra_source.rs Use .register_asset_source() in extra_asset_source example (#12350) 2024-03-07 05:44:52 +00:00
hot_asset_reloading.rs Change light defaults & fix light examples (#11581) 2024-02-14 20:43:10 +00:00
repeated_texture.rs Example with repeated texture (#13176) 2024-05-05 17:29:26 +00:00