Handles entities that should not be duplicated. More...
#include <ecsm.hpp>
Public Types | |
typedef Singleton< DoNotDuplicateSystem, true > | Instance |
Singleton class type. | |
Public Member Functions | |
std::type_index | getComponentType () const override |
Returns specific component typeid() of the system. | |
View< Component > | getComponent (ID< Component > instance) override |
Returns specific component View. | |
View< DoNotDuplicateComponent > | getComponent (ID< Entity > entity) const |
Returns entity specific component view. | |
void | disposeComponents () override |
Actually destroys system components. | |
bool | hasComponent (ID< Entity > entity) const |
Returns true if entity has specific component. | |
View< DoNotDuplicateComponent > | tryGetComponent (ID< Entity > entity) const |
Returns entity specific component view if exist. | |
Static Public Member Functions | |
static bool | has () |
Returns true if class singleton or manager instance is exist. | |
static DoNotDuplicateSystem * | get () |
Returns class singleton or manager instance. | |
static DoNotDuplicateSystem * | tryGet () |
Returns class singleton or manager instance if exist. | |
Protected Member Functions | |
DoNotDuplicateSystem (bool setSingleton=true) | |
Creates a new do not duplicate system instance. | |
~DoNotDuplicateSystem () override | |
Destroys baked transformer system instance. | |
const std::string & | getComponentName () const override |
Returns specific component name of the system. | |
ID< Component > | createComponent (ID< Entity > entity) override |
Creates a new component instance for the entity. | |
void | destroyComponent (ID< Component > instance) override |
Destroys component instance. | |
void | copyComponent (View< Component > source, View< Component > destination) override |
Copies component data from source to destination. | |
void | setSingleton () |
Sets a new class singleton instance. | |
void | unsetSingleton () noexcept |
Unsets this class singleton instance. | |
Protected Attributes | |
LinearPool< DoNotDuplicateComponent, DestroyComponents > | components |
System component pool. | |
Static Protected Attributes | |
static DoNotDuplicateSystem * | singletonInstance |
Singleton class instance. | |
Friends | |
class | ecsm::Manager |
Handles entities that should not be duplicated.
|
protected |
Creates a new do not duplicate system instance.
setSingleton | set system singleton instance |
|
overrideprotectedvirtual |
Returns specific component name of the system.
Reimplemented from ComponentSystem< DoNotDuplicateComponent, false >.
|
inlineoverridevirtualinherited |
Returns specific component typeid() of the system.
Reimplemented from System.
|
inlineinherited |
Returns entity specific component view.
entity | target entity with component |
|
inlineoverridevirtualinherited |
Actually destroys system components.
Components are not destroyed immediately, only after the dispose call.
Reimplemented from System.
Returns true if entity has specific component.
entity | target entity with component |
|
inlineinherited |
Returns entity specific component view if exist.
entity | target entity with component |