#pragma once #include "Components.hpp" #include "Entity.hpp" #include #include void UpdateAllSystems(std::vector> &entities, float deltaTime) { std::shared_ptr worldEntity; std::shared_ptr wellEntity; float scrollX = 0.0f; if (!entities.empty()) { worldEntity = entities[0]; } if (entities.size() > 1) { wellEntity = entities[1]; } if (worldEntity) { worldEntity->Update(deltaTime); auto scroll = worldEntity->GetComponent(); if (scroll) { scrollX = scroll->get().scrollX; } } if (wellEntity) { wellEntity->Update(deltaTime); } for (auto &entity : entities) { if (entity == worldEntity || entity == wellEntity || !entity) { continue; } auto receiver = entity->GetComponent(); if (receiver) { receiver->get().well = wellEntity.get(); } auto transform = entity->GetComponent(); auto scrollable = entity->GetComponent(); if (transform && scrollable) { transform->get().x = scrollable->get().worldX - scrollX; } entity->Update(deltaTime); } }