- Add `load_resource_with` extension function which inserts a loadable
resource by value without requiring implementing `FromWorld` trait.
- Add singleton-like `ManifestResource` which holds a `ManifestAsset`
of a given asset type. Once loaded, the resource is added, just like
`load_resource` did previously.
- Add a `Manifest` system param with a helper lookup function to make
looking up entries easier as you'd otherwise need 3 system params.
- Add a `InitManifest` extension trait for easy setup
- Add a `blocks.manifest.ron` file that references all blocks
- Implement `ManifestEntry` on `BlockDefinition` and `BlockVisuals`
- Remove `BlockDefinitionCollection` and `BlockVisualsCollection`
- Move `asset_loading` to `assets/asset_tracking`
- Move `assets/block` to `assets/block_visuals`
- Add `Identifier<T>`, a safe wrapper around strings
- `Block` component now has `pos` and `id`
- `BlockPos` is no longer a component
- Add `default` and `platform` block definitions
- Steal `asset_loading` from `bevy_new_2d`
- Rename `BlockResources` to `BlockAssets`
- Remove `common::blocks::*` re-exports
- Turn `Args` into a resource and insert it
- Add `Screen` state to see when loading finishes
- Run gameplay systems only in `Gameplay` state
- Start server / connect when loading finishes
- Parse CLI arguments using `clap`
- Or get them from browser location on web
- Support `Local`, `Host` and `Connect` modes
- Use commands for starting and connecting
- Only `spawn_initial_blocks` when server is started
- Use `autoconnect_host_client` for local servers
- Correctly handle client and server events