24 lines
513 B
C++
24 lines
513 B
C++
#pragma once
|
|
|
|
#include "GameContext.hpp"
|
|
|
|
struct Entity;
|
|
|
|
/**
|
|
* Base interface that every concrete gameplay component derives from.
|
|
*
|
|
* Each component is attached to one entity and receives the shared scene
|
|
* `GameContext` pointer so it can read global gameplay state.
|
|
*/
|
|
class Component {
|
|
public:
|
|
Entity *entity = nullptr;
|
|
GameContext *context = nullptr;
|
|
|
|
virtual void Setup() = 0;
|
|
virtual void Update(float dt) = 0;
|
|
virtual void Cleanup() = 0;
|
|
|
|
virtual ~Component() = default;
|
|
};
|