2021-09-13 15:53:43 +03:00
|
|
|
//
|
|
|
|
// Created by Иван Ильин on 14.01.2021.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef ENGINE_ENGINE_H
|
|
|
|
#define ENGINE_ENGINE_H
|
|
|
|
|
|
|
|
#include "Screen.h"
|
2021-09-19 15:44:31 +03:00
|
|
|
#include "Keyboard.h"
|
|
|
|
#include "Mouse.h"
|
|
|
|
|
2021-09-13 15:53:43 +03:00
|
|
|
#include "World.h"
|
|
|
|
#include "Camera.h"
|
|
|
|
#include "utils/Log.h"
|
|
|
|
|
|
|
|
class Engine {
|
2021-09-19 11:25:10 +03:00
|
|
|
private:
|
|
|
|
std::string _name;
|
2021-09-20 13:54:09 +03:00
|
|
|
|
2021-09-19 11:25:10 +03:00
|
|
|
double _triPerSec = 0;
|
|
|
|
bool _updateWorld = true;
|
2021-10-23 17:15:24 +03:00
|
|
|
bool _debugText = Consts::SHOW_COORDINATES;
|
2021-10-22 19:42:32 +03:00
|
|
|
bool _useOpenGL = Consts::USE_OPEN_GL;
|
2021-09-19 11:25:10 +03:00
|
|
|
|
|
|
|
void printDebugText() const;
|
2021-09-13 15:53:43 +03:00
|
|
|
protected:
|
2021-10-28 16:58:02 +03:00
|
|
|
const std::shared_ptr<Screen> screen = std::make_shared<Screen>();
|
|
|
|
const std::shared_ptr<Keyboard> keyboard = std::make_shared<Keyboard>();
|
|
|
|
const std::shared_ptr<Mouse> mouse = std::make_shared<Mouse>(screen);
|
2021-09-19 15:44:31 +03:00
|
|
|
|
2021-10-28 16:58:02 +03:00
|
|
|
const std::shared_ptr<World> world = std::make_shared<World>();
|
|
|
|
const std::shared_ptr<Camera> camera = std::make_shared<Camera>();
|
2021-09-13 15:53:43 +03:00
|
|
|
|
|
|
|
virtual void start() {};
|
2021-09-19 11:25:10 +03:00
|
|
|
virtual void update() {};
|
|
|
|
|
|
|
|
void setDebugText(bool value) { _debugText = value; }
|
|
|
|
void setUpdateWorld(bool value) { _updateWorld = value; }
|
2021-10-22 19:42:32 +03:00
|
|
|
void setGlEnable(bool value) { _useOpenGL = value; }
|
2021-09-13 15:53:43 +03:00
|
|
|
|
|
|
|
virtual void gui(){}
|
2021-10-02 20:36:07 +03:00
|
|
|
public:
|
|
|
|
Engine();
|
|
|
|
|
|
|
|
virtual ~Engine() = default;
|
|
|
|
|
2021-10-16 20:22:55 +03:00
|
|
|
void create(int screenWidth = Consts::STANDARD_SCREEN_WIDTH, int screenHeight = Consts::STANDARD_SCREEN_HEIGHT, const std::string& name = Consts::PROJECT_NAME, bool verticalSync = true, sf::Color background = Consts::BACKGROUND_COLOR, sf::Uint32 style = sf::Style::Default);
|
2021-10-02 20:36:07 +03:00
|
|
|
void exit();
|
2021-09-13 15:53:43 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif //INC_3DZAVR_TDZAVR_H
|