Program Listing for File system.h¶
↰ Return to documentation for file (rootex/framework/system.h
)
#pragma once
#include "common/common.h"
#include "entity.h"
#include "component.h"
#include "scene.h"
#include "Tracy/Tracy.hpp"
class System
{
public:
enum class UpdateOrder
{
Input,
Update,
PostUpdate,
Render,
PostRender,
RenderUI,
UI,
GameRender,
Editor,
Async,
End
};
protected:
static Vector<Vector<System*>> s_Systems;
friend class Entity;
String m_SystemName;
UpdateOrder m_UpdateOrder;
bool m_IsActive;
bool m_IsSystemPaused;
public:
static const Vector<Vector<System*>>& GetSystems() { return s_Systems; }
System(const String& name, const UpdateOrder& order, bool isGameplay);
System(System&) = delete;
virtual ~System();
virtual bool initialize(const JSON::json& systemData);
virtual void setConfig(const SceneSettings& sceneSettings);
virtual void begin();
virtual void update(float deltaMilliseconds);
virtual void end();
String getName() const { return m_SystemName; }
const UpdateOrder& getUpdateOrder() const { return m_UpdateOrder; }
bool isActive() const { return m_IsActive; }
void setActive(bool enabled);
static void pause();
static void unPause();
virtual void draw();
};