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§
Source§impl 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§
Source§impl<'de> Deserialize<'de> for Session
impl<'de> Deserialize<'de> for Session
Source§fn 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 !Freeze for Session
impl !RefUnwindSafe for Session
impl !Send for Session
impl !Sync for Session
impl Unpin for Session
impl !UnwindSafe for Session
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn 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 Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
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
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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
.§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.§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.