Struct specs::World [] [src]

pub struct World {
    pub res: Resources,
    // some fields omitted
}

The World struct contains the component storages and other resources.

Many methods take &self which works because everything is stored with interior mutability. In case you violate the borrowing rules of Rust (multiple reads xor one write), you will get a panic.

Component / Resources ids

Components and resources may, in addition to their type, be identified by an id of type usize. The convenience methods dealing with components assume that it's 0.

If a system attempts to access a component/resource that has not been registered/added, it will panic when run. Add all components with World::register before running any systems. Also add all resources with World::add_resource.

Fields

The resources used for this world.

Methods

impl World
[src]

Creates a new empty World.

Registers a new component.

Calls register_with_id with id 0, which is the default for component ids.

Does nothing if the component was already registered.

Registers a new component with a given id.

Does nothing if the component was already registered.

Adds a resource with the default ID (0).

If the resource already exists it will be overwritten.

Adds a resource with a given ID.

If the resource already exists it will be overwritten.

Fetches a component's storage with the default id for reading.

Convenience method for read_with_id, using the default component id (0).

Panics

Panics if it is already borrowed mutably.

Fetches a component's storage with the default id for writing.

Convenience method for write_with_id, using the default component id (0).

Panics

Panics if it is already borrowed.

Fetches a component's storage with a specified id for reading.

Panics

Panics if it is already borrowed mutably. Also panics if the component is not registered with World::register.

Fetches a component's storage with a specified id for writing.

Panics

Panics if it is already borrowed. Also panics if the component is not registered with World::register.

Fetches a resource with a specified id for reading.

Panics

Panics if it is already borrowed mutably.

Fetches a resource with a specified id for writing.

Panics

Panics if it is already borrowed.

Fetches a resource with the default id for reading.

Convenience method for read_resource_with_id, using the default component id (0).

Panics

Panics if it is already borrowed mutably.

Fetches a resource with the default id for writing.

Convenience method for write_resource_with_id, using the default component id (0).

Panics

Panics if it is already borrowed.

Convenience method for fetching entities.

Creation and deletion of entities with the Entities struct are atomically, so the actual changes will be applied with the next call to maintain().

Allows building an entity with its components.

Returns an iterator for entity creation. This makes it easy to create a whole collection of them.

Examples

use specs::World;

let mut world = World::new();
let five_entities: Vec<_> = world.create_iter().take(5).collect();

Deletes an entity and its components.

Deletes the specified entities and their components.

Checks if an entity is alive. Please note that atomically created or deleted entities (the ones created / deleted with the Entities struct) are not handled by this method. Therefore, you should have called maintain() before using this method.

If you want to get this functionality before a maintain(), you are most likely in a system; from there, just access the Entities resource and call the is_alive method.

Panics

Panics if generation is dead.

Merges in the appendix, recording all the dynamically created and deleted entities into the persistent generations vector. Also removes all the abandoned components.

Additionally, LazyUpdate will be merged.

Trait Implementations

impl Default for World
[src]

Returns the "default value" for a type. Read more