#[non_exhaustive]pub struct Session {
pub world: World,
pub stages: SystemStages,
pub active: bool,
pub visible: bool,
pub priority: i32,
pub runner: Box<dyn SessionRunner>,
}
Expand description
A bones game. This includes all of the game worlds, and systems.
Session
is not allowed to be constructed directly.
See Sessions::create
or SessionBuilder
for creating a new Session
.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.world: World
The ECS world for the core.
stages: SystemStages
The system stages.
active: bool
Whether or not this session should have it’s systems run.
visible: bool
Whether or not this session should be rendered.
priority: i32
The priority of this session relative to other sessions in the Game
.
runner: Box<dyn SessionRunner>
The session runner to use for this session.
Implementations§
source§impl Session
impl Session
sourcepub fn snapshot(&self) -> World
pub fn snapshot(&self) -> World
Snapshot the world state.
This is the same as core.world.clone()
, but it is more explicit.
sourcepub fn restore(&mut self, world: &mut World)
pub fn restore(&mut self, world: &mut World)
Restore the world state.
Re-sets the world state to that of the provided world
, which may or may not have been
created with snapshot()
.
This is the same as doing an std::mem::swap
on self.world
, but it is more explicit.
sourcepub fn set_session_runner(&mut self, runner: Box<dyn SessionRunner>)
pub fn set_session_runner(&mut self, runner: Box<dyn SessionRunner>)
Set the session runner for this session.
Methods from Deref<Target = SystemStages>§
pub fn handle_startup(&mut self, world: &mut World)
pub fn handle_startup(&mut self, world: &mut World)
If SessionStarted
resource indicates have not yet started,
perform startup tasks (insert startup resources, run startup systems).
For advanced use cases in which want to only insert startup resources, or run startup systems and split this
behavior, see SystemStages::handle_startup_systems
and [SystemStages::handle_startup_resources
].
While this is used internally by SystemStages::run
, this is also used
for resetting world. This allows world to immediately startup and re-initialize after reset.
§Panics
May panic if resources are borrowed, should not borrow resources when calling.
pub fn handle_startup_resources(&mut self, world: &mut World)
pub fn handle_startup_resources(&mut self, world: &mut World)
If SessionStarted
resource indicates startup resources have not yet been inserted, will do so and update SessionStarted
.
This function contains only half of stage’s startup behavior, see SystemStages::handle_startup
if not intending to split
resource insertion from startup systems (Splitting these is more for advanced special cases).
§Panics
May panic if resources are borrowed, should not borrow resources when calling.
pub fn handle_startup_systems(&mut self, world: &mut World)
pub fn handle_startup_systems(&mut self, world: &mut World)
If SessionStarted
resource indicates startup systems have not yet been executed, will do so and update SessionStarted
.
This function contains only half of stage’s startup behavior, see SystemStages::handle_startup
if not intending to split
startup system execution from startup resource insertion (Splitting these is more for advanced special cases).
§Panics
May panic if resources are borrowed, should not borrow resources when calling.