Skip to main content

bevy_adventure/camera/
back.rs

1use bevy::prelude::*;
2
3/// A component for a `CameraSpot` that defines what spot you will go back when at that spot.
4///
5/// Overrides `BackToState`.
6#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7#[derive(Component, Debug, Default, Reflect)]
8#[reflect(Component)]
9pub struct BackToSpot {
10    /// The name of the target spot.
11    pub name: String,
12}
13
14impl BackToSpot {
15    /// Returns a new instance of `BackToSpot`.
16    pub fn new(name: &str) -> Self {
17        Self {
18            name: name.to_owned(),
19        }
20    }
21}
22
23/// A component for a `CameraSpot` that defines what state you will go back when at that spot.
24#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
25#[derive(Component, Debug, Default)]
26pub struct BackToState<S> {
27    /// The state to go back to.
28    pub state: S,
29}
30
31impl<S> BackToState<S> {
32    /// Returns a new instance of `BackToState`.
33    pub fn new(state: S) -> Self {
34        Self { state }
35    }
36}