Trait valence::ecs::prelude::Component

pub trait Component: Send + Sync + 'static {
    type Storage: ComponentStorage;
}
Expand description

A data type that can be used to store data for an entity.

Component is a derivable trait: this means that a data type can implement it by applying a #[derive(Component)] attribute to it. However, components must always satisfy the Send + Sync + 'static trait bounds.

§Examples

Components can take many forms: they are usually structs, but can also be of every other kind of data type, like enums or zero sized types. The following examples show how components are laid out in code.

// A component can contain data...
#[derive(Component)]
struct LicensePlate(String);

// ... but it can also be a zero-sized marker.
#[derive(Component)]
struct Car;

// Components can also be structs with named fields...
#[derive(Component)]
struct VehiclePerformance {
    acceleration: f32,
    top_speed: f32,
    handling: f32,
}

// ... or enums.
#[derive(Component)]
enum WheelCount {
    Two,
    Three,
    Four,
}

§Component and data access

See the entity module level documentation to learn how to add or remove components from an entity.

See the documentation for Query to learn how to access component data from a system.

§Choosing a storage type

Components can be stored in the world using different strategies with their own performance implications. By default, components are added to the Table storage, which is optimized for query iteration.

Alternatively, components can be added to the SparseSet storage, which is optimized for component insertion and removal. This is achieved by adding an additional #[component(storage = "SparseSet")] attribute to the derive one:

#[derive(Component)]
#[component(storage = "SparseSet")]
struct ComponentA;

§Implementing the trait for foreign types

As a consequence of the orphan rule, it is not possible to separate into two different crates the implementation of Component from the definition of a type. This means that it is not possible to directly have a type defined in a third party library as a component. This important limitation can be easily worked around using the newtype pattern: this makes it possible to locally define and implement Component for a tuple struct that wraps the foreign type. The following example gives a demonstration of this pattern.

// `Component` is defined in the `bevy_ecs` crate.
use bevy_ecs::component::Component;

// `Duration` is defined in the `std` crate.
use std::time::Duration;

// It is not possible to implement `Component` for `Duration` from this position, as they are
// both foreign items, defined in an external crate. However, nothing prevents to define a new
// `Cooldown` type that wraps `Duration`. As `Cooldown` is defined in a local crate, it is
// possible to implement `Component` for it.
#[derive(Component)]
struct Cooldown(Duration);

§!Sync Components

A !Sync type cannot implement Component. However, it is possible to wrap a Send but not Sync type in SyncCell or the currently unstable Exclusive to make it Sync. This forces only having mutable access (&mut T only, never &T), but makes it safe to reference across multiple threads.

This will fail to compile since RefCell is !Sync.

#[derive(Component)]
struct NotSync {
   counter: RefCell<usize>,
}

This will compile since the RefCell is wrapped with SyncCell.

use bevy_utils::synccell::SyncCell;

// This will compile.
#[derive(Component)]
struct ActuallySync {
   counter: SyncCell<RefCell<usize>>,
}

Required Associated Types§

type Storage: ComponentStorage

A marker type indicating the storage type used for this component. This must be either TableStorage or SparseStorage.

Implementations on Foreign Types§

source§

impl Component for AdvancementCachedBytes
where AdvancementCachedBytes: Send + Sync + 'static,

source§

impl Component for AnvilLevel
where AnvilLevel: Send + Sync + 'static,

source§

impl Component for BossBarHealth
where BossBarHealth: Send + Sync + 'static,

source§

impl Component for BossBarStyle
where BossBarStyle: Send + Sync + 'static,

source§

impl Component for BossBarTitle
where BossBarTitle: Send + Sync + 'static,

source§

impl Component for CommandScopes
where CommandScopes: Send + Sync + 'static,

source§

impl Component for ClientInventoryState
where ClientInventoryState: Send + Sync + 'static,

source§

impl Component for HeldItem
where HeldItem: Send + Sync + 'static,

source§

impl Component for DisplayName
where DisplayName: Send + Sync + 'static,

source§

impl Component for Listed
where Listed: Send + Sync + 'static,

source§

impl Component for Objective
where Objective: Send + Sync + 'static,

source§

impl Component for ObjectiveDisplay
where ObjectiveDisplay: Send + Sync + 'static,

source§

impl Component for ObjectiveScores
where ObjectiveScores: Send + Sync + 'static,

source§

impl Component for OldObjectiveScores
where OldObjectiveScores: Send + Sync + 'static,

source§

impl Component for Rain
where Rain: Send + Sync + 'static,

source§

impl Component for Thunder
where Thunder: Send + Sync + 'static,

source§

impl Component for WorldBorderCenter
where WorldBorderCenter: Send + Sync + 'static,

source§

impl Component for WorldBorderLerp
where WorldBorderLerp: Send + Sync + 'static,

source§

impl Component for WorldBorderPortalTpBoundary

source§

impl Component for WorldBorderWarnBlocks
where WorldBorderWarnBlocks: Send + Sync + 'static,

source§

impl Component for WorldBorderWarnTime
where WorldBorderWarnTime: Send + Sync + 'static,

§

impl Component for Children
where Children: Send + Sync + 'static,

§

impl Component for Name
where Name: Send + Sync + 'static,

§

impl Component for Parent
where Parent: Send + Sync + 'static,

Implementors§

§

impl Component for Direction
where Direction: Send + Sync + 'static,

§

impl Component for GameMode
where GameMode: Send + Sync + 'static,

§

impl Component for ScoreboardPosition
where ScoreboardPosition: Send + Sync + 'static,

§

impl Component for ObjectiveRenderType
where ObjectiveRenderType: Send + Sync + 'static,

source§

impl Component for FlyingSpeed
where FlyingSpeed: Send + Sync + 'static,

source§

impl Component for FovModifier
where FovModifier: Send + Sync + 'static,

source§

impl Component for ActionSequence
where ActionSequence: Send + Sync + 'static,

source§

impl Component for Client
where Client: Send + Sync + 'static,

source§

impl Component for ClientMarker
where ClientMarker: Send + Sync + 'static,

source§

impl Component for EntityRemoveBuf
where EntityRemoveBuf: Send + Sync + 'static,

source§

impl Component for Ip
where Ip: Send + Sync + 'static,

source§

impl Component for OldViewDistance
where OldViewDistance: Send + Sync + 'static,

source§

impl Component for OldVisibleChunkLayer
where OldVisibleChunkLayer: Send + Sync + 'static,

source§

impl Component for OldVisibleEntityLayers
where OldVisibleEntityLayers: Send + Sync + 'static,

source§

impl Component for Properties
where Properties: Send + Sync + 'static,

source§

impl Component for Username
where Username: Send + Sync + 'static,

source§

impl Component for ViewDistance
where ViewDistance: Send + Sync + 'static,

source§

impl Component for VisibleChunkLayer
where VisibleChunkLayer: Send + Sync + 'static,

source§

impl Component for VisibleEntityLayers
where VisibleEntityLayers: Send + Sync + 'static,

source§

impl Component for ClientSettings
where ClientSettings: Send + Sync + 'static,

§

impl Component for AbstractDecorationEntity
where AbstractDecorationEntity: Send + Sync + 'static,

§

impl Component for AbstractDonkeyEntity
where AbstractDonkeyEntity: Send + Sync + 'static,

§

impl Component for Chest
where Chest: Send + Sync + 'static,

§

impl Component for AbstractFireballEntity
where AbstractFireballEntity: Send + Sync + 'static,

§

impl Component for valence::entity::abstract_fireball::Item
where Item: Send + Sync + 'static,

§

impl Component for AbstractHorseEntity
where AbstractHorseEntity: Send + Sync + 'static,

§

impl Component for HorseFlags
where HorseFlags: Send + Sync + 'static,

§

impl Component for AbstractMinecartEntity
where AbstractMinecartEntity: Send + Sync + 'static,

§

impl Component for CustomBlockId
where CustomBlockId: Send + Sync + 'static,

§

impl Component for CustomBlockOffset
where CustomBlockOffset: Send + Sync + 'static,

§

impl Component for CustomBlockPresent
where CustomBlockPresent: Send + Sync + 'static,

§

impl Component for valence::entity::abstract_minecart::DamageWobbleSide
where DamageWobbleSide: Send + Sync + 'static,

§

impl Component for valence::entity::abstract_minecart::DamageWobbleStrength
where DamageWobbleStrength: Send + Sync + 'static,

§

impl Component for valence::entity::abstract_minecart::DamageWobbleTicks
where DamageWobbleTicks: Send + Sync + 'static,

§

impl Component for AbstractPiglinEntity
where AbstractPiglinEntity: Send + Sync + 'static,

§

impl Component for ImmuneToZombification
where ImmuneToZombification: Send + Sync + 'static,

§

impl Component for AbstractSkeletonEntity
where AbstractSkeletonEntity: Send + Sync + 'static,

§

impl Component for ActiveStatusEffects
where ActiveStatusEffects: Send + Sync + 'static,

§

impl Component for AllayEntity
where AllayEntity: Send + Sync + 'static,

§

impl Component for CanDuplicate
where CanDuplicate: Send + Sync + 'static,

§

impl Component for valence::entity::allay::Dancing
where Dancing: Send + Sync + 'static,

§

impl Component for AmbientEntity
where AmbientEntity: Send + Sync + 'static,

§

impl Component for AnimalEntity
where AnimalEntity: Send + Sync + 'static,

§

impl Component for AreaEffectCloudEntity
where AreaEffectCloudEntity: Send + Sync + 'static,

§

impl Component for valence::entity::area_effect_cloud::Color
where Color: Send + Sync + 'static,

§

impl Component for ParticleId
where ParticleId: Send + Sync + 'static,

§

impl Component for Radius
where Radius: Send + Sync + 'static,

§

impl Component for Waiting
where Waiting: Send + Sync + 'static,

§

impl Component for ArmorStandEntity
where ArmorStandEntity: Send + Sync + 'static,

§

impl Component for ArmorStandFlags
where ArmorStandFlags: Send + Sync + 'static,

§

impl Component for TrackerBodyRotation
where TrackerBodyRotation: Send + Sync + 'static,

§

impl Component for TrackerHeadRotation
where TrackerHeadRotation: Send + Sync + 'static,

§

impl Component for TrackerLeftArmRotation
where TrackerLeftArmRotation: Send + Sync + 'static,

§

impl Component for TrackerLeftLegRotation
where TrackerLeftLegRotation: Send + Sync + 'static,

§

impl Component for TrackerRightArmRotation
where TrackerRightArmRotation: Send + Sync + 'static,

§

impl Component for TrackerRightLegRotation
where TrackerRightLegRotation: Send + Sync + 'static,

§

impl Component for ArrowEntity
where ArrowEntity: Send + Sync + 'static,

§

impl Component for valence::entity::arrow::Color
where Color: Send + Sync + 'static,

§

impl Component for EntityAttributeInstance
where EntityAttributeInstance: Send + Sync + 'static,

§

impl Component for EntityAttributes
where EntityAttributes: Send + Sync + 'static,

§

