Struct oxygengine::core::prelude::CommandBuffer
pub struct CommandBuffer { /* private fields */ }
Expand description
Records operations for future application to a World
Useful when operations cannot be applied directly due to ordering concerns or borrow checking.
let mut world = World::new();
let entity = world.reserve_entity();
let mut cmd = CommandBuffer::new();
cmd.insert(entity, (true, 42));
cmd.run_on(&mut world); // cmd can now be reused
assert_eq!(*world.get::<&i32>(entity).unwrap(), 42);
Implementations§
§impl CommandBuffer
impl CommandBuffer
pub fn new() -> CommandBuffer
pub fn new() -> CommandBuffer
Create an empty command buffer
pub fn insert(&mut self, entity: Entity, components: impl DynamicBundle)
pub fn insert(&mut self, entity: Entity, components: impl DynamicBundle)
Add components from bundle
to entity
, if it exists
Pairs well with World::reserve_entity
to spawn entities with a known handle.
When inserting a single component, see insert_one
for convenience.
pub fn insert_one(&mut self, entity: Entity, component: impl Component)
pub fn insert_one(&mut self, entity: Entity, component: impl Component)
Add component
to entity
, if the entity exists
See insert
.
pub fn remove<T>(&mut self, ent: Entity)where
T: Bundle + 'static,
pub fn remove<T>(&mut self, ent: Entity)where T: Bundle + 'static,
Remove components from entity
if they exist
When removing a single component, see remove_one
for convenience.
pub fn remove_one<T>(&mut self, ent: Entity)where
T: Component,
pub fn remove_one<T>(&mut self, ent: Entity)where T: Component,
Remove a component from entity
if it exists
See remove
.
pub fn spawn(&mut self, components: impl DynamicBundle)
pub fn spawn(&mut self, components: impl DynamicBundle)
Spawn a new entity with components
If the Entity
is needed immediately, consider combining World::reserve_entity
with
insert
instead.
pub fn run_on(&mut self, world: &mut World)
pub fn run_on(&mut self, world: &mut World)
Run recorded commands on world
, clearing the command buffer
pub fn clear(&mut self)
pub fn clear(&mut self)
Drop all recorded commands
Trait Implementations§
§impl Default for CommandBuffer
impl Default for CommandBuffer
§fn default() -> CommandBuffer
fn default() -> CommandBuffer
Create an empty buffer