CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
System.hpp File Reference
#include "Forward.hpp"
#include "Action.hpp"
#include "ActionHandler.hpp"
#include "Component.hpp"
#include "Event.hpp"
#include "EventListener.hpp"
#include "CeresEngine/Macros.hpp"
#include <type_traits>
#include "ActionManager.hpp"
#include "EventManager.hpp"

Go to the source code of this file.

Classes

class  CeresEngine::AbstractSystem
 A abstract class that provides a trait that allows checking for system implementations. More...
 
struct  CeresEngine::SystemComponentListener< EO >
 A special type of ComponentListener that listens when an entity becomes a given EntityObject type given as EO. More...
 
class  CeresEngine::System< T, EntityObjectSet< EOs... >, ComponentSet< Cs... >, EntityActionSet< As... > >
 A system is a special kind of service that is managed internally by the SystemManager. More...
 

Namespaces

namespace  CeresEngine
 

Concepts

concept  CeresEngine::CSystem
 
concept  CeresEngine::CSystemImplementation
 

Typedefs

using CeresEngine::SystemOrder = int
 A signed numeric type that represents the order in which a system should be updated by the SystemManager.
 
template<typename T , typename S >
using CeresEngine::ifSystem = typename std::enable_if< isSystem< S >, T >::type
 If the type S is a system (as defined by isSystem<S>), this type is aliased to T.
 

Functions

template<typename S >
constexpr void CeresEngine::checkSystem ()
 A trait that checks if the type S is a valid system type.
 

Variables

template<typename S >
constexpr bool CeresEngine::isSystem = std::is_base_of<AbstractSystem, S>::value
 A trait that checks if the type S is a system.
 
template<typename... Ss>
constexpr bool CeresEngine::areSystems = (isSystem<Ss> && ...)
 A trait that checks if the types Ss are all systems.