SimpleEngine/include/simpleengine/component.h

33 lines
844 B
C
Raw Normal View History

//
// Created by SeanOMik on 7/2/2020.
// Github: https://github.com/SeanOMik
// Email: seanomik@gmail.com
//
#ifndef SIMPLEENGINE_COMPONENT_H
#define SIMPLEENGINE_COMPONENT_H
#include <SFML/Graphics.hpp>
2020-07-03 20:26:44 +00:00
#include <memory>
namespace simpleengine {
class Entity;
class Component {
public:
2020-07-03 20:26:44 +00:00
explicit Component(Entity& owning_entity);
2021-03-12 23:08:20 +00:00
virtual ~Component() = default;
2020-07-03 20:26:44 +00:00
2021-03-12 23:08:20 +00:00
virtual void Destroy(); // In most cases, this will be ran next Entity::Update.
const bool& IsDestroying() const;
virtual void Update(const float& delta_time) = 0;
virtual void Render(sf::RenderTarget* target) {}; // Most components won't need to be rendered.
protected:
2020-07-03 20:26:44 +00:00
Entity& owning_entity;
bool destroying = false;
};
}
#endif //SIMPLEENGINE_COMPONENT_H