impl Component for TrackedEntityAttributes
where TrackedEntityAttributes: Send + Sync + 'static,

§

impl Component for AxolotlEntity
where AxolotlEntity: Send + Sync + 'static,

§

impl Component for valence::entity::axolotl::FromBucket
where FromBucket: Send + Sync + 'static,

§

impl Component for PlayingDead
where PlayingDead: Send + Sync + 'static,

§

impl Component for valence::entity::axolotl::Variant
where Variant: Send + Sync + 'static,

§

impl Component for BatEntity
where BatEntity: Send + Sync + 'static,

§

impl Component for BatFlags
where BatFlags: Send + Sync + 'static,

§

impl Component for valence::entity::bee::Anger
where Anger: Send + Sync + 'static,

§

impl Component for BeeEntity
where BeeEntity: Send + Sync + 'static,

§

impl Component for BeeFlags
where BeeFlags: Send + Sync + 'static,

§

impl Component for BlazeEntity
where BlazeEntity: Send + Sync + 'static,

§

impl Component for BlazeFlags
where BlazeFlags: Send + Sync + 'static,

§

impl Component for BlockDisplayEntity
where BlockDisplayEntity: Send + Sync + 'static,

§

impl Component for BlockState
where BlockState: Send + Sync + 'static,

§

impl Component for BoatEntity
where BoatEntity: Send + Sync + 'static,

§

impl Component for BoatType
where BoatType: Send + Sync + 'static,

§

impl Component for BubbleWobbleTicks
where BubbleWobbleTicks: Send + Sync + 'static,

§

impl Component for valence::entity::boat::DamageWobbleSide
where DamageWobbleSide: Send + Sync + 'static,

§

impl Component for valence::entity::boat::DamageWobbleStrength
where DamageWobbleStrength: Send + Sync + 'static,

§

impl Component for valence::entity::boat::DamageWobbleTicks
where DamageWobbleTicks: Send + Sync + 'static,

§

impl Component for LeftPaddleMoving
where LeftPaddleMoving: Send + Sync + 'static,

§

impl Component for RightPaddleMoving
where RightPaddleMoving: Send + Sync + 'static,

§

impl Component for CamelEntity
where CamelEntity: Send + Sync + 'static,

§

impl Component for Dashing
where Dashing: Send + Sync + 'static,

§

impl Component for LastPoseTick
where LastPoseTick: Send + Sync + 'static,

§

impl Component for CatEntity
where CatEntity: Send + Sync + 'static,

§

impl Component for CatVariant
where CatVariant: Send + Sync + 'static,

§

impl Component for valence::entity::cat::CollarColor
where CollarColor: Send + Sync + 'static,

§

impl Component for HeadDown
where HeadDown: Send + Sync + 'static,

§

impl Component for InSleepingPose
where InSleepingPose: Send + Sync + 'static,

§

impl Component for CaveSpiderEntity
where CaveSpiderEntity: Send + Sync + 'static,

§

impl Component for ChestBoatEntity
where ChestBoatEntity: Send + Sync + 'static,

§

impl Component for ChestMinecartEntity
where ChestMinecartEntity: Send + Sync + 'static,

§

impl Component for ChickenEntity
where ChickenEntity: Send + Sync + 'static,

§

impl Component for CodEntity
where CodEntity: Send + Sync + 'static,

§

impl Component for Command
where Command: Send + Sync + 'static,

§

impl Component for CommandBlockMinecartEntity

§

impl Component for LastOutput
where LastOutput: Send + Sync + 'static,

§

impl Component for CowEntity
where CowEntity: Send + Sync + 'static,

§

impl Component for valence::entity::creeper::Charged
where Charged: Send + Sync + 'static,

§

impl Component for CreeperEntity
where CreeperEntity: Send + Sync + 'static,

§

impl Component for FuseSpeed
where FuseSpeed: Send + Sync + 'static,

§

impl Component for Ignited
where Ignited: Send + Sync + 'static,

§

impl Component for Billboard
where Billboard: Send + Sync + 'static,

§

impl Component for Brightness
where Brightness: Send + Sync + 'static,

§

impl Component for DisplayEntity
where DisplayEntity: Send + Sync + 'static,

§

impl Component for GlowColorOverride
where GlowColorOverride: Send + Sync + 'static,

§

impl Component for valence::entity::display::Height
where Height: Send + Sync + 'static,

§

impl Component for InterpolationDuration
where InterpolationDuration: Send + Sync + 'static,

§

impl Component for LeftRotation
where LeftRotation: Send + Sync + 'static,

§

impl Component for RightRotation
where RightRotation: Send + Sync + 'static,

§

impl Component for Scale
where Scale: Send + Sync + 'static,

§

impl Component for ShadowRadius
where ShadowRadius: Send + Sync + 'static,

§

impl Component for ShadowStrength
where ShadowStrength: Send + Sync + 'static,

§

impl Component for StartInterpolation
where StartInterpolation: Send + Sync + 'static,

§

impl Component for Translation
where Translation: Send + Sync + 'static,

§

impl Component for ViewRange
where ViewRange: Send + Sync + 'static,

§

impl Component for valence::entity::display::Width
where Width: Send + Sync + 'static,

§

impl Component for DolphinEntity
where DolphinEntity: Send + Sync + 'static,

§

impl Component for HasFish
where HasFish: Send + Sync + 'static,

§

impl Component for Moistness
where Moistness: Send + Sync + 'static,

§

impl Component for TreasurePos
where TreasurePos: Send + Sync + 'static,

§

impl Component for DonkeyEntity
where DonkeyEntity: Send + Sync + 'static,

§

impl Component for DragonFireballEntity
where DragonFireballEntity: Send + Sync + 'static,

§

impl Component for DrownedEntity
where DrownedEntity: Send + Sync + 'static,

§

impl Component for EggEntity
where EggEntity: Send + Sync + 'static,

§

impl Component for ElderGuardianEntity
where ElderGuardianEntity: Send + Sync + 'static,

§

impl Component for BeamTarget
where BeamTarget: Send + Sync + 'static,

§

impl Component for EndCrystalEntity
where EndCrystalEntity: Send + Sync + 'static,

§

impl Component for ShowBottom
where ShowBottom: Send + Sync + 'static,

§

impl Component for EnderDragonEntity
where EnderDragonEntity: Send + Sync + 'static,

§

impl Component for PhaseType
where PhaseType: Send + Sync + 'static,

§

impl Component for EnderPearlEntity
where EnderPearlEntity: Send + Sync + 'static,

§

impl Component for Angry
where Angry: Send + Sync + 'static,

§

impl Component for CarriedBlock
where CarriedBlock: Send + Sync + 'static,

§

impl Component for EndermanEntity
where EndermanEntity: Send + Sync + 'static,

§

impl Component for Provoked
where Provoked: Send + Sync + 'static,

§

impl Component for EndermiteEntity
where EndermiteEntity: Send + Sync + 'static,

§

impl Component for Air
where Air: Send + Sync + 'static,

§

impl Component for CustomName
where CustomName: Send + Sync + 'static,

§

impl Component for Entity
where Entity: Send + Sync + 'static,

§

impl Component for Flags
where Flags: Send + Sync + 'static,

§

impl Component for FrozenTicks
where FrozenTicks: Send + Sync + 'static,

§

impl Component for NameVisible
where NameVisible: Send + Sync + 'static,

§

impl Component for NoGravity
where NoGravity: Send + Sync + 'static,

§

impl Component for Pose
where Pose: Send + Sync + 'static,

§

impl Component for Silent
where Silent: Send + Sync + 'static,

§

impl Component for EvokerEntity
where EvokerEntity: Send + Sync + 'static,

§

impl Component for EvokerFangsEntity
where EvokerFangsEntity: Send + Sync + 'static,

§

impl Component for ExperienceBottleEntity
where ExperienceBottleEntity: Send + Sync + 'static,

§

impl Component for ExperienceOrbEntity
where ExperienceOrbEntity: Send + Sync + 'static,

§

impl Component for ExplosiveProjectileEntity
where ExplosiveProjectileEntity: Send + Sync + 'static,

§

impl Component for EyeOfEnderEntity
where EyeOfEnderEntity: Send + Sync + 'static,

§

impl Component for valence::entity::eye_of_ender::Item
where Item: Send + Sync + 'static,

§

impl Component for BlockPos
where BlockPos: Send + Sync + 'static,

§

impl Component for FallingBlockEntity
where FallingBlockEntity: Send + Sync + 'static,

§

impl Component for FireballEntity
where FireballEntity: Send + Sync + 'static,

§

impl Component for FireworkRocketEntity
where FireworkRocketEntity: Send + Sync + 'static,

§

impl Component for valence::entity::firework_rocket::Item
where Item: Send + Sync + 'static,

§

impl Component for ShooterEntityId
where ShooterEntityId: Send + Sync + 'static,

§

impl Component for ShotAtAngle
where ShotAtAngle: Send + Sync + 'static,

§

impl Component for FishEntity
where FishEntity: Send + Sync + 'static,

§

impl Component for valence::entity::fish::FromBucket
where FromBucket: Send + Sync + 'static,

§

impl Component for CaughtFish
where CaughtFish: Send + Sync + 'static,

§

impl Component for FishingBobberEntity
where FishingBobberEntity: Send + Sync + 'static,

§

impl Component for HookEntityId
where HookEntityId: Send + Sync + 'static,

§

impl Component for FlyingEntity
where FlyingEntity: Send + Sync + 'static,

§

impl Component for FoxEntity
where FoxEntity: Send + Sync + 'static,

§

impl Component for FoxFlags
where FoxFlags: Send + Sync + 'static,

§

impl Component for OtherTrusted
where OtherTrusted: Send + Sync + 'static,

§

impl Component for Owner
where Owner: Send + Sync + 'static,

§

impl Component for valence::entity::fox::Type
where Type: Send + Sync + 'static,

§

impl Component for FrogEntity
where FrogEntity: Send + Sync + 'static,

§

impl Component for Target
where Target: Send + Sync + 'static,

§

impl Component for valence::entity::frog::Variant
where Variant: Send + Sync + 'static,

§

impl Component for FurnaceMinecartEntity
where FurnaceMinecartEntity: Send + Sync + 'static,

§

impl Component for Lit
where Lit: Send + Sync + 'static,

§

impl Component for GhastEntity
where GhastEntity: Send + Sync + 'static,

§

impl Component for Shooting
where Shooting: Send + Sync + 'static,

§

impl Component for GiantEntity
where GiantEntity: Send + Sync + 'static,

§

impl Component for GlowItemFrameEntity
where GlowItemFrameEntity: Send + Sync + 'static,

§

impl Component for DarkTicksRemaining
where DarkTicksRemaining: Send + Sync + 'static,

§

impl Component for GlowSquidEntity
where GlowSquidEntity: Send + Sync + 'static,

§

impl Component for GoatEntity
where GoatEntity: Send + Sync + 'static,

§

impl Component for LeftHorn
where LeftHorn: Send + Sync + 'static,

§

impl Component for RightHorn
where RightHorn: Send + Sync + 'static,

§

