bevy/benches/benches/bevy_ecs
Trashtalk217 d1bd46d45e
Deprecate get_or_spawn (#15652)
# Objective

After merging retained rendering world #15320, we now have a good way of
creating a link between worlds (*HIYAA intensifies*). This means that
`get_or_spawn` is no longer necessary for that function. Entity should
be opaque as the warning above `get_or_spawn` says. This is also part of
#15459.

I'm deprecating `get_or_spawn_batch` in a different PR in order to keep
the PR small in size.

## Solution

Deprecate `get_or_spawn` and replace it with `get_entity` in most
contexts. If it's possible to query `&RenderEntity`, then the entity is
synced and `render_entity.id()` is initialized in the render world.

## Migration Guide

If you are given an `Entity` and you want to do something with it, use
`Commands.entity(...)` or `World.entity(...)`. If instead you want to
spawn something use `Commands.spawn(...)` or `World.spawn(...)`. If you
are not sure if an entity exists, you can always use `get_entity` and
match on the `Option<...>` that is returned.

---------

Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com>
2024-10-07 16:08:22 +00:00
..
components Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
events Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
fragmentation Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
iteration Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
observers Rename observe to observe_entity on EntityWorldMut (#15616) 2024-10-03 17:05:26 +00:00
scheduling Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
world Deprecate get_or_spawn (#15652) 2024-10-07 16:08:22 +00:00
benches.rs Skip empty archetype/table (#14749) 2024-08-15 14:07:20 +00:00
change_detection.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
empty_archetypes.rs Move schedule name into Schedule (#9600) 2023-08-28 20:44:48 +00:00