#pragma once

#include <frostbite2D/2d/actor.h>
#include <frostbite2D/event/event.h>
#include <vector>

namespace frostbite2D {

class Scene : public Actor {
public:
  Scene();
  virtual ~Scene();

  virtual void onEnter();
  virtual void onExit();

  void Update(float deltaTime) override;
  void Render() override;

  bool OnEvent(const Event& event) override;
  
  static Scene* GetCurrent();

private:
  bool dispatchToChildren(const Event& event);
  
  static Scene* current_;

  friend class SceneManager;
};

}

