Exemplo n.º 1
0
		template<typename TComponent> inline void addComponent(TEntityId id, TComponent component)
		{
			auto componentName = GetNameOfComponent<TComponent>();

			componentEntityMap.insert(std::make_pair(componentName, id));
			entityComponentMap[id].insert(std::make_pair(componentName, MakeComponentPtr(component)));
		}
Exemplo n.º 2
0
	void AddComponent(T* c) {
		static_assert(std::is_base_of<Component, T>::value, "AddComponent needs a subclass of Component");
		componentMap.insert({&typeid(T), MakeComponentPtr(c)});
	}
Exemplo n.º 3
0
	void AddComponent(Args&&... args) {
		static_assert(std::is_base_of<Component, T>::value, "AddComponent needs a subclass of Component");
		auto component = MakeComponentPtr(new T(std::forward<Args>(args)...));
		componentMap.insert({&typeid(T), std::move(component)});
	}