Apparatus Version 1.3.0
ECS data-driven workflow for Unreal Engine.
Public Member Functions | Static Public Attributes | Friends | List of all members
FFingerprint Struct Reference

The traits/details fingerprint. More...

#include <Fingerprint.h>

Collaboration diagram for FFingerprint:
Collaboration graph
[legend]

Public Member Functions

EBootFilter GetBootState () const
 Get the active boot state. More...
 
EApparatusStatus SetBootState (const EBootFilter InBootState)
 Set the new active boot state. More...
 
EApparatusStatus SetBooted (bool bState=true)
 Set the new active boot state. More...
 
bool IsBooted () const
 Check if the fingerprint corresponds to a booted entity. More...
 
const TArray< UScriptStruct * > & GetTraits () const
 Get the traits of the fingerprint. More...
 
const TArray< TSubclassOf< UDetail > > & GetDetails () const
 Get the details of the fingerprint. More...
 
int32 TraitsNum () const
 The number of traits in the fingerprint. More...
 
int32 DetailsNum () const
 The number of details in the fingerprint. More...
 
const FTraitmarkGetTraitmark () const
 Get the traitmark part of the fingerprint. More...
 
const FDetailmarkGetDetailmark () const
 Get the detailmark part of the fingerprint. More...
 
 operator const FTraitmark & () const
 Convert a fingerprint to a traitmark. More...
 
 operator const FDetailmark & () const
 Convert a fingerprint to a detailmark. More...
 
const FBitMaskGetTraitsMask () const
 Get the traits mask of the fingerprint. More...
 
const FBitMaskGetDetailsMask () const
 Get the details mask of the fingerprint. More...
 
UScriptStruct * TraitAt (const int32 Index) const
 Get a trait by its index. More...
 
TSubclassOf< UDetailDetailAt (const int32 Index) const
 Get a detail by its index. More...
 
 operator TArray< TSubclassOf< UDetail >> () const
 Convert to an array of detail types. More...
 
 operator bool () const
 Check if a fingerprint is viable and has any effect. More...
 
