A small game engine for 2D games based of Raylib
Ви не можете вибрати більше 25 тем
Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
|
#pragma once
|
|
|
|
#include <chrono>
|
|
#include <memory>
|
|
|
|
namespace ant::core {
|
|
struct entity;
|
|
struct component {
|
|
virtual std::string name() = 0;
|
|
virtual void initialize() {}
|
|
virtual void render() {}
|
|
virtual void update(std::chrono::duration<double>) {}
|
|
[[nodiscard]] auto owner() -> std::shared_ptr<entity> {
|
|
return m_owner.lock();
|
|
}
|
|
private:
|
|
std::weak_ptr<entity> m_owner;
|
|
friend struct entity;
|
|
};
|
|
}
|