// Copyright (c) 2022 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #include "Scene.hpp" #include "game/DawnGame.hpp" using namespace Dawn; Scene::Scene(DawnGame &game) : game(game) { this->nextId = 0; } void Scene::update() { // Finsh adding scene items that were trying to add from the last frame. auto it = this->itemsNotInitialized.begin(); while(it != this->itemsNotInitialized.end()) { this->items[it->first] = it->second; it->second->init(); ++it; } this->itemsNotInitialized.clear(); // TODO: Cleanup old scene items // TODO: Tick scene items(?) this->eventSceneUpdate.invoke(); if(!this->game.timeManager.isPaused) this->eventSceneUnpausedUpdate.invoke(); } std::shared_ptr Scene::createSceneItem() { sceneitemid_t id = this->nextId++; auto item = std::make_shared(*this, id); this->itemsNotInitialized[id] = item; return item; } Scene::~Scene() { }