#include "EngineRenderingSystem.h" #include "../Engine_Graphics/Scene.h" // Engine Rendering System EngineRenderingSystem::EngineRenderingSystem(Scene& inputScene) : EngineMessageSystem(inputScene){} EngineRenderingSystem::~EngineRenderingSystem(){} // Step through the Rendering System void EngineRenderingSystem::play(const sf::Time& elapsedTime) { // messages auto messageSystemEventType = this->scene->getEntityManagement().getMessageSystemEventType(MessageSystemEventType::SPRITE_RECTANGLE_TYPE); // Sorting list by z std::sort(messageSystemEventType->begin(), messageSystemEventType->end(), [](messageSystemEventVector::value_type value1, messageSystemEventVector::value_type value2) { return value1.second->getEntitySprite()->getSpriteZOrder() < value2.second->getEntitySprite()->getSpriteZOrder(); }); this->scene->spriteRectangleVector.clear(); for (auto message : *messageSystemEventType) { auto spriteRectangle = static_cast(message.first); this->scene->spriteRectangleVector.push_back(spriteRectangle); } } void EngineRenderingSystem::clear() { scene->spriteRectangleVector.clear(); }