impl Component for Screaming
where Screaming: Send + Sync + 'static,

§

impl Component for GolemEntity
where GolemEntity: Send + Sync + 'static,

§

impl Component for BeamTargetId
where BeamTargetId: Send + Sync + 'static,

§

impl Component for GuardianEntity
where GuardianEntity: Send + Sync + 'static,

§

impl Component for SpikesRetracted
where SpikesRetracted: Send + Sync + 'static,

§

impl Component for Hitbox
where Hitbox: Send + Sync + 'static,

§

impl Component for HitboxShape
where HitboxShape: Send + Sync + 'static,

§

impl Component for valence::entity::hoglin::Baby
where Baby: Send + Sync + 'static,

§

impl Component for HoglinEntity
where HoglinEntity: Send + Sync + 'static,

§

impl Component for HopperMinecartEntity
where HopperMinecartEntity: Send + Sync + 'static,

§

impl Component for HorseEntity
where HorseEntity: Send + Sync + 'static,

§

impl Component for valence::entity::horse::Variant
where Variant: Send + Sync + 'static,

§

impl Component for HostileEntity
where HostileEntity: Send + Sync + 'static,

§

impl Component for HuskEntity
where HuskEntity: Send + Sync + 'static,

§

impl Component for IllagerEntity
where IllagerEntity: Send + Sync + 'static,

§

impl Component for IllusionerEntity
where IllusionerEntity: Send + Sync + 'static,

§

impl Component for valence::entity::interaction::Height
where Height: Send + Sync + 'static,

§

impl Component for InteractionEntity
where InteractionEntity: Send + Sync + 'static,

§

impl Component for Response
where Response: Send + Sync + 'static,

§

impl Component for valence::entity::interaction::Width
where Width: Send + Sync + 'static,

§

impl Component for IronGolemEntity
where IronGolemEntity: Send + Sync + 'static,

§

impl Component for IronGolemFlags
where IronGolemFlags: Send + Sync + 'static,

§

impl Component for ItemEntity
where ItemEntity: Send + Sync + 'static,

§

impl Component for Stack
where Stack: Send + Sync + 'static,

§

impl Component for valence::entity::item_display::Item
where Item: Send + Sync + 'static,

§

impl Component for ItemDisplay
where ItemDisplay: Send + Sync + 'static,

§

impl Component for ItemDisplayEntity
where ItemDisplayEntity: Send + Sync + 'static,

§

impl Component for ItemFrameEntity
where ItemFrameEntity: Send + Sync + 'static,

§

impl Component for ItemStack
where ItemStack: Send + Sync + 'static,

§

impl Component for Rotation
where Rotation: Send + Sync + 'static,

§

impl Component for LeashKnotEntity
where LeashKnotEntity: Send + Sync + 'static,

§

impl Component for LightningEntity
where LightningEntity: Send + Sync + 'static,

§

impl Component for Absorption
where Absorption: Send + Sync + 'static,

§

impl Component for Health
where Health: Send + Sync + 'static,

§

impl Component for LivingEntity
where LivingEntity: Send + Sync + 'static,

§

impl Component for LivingFlags
where LivingFlags: Send + Sync + 'static,

§

impl Component for PotionSwirlsAmbient
where PotionSwirlsAmbient: Send + Sync + 'static,

§

impl Component for PotionSwirlsColor
where PotionSwirlsColor: Send + Sync + 'static,

§

impl Component for SleepingPosition
where SleepingPosition: Send + Sync + 'static,

§

impl Component for StingerCount
where StingerCount: Send + Sync + 'static,

§

impl Component for StuckArrowCount
where StuckArrowCount: Send + Sync + 'static,

§

impl Component for CarpetColor
where CarpetColor: Send + Sync + 'static,

§

impl Component for LlamaEntity
where LlamaEntity: Send + Sync + 'static,

§

impl Component for Strength
where Strength: Send + Sync + 'static,

§

impl Component for valence::entity::llama::Variant
where Variant: Send + Sync + 'static,

§

impl Component for LlamaSpitEntity
where LlamaSpitEntity: Send + Sync + 'static,

§

impl Component for MagmaCubeEntity
where MagmaCubeEntity: Send + Sync + 'static,

§

impl Component for MarkerEntity
where MarkerEntity: Send + Sync + 'static,

§

impl Component for HeadRollingTimeLeft
where HeadRollingTimeLeft: Send + Sync + 'static,

§

impl Component for MerchantEntity
where MerchantEntity: Send + Sync + 'static,

§

impl Component for MinecartEntity
where MinecartEntity: Send + Sync + 'static,

§

impl Component for MobEntity
where MobEntity: Send + Sync + 'static,

§

impl Component for MobFlags
where MobFlags: Send + Sync + 'static,

§

impl Component for MooshroomEntity
where MooshroomEntity: Send + Sync + 'static,

§

impl Component for valence::entity::mooshroom::Type
where Type: Send + Sync + 'static,

§

impl Component for MuleEntity
where MuleEntity: Send + Sync + 'static,

§

impl Component for OcelotEntity
where OcelotEntity: Send + Sync + 'static,

§

impl Component for Trusting
where Trusting: Send + Sync + 'static,

§

impl Component for PaintingEntity
where PaintingEntity: Send + Sync + 'static,

§

impl Component for valence::entity::painting::Variant
where Variant: Send + Sync + 'static,

§

impl Component for AskForBambooTicks
where AskForBambooTicks: Send + Sync + 'static,

§

impl Component for EatingTicks
where EatingTicks: Send + Sync + 'static,

§

impl Component for HiddenGene
where HiddenGene: Send + Sync + 'static,

