diff --git a/include/asset.h b/include/asset.h new file mode 100644 index 0000000000000000000000000000000000000000..a2e1cd798d41dfef6da571748b0f202dbeb8a32c --- /dev/null +++ b/include/asset.h @@ -0,0 +1,15 @@ +#ifndef __ASSET_H__ +#define __ASSET_H__ + +#include "logger.h" + +class Asset +{ + public: + Asset(); + ~Asset(); + private: + Logger& _logger; +}; + +#endif // __ASSET_H__ diff --git a/include/game-engine.h b/include/game-engine.h index 4f92753c5626595e9dd54380754d710edaf696d0..d58922982ddc1c6cecd87627157b048859e289a2 100644 --- a/include/game-engine.h +++ b/include/game-engine.h @@ -19,11 +19,15 @@ class GameEngine void update(); void close(); Scene* currentScene(); - void changeScene( Scene scene ); + // void changeScene( Scene scene ); // std::vector< Asset& > getAssets(); // Window& getWindow(); + std::vector<Asset> getAssets(); + void sUserInput(); + bool isRunning; + void handleInput(); private: EntityManager _entityManager; Logger& _logger; @@ -32,7 +36,7 @@ class GameEngine // Window* _window; // std::vector<Asset> _assets; - std::map< std::string, Scene > _scenes; + // std::map< std::string, Scene > _scenes; /* Systems */ // sUserInput diff --git a/include/scene.h b/include/scene.h index 149f98d55d7c0700570d500b4a18273afef7155c..79747924cbe0c76576546ff48b4cfca9b373fb19 100644 --- a/include/scene.h +++ b/include/scene.h @@ -1,14 +1,33 @@ #ifndef __SCENE_H__ #define __SCENE_H__ +#include <map> +#include <string> +#include <vector> + #include "logger.h" +#include "asset.h" +#include "entities/entity-generic.h" +#include "entity-manager.h" class Scene{ public: Scene(); ~Scene(); + + virtual void update() = 0; + virtual void simulate() = 0; + virtual void doAction() = 0; + virtual void registerAction() = 0; private: + std::vector<Asset> _assets; Logger& _logger; + + EntityManager _entities; + size_t _frame; + + bool _hasEnded = false; + std::map< size_t, std::string> _actionMap; }; #endif // __SCENE_H__ diff --git a/src/asset.cpp b/src/asset.cpp new file mode 100644 index 0000000000000000000000000000000000000000..b3b506fbf9964135bf6426579e2d5b7b9ac53510 --- /dev/null +++ b/src/asset.cpp @@ -0,0 +1,6 @@ +#include "asset.h" + +Asset::Asset() + : _logger( Logger::instance() ) +{ this->_logger.info( "New asset created" ); } +Asset::~Asset(){} diff --git a/src/game-engine.cpp b/src/game-engine.cpp index ea8cbdcb7f94b39c6400b8e5260f8b90af310c7d..1846be3ac4a2e7edafa13d9dc7e2e7bb391b9f50 100644 --- a/src/game-engine.cpp +++ b/src/game-engine.cpp @@ -16,7 +16,7 @@ void GameEngine::init() this->isRunning = false; this->_currScene = ""; } -void GameEngine::changeScene( Scene scene ){} +// void GameEngine::changeScene( Scene scene ){} Scene* GameEngine::currentScene() { return nullptr; @@ -29,3 +29,4 @@ void GameEngine::update() { this->_entityManager.update(); } +void GameEngine::handleInput() { }