Skip to main content

SceneManager

Struct SceneManager 

Source
pub struct SceneManager { /* private fields */ }
Expand description

Manages multiple isolated ECS worlds (scenes).

On construction a “default” scene is created and set as the sole active scene. The default scene cannot be destroyed.

§Entity Isolation

Entities spawned in one scene are completely invisible to other scenes. Each scene owns its own World with independent entity allocators, component storage, and archetypes.

Implementations§

Source§

impl SceneManager

Source

pub fn new() -> SceneManager

Creates a new SceneManager with a “default” scene already created and marked active.

Source

pub fn create_scene(&mut self, name: &str) -> Result<u32, GoudError>

Creates a new scene with the given name.

Returns the SceneId on success. Returns an error if a scene with the same name already exists.

Source

pub fn destroy_scene(&mut self, id: u32) -> Result<(), GoudError>

Destroys a scene and frees its resources.

Returns an error if the scene does not exist or if attempting to destroy the default scene.

Source

pub fn get_scene(&self, id: u32) -> Option<&World>

Returns a reference to the World for the given scene.

Source

pub fn get_scene_mut(&mut self, id: u32) -> Option<&mut World>

Returns a mutable reference to the World for the given scene.

Source

pub fn get_scene_by_name(&self, name: &str) -> Option<u32>

Looks up a scene by name, returning its ID if found.

Source

pub fn get_scene_name(&self, id: u32) -> Option<&str>

Returns the name of the scene with the given ID, if it exists.

Source

pub fn set_active(&mut self, id: u32, active: bool) -> Result<(), GoudError>

Sets whether a scene is active.

Active scenes are the ones that participate in the game loop (update, render, etc.). Returns an error if the scene does not exist.

Source

pub fn is_active(&self, id: u32) -> bool

Returns true if the given scene is currently active.

Source

pub fn active_scenes(&self) -> &[u32]

Returns a slice of all currently active scene IDs.

Source

pub fn scene_count(&self) -> usize

Returns the number of occupied scenes (including the default).

Source

pub fn default_scene(&self) -> u32

Returns the ID of the default scene.

Trait Implementations§

Source§

impl Debug for SceneManager

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for SceneManager

Source§

fn default() -> SceneManager

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,