world.hpp 788 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. //
  2. // world.hpp
  3. // danmaku
  4. //
  5. // Created by Sam Jaffe on 5/27/19.
  6. // Copyright © 2019 Sam Jaffe. All rights reserved.
  7. //
  8. #pragma once
  9. #include <memory>
  10. #include <vector>
  11. #include "game/engine/scene.hpp"
  12. namespace danmaku {
  13. class level;
  14. class player;
  15. class world : public engine::scene {
  16. public:
  17. world(std::shared_ptr<engine::game_dispatch> game,
  18. std::unique_ptr<player> player,
  19. std::vector<std::shared_ptr<level>> levels);
  20. ~world();
  21. void update(float delta) override {}
  22. void render() override {}
  23. static std::shared_ptr<world>
  24. load_world(std::string const & path,
  25. std::shared_ptr<engine::game_dispatch>);
  26. private:
  27. std::unique_ptr<player> player_;
  28. std::vector<std::shared_ptr<level>> levels_;
  29. };
  30. }