![]() |
Apparatus
Version 1.3.0
ECS data-driven workflow for Unreal Engine.
|
The main entity of the Apparatus, consisting of traits. More...
#include <SubjectHandle.h>
Public Types | |
enum | { InvalidId = FSubjectInfo::InvalidId , InvalidGeneration = FSubjectInfo::InvalidGeneration } |
Public Member Functions | |
EApparatusStatus | Despawn () |
Destroy the subject. More... | |
bool | Contains (const UScriptStruct *TraitType) const |
Check if a subject contains a trait. More... | |
class UChunk * | GetChunk () const |
Get the current chunk of the subject. More... | |
bool | IsValid () const |
Check if the subject is valid. More... | |
operator bool () const | |
Check if the subject is valid. More... | |
EApparatusStatus | SetTrait (UScriptStruct *TraitType, const void *const TraitData) |
Set a trait of the subject by its type. More... | |
template<typename T > | |
EApparatusStatus | SetTrait (const T &Trait) |
Set a trait of the subject. More... | |
EApparatusStatus | GetTrait (UScriptStruct *TraitType, void *const TraitData, const bool bTraitDataInitialized=true) const |
Get a trait from a subject by its type. More... | |
template<typename T > | |
EApparatusStatus | GetTrait (T &OutTrait, const bool bTraitDataInitialized=true) const |
Get a trait from a subject by its type. More... | |
EApparatusStatus | ObtainTrait (UScriptStruct *TraitType, void *const TraitData, const bool bTraitDataInitialized=true) |
Obtain a trait from a subject by its type. More... | |
template<typename T > | |
EApparatusStatus | ObtainTrait (T &OutTrait, const bool bTraitDataInitialized=true) |
Obtain a trait from a subject. More... | |
EApparatusStatus | RemoveTrait (UScriptStruct *TraitType) |
Remove a trait from the subject. More... | |
template<typename T > | |
EApparatusStatus | RemoveTrait () |
Remove a trait from the subject. More... | |
bool | operator== (const FSubjectHandle &InSubject) const |
Check if the subject handle points to the same subject as the other one. More... | |
bool | operator!= (const FSubjectHandle &InSubject) const |
Check if the subject handles point to different subjects. More... | |
bool | HasTrait (UScriptStruct *const TraitType) const |
Check if the subject has a certain trait. More... | |
template<typename T > | |
bool | HasTrait () const |
Check if the subject has a certain trait. More... | |
bool | HasDetail (TSubclassOf< UDetail > DetailClass) const |
Check if the subject has a certain detail. More... | |
template<typename T > | |
bool | HasDetail () const |
Check if the subject has a certain detail. More... | |
TScriptInterface< ISubjective > | GetSubjective () const |
Get a subjective this handle is associated with (if any). More... | |
void | ResetHandle () const |
Clear the subject handle, essentially making it invalid. More... | |
uint32 | CalcHash () const |
Calculate the hash-sum value for the handle. More... | |
Static Public Attributes | |
static const FSubjectHandle | Invalid |
A global constant for an invalid (NULL) subject handle. More... | |
Friends | |
struct | FSubjectInfo |
struct | FChunkChain |
class | UChunk |
class | UMachine |
class | ISubjective |
The main entity of the Apparatus, consisting of traits.
This is a user-level handle structure, something like a pointer. The size of this structure is exactly 64-bit and may be passed by value.
anonymous enum |
|
inline |
Calculate the hash-sum value for the handle.
|
inline |
Check if a subject contains a trait.
TraitType | A trait to check for. |
EApparatusStatus FSubjectHandle::Despawn | ( | ) |
Destroy the subject.
|
inline |
Get the current chunk of the subject.
|
inline |
Get a subjective this handle is associated with (if any).
|
inline |
Get a trait from a subject by its type.
Templated version.
T | The type of the trait to get. |
OutTrait | The trait receiver. |
bTraitDataInitialized | Is the OutTrait actually initialized? |
|
inline |
Get a trait from a subject by its type.
TraitType | The type of the trait to get. |
TraitData | The trait data receiver. |
bTraitDataInitialized | Is the TraitData buffer actually initialized? |
|
inline |
Check if the subject has a certain detail.
Templated version.
|
inline |
Check if the subject has a certain detail.
|
inline |
Check if the subject has a certain trait.
Templated version.
|
inline |
Check if the subject has a certain trait.
|
inline |
Check if the subject is valid.
true
if the subject is valid. Otherwise, false
is returned.
|
inline |
Obtain a trait from a subject.
Templated version.
If the trait is not currently within the subject, it gets created anew and the default value gets copied to the receiver.
T | The type of the trait to obtain. |
OutTrait | The trait receiver. |
bTraitDataInitialized | Is the OutTrait actually initialized? |
|
inline |
Obtain a trait from a subject by its type.
If the trait is not currently within the subject, it gets created anewand the default value gets copied to the receiver.
TraitType | The type of the trait to obtain. |
TraitData | The trait data receiver. |
bTraitDataInitialized | Is the TraitData buffer actually initialized? |
|
inline |
Check if the subject is valid.
true
if the subject is valid. Otherwise, false
is returned.
|
inline |
Check if the subject handles point to different subjects.
|
inline |
Check if the subject handle points to the same subject as the other one.
|
inline |
Remove a trait from the subject.
Templated version.
If there is no such trait in the subject, nothing is performed and EApparatusStatus::Noop is returned.
T | The type of the trait to remove. |
|
inline |
Remove a trait from the subject.
If there is no such trait in the subject, nothing is performed and EApparatusStatus::Noop is returned.
TraitType | The type of the trait to remove. |
|
inline |
Clear the subject handle, essentially making it invalid.
|
inline |
Set a trait of the subject.
Templated version.
If the trait is not currently within the subject, it gets created anew and set accordingly.
T | A type of the trait to add. |
Trait | A trait to initialize with. |
|
inline |
Set a trait of the subject by its type.
If the trait is not currently within the subject, it gets created anew and set accordingly
TraitType | The type of the trait to add. |
TraitData | The trait data to initialize with. |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
static |
A global constant for an invalid (NULL) subject handle.