Helios Engine 0.1.0
A modular ECS based data-oriented C++23 game engine
 
Loading...
Searching...
No Matches
helios::ecs::details::RemoveComponentsCmd< Ts > Class Template Referencefinal

Command to remove multiple components from an entity. More...

#include <commands.hpp>

Inheritance diagram for helios::ecs::details::RemoveComponentsCmd< Ts >:
helios::ecs::Command

Public Member Functions

constexpr RemoveComponentsCmd (Entity entity) noexcept
 Constructs remove components command.
 
constexpr RemoveComponentsCmd (const RemoveComponentsCmd &) noexcept=default
 
constexpr RemoveComponentsCmd (RemoveComponentsCmd &&) noexcept=default
 
constexpr ~RemoveComponentsCmd () noexcept override=default
 
constexpr RemoveComponentsCmdoperator= (const RemoveComponentsCmd &) noexcept=default
 
constexpr RemoveComponentsCmdoperator= (RemoveComponentsCmd &&) noexcept=default
 
void Execute (World &world) override
 Executes components removal.
 
- Public Member Functions inherited from helios::ecs::Command
virtual constexpr ~Command () noexcept=default
 

Detailed Description

template<ComponentTrait... Ts>
requires utils::UniqueTypes<Ts...>
class helios::ecs::details::RemoveComponentsCmd< Ts >

Command to remove multiple components from an entity.

Efficiently removes multiple components in a single operation.

Template Parameters
TsComponent types to remove (must be unique)

Definition at line 481 of file commands.hpp.

Constructor & Destructor Documentation

◆ RemoveComponentsCmd() [1/3]

template<ComponentTrait... Ts>
requires utils::UniqueTypes<Ts...>
constexpr helios::ecs::details::RemoveComponentsCmd< Ts >::RemoveComponentsCmd ( Entity  entity)
explicitconstexprnoexcept

Constructs remove components command.

Warning
Triggers assertion if entity is invalid.
Parameters
entityEntity to remove components from

Definition at line 508 of file commands.hpp.

508 : entity_(entity) {
509 HELIOS_ASSERT(entity.Valid(), "Failed to construct remove components command: Entity with index '{}' is invalid!",
510 entity.Index());
511}
#define HELIOS_ASSERT(condition,...)
Assertion macro that aborts execution in debug builds.
Definition assert.hpp:140

◆ RemoveComponentsCmd() [2/3]

template<ComponentTrait... Ts>
constexpr helios::ecs::details::RemoveComponentsCmd< Ts >::RemoveComponentsCmd ( const RemoveComponentsCmd< Ts > &  )
constexprdefaultnoexcept

◆ RemoveComponentsCmd() [3/3]

template<ComponentTrait... Ts>
constexpr helios::ecs::details::RemoveComponentsCmd< Ts >::RemoveComponentsCmd ( RemoveComponentsCmd< Ts > &&  )
constexprdefaultnoexcept

◆ ~RemoveComponentsCmd()

template<ComponentTrait... Ts>
constexpr helios::ecs::details::RemoveComponentsCmd< Ts >::~RemoveComponentsCmd ( )
constexproverridedefaultnoexcept

Member Function Documentation

◆ Execute()

template<ComponentTrait... Ts>
void helios::ecs::details::RemoveComponentsCmd< Ts >::Execute ( World world)
inlineoverridevirtual

Executes components removal.

Parameters
worldWorld to remove components from

Implements helios::ecs::Command.

Definition at line 500 of file commands.hpp.

500{ world.RemoveComponents<Ts...>(entity_); }
BasicQuery< World, Allocator, Components... > Query
Type alias for query with mutable world access.
Definition query.hpp:2481

◆ operator=() [1/2]

template<ComponentTrait... Ts>
constexpr RemoveComponentsCmd & helios::ecs::details::RemoveComponentsCmd< Ts >::operator= ( const RemoveComponentsCmd< Ts > &  )
constexprdefaultnoexcept

◆ operator=() [2/2]

template<ComponentTrait... Ts>
constexpr RemoveComponentsCmd & helios::ecs::details::RemoveComponentsCmd< Ts >::operator= ( RemoveComponentsCmd< Ts > &&  )
constexprdefaultnoexcept