Struct game::app::App

source · []
pub struct App {
    pub primary: PerMap,
    pub secondary: Option<PerMap>,
    pub store_unedited_map_in_secondary: bool,
    pub cs: ColorScheme,
    pub opts: Options,
    pub per_obj: PerObjectActions,
    pub session: SessionState,
}
Expand description

The top-level data that lasts through the entire game, no matter what state the game is in.

Fields

primary: PerMap

State (like the simulation and drawing stuff) associated with the “primary” map.

secondary: Option<PerMap>

Represents state for a different version of the primary map. swap_map can be used to switch the primary and secondary state. This is currently used to compare an edited and unedited map for Ungap the Map and as a debug mode to compare different files representing the same area.

store_unedited_map_in_secondary: boolcs: ColorSchemeopts: Optionsper_obj: PerObjectActionssession: SessionState

Static data that lasts the entire session. Use sparingly.

Implementations

Assumes some defaults.

Ensure the map edits are blank, reset the simulation, and blank out prebaked results.

This swaps the primary and secondary PerMaps. Depending on what state the rest of the app is in, things like IDs might totally change!

If an intersection was clicked, return its ID.

Trait Implementations

Create a widgetry::State that warps to the given point.

Change the color scheme. Idempotent. Return true if there was a change.

Should the user be able to control the z-order visible? The control is only present when zoomed in, placed beneath the zoom column. Read more

Is there some additional layer displayed on the minimap? If this changes, the panel gets recalculated. Read more

Draw extra stuff on the minimap, just pulling from the app.

When unzoomed, display this panel. By default, no controls when unzoomed.

A row beneath the minimap in the zoomed view, usually used as a legend for things on the minimap. Read more

Controls to be placed to the left to the zoomed-in panel

If a button is clicked that was produced by some method in this trait, respond to it here.

Called for Outcome::Changed on the panel.

Before State::event is called, call this.

When DrawBaselayer::DefaultDraw is called, run this.

Will be called if State::event or State::draw panics.

Called before a normal exit, like window close

If widgetry determines the video card is low on memory, this may be called. The application should make its best effort to delete any unused Drawables. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked.

Called when the mouse has moved.

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when the mouse has moved.

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked.

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

Called when something on the panel has been clicked. Since the action is just a string, the fallback case can just use unreachable!(). Read more

Called when something on the panel has changed. If a transition is returned, stop handling the event and immediately apply the transition. Read more

If a panel on_click event didn’t occur and panel_changed didn’t return transition, then call this to handle all other events. Read more

Called when something on the panel has been clicked.

Called when the mouse has moved.

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Specifies what to draw before draw()

Draw

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Specifies what to draw before draw()

Draw

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Specifies what to draw before draw()

Draw

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Before this state is popped or replaced, call this.

Specifies what to draw before draw()

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Specifies what to draw before draw()

Draw

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Specifies what to draw before draw()

Draw

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Specifies what to draw before draw()

Draw

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Specifies what to draw before draw()

Draw

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Before this state is popped or replaced, call this.

Specifies what to draw before draw()

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Before this state is popped or replaced, call this.

Specifies what to draw before draw()

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Respond to a UI event, such as input or time passing.

Draw

Specifies what to draw before draw()

Before this state is popped or replaced, call this.

Respond to Transition::Recreate by assuming state in the app has changed, but preserving the State-specific state appropriately. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

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

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

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

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

Returns the argument unchanged.

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

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

Calls U::from(self).

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.