Struct bevy_backroll::BackrollStage
source · [−]pub struct BackrollStage<Input> where
Input: PartialEq + Pod + Zeroable + Send + Sync, { /* private fields */ }
Expand description
A Stage that transparently runs and handles Backroll sessions.
Each time the stage runs, it will poll the Backroll session, sample local player inputs for the session, then advance the frame.
The stage will automatically handle Backroll commands by doing the following:
- Command::Save: Saves an immutable copy of the components and resoures from the
main app
World
into a save state. - Command::Load: Loads a prior saved World state into the main app
World
. - Command::AdvanceFrame: Injects the provided GameInput as a resource then runs all simulation based systems once (see: add_rollback_system)
- Command::Event: Forwards all events to Bevy. Can be read out via EventReader. Automatically handles time synchronization by smoothly injecting stall frames when ahead of remote players.
This stage is best used with a FixedTimestep run criteria to ensure that the systems are running at a consistent rate on all players in the game.
This stage will only run when there is a P2PSession with the same Config parameter registered as a resource within the running World. If the stage was added via BackrollPlugin, BackrollCommands::start_backroll_session and BackrollCommands::end_backroll_session can be used to start or end a session.
Trait Implementations
Auto Trait Implementations
impl<Input> !RefUnwindSafe for BackrollStage<Input>
impl<Input> Send for BackrollStage<Input>
impl<Input> Sync for BackrollStage<Input>
impl<Input> Unpin for BackrollStage<Input>
impl<Input> !UnwindSafe for BackrollStage<Input>
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more