§

impl Component for MainGene
where MainGene: Send + Sync + 'static,

§

impl Component for PandaEntity
where PandaEntity: Send + Sync + 'static,

§

impl Component for PandaFlags
where PandaFlags: Send + Sync + 'static,

§

impl Component for SneezeProgress
where SneezeProgress: Send + Sync + 'static,

§

impl Component for ParrotEntity
where ParrotEntity: Send + Sync + 'static,

§

impl Component for valence::entity::parrot::Variant
where Variant: Send + Sync + 'static,

§

impl Component for Child
where Child: Send + Sync + 'static,

§

impl Component for PassiveEntity
where PassiveEntity: Send + Sync + 'static,

§

impl Component for PathAwareEntity
where PathAwareEntity: Send + Sync + 'static,

§

impl Component for PatrolEntity
where PatrolEntity: Send + Sync + 'static,

§

impl Component for PersistentProjectileEntity

§

impl Component for PierceLevel
where PierceLevel: Send + Sync + 'static,

§

impl Component for ProjectileFlags
where ProjectileFlags: Send + Sync + 'static,

§

impl Component for PhantomEntity
where PhantomEntity: Send + Sync + 'static,

§

impl Component for Size
where Size: Send + Sync + 'static,

§

impl Component for valence::entity::pig::BoostTime
where BoostTime: Send + Sync + 'static,

§

impl Component for PigEntity
where PigEntity: Send + Sync + 'static,

§

impl Component for valence::entity::pig::Saddled
where Saddled: Send + Sync + 'static,

§

impl Component for valence::entity::piglin::Baby
where Baby: Send + Sync + 'static,

§

impl Component for valence::entity::piglin::Charging
where Charging: Send + Sync + 'static,

§

impl Component for valence::entity::piglin::Dancing
where Dancing: Send + Sync + 'static,

§

impl Component for PiglinEntity
where PiglinEntity: Send + Sync + 'static,

§

impl Component for PiglinBruteEntity
where PiglinBruteEntity: Send + Sync + 'static,

§

impl Component for valence::entity::pillager::Charging
where Charging: Send + Sync + 'static,

§

impl Component for PillagerEntity
where PillagerEntity: Send + Sync + 'static,

§

impl Component for AbsorptionAmount
where AbsorptionAmount: Send + Sync + 'static,

§

impl Component for Food
where Food: Send + Sync + 'static,

§

impl Component for LeftShoulderEntity
where LeftShoulderEntity: Send + Sync + 'static,

§

impl Component for MainArm
where MainArm: Send + Sync + 'static,

§

impl Component for PlayerEntity
where PlayerEntity: Send + Sync + 'static,

§

impl Component for PlayerModelParts
where PlayerModelParts: Send + Sync + 'static,

§

impl Component for RightShoulderEntity
where RightShoulderEntity: Send + Sync + 'static,

§

impl Component for Saturation
where Saturation: Send + Sync + 'static,

§

impl Component for Score
where Score: Send + Sync + 'static,

§

impl Component for PolarBearEntity
where PolarBearEntity: Send + Sync + 'static,

§

impl Component for Warning
where Warning: Send + Sync + 'static,

§

impl Component for PotionEntity
where PotionEntity: Send + Sync + 'static,

§

impl Component for ProjectileEntity
where ProjectileEntity: Send + Sync + 'static,

§

impl Component for PuffState
where PuffState: Send + Sync + 'static,

§

impl Component for PufferfishEntity
where PufferfishEntity: Send + Sync + 'static,

§

impl Component for RabbitEntity
where RabbitEntity: Send + Sync + 'static,

§

impl Component for RabbitType
where RabbitType: Send + Sync + 'static,

§

impl Component for Celebrating
where Celebrating: Send + Sync + 'static,

§

impl Component for RaiderEntity
where RaiderEntity: Send + Sync + 'static,

§

impl Component for RavagerEntity
where RavagerEntity: Send + Sync + 'static,

§

impl Component for SalmonEntity
where SalmonEntity: Send + Sync + 'static,

§

impl Component for SchoolingFishEntity
where SchoolingFishEntity: Send + Sync + 'static,

§

impl Component for valence::entity::sheep::Color
where Color: Send + Sync + 'static,

§

impl Component for SheepEntity
where SheepEntity: Send + Sync + 'static,

§

impl Component for AttachedFace
where AttachedFace: Send + Sync + 'static,

§

impl Component for valence::entity::shulker::Color
where Color: Send + Sync + 'static,

§

impl Component for PeekAmount
where PeekAmount: Send + Sync + 'static,

§

impl Component for ShulkerEntity
where ShulkerEntity: Send + Sync + 'static,

§

impl Component for ShulkerBulletEntity
where ShulkerBulletEntity: Send + Sync + 'static,

§

impl Component for SilverfishEntity
where SilverfishEntity: Send + Sync + 'static,

§

impl Component for valence::entity::skeleton::Converting
where Converting: Send + Sync + 'static,

§

impl Component for SkeletonEntity
where SkeletonEntity: Send + Sync + 'static,

§

impl Component for SkeletonHorseEntity
where SkeletonHorseEntity: Send + Sync + 'static,

§

impl Component for SlimeEntity
where SlimeEntity: Send + Sync + 'static,

§

impl Component for SlimeSize
where SlimeSize: Send + Sync + 'static,

§

impl Component for SmallFireballEntity
where SmallFireballEntity: Send + Sync + 'static,

§

impl Component for FinishDigTime
where FinishDigTime: Send + Sync + 'static,

§

impl Component for SnifferEntity
where SnifferEntity: Send + Sync + 'static,

