RavEngine
Loading...
Searching...
No Matches
CheckedComponentHandle.hpp
1
#pragma once
2
#include "Entity.hpp"
3
4
namespace
RavEngine
{
5
class
CheckedComponentHandleBase
{
6
protected
:
7
Entity
owner;
8
public
:
9
CheckedComponentHandleBase
(
decltype
(owner) owner) : owner(owner) {}
10
11
inline
operator
bool
()
const
{
12
return
IsValid();
13
}
14
15
inline
void
reset() {
16
owner =
Entity
({ INVALID_ENTITY },
nullptr
);
17
}
18
19
inline
bool
IsValid()
const
{
20
return
owner.IsValid();
21
}
22
};
23
24
template
<
typename
T>
25
struct
CheckedComponentHandle
:
public
CheckedComponentHandleBase
{
26
CheckedComponentHandle
(
decltype
(owner) owner) :
CheckedComponentHandleBase
(owner) {}
27
28
template
<
typename
Val
id
atorType>
29
T* get(
const
ValidatorType& v) {
30
static_assert
(ValidatorType::template
IsValid<T>
(),
"Validator does not have the necessary types"
);
31
return
&owner.GetComponent<T>();
32
}
33
34
bool
operator==(
const
CheckedComponentHandle<T>
& other)
const
{
35
return
owner.id == other.owner.id;
36
}
37
};
38
39
}
RavEngine::CheckedComponentHandleBase
Definition
CheckedComponentHandle.hpp:5
moodycamel::ConcurrentQueue
Definition
concurrentqueue.h:747
RavEngine
Definition
Animation.hpp:6
RavEngine::CheckedComponentHandle
Definition
CheckedComponentHandle.hpp:25
RavEngine::Entity
Definition
Entity.hpp:11
RavEngine
include
RavEngine
CheckedComponentHandle.hpp
Generated by
1.9.8