pub struct Session {
pub levels: Vec<Level>,
pub enable_modding: bool,
pub colors: ColorScheme,
pub high_scores: HashMap<String, Vec<usize>>,
pub levels_unlocked: usize,
pub current_vehicle: String,
pub vehicles_unlocked: BTreeSet<String>,
pub upzones_unlocked: usize,
pub upzones_explained: bool,
pub upzones_per_level: MultiMap<String, BuildingID>,
pub music: Music,
pub play_music: bool,
}
Expand description
Persistent state that lasts across levels.
Fields
levels: Vec<Level>
enable_modding: bool
Enable this to use the levels, instead of overwriting them with the version in the code.
colors: ColorScheme
high_scores: HashMap<String, Vec<usize>>
Level title -> the top 3 scores
levels_unlocked: usize
current_vehicle: String
vehicles_unlocked: BTreeSet<String>
upzones_unlocked: usize
upzones_explained: bool
upzones_per_level: MultiMap<String, BuildingID>
music: Music
play_music: bool
Implementations
sourceimpl Session
impl Session
pub fn load() -> Session
sourcepub fn record_score(
&mut self,
level: String,
score: usize
) -> Option<Vec<String>>
pub fn record_score(
&mut self,
level: String,
score: usize
) -> Option<Vec<String>>
If a message is returned, a new level and some powers were unlocked.
pub fn unlock_all(&mut self)
pub fn update_music(&mut self, ctx: &mut EventCtx<'_>)
pub fn save(&self)
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Session
impl<'de> Deserialize<'de> for Session
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl !RefUnwindSafe for Session
impl !Send for Session
impl !Sync for Session
impl Unpin for Session
impl !UnwindSafe for Session
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
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
fn as_any(&self) -> &(dyn Any + 'static)
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. Read more
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self