§

impl Component for State
where State: Send + Sync + 'static,

§

impl Component for SnowGolemEntity
where SnowGolemEntity: Send + Sync + 'static,

§

impl Component for SnowGolemFlags
where SnowGolemFlags: Send + Sync + 'static,

§

impl Component for SnowballEntity
where SnowballEntity: Send + Sync + 'static,

§

impl Component for SpawnerMinecartEntity
where SpawnerMinecartEntity: Send + Sync + 'static,

§

impl Component for SpectralArrowEntity
where SpectralArrowEntity: Send + Sync + 'static,

§

impl Component for Spell
where Spell: Send + Sync + 'static,

§

impl Component for SpellcastingIllagerEntity
where SpellcastingIllagerEntity: Send + Sync + 'static,

§

impl Component for SpiderEntity
where SpiderEntity: Send + Sync + 'static,

§

impl Component for SpiderFlags
where SpiderFlags: Send + Sync + 'static,

§

impl Component for SquidEntity
where SquidEntity: Send + Sync + 'static,

§

impl Component for StorageMinecartEntity
where StorageMinecartEntity: Send + Sync + 'static,

§

impl Component for StrayEntity
where StrayEntity: Send + Sync + 'static,

§

impl Component for valence::entity::strider::BoostTime
where BoostTime: Send + Sync + 'static,

§

impl Component for Cold
where Cold: Send + Sync + 'static,

§

impl Component for valence::entity::strider::Saddled
where Saddled: Send + Sync + 'static,

§

impl Component for StriderEntity
where StriderEntity: Send + Sync + 'static,

§

impl Component for EntityAnimations
where EntityAnimations: Send + Sync + 'static,

§

impl Component for EntityId
where EntityId: Send + Sync + 'static,

§

impl Component for EntityKind
where EntityKind: Send + Sync + 'static,

§

impl Component for EntityLayerId
where EntityLayerId: Send + Sync + 'static,

§

impl Component for EntityStatuses
where EntityStatuses: Send + Sync + 'static,

§

impl Component for HeadYaw
where HeadYaw: Send + Sync + 'static,

§

impl Component for Look
where Look: Send + Sync + 'static,

§

impl Component for ObjectData
where ObjectData: Send + Sync + 'static,

§

impl Component for OldEntityLayerId
where OldEntityLayerId: Send + Sync + 'static,

§

impl Component for OldPosition
where OldPosition: Send + Sync + 'static,

§

impl Component for OnGround
where OnGround: Send + Sync + 'static,

§

impl Component for Position
where Position: Send + Sync + 'static,

§

impl Component for Velocity
where Velocity: Send + Sync + 'static,

§

impl Component for TadpoleEntity
where TadpoleEntity: Send + Sync + 'static,

§

impl Component for OwnerUuid
where OwnerUuid: Send + Sync + 'static,

§

impl Component for TameableEntity
where TameableEntity: Send + Sync + 'static,

§

impl Component for TameableFlags
where TameableFlags: Send + Sync + 'static,

§

impl Component for TameableShoulderEntity
where TameableShoulderEntity: Send + Sync + 'static,

§

impl Component for Background
where Background: Send + Sync + 'static,

§

impl Component for LineWidth
where LineWidth: Send + Sync + 'static,

§

impl Component for Text
where Text: Send + Sync + 'static,

§

impl Component for TextDisplayEntity
where TextDisplayEntity: Send + Sync + 'static,

§

impl Component for TextDisplayFlags
where TextDisplayFlags: Send + Sync + 'static,

§

impl Component for TextOpacity
where TextOpacity: Send + Sync + 'static,

§

impl Component for ThrownEntity
where ThrownEntity: Send + Sync + 'static,

§

impl Component for valence::entity::thrown_item::Item
where Item: Send + Sync + 'static,

§

impl Component for ThrownItemEntity
where ThrownItemEntity: Send + Sync + 'static,

§

impl Component for Fuse
where Fuse: Send + Sync + 'static,

§

impl Component for TntEntity
where TntEntity: Send + Sync + 'static,

§

impl Component for TntMinecartEntity
where TntMinecartEntity: Send + Sync + 'static,

§

impl Component for TrackedData
where TrackedData: Send + Sync + 'static,

§

impl Component for TraderLlamaEntity
where TraderLlamaEntity: Send + Sync + 'static,

§

impl Component for Enchanted
where Enchanted: Send + Sync + 'static,

§

impl Component for Loyalty
where Loyalty: Send + Sync + 'static,

§

impl Component for TridentEntity
where TridentEntity: Send + Sync + 'static,

§

impl Component for TropicalFishEntity
where TropicalFishEntity: Send + Sync + 'static,

§

impl Component for valence::entity::tropical_fish::Variant
where Variant: Send + Sync + 'static,

§

impl Component for ActivelyTraveling
where ActivelyTraveling: Send + Sync + 'static,

§

impl Component for DiggingSand
where DiggingSand: Send + Sync + 'static,

§

impl Component for HasEgg
where HasEgg: Send + Sync + 'static,

§

impl Component for HomePos
where HomePos: Send + Sync + 'static,

§

impl Component for LandBound
where LandBound: Send + Sync + 'static,

§

impl Component for TravelPos
where TravelPos: Send + Sync + 'static,

§

impl Component for TurtleEntity
where TurtleEntity: Send + Sync + 'static,

§

impl Component for VexEntity
where VexEntity: Send + Sync + 'static,

§

impl Component for VexFlags
where VexFlags: Send + Sync + 'static,

§

impl Component for valence::entity::villager::VillagerData
where VillagerData: Send + Sync + 'static,

