Large refactoring, using the Entity-Component model.

This commit is contained in:
2016-11-30 19:50:01 +02:00
parent bcd0a359fc
commit 9c8cbf8518
53 changed files with 1616 additions and 675 deletions

View File

@ -8,11 +8,10 @@
#ifndef MODEL_GAMESTATE_H_
#define MODEL_GAMESTATE_H_
#include <base/GameObject.h>
#include <base/RenderContext.h>
#include <model/Level.h>
#include <model/Player.h>
#include <graphics/SdlRenderer.h>
#include <graphics/GameRenderer.h>
#include <graphics/GuiRenderer.h>
#include <model/Configuration.h>
#include <resources/ResourceManager.h>
@ -20,32 +19,18 @@
namespace farmlands {
struct ViewportState
{
bool initialized;
int width, height;
};
struct Camera
{
float posX, posY;
float scale;
};
struct GuiState
{
};
struct GameState
class GameState
{
// Resource layer
resources::ResourceManager resManager;
public:
static GameState& current();
static void setCurrent(GameState& state);
// Graphics layer
graphics::SdlRenderer sdlRenderer;
graphics::GuiRenderer guiRenderer;
graphics::GameRenderer gameRenderer;
// Render context
base::RenderContext renderContext;
// Gui
GuiState gui;
@ -54,13 +39,14 @@ namespace farmlands {
model::Configuration config;
// Current game
ViewportState viewport;
Camera camera;
model::Player player;
model::Level* currentLevel;
base::GameObject root;
float elapsedTime;
private:
static GameState s_current;
};
}