pub struct PerMap {Show 16 fields
pub map: Map,
pub draw_map: DrawMap,
pub sim: Sim,
pub agents: RefCell<AgentCache>,
pub current_selection: Option<ID>,
pub current_flags: Flags,
pub last_warped_from: Option<(Pt2D, f64)>,
pub sim_cb: Option<Box<dyn SimCallback>>,
pub dirty_from_edits: bool,
pub has_modified_trips: bool,
pub unedited_map: Option<Map>,
pub layer: Option<Box<dyn Layer>>,
pub suspended_sim: Option<Sim>,
prebaked: Option<(MapName, String, Analytics)>,
pub scenario: Option<Scenario>,
pub is_secondary: bool,
}
Expand description
All of the state that’s bound to a specific map.
Fields§
§map: Map
§draw_map: DrawMap
§sim: Sim
§agents: RefCell<AgentCache>
§current_selection: Option<ID>
§current_flags: Flags
§last_warped_from: Option<(Pt2D, f64)>
§sim_cb: Option<Box<dyn SimCallback>>
§dirty_from_edits: bool
If we ever left edit mode and resumed without restarting from midnight, this is true.
has_modified_trips: bool
Any ScenarioModifiers in effect?
unedited_map: Option<Map>
If the map has been edited and app.store_unedited_map_in_secondary
is false, store the
unedited map here.
layer: Option<Box<dyn Layer>>
§suspended_sim: Option<Sim>
Only filled out in edit mode. Stored here once to avoid lots of clones. Used for preview.
prebaked: Option<(MapName, String, Analytics)>
Only exists in some gameplay modes. Must be carefully reset otherwise. Has the map and scenario name too.
scenario: Option<Scenario>
The most recent Scenario loaded from a file. Don’t depend on it always matching the current gameplay mode; always verify the name matches what’s needed.
Storing this may cost some memory, but otherwise resetting to midnight would require loading it again from a file. This is particularly painful on the web!
is_secondary: bool
Is this the original “secondary” state, loaded via –diff?
Implementations§
Source§impl PerMap
impl PerMap
pub fn map_loaded( map: Map, sim: Sim, flags: Flags, opts: &Options, cs: &ColorScheme, ctx: &mut EventCtx<'_>, timer: &mut Timer<'_>, ) -> PerMap
pub fn init_camera_for_loaded_map(&mut self, ctx: &mut EventCtx<'_>)
pub fn canonical_point(&self, id: ID) -> Option<Pt2D>
pub fn get_obj_outline( &self, ctx: &EventCtx<'_>, id: ID, cs: &ColorScheme, map: &Map, agents: &mut AgentCache, ) -> Option<Tessellation>
Auto Trait Implementations§
impl !Freeze for PerMap
impl !RefUnwindSafe for PerMap
impl !Send for PerMap
impl !Sync for PerMap
impl Unpin for PerMap
impl !UnwindSafe for PerMap
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
§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>
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>
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)
&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)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.