#pragma once

#include <cstdint>
#include <string>

class GameObject {
public:
	GameObject(std::uint32_t id, std::string name, std::string tag, int layer);

	template <typename... Args>
	void addSpriteComponent(Args &&... args);
	template <typename... Args>
	void addRigidbodyComponent(Args &&... args);
	template <typename... Args>
	void addColiderComponent(Args &&... args);

	std::uint32_t mId;
	std::string mName;
	std::string mTag;
	bool mActive;
	int mLayer;
};

#include "GameObjectMax.hpp"