§

impl Component for VillagerEntity
where VillagerEntity: Send + Sync + 'static,

§

impl Component for VindicatorEntity
where VindicatorEntity: Send + Sync + 'static,

§

impl Component for WanderingTraderEntity
where WanderingTraderEntity: Send + Sync + 'static,

§

impl Component for valence::entity::warden::Anger
where Anger: Send + Sync + 'static,

§

impl Component for WardenEntity
where WardenEntity: Send + Sync + 'static,

§

impl Component for WaterCreatureEntity
where WaterCreatureEntity: Send + Sync + 'static,

§

impl Component for Drinking
where Drinking: Send + Sync + 'static,

§

impl Component for WitchEntity
where WitchEntity: Send + Sync + 'static,

§

impl Component for InvulTimer
where InvulTimer: Send + Sync + 'static,

§

impl Component for TrackedEntityId1
where TrackedEntityId1: Send + Sync + 'static,

§

impl Component for TrackedEntityId2
where TrackedEntityId2: Send + Sync + 'static,

§

impl Component for TrackedEntityId3
where TrackedEntityId3: Send + Sync + 'static,

§

impl Component for WitherEntity
where WitherEntity: Send + Sync + 'static,

§

impl Component for WitherSkeletonEntity
where WitherSkeletonEntity: Send + Sync + 'static,

§

impl Component for valence::entity::wither_skull::Charged
where Charged: Send + Sync + 'static,

§

impl Component for WitherSkullEntity
where WitherSkullEntity: Send + Sync + 'static,

§

impl Component for AngerTime
where AngerTime: Send + Sync + 'static,

§

impl Component for Begging
where Begging: Send + Sync + 'static,

§

impl Component for valence::entity::wolf::CollarColor
where CollarColor: Send + Sync + 'static,

§

impl Component for WolfEntity
where WolfEntity: Send + Sync + 'static,

§

impl Component for valence::entity::zoglin::Baby
where Baby: Send + Sync + 'static,

§

impl Component for ZoglinEntity
where ZoglinEntity: Send + Sync + 'static,

§

impl Component for valence::entity::zombie::Baby
where Baby: Send + Sync + 'static,

§

impl Component for ConvertingInWater
where ConvertingInWater: Send + Sync + 'static,

§

impl Component for ZombieEntity
where ZombieEntity: Send + Sync + 'static,

§

impl Component for ZombieType
where ZombieType: Send + Sync + 'static,

§

impl Component for ZombieHorseEntity
where ZombieHorseEntity: Send + Sync + 'static,

§

impl Component for valence::entity::zombie_villager::Converting
where Converting: Send + Sync + 'static,

§

impl Component for valence::entity::zombie_villager::VillagerData
where VillagerData: Send + Sync + 'static,

§

impl Component for ZombieVillagerEntity
where ZombieVillagerEntity: Send + Sync + 'static,

§

impl Component for ZombifiedPiglinEntity
where ZombifiedPiglinEntity: Send + Sync + 'static,

source§

impl Component for KeepaliveState
where KeepaliveState: Send + Sync + 'static,

source§

impl Component for Ping
where Ping: Send + Sync + 'static,

source§

impl Component for OpLevel
where OpLevel: Send + Sync + 'static,

source§

impl Component for Advancement
where Advancement: Send + Sync + 'static,

source§

impl Component for AdvancementClientUpdate
where AdvancementClientUpdate: Send + Sync + 'static,

source§

impl Component for AdvancementCriteria
where AdvancementCriteria: Send + Sync + 'static,

source§

impl Component for AdvancementDisplay
where AdvancementDisplay: Send + Sync + 'static,

source§

impl Component for AdvancementRequirements
where AdvancementRequirements: Send + Sync + 'static,

source§

impl Component for CursorItem
where CursorItem: Send + Sync + 'static,

source§

impl Component for Inventory
where Inventory: Send + Sync + 'static,

source§

impl Component for OpenInventory
where OpenInventory: Send + Sync + 'static,

source§

impl Component for PlayerListEntry
where PlayerListEntry: Send + Sync + 'static,

§

impl Component for BossBarFlags
where BossBarFlags: Send + Sync + 'static,

§

impl Component for PlayerAbilitiesFlags
where PlayerAbilitiesFlags: Send + Sync + 'static,

source§

impl Component for DeathLocation
where DeathLocation: Send + Sync + 'static,

source§

impl Component for HasRespawnScreen
where HasRespawnScreen: Send + Sync + 'static,

source§

impl Component for HashedSeed
where HashedSeed: Send + Sync + 'static,

source§

impl Component for IsDebug
where IsDebug: Send + Sync + 'static,

source§

impl Component for IsFlat
where IsFlat: Send + Sync + 'static,

source§

impl Component for IsHardcore
where IsHardcore: Send + Sync + 'static,

source§

impl Component for PortalCooldown
where PortalCooldown: Send + Sync + 'static,

source§

impl Component for PrevGameMode
where PrevGameMode: Send + Sync + 'static,

source§

impl Component for ReducedDebugInfo
where ReducedDebugInfo: Send + Sync + 'static,

source§

impl Component for RespawnPosition
where RespawnPosition: Send + Sync + 'static,

source§

impl Component for ChunkLayer
where ChunkLayer: Send + Sync + 'static,

source§

impl Component for Despawned
where Despawned: Send + Sync + 'static,

source§

impl Component for EntityLayer
where EntityLayer: Send + Sync + 'static,

source§

impl Component for UniqueId
where UniqueId: Send + Sync + 'static,

source§

impl Component for TeleportState
where TeleportState: Send + Sync + 'static,