Skip to main content

RespawnSystem

Struct RespawnSystem 

Source
pub struct RespawnSystem {
    pub last_checkpoint: Option<u64>,
    pub respawn_count: u32,
    pub activation_radius: f32,
    /* private fields */
}
Expand description

Tracks the active checkpoint and handles player respawning.

Call update_checkpoint periodically (e.g. when the player enters a checkpoint trigger zone) to register the nearest checkpoint as active. Call respawn on player death to retrieve the saved state.

Fields§

§last_checkpoint: Option<u64>

The id of the last activated checkpoint, if any.

§respawn_count: u32

How many times the player has respawned.

§activation_radius: f32

The minimum distance from a checkpoint to auto-activate it.

Implementations§

Source§

impl RespawnSystem

Source

pub fn new() -> Self

Create a new respawn system with no active checkpoint.

Source

pub fn with_activation_radius(self, r: f32) -> Self

Source

pub fn update_checkpoint( &mut self, manager: &CheckpointManager, player_pos: Vec2, ) -> Option<u64>

Update the active checkpoint based on the player’s current position.

If the player is within activation_radius of any checkpoint, the nearest one becomes the active checkpoint. Returns the id of the newly activated checkpoint (if one was activated this call) or None.

Source

pub fn activate(&mut self, checkpoint_id: u64)

Manually activate a checkpoint by id.

Source

pub fn deactivate(&mut self)

Clear the active checkpoint (e.g. at the start of a level).

Source

pub fn respawn<'a>( &mut self, manager: &'a CheckpointManager, game_time: f64, ) -> Option<&'a WorldSnapshot>

Get the snapshot to restore on respawn.

Returns None if no checkpoint has been activated.

Source

pub fn peek_snapshot<'a>( &self, manager: &'a CheckpointManager, ) -> Option<&'a WorldSnapshot>

Get the snapshot without incrementing the respawn counter.

Source

pub fn has_checkpoint(&self) -> bool

Source

pub fn respawn_history(&self) -> &[RespawnEvent]

Source

pub fn clear_history(&mut self)

Source

pub fn checkpoint_position(&self, manager: &CheckpointManager) -> Option<Vec2>

The position of the active checkpoint, if any.

Trait Implementations§

Source§

impl Default for RespawnSystem

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn 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.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

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.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,