EApparatusStatus FindDetailsMappingFrom (const TArray< TSubclassOf< UDetail >> &InDetailClasses, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another fingerprint defined by an array of details. More...
 
void FindTraitsMappingFrom (const TArray< UScriptStruct * > &InTraitmark, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another traitmark defined by an array of traits. More...
 
EApparatusStatus FindDetailsMappingFrom (const TArray< TSubclassOf< UDetail >> &InDetailClasses, TArray< TArray< int32 >> &OutMapping) const
 Get an indexing multi-mapping from another fingerprint defined by an array of details. More...
 
EApparatusStatus FindDetailsMappingFrom (const FFingerprint &Fingerprint, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another fingerprint. More...
 
EApparatusStatus FindTraitsMappingFrom (const FFingerprint &Fingerprint, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another fingerprint's traits. More...
 
EApparatusStatus FindTraitsMappingFrom (const FTraitmark &InTraitmark, TArray< int32 > &OutMapping) const
 Get an indexing mapping from another traitmark's traits. More...
 
EApparatusStatus FindDetailsMappingTo (const FFingerprint &Fingerprint, TArray< int32 > &OutMapping) const
 Get an indexing details mapping to another fingerprint. More...
 
EApparatusStatus FindTraitsMappingTo (const FTraitmark &InTraitmark, TArray< int32 > &OutMapping) const
 Get an indexing traits mapping to another traitmark. More...
 
EApparatusStatus FindTraitsMappingTo (const FFingerprint &InFingerprint, TArray< int32 > &OutMapping) const
 Get an indexing traits mapping to another traitmark. More...
 
EApparatusStatus FindDetailsMappingFrom (const FFingerprint &Fingerprint, TArray< TArray< int32 >> &OutMapping) const
 Get a detail indexing multi-mapping from another fingerprint. More...
 
EApparatusStatus FindDetailsMappingTo (const FFingerprint &Fingerprint, TArray< TArray< int32 >> &OutMapping) const
 Get an indexing multi-mapping to another fingerprint. More...
 
bool Contains (const FFingerprint &Fingerprint) const
 Does the fingerprint fully includes another fingerprint? More...
 
bool Contains (const UScriptStruct *TraitType) const
 Check if the fingerprint includes a trait type. More...
 
bool Contains (const TSubclassOf< UDetail > DetailClass) const
 Check if the fingerprint includes a detail class. More...
 
bool Matches (const FFilter &Filter) const
 Check if the fingerprint matches a filter. More...
 
bool Matches (const FFingerprint &Fingerprint) const
 Check if the fingerprint matches another fingerprint acting as a filter. More...
 
bool Matches (const struct FTraitmark &InTraitmark) const
 Check if the fingerprint matches a traitmark acting as a filter. More...
 
bool Matches (const struct FDetailmark &InDetailmark) const
 Check if the fingerprint matches a detailmark acting as a filter. More...
 
int32 IndexOf (UScriptStruct *TraitType) const
 Get the index of a specific trait type. More...
 
int32 IndexOf (const TSubclassOf< UDetail > DetailClass) const
 Get the index of a specific detail class. More...
 
EApparatusStatus IndicesOf (const TSubclassOf< UDetail > DetailClass, TArray< int32 > &OutIndices) const
 Get the indices of a specific detail class. More...
 
 FFingerprint (const EBootFilter InBootState=EBootFilter::None)
 Create an empty fingerprint with an optional boot state. More...
 
 FFingerprint (const TSubclassOf< UDetail > DetailClass, const EBootFilter InBootState=EBootFilter::None)
 Construct a new fingerprint from a single detail class. More...
 
 FFingerprint (UScriptStruct *TraitType, const EBootFilter InBootState=EBootFilter::None)
 Construct a new fingerprint from a single trait type. More...
 
template<typename TAllocator >
 FFingerprint (const TArray< UDetail *, TAllocator > &InDetails, const EBootFilter InBootState=EBootFilter::None)
 Construct a fingerprint from an array of details and a boot state. More...
 
template<typename TAllocator >
 FFingerprint (const TArray< TSubclassOf< UDetail >, TAllocator > &InDetailClasses, const EBootFilter InBootState=EBootFilter::None)
 Construct a fingerprint from an array of detail classes and a boot filter. More...
 
template<typename TAllocatorA , typename TAllocatorB >
 FFingerprint (const TArray< UScriptStruct *, TAllocatorA > &InTraitTypes, const TArray< TSubclassOf< UDetail >, TAllocatorB > &InDetailClasses, const EBootFilter InBootState=EBootFilter::None)
 Construct a fingerprint from arrays of detail classes and trait types and also a boot filter. More...
 
 FFingerprint (const FFingerprint &InFingerprint)
 Construct a fingerprint as a copy of another one. More...
 
 FFingerprint (FFingerprint &&InFingerprint)
 Move-construct a new fingerprint. More...
 
 FFingerprint (FTraitmark &&InTraitmark, FDetailmark &InDetailmark)
 Construct a new fingerprint while moving a traitmark and a detailmark. More...
 
EApparatusStatus Set (FFingerprint &&InFingerprint)
 Move a fingerprint to this one. More...
 
EApparatusStatus Set (const FFingerprint &InFingerprint)
 Set a fingerprint equal to another fingerprint. More...
 
template<typename TAllocator >
EApparatusStatus Set (const TArray< TSubclassOf< UDetail >, TAllocator > &InDetailClasses, const EBootFilter InBootState=EBootFilter::None)
 Set a fingerprint to an array of types and an optional boot state. More...
 
template<typename TAllocator >
EApparatusStatus Set (const TArray< UDetail *, TAllocator > &InDetails, const EBootFilter InBootState=EBootFilter::None)
 Set a fingerprint to an array of details and a boot state. More...
 
template<typename TAllocator >
EApparatusStatus Set (const TArray< UScriptStruct *, TAllocator > &InTraits, const EBootFilter InBootState=EBootFilter::None)
 Set a fingerprint to an array of traits and a boot state. More...
 
FFingerprintoperator= (const FFingerprint &Fingerprint)
 Set a fingerprint equal to another fingerprint. More...
 
FFingerprintoperator= (const TArray< TSubclassOf< UDetail >> &InDetailClasses)
 Set a fingerprint equal to an array of types. More...
 
template<typename TAllocator >
FFingerprintoperator= (const TArray< UDetail *, TAllocator > &InDetails)
 Set a fingerprint equal to an array of details. More...
 
EApparatusStatus Add (std::initializer_list< UScriptStruct * > TraitTypes)
 Add trait types to a fingerprint. More...
 
EApparatusStatus Add (std::initializer_list< TSubclassOf< UDetail >> DetailClasses)
 Add detail classes to a fingerprint. More...
 
EApparatusStatus Add (const FFingerprint &Fingerprint, const EBootFilter InBootState=EBootFilter::None)
 Add a fingerprint with a boot state override. More...
 
EApparatusStatus Add (UScriptStruct *TraitType, const EBootFilter InBootState=EBootFilter::None)
 Add a trait type. More...
 
EApparatusStatus Add (const TSubclassOf< UDetail > DetailClass, const EBootFilter InBootState=EBootFilter::None)
 Add a detail class. More...
 
template<typename TAllocator >
EApparatusStatus Add (const TArray< UScriptStruct *, TAllocator > &InTraitTypes, const EBootFilter InBootState=EBootFilter::None)
 Add an array of traits and a boot state specification. More...
 
template<typename TAllocator >
EApparatusStatus Add (const TArray< TSubclassOf< UDetail >, TAllocator > &DetailClasses, const EBootFilter InBootState=EBootFilter::None)
 Add an arrary of detail classes. More...
 
template<typename TAllocator >
EApparatusStatus Add (const TArray< UDetail *, TAllocator > &InDetails, const EBootFilter InBootState=EBootFilter::None)
 Add an array of details and a boot state specification. More...
 
template<class T >
EApparatusStatus AddDetail ()
 Add a generic detail class. More...
 
template<typename T >
EApparatusStatus AddTrait ()
 Add a generic trait type. More...
 
bool ContainsDetail (const TSubclassOf< UDetail > DetailClass) const
 Check whether a fingerprint contains a detail specification. More...
 
bool ContainsTrait (const UScriptStruct *TraitType) const
 Check whether a fingerprint contains a trait specification. More...
 
template<typename T >
bool ContainsTrait ()
 Check whether a fingerprint contains a trait specification. More...
 
FFingerprintoperator+= (std::initializer_list< TSubclassOf< UDetail >> DetailClasses)
 Add variadic detail classes. More...
 
FFingerprintoperator+= (std::initializer_list< UScriptStruct * > TraitTypes)
 Add variadic trait types. More...
 
FFingerprintoperator+= (const FFingerprint &Fingerprint)
 Add a fingerprint specification. More...
 
template<typename TAllocator >
FFingerprintoperator+= (const TArray< TSubclassOf< UDetail >, TAllocator > &DetailClasses)
 Add an array of detail classes. More...
 
template<typename TAllocator >
FFingerprintoperator+= (const TArray< UScriptStruct *, TAllocator > &TraitTypes)
 Add an array of trait types. More...
 
template<typename TAllocator >
FFingerprintoperator+= (const TArray< UDetail *, TAllocator > &InDetails)
 Add active details from an array. More...
 
FFingerprintoperator+= (TSubclassOf< UDetail > DetailClass)
 Add a single detail class. More...
 
FFingerprintoperator+= (UScriptStruct *TraitType)
 Add a single trait type. More...
 
EApparatusStatus Remove (const TSubclassOf< UDetail > DetailClass)
 Remove a detail class from the fingerprint specification. More...
 
EApparatusStatus Remove (UScriptStruct *const TraitType)
 Remove a trait type from the fingerprint specification. More...
 
FFingerprintoperator-= (TSubclassOf< UDetail > DetailClass)
 Remove a detail class from a fingerprint. More...
 
FFingerprintoperator-= (UScriptStruct *TraitType)
 Remove a trait type from a fingerprint. More...
 
template<class T >
bool RemoveDetail ()
 Remove a detail class from a fingerprint. More...
 
template<typename T >
bool RemoveTrait ()
 Remove a type from a fingerprint. More...
 
EApparatusStatus Reset ()
 Clear the fingerprint without any deallocations. More...
 
FString ToString () const
 Convert a fingerprint to a string. More...
 

Static Public Attributes

static const FFingerprint Zero
 The all-zeroed fingerprint. More...
 
static const FFingerprint Halted
 The default fingerprint for newly spanwed subjects. More...
 

Friends

class UBelt
 
class AMechanism
 
class UApparatusFunctionLibrary
 
class UChunk
 
struct FSubjectHandle
 
struct FFilter
 
uint32 GetTypeHash (const FFingerprint &Fingerprint)
 Get the hash of a fingerprint. More...
 

Detailed Description

The traits/details fingerprint.

Constructor & Destructor Documentation

◆ FFingerprint() [1/9]

FFingerprint::FFingerprint ( const EBootFilter  InBootState = EBootFilter::None)
inline

Create an empty fingerprint with an optional boot state.

◆ FFingerprint() [2/9]

FFingerprint::FFingerprint ( const TSubclassOf< UDetail DetailClass,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Construct a new fingerprint from a single detail class.

◆ FFingerprint() [3/9]

FFingerprint::FFingerprint ( UScriptStruct *  TraitType,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Construct a new fingerprint from a single trait type.

◆ FFingerprint() [4/9]

template<typename TAllocator >
FFingerprint::FFingerprint ( const TArray< UDetail *, TAllocator > &  InDetails,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Construct a fingerprint from an array of details and a boot state.

◆ FFingerprint() [5/9]

template<typename TAllocator >
FFingerprint::FFingerprint ( const TArray< TSubclassOf< UDetail >, TAllocator > &  InDetailClasses,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Construct a fingerprint from an array of detail classes and a boot filter.

◆ FFingerprint() [6/9]

template<typename TAllocatorA , typename TAllocatorB >
FFingerprint::FFingerprint ( const TArray< UScriptStruct *, TAllocatorA > &  InTraitTypes,
const TArray< TSubclassOf< UDetail >, TAllocatorB > &  InDetailClasses,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Construct a fingerprint from arrays of detail classes and trait types and also a boot filter.

◆ FFingerprint() [7/9]

FFingerprint::FFingerprint ( const FFingerprint InFingerprint)
inline

Construct a fingerprint as a copy of another one.

◆ FFingerprint() [8/9]

FFingerprint::FFingerprint ( FFingerprint &&  InFingerprint)
inline

Move-construct a new fingerprint.

◆ FFingerprint() [9/9]

FFingerprint::FFingerprint ( FTraitmark &&  InTraitmark,
FDetailmark InDetailmark 
)
inline

Construct a new fingerprint while moving a traitmark and a detailmark.

Member Function Documentation

◆ Add() [1/8]

EApparatusStatus FFingerprint::Add ( const FFingerprint Fingerprint,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Add a fingerprint with a boot state override.

Returns
The status of the operation.

◆ Add() [2/8]

template<typename TAllocator >
EApparatusStatus FFingerprint::Add ( const TArray< TSubclassOf< UDetail >, TAllocator > &  DetailClasses,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Add an arrary of detail classes.

Returns
The status of the operation.

◆ Add() [3/8]

template<typename TAllocator >
EApparatusStatus FFingerprint::Add ( const TArray< UDetail *, TAllocator > &  InDetails,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Add an array of details and a boot state specification.

Only the enabled details get actually added.

Returns
The status of the operation.

◆ Add() [4/8]

template<typename TAllocator >
EApparatusStatus FFingerprint::Add ( const TArray< UScriptStruct *, TAllocator > &  InTraitTypes,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Add an array of traits and a boot state specification.

Parameters
InTraitTypesThe traits to add.
InBootStateA boot state to add.
Returns
The status of the operation.

◆ Add() [5/8]

EApparatusStatus FFingerprint::Add ( const TSubclassOf< UDetail DetailClass,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Add a detail class.

Parameters
DetailClassA class of the detail to add.
InBootStateA boot state to add.
Returns
The status of the operation.

◆ Add() [6/8]

EApparatusStatus FFingerprint::Add ( std::initializer_list< TSubclassOf< UDetail >>  DetailClasses)
inline

Add detail classes to a fingerprint.

Returns
The status of the operation.

◆ Add() [7/8]

EApparatusStatus FFingerprint::Add ( std::initializer_list< UScriptStruct * >  TraitTypes)
inline

Add trait types to a fingerprint.

Returns
The status of the operation.

◆ Add() [8/8]

EApparatusStatus FFingerprint::Add ( UScriptStruct *  TraitType,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Add a trait type.

Parameters
TraitTypeA type of the detail to add.
InBootStateA boot state to add.
Returns
The status of the operation.

◆ AddDetail()

template<class T >
EApparatusStatus FFingerprint::AddDetail ( )
inline

Add a generic detail class.

Returns
The status of the operation.

◆ AddTrait()

template<typename T >
EApparatusStatus FFingerprint::AddTrait ( )
inline

Add a generic trait type.

Returns
Was anything actually changed?

◆ Contains() [1/3]

bool FFingerprint::Contains ( const FFingerprint Fingerprint) const
inline

Does the fingerprint fully includes another fingerprint?

The not-details are not taken into account.

◆ Contains() [2/3]

bool FFingerprint::Contains ( const TSubclassOf< UDetail DetailClass) const
inline

Check if the fingerprint includes a detail class.

◆ Contains() [3/3]

bool FFingerprint::Contains ( const UScriptStruct *  TraitType) const
inline

Check if the fingerprint includes a trait type.

◆ ContainsDetail()

bool FFingerprint::ContainsDetail ( const TSubclassOf< UDetail DetailClass) const
inline

Check whether a fingerprint contains a detail specification.

◆ ContainsTrait() [1/2]

template<typename T >
bool FFingerprint::ContainsTrait ( )
inline

Check whether a fingerprint contains a trait specification.

◆ ContainsTrait() [2/2]

bool FFingerprint::ContainsTrait ( const UScriptStruct *  TraitType) const
inline

Check whether a fingerprint contains a trait specification.

◆ DetailAt()

TSubclassOf<UDetail> FFingerprint::DetailAt ( const int32  Index) const
inline

Get a detail by its index.

◆ DetailsNum()

int32 FFingerprint::DetailsNum ( ) const
inline

The number of details in the fingerprint.

◆ FindDetailsMappingFrom() [1/4]

EApparatusStatus FFingerprint::FindDetailsMappingFrom ( const FFingerprint Fingerprint,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another fingerprint.

Parameters
FingerprintA fingerprint to get a mapping from.
OutMappingThe resulting mapping.

◆ FindDetailsMappingFrom() [2/4]

EApparatusStatus FFingerprint::FindDetailsMappingFrom ( const FFingerprint Fingerprint,
TArray< TArray< int32 >> &  OutMapping 
) const
inline

Get a detail indexing multi-mapping from another fingerprint.

Parameters
FingerprintA fingerprint to get a mapping from.
OutMappingThe resulting mapping.

◆ FindDetailsMappingFrom() [3/4]

EApparatusStatus FFingerprint::FindDetailsMappingFrom ( const TArray< TSubclassOf< UDetail >> &  InDetailClasses,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another fingerprint defined by an array of details.

Parameters
InDetailClassesA fingerprint to get a mapping from.
OutMappingThe resulting mapping.

◆ FindDetailsMappingFrom() [4/4]

EApparatusStatus FFingerprint::FindDetailsMappingFrom ( const TArray< TSubclassOf< UDetail >> &  InDetailClasses,
TArray< TArray< int32 >> &  OutMapping 
) const
inline

Get an indexing multi-mapping from another fingerprint defined by an array of details.

Parameters
InDetailClassesA fingerprint to get a mapping from.
OutMappingThe resulting two-dimensional multi-mapping.
Returns
The status of the operation.

◆ FindDetailsMappingTo() [1/2]

EApparatusStatus FFingerprint::FindDetailsMappingTo ( const FFingerprint Fingerprint,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing details mapping to another fingerprint.

Parameters
FingerprintA fingerprint to get the details mapping to.
OutMappingThe resulting mapping.

◆ FindDetailsMappingTo() [2/2]

EApparatusStatus FFingerprint::FindDetailsMappingTo ( const FFingerprint Fingerprint,
TArray< TArray< int32 >> &  OutMapping 
) const
inline

Get an indexing multi-mapping to another fingerprint.

Parameters
FingerprintA fingerprint to get a mapping to.
OutMappingThe resulting mapping.

◆ FindTraitsMappingFrom() [1/3]

EApparatusStatus FFingerprint::FindTraitsMappingFrom ( const FFingerprint Fingerprint,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another fingerprint's traits.

Parameters
FingerprintA fingerprint to get a mapping from.
OutMappingThe resulting traits mapping.

◆ FindTraitsMappingFrom() [2/3]

EApparatusStatus FFingerprint::FindTraitsMappingFrom ( const FTraitmark InTraitmark,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another traitmark's traits.

Parameters
InTraitmarkA traitmark to get a mapping from.
OutMappingThe resulting traits mapping.

◆ FindTraitsMappingFrom() [3/3]

void FFingerprint::FindTraitsMappingFrom ( const TArray< UScriptStruct * > &  InTraitmark,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing mapping from another traitmark defined by an array of traits.

Parameters
InTraitmarkA traitmark to get a mapping from.
OutMappingThe resulting mapping.

◆ FindTraitsMappingTo() [1/2]

EApparatusStatus FFingerprint::FindTraitsMappingTo ( const FFingerprint InFingerprint,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing traits mapping to another traitmark.

Parameters
InFingerprintA fingerprint to get the traits mapping to.
OutMappingThe resulting mapping.

◆ FindTraitsMappingTo() [2/2]

EApparatusStatus FFingerprint::FindTraitsMappingTo ( const FTraitmark InTraitmark,
TArray< int32 > &  OutMapping 
) const
inline

Get an indexing traits mapping to another traitmark.

Parameters
InTraitmarkA traitmark to get the traits mapping to.
OutMappingThe resulting mapping.

◆ GetBootState()

EBootFilter FFingerprint::GetBootState ( ) const
inline

Get the active boot state.

◆ GetDetailmark()

const FDetailmark& FFingerprint::GetDetailmark ( ) const
inline

Get the detailmark part of the fingerprint.

◆ GetDetails()

const TArray<TSubclassOf<UDetail> >& FFingerprint::GetDetails ( ) const
inline

Get the details of the fingerprint.

◆ GetDetailsMask()

const FBitMask& FFingerprint::GetDetailsMask ( ) const
inline

Get the details mask of the fingerprint.

◆ GetTraitmark()

const FTraitmark& FFingerprint::GetTraitmark ( ) const
inline

Get the traitmark part of the fingerprint.

◆ GetTraits()

const TArray<UScriptStruct*>& FFingerprint::GetTraits ( ) const
inline

Get the traits of the fingerprint.

◆ GetTraitsMask()

const FBitMask& FFingerprint::GetTraitsMask ( ) const
inline

Get the traits mask of the fingerprint.

◆ IndexOf() [1/2]

int32 FFingerprint::IndexOf ( const TSubclassOf< UDetail DetailClass) const
inline

Get the index of a specific detail class.

Also supports parent classes.

◆ IndexOf() [2/2]

int32 FFingerprint::IndexOf ( UScriptStruct *  TraitType) const
inline

Get the index of a specific trait type.

◆ IndicesOf()

EApparatusStatus FFingerprint::IndicesOf ( const TSubclassOf< UDetail DetailClass,
TArray< int32 > &  OutIndices 
) const
inline

Get the indices of a specific detail class.

Also supports parent classes.

◆ IsBooted()

bool FFingerprint::IsBooted ( ) const
inline

Check if the fingerprint corresponds to a booted entity.

◆ Matches() [1/4]

bool FFingerprint::Matches ( const FFilter Filter) const
inline

Check if the fingerprint matches a filter.

◆ Matches() [2/4]

bool FFingerprint::Matches ( const FFingerprint Fingerprint) const
inline

Check if the fingerprint matches another fingerprint acting as a filter.

◆ Matches() [3/4]

bool FFingerprint::Matches ( const struct FDetailmark InDetailmark) const
inline

Check if the fingerprint matches a detailmark acting as a filter.

◆ Matches() [4/4]

bool FFingerprint::Matches ( const struct FTraitmark InTraitmark) const
inline

Check if the fingerprint matches a traitmark acting as a filter.

◆ operator bool()

FFingerprint::operator bool ( ) const
inline

Check if a fingerprint is viable and has any effect.

◆ operator const FDetailmark &()

FFingerprint::operator const FDetailmark & ( ) const
inline

Convert a fingerprint to a detailmark.

◆ operator const FTraitmark &()

FFingerprint::operator const FTraitmark & ( ) const
inline

Convert a fingerprint to a traitmark.

◆ operator TArray< TSubclassOf< UDetail >>()

FFingerprint::operator TArray< TSubclassOf< UDetail >> ( ) const
inlineexplicit

Convert to an array of detail types.

◆ operator+=() [1/8]

FFingerprint& FFingerprint::operator+= ( const FFingerprint Fingerprint)
inline

Add a fingerprint specification.

◆ operator+=() [2/8]

template<typename TAllocator >
FFingerprint& FFingerprint::operator+= ( const TArray< TSubclassOf< UDetail >, TAllocator > &  DetailClasses)
inline

Add an array of detail classes.

◆ operator+=() [3/8]

template<typename TAllocator >
FFingerprint& FFingerprint::operator+= ( const TArray< UDetail *, TAllocator > &  InDetails)
inline

Add active details from an array.

◆ operator+=() [4/8]

template<typename TAllocator >
FFingerprint& FFingerprint::operator+= ( const TArray< UScriptStruct *, TAllocator > &  TraitTypes)
inline

Add an array of trait types.

◆ operator+=() [5/8]

FFingerprint& FFingerprint::operator+= ( std::initializer_list< TSubclassOf< UDetail >>  DetailClasses)
inline

Add variadic detail classes.

◆ operator+=() [6/8]

FFingerprint& FFingerprint::operator+= ( std::initializer_list< UScriptStruct * >  TraitTypes)
inline

Add variadic trait types.

◆ operator+=() [7/8]

FFingerprint& FFingerprint::operator+= ( TSubclassOf< UDetail DetailClass)
inline

Add a single detail class.

◆ operator+=() [8/8]

FFingerprint& FFingerprint::operator+= ( UScriptStruct *  TraitType)
inline

Add a single trait type.

◆ operator-=() [1/2]

FFingerprint& FFingerprint::operator-= ( TSubclassOf< UDetail DetailClass)
inline

Remove a detail class from a fingerprint.

◆ operator-=() [2/2]

FFingerprint& FFingerprint::operator-= ( UScriptStruct *  TraitType)
inline

Remove a trait type from a fingerprint.

◆ operator=() [1/3]

FFingerprint& FFingerprint::operator= ( const FFingerprint Fingerprint)
inline

Set a fingerprint equal to another fingerprint.

◆ operator=() [2/3]

FFingerprint& FFingerprint::operator= ( const TArray< TSubclassOf< UDetail >> &  InDetailClasses)
inline

Set a fingerprint equal to an array of types.

◆ operator=() [3/3]

template<typename TAllocator >
FFingerprint& FFingerprint::operator= ( const TArray< UDetail *, TAllocator > &  InDetails)
inline

Set a fingerprint equal to an array of details.

◆ Remove() [1/2]

EApparatusStatus FFingerprint::Remove ( const TSubclassOf< UDetail DetailClass)
inline

Remove a detail class from the fingerprint specification.

Even the base-class-matching details get removed. The result is such that the fingerprint won't contain that passed detail class anymore.

Parameters
DetailClassA detail class to remove. May be a base class.
Returns
Was anything actually changed?

◆ Remove() [2/2]

EApparatusStatus FFingerprint::Remove ( UScriptStruct *const  TraitType)
inline

Remove a trait type from the fingerprint specification.

Parameters
TraitTypeA trait type to remove.
Returns
Was anything actually changed?

◆ RemoveDetail()

template<class T >
bool FFingerprint::RemoveDetail ( )
inline

Remove a detail class from a fingerprint.

Returns
Was anything actually changed?

◆ RemoveTrait()

template<typename T >
bool FFingerprint::RemoveTrait ( )
inline

Remove a type from a fingerprint.

Returns
Was anything actually changed?

◆ Reset()

EApparatusStatus FFingerprint::Reset ( )
inline

Clear the fingerprint without any deallocations.

◆ Set() [1/5]

EApparatusStatus FFingerprint::Set ( const FFingerprint InFingerprint)
inline

Set a fingerprint equal to another fingerprint.

◆ Set() [2/5]

template<typename TAllocator >
EApparatusStatus FFingerprint::Set ( const TArray< TSubclassOf< UDetail >, TAllocator > &  InDetailClasses,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Set a fingerprint to an array of types and an optional boot state.

◆ Set() [3/5]

template<typename TAllocator >
EApparatusStatus FFingerprint::Set ( const TArray< UDetail *, TAllocator > &  InDetails,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Set a fingerprint to an array of details and a boot state.

◆ Set() [4/5]

template<typename TAllocator >
EApparatusStatus FFingerprint::Set ( const TArray< UScriptStruct *, TAllocator > &  InTraits,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Set a fingerprint to an array of traits and a boot state.

◆ Set() [5/5]

EApparatusStatus FFingerprint::Set ( FFingerprint &&  InFingerprint)
inline

Move a fingerprint to this one.

◆ SetBooted()

EApparatusStatus FFingerprint::SetBooted ( bool  bState = true)
inline

Set the new active boot state.

Returns
Was anything actually changed?

◆ SetBootState()

EApparatusStatus FFingerprint::SetBootState ( const EBootFilter  InBootState)
inline

Set the new active boot state.

Returns
The status of the operation.

◆ ToString()

FString FFingerprint::ToString ( ) const

Convert a fingerprint to a string.

◆ TraitAt()

UScriptStruct* FFingerprint::TraitAt ( const int32  Index) const
inline

Get a trait by its index.

◆ TraitsNum()

int32 FFingerprint::TraitsNum ( ) const
inline

The number of traits in the fingerprint.

Friends And Related Function Documentation

◆ AMechanism

friend class AMechanism
friend

◆ FFilter

friend struct FFilter
friend

◆ FSubjectHandle

friend struct FSubjectHandle
friend

◆ GetTypeHash

uint32 GetTypeHash ( const FFingerprint Fingerprint)
friend

Get the hash of a fingerprint.

◆ UApparatusFunctionLibrary

friend class UApparatusFunctionLibrary
friend

◆ UBelt

friend class UBelt
friend

◆ UChunk

friend class UChunk
friend

Member Data Documentation

◆ Halted

const FFingerprint FFingerprint::Halted
static

The default fingerprint for newly spanwed subjects.

◆ Zero

const FFingerprint FFingerprint::Zero
static

The all-zeroed fingerprint.


The documentation for this struct was generated from the following files: