#pragma once #include #include #include #include #include #include #include "Constants.h" class Component; class Entity; class Manager; using ComponentID = std::size_t; using Group = std::size_t; inline ComponentID getNewComponentTypeID() { static ComponentID lastID = 0u; return lastID++; } template inline ComponentID getComponentTypeID() noexcept { static ComponentID typeID = getNewComponentTypeID(); return typeID; }