Khaotic Engine Reborn
Loading...
Searching...
No Matches
component.h
1
#pragma once
2
#include <memory>
3
#include <typeindex>
4
#include <typeinfo>
5
9
namespace
ecs
{
10
11
// Classe de base pour tous les composants
12
class
Component
{
13
public
:
14
Component
() =
default
;
15
virtual
~Component
() =
default
;
16
17
// Empêcher la copie
18
Component
(
const
Component
&) =
delete
;
19
Component
& operator=(
const
Component
&) =
delete
;
20
21
// Permettre le déplacement
22
Component
(
Component
&&) =
default
;
23
Component
& operator=(
Component
&&) =
default
;
24
28
virtual
void
Initialize
() {}
29
34
virtual
void
Update
(
float
deltaTime) {}
35
36
// virtual std::string Serialize() {}
37
// virtual void Deserialize(const std::string& data) {}
38
};
39
43
using
ComponentPtr
= std::shared_ptr<Component>;
44
48
using
ComponentTypeID
= std::type_index;
49
53
template
<
typename
T>
54
ComponentTypeID
GetComponentTypeID
() {
55
static_assert
(std::is_base_of<Component, T>::value,
"T must derive from Component"
);
56
return
std::type_index(
typeid
(T));
57
}
58
59
}
// namespace ecs
ecs::Component
Definition
component.h:12
ecs::Component::Update
virtual void Update(float deltaTime)
Definition
component.h:34
ecs::Component::Initialize
virtual void Initialize()
Definition
component.h:28
ecs
Definition
component.h:9
ecs::ComponentPtr
std::shared_ptr< Component > ComponentPtr
Definition
component.h:43
ecs::ComponentTypeID
std::type_index ComponentTypeID
Definition
component.h:48
ecs::GetComponentTypeID
ComponentTypeID GetComponentTypeID()
Definition
component.h:54
enginecustom
src
inc
system
ecs
component.h
Generated by
1.12.0