cs381/as6/Component.hpp

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;
};