Helios Engine
A modular ECS based data-oriented C++23 game engine framework
Loading...
Searching...
No Matches
helios::ecs::TryInsertResourceCmd< T > Class Template Reference

Command to try insert a resource (only if missing). More...

#include <builtin_commands.hpp>

Public Member Functions

constexpr TryInsertResourceCmd (const T &resource) noexcept(std::is_nothrow_copy_constructible_v< T >)
 Constructs try insert resource command from an lvalue.
constexpr TryInsertResourceCmd (T &&resource) noexcept(std::is_nothrow_move_constructible_v< T >)
 Constructs try insert resource command from an rvalue.
constexpr TryInsertResourceCmd (const TryInsertResourceCmd &) noexcept=default
constexpr TryInsertResourceCmd (TryInsertResourceCmd &&) noexcept=default
constexpr ~TryInsertResourceCmd () noexcept=default
constexpr TryInsertResourceCmdoperator= (const TryInsertResourceCmd &) noexcept=default
constexpr TryInsertResourceCmdoperator= (TryInsertResourceCmd &&) noexcept=default
void Execute (World &world)
 Executes resource insertion if it doesn't exist.

Detailed Description

template<ResourceTrait T>
class helios::ecs::TryInsertResourceCmd< T >

Command to try insert a resource (only if missing).

Inserts resource of type T into the world during execution only if it doesn't already exist. If resource already exists, it will be left unchanged.

Template Parameters
TResource type

Definition at line 525 of file builtin_commands.hpp.

Constructor & Destructor Documentation

◆ TryInsertResourceCmd() [1/4]

template<ResourceTrait T>
helios::ecs::TryInsertResourceCmd< T >::TryInsertResourceCmd ( const T & resource)
inlineexplicitconstexprnoexcept

Constructs try insert resource command from an lvalue.

Parameters
resourceResource to copy

Definition at line 531 of file builtin_commands.hpp.

◆ TryInsertResourceCmd() [2/4]

template<ResourceTrait T>
helios::ecs::TryInsertResourceCmd< T >::TryInsertResourceCmd ( T && resource)
inlineexplicitconstexprnoexcept

Constructs try insert resource command from an rvalue.

Parameters
resourceResource to move

Definition at line 539 of file builtin_commands.hpp.

◆ TryInsertResourceCmd() [3/4]

template<ResourceTrait T>
helios::ecs::TryInsertResourceCmd< T >::TryInsertResourceCmd ( const TryInsertResourceCmd< T > & )
constexprdefaultnoexcept

◆ TryInsertResourceCmd() [4/4]

template<ResourceTrait T>
helios::ecs::TryInsertResourceCmd< T >::TryInsertResourceCmd ( TryInsertResourceCmd< T > && )
constexprdefaultnoexcept

◆ ~TryInsertResourceCmd()

template<ResourceTrait T>
helios::ecs::TryInsertResourceCmd< T >::~TryInsertResourceCmd ( )
constexprdefaultnoexcept

Member Function Documentation

◆ Execute()

template<ResourceTrait T>
void helios::ecs::TryInsertResourceCmd< T >::Execute ( World & world)
inline

Executes resource insertion if it doesn't exist.

Parameters
worldWorld to insert resource into

Definition at line 557 of file builtin_commands.hpp.

◆ operator=() [1/2]

template<ResourceTrait T>
TryInsertResourceCmd & helios::ecs::TryInsertResourceCmd< T >::operator= ( const TryInsertResourceCmd< T > & )
constexprdefaultnoexcept

◆ operator=() [2/2]

template<ResourceTrait T>
TryInsertResourceCmd & helios::ecs::TryInsertResourceCmd< T >::operator= ( TryInsertResourceCmd< T > && )
constexprdefaultnoexcept