Program Listing for File System.hpp¶
↰ Return to documentation for file (include/ari/en/System.hpp
)
#pragma once
#include "../aridef.hpp"
namespace ari
{
class World;
class ARI_API System
{
public:
enum class Type
{
GameplaySystem,
SceneSystem,
RenderSystem
};
enum class UpdateState
{
GameplayState,
SceneManagerState,
MainThreadState
};
System() = default;
virtual ~System() = default;
virtual void Update(World* p_world, UpdateState state) = 0;
virtual void Configure(World* p_world) = 0;
virtual void Unconfigure(World* p_world) = 0;
virtual Type GetSystemType() = 0;
virtual bool NeedUpdateOnState(UpdateState state) = 0;
}; // System
} // ari