Struct bevy_proto_typetag::data::ProtoCommands
source · pub struct ProtoCommands<'w, 's, 'a, 'p> { /* private fields */ }
Expand description
Implementations§
source§impl<'w, 's, 'a, 'p> ProtoCommands<'w, 's, 'a, 'p>
impl<'w, 's, 'a, 'p> ProtoCommands<'w, 's, 'a, 'p>
sourcepub fn raw_commands(&mut self) -> &mut EntityCommands<'w, 's, 'a>
pub fn raw_commands(&mut self) -> &mut EntityCommands<'w, 's, 'a>
Get raw access to [EntityCommands
]
sourcepub fn protoype(&self) -> &dyn Prototypical
pub fn protoype(&self) -> &dyn Prototypical
Get the associated prototype
sourcepub fn get_handle<T, I>(
&self,
component: &dyn ProtoComponent,
id: I
) -> Option<Handle<T>>where
T: Asset,
I: Into<HandleId>,
pub fn get_handle<T, I>( &self, component: &dyn ProtoComponent, id: I ) -> Option<Handle<T>>where T: Asset, I: Into<HandleId>,
Get a cloned handle
Arguments
component
: The ProtoComponent this handle belongs toid
: The handle’s id
returns: Option<Handle
sourcepub fn get_handle_weak<T: Asset>(
&self,
component: &dyn ProtoComponent,
id: HandleId
) -> Option<Handle<T>>
pub fn get_handle_weak<T: Asset>( &self, component: &dyn ProtoComponent, id: HandleId ) -> Option<Handle<T>>
Get a weakly cloned handle
Arguments
component
: The ProtoComponent this handle belongs toid
: The handle’s id
returns: Option<Handle
sourcepub fn get_untyped_handle(
&self,
component: &dyn ProtoComponent,
id: HandleId,
asset_type: Uuid
) -> Option<&HandleUntyped>
pub fn get_untyped_handle( &self, component: &dyn ProtoComponent, id: HandleId, asset_type: Uuid ) -> Option<&HandleUntyped>
Get a untyped handle reference
Arguments
component
: The ProtoComponent this handle belongs topath
: The handle’s pathasset_type
: The asset type
returns: Option<&HandleUntyped>
Methods from Deref<Target = EntityCommands<'w, 's, 'a>>§
pub fn id(&self) -> Entity
pub fn id(&self) -> Entity
Returns the [Entity
] id of the entity.
Example
fn my_system(mut commands: Commands) {
let entity_id = commands.spawn_empty().id();
}
pub fn insert(&mut self, bundle: impl Bundle) -> &mut EntityCommands<'w, 's, 'a>
pub fn insert(&mut self, bundle: impl Bundle) -> &mut EntityCommands<'w, 's, 'a>
Adds a [Bundle
] of components to the entity.
This will overwrite any previous value(s) of the same component type.
Panics
The command will panic when applied if the associated entity does not exist.
Example
#[derive(Component)]
struct Health(u32);
#[derive(Component)]
struct Strength(u32);
#[derive(Component)]
struct Defense(u32);
#[derive(Bundle)]
struct CombatBundle {
health: Health,
strength: Strength,
}
fn add_combat_stats_system(mut commands: Commands, player: Res<PlayerEntity>) {
commands
.entity(player.entity)
// You can insert individual components:
.insert(Defense(10))
// You can also insert pre-defined bundles of components:
.insert(CombatBundle {
health: Health(100),
strength: Strength(40),
})
// You can also insert tuples of components and bundles.
// This is equivalent to the calls above:
.insert((
Defense(10),
CombatBundle {
health: Health(100),
strength: Strength(40),
},
));
}
pub fn remove<T>(&mut self) -> &mut EntityCommands<'w, 's, 'a>where
T: Bundle,
pub fn remove<T>(&mut self) -> &mut EntityCommands<'w, 's, 'a>where T: Bundle,
Removes a [Bundle
] of components from the entity.
See EntityMut::remove
for more
details.
Example
#[derive(Component)]
struct Health(u32);
#[derive(Component)]
struct Strength(u32);
#[derive(Component)]
struct Defense(u32);
#[derive(Bundle)]
struct CombatBundle {
health: Health,
strength: Strength,
}
fn remove_combat_stats_system(mut commands: Commands, player: Res<PlayerEntity>) {
commands
.entity(player.entity)
// You can remove individual components:
.remove::<Defense>()
// You can also remove pre-defined Bundles of components:
.remove::<CombatBundle>()
// You can also remove tuples of components and bundles.
// This is equivalent to the calls above:
.remove::<(Defense, CombatBundle)>();
}
pub fn despawn(&mut self)
pub fn despawn(&mut self)
Despawns the entity.
See [World::despawn
] for more details.
Panics
The command will panic when applied if the associated entity does not exist.
Example
fn remove_character_system(
mut commands: Commands,
character_to_remove: Res<CharacterToRemove>
)
{
commands.entity(character_to_remove.entity).despawn();
}
pub fn add<C>(&mut self, command: C) -> &mut EntityCommands<'w, 's, 'a>where
C: EntityCommand,
pub fn add<C>(&mut self, command: C) -> &mut EntityCommands<'w, 's, 'a>where C: EntityCommand,
Pushes an [EntityCommand
] to the queue, which will get executed for the current [Entity
].
Examples
commands
.spawn_empty()
// Closures with this signature implement `EntityCommand`.
.add(|id: Entity, world: &mut World| {
println!("Executed an EntityCommand for {id:?}");
});
pub fn log_components(&mut self)
pub fn log_components(&mut self)
Logs the components of the entity at the info level.
Panics
The command will panic when applied if the associated entity does not exist.
pub fn commands(&mut self) -> &mut Commands<'w, 's>
pub fn commands(&mut self) -> &mut Commands<'w, 's>
Returns the underlying [Commands
].
Trait Implementations§
source§impl<'w, 's, 'a, 'p> Deref for ProtoCommands<'w, 's, 'a, 'p>
impl<'w, 's, 'a, 'p> Deref for ProtoCommands<'w, 's, 'a, 'p>
source§impl<'w, 's, 'a, 'p> DerefMut for ProtoCommands<'w, 's, 'a, 'p>
impl<'w, 's, 'a, 'p> DerefMut for ProtoCommands<'w, 's, 'a, 'p>
source§impl<'w, 's, 'a, 'p> From<ProtoCommands<'w, 's, 'a, 'p>> for EntityCommands<'w, 's, 'a>
impl<'w, 's, 'a, 'p> From<ProtoCommands<'w, 's, 'a, 'p>> for EntityCommands<'w, 's, 'a>
source§fn from(cmds: ProtoCommands<'w, 's, 'a, 'p>) -> Self
fn from(cmds: ProtoCommands<'w, 's, 'a, 'p>) -> Self
Auto Trait Implementations§
impl<'w, 's, 'a, 'p> !RefUnwindSafe for ProtoCommands<'w, 's, 'a, 'p>
impl<'w, 's, 'a, 'p> Send for ProtoCommands<'w, 's, 'a, 'p>
impl<'w, 's, 'a, 'p> Sync for ProtoCommands<'w, 's, 'a, 'p>
impl<'w, 's, 'a, 'p> Unpin for ProtoCommands<'w, 's, 'a, 'p>where 's: 'a, 'w: 'a,
impl<'w, 's, 'a, 'p> !UnwindSafe for ProtoCommands<'w, 's, 'a, 'p>
Blanket Implementations§
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
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
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.