#pragma once

#include "Scenes/MainMenu.h"
#include <ConstGlobals.h>
#include <SFML/Graphics.hpp>
#include <Scenes.h>

#include <utility.h>

#include <tuple>

enum class Scenes : int
{
	Play,
	MainMenu,
	SceneCount
};

inline constexpr int SCENE_COUNT {(int)Scenes::SceneCount};

using SceneContainer = std::tuple
<
	Play_s,
	MainMenu_s
>;

class GameEngine 
{
private:
	void changeScene(Scenes scene_in);

public:
	void run();

private:
	sf::RenderWindow m_window;
	SceneContainer m_scenes;
	Scenes m_currentScene;
	Scenes m_previousScene;
	bool m_running;

};