bevy/crates
urben1680 10433f60e1
Adding ScheduleGraph::contains_set (#16206)
# Objective

The schedule graph can easily confirm whether a set is contained or not.

This helps me in my personal project where I write an extension trait
for `Schedule` and I want to configure a specific set in its methods.
The set in question has a run condition though and I don't want to add
that condition to the same schedule as many times as the trait methods
are called. Since the non-pub set is unknown to the schedule until then,
a `contains_set` is sufficient.

It is probably trivial to add a method that returns an `Option<NodeId>`
as well but as I personally don't need it I did not add that. If it is
desired I can do so here though. It might be unneeded to have a
`contains_set` then because one could check `is_some` on the returned id
in that case.

An argument against that is that future changes may be easier if only a
`contains_set` needs to be ported.

## Solution

Added `ScheduleGraph::contains_set`.

## Testing

I put the below showcase code into a temporary unit test and it worked.
If wanted I add it as a test too but I did not see that other more
somewhat complicated methods have tests

---

## Showcase

```rs
#[derive(ScheduleLabel, Debug, Default, Clone, Copy, PartialEq, Eq, Hash)]
struct MySchedule;

#[derive(SystemSet, Debug, Default, Clone, Copy, PartialEq, Eq, Hash)]
struct MySet;

let mut schedule = Schedule::new(MySchedule);
assert_eq!(schedule.graph().contains_set(MySet), false);
schedule.configure_sets(MySet);
assert_eq!(schedule.graph().contains_set(MySet), true);
```
2024-11-05 22:31:36 +01:00
..
bevy_a11y Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_animation Undeprecate is_playing_animation (#16121) 2024-11-05 22:27:28 +01:00
bevy_app Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_asset Update notify-debouncer-full requirement from 0.3.1 to 0.4.0 (#16133) 2024-11-05 22:28:18 +01:00
bevy_audio Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_color Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_core Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_core_pipeline Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_derive Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_dev_tools Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_diagnostic Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_dylib Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_ecs Adding ScheduleGraph::contains_set (#16206) 2024-11-05 22:31:36 +01:00
bevy_encase_derive Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_gilrs Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_gizmos Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_gltf Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_hierarchy Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_image Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_input Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_internal Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_log Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_macro_utils Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_math Implement Measured2d for Arc2d-based primitives. (#16213) 2024-11-05 22:31:36 +01:00
bevy_mesh Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_mikktspace Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_pbr Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_picking Add button_just_down and button_just_up methods to PointerInput (#16176) 2024-11-05 22:31:35 +01:00
bevy_ptr Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_reflect Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_remote Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_render Fix and improve MSAA documentation (#16196) 2024-11-05 22:31:35 +01:00
bevy_scene Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_sprite Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_state Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_tasks Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_text Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_time Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_transform Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_ui Remove the Globals binding from the box shadow shader (#16177) 2024-11-05 22:31:35 +01:00
bevy_utils Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_window Release 0.15.0-rc.2 2024-10-27 21:53:37 +01:00
bevy_winit Correctly feature gate custom_cursor (#16093) 2024-11-05 22:31:36 +01:00