Hi, I am trying to implement a custom projection so I can use a different coordinate system space.
While mimicking the internal classes and following https://bevy-cheatbook.github.io/cookbook/custom-projection.html, I have arrived an issue where I cannot satisfy this trait:
error[E0277]: the trait bound `CameraProjectionPlugin<camera::PerspectiveProjection>: bevy_app::plugin::sealed::Plugins<_>` is not satisfied
--> src\lib.rs:34:22
|
34 | .add_plugins(CameraProjectionPlugin::<PerspectiveProjection>::default())
| ----------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `bevy_app::plugin::sealed::Plugins<_>` is not implemented for `CameraProjectionPlugin<camera::PerspectiveProjection>`
| |
| required by a bound introduced by this call
|
= help: the following other types implement trait `bevy_app::plugin::sealed::Plugins<Marker>`:
<() as bevy_app::plugin::sealed::Plugins<(bevy_app::plugin::sealed::PluginsTupleMarker,)>>
<(S0, S1) as bevy_app::plugin::sealed::Plugins<(bevy_app::plugin::sealed::PluginsTupleMarker, P0, P1)>>
<(S0, S1, S2) as bevy_app::plugin::sealed::Plugins<(bevy_app::plugin::sealed::PluginsTupleMarker, P0, P1, P2)>>
<(S0, S1, S2, S3) as bevy_app::plugin::sealed::Plugins<(bevy_app::plugin::sealed::PluginsTupleMarker, P0, P1, P2, P3)>>
<(S0, S1, S2, S3, S4) as bevy_app::plugin::sealed::Plugins<(bevy_app::plugin::sealed::PluginsTupleMarker, P0, P1, P2, P3, P4)>>
<(S0, S1, S2, S3, S4, S5) as bevy_app::plugin::sealed::Plugins<(bevy_app::plugin::sealed::PluginsTupleMarker, P0, P1, P2, P3, P4, P5)>>
<(S0, S1, S2, S3, S4, S5, S6) as bevy_app::plugin::sealed::Plugins<(bevy_app::plugin::sealed::PluginsTupleMarker, P0, P1, P2, P3, P4, P5, P6)>>
<(S0, S1, S2, S3, S4, S5, S6, S7) as bevy_app::plugin::sealed::Plugins<(bevy_app::plugin::sealed::PluginsTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7)>>
and 8 others
= note: required for `CameraProjectionPlugin<camera::PerspectiveProjection>` to implement `Plugins<_>`
note: required by a bound in `bevy::prelude::App::add_plugins`
--> C:\Users\marst\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bevy_app-0.12.1\src\app.rs:721:52
|
721 | pub fn add_plugins<M>(&mut self, plugins: impl Plugins<M>) -> &mut Self {
| ^^^^^^^^^^ required by this bound in `App::add_plugins`
My PerspectiveProjection class satisfies the requirements in everything else it seems.
I am not too sure what the 'sealed' is supposed to signify though, nor do I see it mentioned anywhere in those files.