#pragma once #include #include #include #include #include "Component.h" #include "TextureEnumBase.h" class SpriteComponent; class TransformComponent; class TileComponent : public Component { public: TransformComponent* transform; SpriteComponent* sprite; SDL_Rect tileRect; int tileID; TexturesEnum texture; TileComponent() = default; TileComponent(int x, int y, int w, int h, int id, const std::map>* textureDict); ~TileComponent() = default; void init() override; bool hasCollision() { return this->collision; } std::string getName() { #ifdef TEXTURE_ENUM_DEFINED return std::string(magic_enum::enum_name(this->texture)); #else return "Undefined Enum"; #endif } private: bool collision; };