// Copyright (c) 2022 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include "scene/Scene.hpp"
#include "prefabs/PlayerPrefab.hpp"

namespace Dawn {
  class TestScene : public Scene {
    protected:
      void stage() override {
        auto camera = Camera::create(this);
        camera->type = CAMERA_TYPE_ORTHONOGRAPHIC;
        camera->item->addComponent<PixelPerfectCamera>();
        camera->transform->lookAt(glm::vec3(0, 0, 10), glm::vec3(0, 0, 0));

        auto player = PlayerPrefab::create(this);
        player->playerController->camera = camera;
      }
      
      std::vector<Asset*> getRequiredAssets() override {
        auto assMan = &this->game->assetManager;
        std::vector<Asset*> assets;
        vectorAppend(&assets, PlayerPrefab::getRequiredAssets(assMan));
        return assets;
      }

    public:
      TestScene(DawnGame *game) : Scene(game) {}
  };
}