Base interface for all ECS components.
Marker component indicating entity should be destroyed.
ComponentType getType() const override
Get component type ID.
~PendingDestroy() override=default
DestroyReason getReason() const
Get the destruction reason.
PendingDestroy(DestroyReason reason)
Constructor with specific reason.
PendingDestroy()
Default constructor with OutOfBounds reason.
Maximum number of distinct component types supported by the Registry.
std::size_t ComponentType
Type alias for component identification.
DestroyReason
Reason why an entity is being destroyed.
@ Expired
Entity lifetime expired (e.g., projectile)
@ OutOfBounds
Entity went outside screen boundaries.
@ Manual
Manually destroyed (script, etc.)
@ Killed
Entity was killed (health <= 0)