I attempted to update my project to Bevy 0.9, which was just released a few days ago, and the majority of the iyes_loopless functionality broke.
Specifically, it seems most of the new methods added to App are not being found, like add_loopless_state, add_exit_system and add_enter_system. These all have the very simple error in the form:
no method named `add_loopless_state` found for struct `bevy::prelude::App` in the current scope
It also can't find the run_in_state method when I try to call it on one of my systems when adding it to the app. It works when called directly on a ConditionSet (or at least I'm not seeing a compilation error on it yet). The error I get on this is much more complicated and hard to make sense of, given the extensive layered generics. This is an example:
Also, Bevy now requires all resources to explicitly #[derive(Resource)]. This is breaking the NextState resource.
Further, the trait bounds that ConditionalSet::with_system uses seems to be broken, as every single system I try to add that way is now generating an error that it does not implement the required trait bounds. The error message is again a mess of layered generics that's hard to make sense of, but this is an example, pulled from one of my simplest systems:
the trait bound `for<'r, 's, 't0, 't1, 't2> fn(bevy::prelude::Res<'r, bevy::prelude::Time>, bevy::prelude::Query<'s, 't0, (&'t1 Drag, &'t2 mut Velocity)>) {drag_system}: bevy_ecs::system::function_system::IntoSystem<(), (), _>` is not satisfied
the trait `AddConditionalToSet<ConditionSystemSet, ()>` is implemented for `ConditionalSystemDescriptor`
required for `for<'r, 's, 't0, 't1, 't2> fn(bevy::prelude::Res<'r, bevy::prelude::Time>, bevy::prelude::Query<'s, 't0, (&'t1 Drag, &'t2 mut Velocity)>) {drag_system}` to implement `iyes_loopless::condition::IntoConditionalSystem<_>`
required for `for<'r, 's, 't0, 't1, 't2> fn(bevy::prelude::Res<'r, bevy::prelude::Time>, bevy::prelude::Query<'s, 't0, (&'t1 Drag, &'t2 mut Velocity)>) {drag_system}` to implement `AddConditionalToSet<ConditionSystemSet, _>`r
I'm sure there are other incompatibilities as well, but these are the ones I'm currently seeing.
I attempted to update my project to Bevy 0.9, which was just released a few days ago, and the majority of the iyes_loopless functionality broke.
Specifically, it seems most of the new methods added to
App
are not being found, likeadd_loopless_state
,add_exit_system
andadd_enter_system
. These all have the very simple error in the form:It also can't find the
run_in_state
method when I try to call it on one of my systems when adding it to the app. It works when called directly on aConditionSet
(or at least I'm not seeing a compilation error on it yet). The error I get on this is much more complicated and hard to make sense of, given the extensive layered generics. This is an example:Also, Bevy now requires all resources to explicitly
#[derive(Resource)]
. This is breaking theNextState
resource.Further, the trait bounds that
ConditionalSet::with_system
uses seems to be broken, as every single system I try to add that way is now generating an error that it does not implement the required trait bounds. The error message is again a mess of layered generics that's hard to make sense of, but this is an example, pulled from one of my simplest systems:I'm sure there are other incompatibilities as well, but these are the ones I'm currently seeing.