1 #ifndef RADIX_SYSTEM_HPP
2 #define RADIX_SYSTEM_HPP
15 template<
typename T>
struct _SystemTypeId {
static SystemTypeId id; };
32 static_assert(std::is_base_of<System, T>::value,
"T must be a System");
33 return _SystemTypeId<typename std::remove_cv<T>::type>::id;
38 virtual const char*
getName()
const = 0;
virtual bool runsBefore(const System &)
Definition: System.hpp:40
virtual void update(TDelta dtime)=0
Definition: GameController.hpp:7
Definition: System.hpp:21
System(World &w)
Definition: System.hpp:36
std::size_t SystemTypeId
Definition: System.hpp:10
World & world
Definition: System.hpp:23
Definition: TimeDelta.hpp:8
virtual bool runsAfter(const System &)
Definition: System.hpp:41
SystemTypeId getNewSystemTypeId()
Definition: System.hpp:45
SystemTypeId TypeId
Definition: System.hpp:26
virtual const char * getName() const =0
static TypeId getTypeId()
Gets a component's type ID.
Definition: System.hpp:31