Gaia-ECS v0.9.3
A simple and powerful entity component system
Loading...
Searching...
No Matches
gaia::ecs::ComponentSetter Struct Reference

Entity-scoped mutable component accessor bound to a specific world, chunk and row. It is not a standalone chunk view and expects the referenced entity to remain valid. More...

#include <component_setter.h>

+ Inheritance diagram for gaia::ecs::ComponentSetter:

Public Member Functions

template<typename T >
decltype(auto) mut ()
 Returns a mutable reference to component without triggering hooks, observers or world-version updates. Call World::modify<T, true>(entity) if the write should emit OnSet.
 
template<typename T , typename U = typename actual_type_t<T>::Type>
ComponentSetterset (U &&value)
 Sets the value of the component.
 
template<typename T >
decltype(auto) mut (Entity type)
 Returns a mutable reference to component without triggering hooks, observers or world-version updates. Call World::modify<T, true>(entity, type) if the write should emit OnSet.
 
template<typename T >
ComponentSetterset (Entity type, T &&value)
 Sets the value of the component type and then emits the normal post-write set notifications.
 
template<typename T >
decltype(auto) smut ()
 Returns a mutable reference to component without triggering a world version update.
 
template<typename T , typename U = typename actual_type_t<T>::Type>
ComponentSettersset (U &&value)
 Sets the value of the component without triggering a world version update.
 
template<typename T >
decltype(auto) smut (Entity type)
 Returns a mutable reference to component without triggering a world version update.
 
template<typename T >
ComponentSettersset (Entity type, T &&value)
 Sets the value of the component without triggering a world version update.
 
 ComponentGetter (const World &world, const Chunk *pChunk, Entity entity, uint16_t row)
 
- Public Member Functions inherited from gaia::ecs::ComponentGetter
 ComponentGetter (const World &world, const Chunk *pChunk, Entity entity, uint16_t row)
 
template<typename T >
GAIA_NODISCARD decltype(auto) get () const
 Returns the value stored in the component T on entity.
 
template<typename T >
GAIA_NODISCARD decltype(auto) get (Entity type) const
 Returns the value stored in the component associated with type on entity.
 
template<typename T >
GAIA_NODISCARD decltype(auto) get (Entity type) const
 

Additional Inherited Members

- Public Attributes inherited from gaia::ecs::ComponentGetter
const Worldm_pWorld
 
const Chunkm_pChunk
 
Entity m_entity
 
uint16_t m_row
 

Detailed Description

Entity-scoped mutable component accessor bound to a specific world, chunk and row. It is not a standalone chunk view and expects the referenced entity to remain valid.

Member Function Documentation

◆ mut() [1/2]

template<typename T >
decltype(auto) gaia::ecs::ComponentSetter::mut ( )
inline

Returns a mutable reference to component without triggering hooks, observers or world-version updates. Call World::modify<T, true>(entity) if the write should emit OnSet.

Template Parameters
TComponent or pair
Returns
Reference to data for AoS, or mutable accessor for SoA types

◆ mut() [2/2]

template<typename T >
decltype(auto) gaia::ecs::ComponentSetter::mut ( Entity  type)

Returns a mutable reference to component without triggering hooks, observers or world-version updates. Call World::modify<T, true>(entity, type) if the write should emit OnSet.

Template Parameters
TComponent or pair
Returns
Reference to data for AoS, or mutable accessor for SoA types

◆ set() [1/2]

template<typename T >
ComponentSetter & gaia::ecs::ComponentSetter::set ( Entity  type,
T &&  value 
)

Sets the value of the component type and then emits the normal post-write set notifications.

Template Parameters
TComponent or pair
Parameters
typeEntity associated with the type
valueValue to set for the component
Returns
ComponentSetter

◆ set() [2/2]

template<typename T , typename U = typename actual_type_t<T>::Type>
ComponentSetter & gaia::ecs::ComponentSetter::set ( U &&  value)
inline

Sets the value of the component.

Template Parameters
Tand then emits the normal post-write set notifications.
TComponent or pair
Parameters
valueValue to set for the component
Returns
ComponentSetter

◆ smut() [1/2]

template<typename T >
decltype(auto) gaia::ecs::ComponentSetter::smut ( )
inline

Returns a mutable reference to component without triggering a world version update.

Template Parameters
TComponent or pair
Returns
Reference to data for AoS, or mutable accessor for SoA types

◆ smut() [2/2]

template<typename T >
decltype(auto) gaia::ecs::ComponentSetter::smut ( Entity  type)

Returns a mutable reference to component without triggering a world version update.

Template Parameters
TComponent or pair
Parameters
typeEntity associated with the type
Returns
Reference to data for AoS, or mutable accessor for SoA types

◆ sset() [1/2]

template<typename T >
ComponentSetter & gaia::ecs::ComponentSetter::sset ( Entity  type,
T &&  value 
)

Sets the value of the component without triggering a world version update.

Template Parameters
TComponent or pair
Parameters
typeEntity associated with the type
valueValue to set for the component
Returns
ComponentSetter

◆ sset() [2/2]

template<typename T , typename U = typename actual_type_t<T>::Type>
ComponentSetter & gaia::ecs::ComponentSetter::sset ( U &&  value)
inline

Sets the value of the component without triggering a world version update.

Template Parameters
TComponent or pair
Parameters
valueValue to set for the component
Returns
ComponentSetter

The documentation for this struct was generated from the following files: