SHADE_Y3/SHADE_Engine/src/ECS_Base/System/SHSystem.h

90 lines
2.1 KiB
C
Raw Normal View History

2022-09-08 11:08:23 +08:00
/*********************************************************************
* \file SHSystem.h
* \author Daniel Chua Yee Chen
* \brief Declaration for the SHSytem abstract base class
*
* \copyright Copyright (c) 2021 DigiPen Institute of Technology. Reproduction
or disclosure of this file or its contents without the prior written
consent of DigiPen Institute of Technology is prohibited.
*********************************************************************/
2022-09-13 15:36:34 +08:00
#pragma once
2022-09-13 14:07:40 +08:00
2022-09-08 11:08:23 +08:00
namespace SHADE
{
2022-09-13 14:07:40 +08:00
2022-09-13 15:26:23 +08:00
class SHSystemManager;
2022-09-13 14:07:40 +08:00
2022-09-08 11:08:23 +08:00
class SHSystem
{
protected:
/*!*************************************************************************
* \brief
* Protected default constructor for SHSytem class
***************************************************************************/
SHSystem()= default;
public:
/*!*************************************************************************
* \brief
* Destructor for SHSytem class
***************************************************************************/
virtual ~SHSystem() = default;
/*!*************************************************************************
* \brief
* Pure virtual Init function. Derived class must implement this
***************************************************************************/
virtual void Init() = 0;
/*!*************************************************************************
* \brief
* Pure virtual Run function. Derived class must implement this
* \param dt
* Delta time
***************************************************************************/
virtual void Run(float dt) = 0;
/*!*************************************************************************
* \brief
* Pure virtual Exit function. Derived class must implement this
***************************************************************************/
virtual void Exit() = 0;
2022-09-13 15:26:23 +08:00
protected:
2022-09-13 15:36:03 +08:00
2022-09-13 15:26:23 +08:00
2022-09-08 11:08:23 +08:00
};
2022-09-13 15:26:23 +08:00
class SHTestSystem : public SHSystem
{
public:
SHTestSystem() = default;
~SHTestSystem() = default;
int value{5};
void Init()
{
}
void Run(float dt)
{
}
void Exit()
{
}
};
2022-09-13 15:36:34 +08:00
}