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

The traits/details fingerprint. More...

#include <Fingerprint.h>

Inheritance diagram for FFingerprint:
Inheritance graph
[legend]
Collaboration diagram for FFingerprint:
Collaboration graph
[legend]

Public Types

typedef FTraitmark::TraitsType TraitsType
 The type of traits array. More...
 
typedef FDetailmark::DetailsType DetailsType
 The type of details array. More...
 

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 TraitsTypeGetTraits () const
 Get the traits of the fingerprint. More...
 
const DetailsTypeGetDetails () 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 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...
 
EApparatusStatus SetTraitmark (FTraitmark &&InTraitmark)
 Move a traitmark to the fingerprint's traitmark. More...
 
EApparatusStatus SetTraitmark (const FTraitmark &InTraitmark)
 Set the fingerprint's traitmark equal to a traitmark. More...
 
EApparatusStatus SetDetailmark (FDetailmark &&InDetailmark)
 Move a detailmark to the fingerprint's detailmark. More...
 
EApparatusStatus SetDetailmark (const FDetailmark &InDetailmark)
 Set the fingerprint's detailmark equal to a detailmark. More...
 
EApparatusStatus Set (FTraitmark &&InTraitmark)
 Move a traitmark to the fingerprint. More...
 
EApparatusStatus Set (const FTraitmark &InTraitmark)
 Set the fingerprint equal to a traitmark. More...
 
EApparatusStatus Set (FDetailmark &&InDetailmark)
 Move a detailmark to the fingerprint. More...
 
EApparatusStatus Set (const FDetailmark &InDetailmark)
 Set the fingerprint equal to 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< UScriptStruct *, TAllocator > &InTraits, const EBootFilter InBootState)
 Set a fingerprint to an array of traits and a boot state. More...
 
template<typename TAllocator >
EApparatusStatus Set (const TArray< TSubclassOf< UDetail >, TAllocator > &InDetailClasses, const EBootFilter InBootState)
 Set a fingerprint to an array of detail classes and a boot state. More...
 
template<typename TAllocator >
EApparatusStatus Set (const TArray< UDetail *, TAllocator > &InDetails, const EBootFilter InBootState)
 Set a fingerprint to an array of active details and a boot state. More...
 
FFingerprintoperator= (FTraitmark &&InTraitmark)
 Move a traitmark to the fingerprint. More...
 
FFingerprintoperator= (const FTraitmark &InTraitmark)
 Set the fingerprint equal to a traitmark. More...
 
FFingerprintoperator= (FDetailmark &&InDetailmark)
 Move a detailmark to the fingerprint. More...
 
FFingerprintoperator= (const FDetailmark &InDetailmark)
 Set the fingerprint equal to a detailmark. More...
 
FFingerprintoperator= (FFingerprint &&Fingerprint)
 Move a fingerprint to this one. More...
 
FFingerprintoperator= (const FFingerprint &Fingerprint)
 Set the fingerprint equal to another fingerprint. More...
 
template<typename TAllocator >
FFingerprintoperator= (const TArray< UScriptStruct *, TAllocator > &InTraitTypes)
 Set a fingerprint equal to an array of trait types. More...
 
template<typename TAllocator >
FFingerprintoperator= (const TArray< TSubclassOf< UDetail >, TAllocator > &InDetailClasses)
 Set a fingerprint equal to an array of detail classes. 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<typename T >
EApparatusStatus AddTrait ()
 Add a trait type. More...
 
template<class T >
EApparatusStatus AddDetail ()
 Add a detail class. More...
 
template<class ... Ts>
EApparatusStatus Add ()
 Add component(s) to a fingerprint. More...
 
FFingerprintoperator+= (std::initializer_list< UScriptStruct * > TraitTypes)
 Add variadic trait types. More...
 
FFingerprintoperator+= (std::initializer_list< TSubclassOf< UDetail >> DetailClasses)
 Add variadic detail classes. More...
 
FFingerprintoperator+= (const FFingerprint &Fingerprint)
 Add a fingerprint specification. More...
 
template<typename TAllocator >
FFingerprintoperator+= (const TArray< UScriptStruct *, TAllocator > &TraitTypes)
 Add an array of trait types. More...
 
template<typename TAllocator >
FFingerprintoperator+= (const TArray< TSubclassOf< UDetail >, TAllocator > &DetailClasses)
 Add an array of detail classes. More...
 
template<typename TAllocator >
FFingerprintoperator+= (const TArray< UDetail *, TAllocator > &InDetails)
 Add active details from an array. More...
 
FFingerprintoperator+= (UScriptStruct *TraitType)
 Add a single trait type. More...
 
FFingerprintoperator+= (TSubclassOf< UDetail > DetailClass)
 Add a single detail class. More...
 
EApparatusStatus Remove (UScriptStruct *const TraitType)
 Remove a trait type from the fingerprint specification. More...
 
EApparatusStatus Remove (const TSubclassOf< UDetail > DetailClass)
 Remove a detail class from the fingerprint specification. More...
 
template<typename T >
EApparatusStatus RemoveTrait ()
 Remove a trait type from a fingerprint. More...
 
template<class D >
EApparatusStatus RemoveDetail ()
 Remove a detail class from a fingerprint. More...
 
template<class ... Cs>
EApparatusStatus Remove ()
 Remove component(s) from the fingerprint. More...
 
FFingerprintoperator-= (UScriptStruct *const TraitType)
 Remove a trait type from the fingerprint. More...
 
FFingerprintoperator-= (TSubclassOf< UDetail > DetailClass)
 Remove a detail class from a fingerprint. More...
 
bool Contains (const UScriptStruct *const TraitType) const
 Check whether a fingerprint contains a trait specification. More...
 
bool Contains (const TSubclassOf< UDetail > DetailClass) const
 Check whether a fingerprint contains a detail specification. More...
 
template<typename T >
bool ContainsTrait () const
 Check whether a fingerprint contains a trait specification. More...
 
template<class D >
bool ContainsDetail () const
 Check whether a fingerprint contains a detail specification. More...
 
template<typename ... Ts>
bool Contains () const
 Check whether a fingerprint contains a component specification. More...
 
bool Contains (const FFingerprint &InFingerprint) const
 Check if the fingerprint fully includes another fingerprint. More...
 
EApparatusStatus Reset (const EBootFilter InBootState=EBootFilter::None)
 Clear the fingerprint without any deallocations. More...
 
FString ToString () const
 Convert a fingerprint to a string. More...
 
uint32 CalcHash () const
 Calculate the hash sum of the fingerprint. More...
 
 FFingerprint (const EBootFilter InBootState=EBootFilter::None)
 Construct 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 and an optional boot state. More...
 
 FFingerprint (UScriptStruct *TraitType, const EBootFilter InBootState=EBootFilter::None)
 Construct a new fingerprint from a single trait type and an optional boot state. More...
 
template<typename TAllocator >
 FFingerprint (const TArray< UDetail *, TAllocator > &InDetailClasses, const EBootFilter InBootState=EBootFilter::None)
 Construct a fingerprint from an array of details and an optional 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 an optional boot state. 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 an optional boot state. More...
 
 FFingerprint (std::initializer_list< UScriptStruct * > InTraitTypes, std::initializer_list< TSubclassOf< UDetail >> InDetailClasses, const EBootFilter InBootState=EBootFilter::None)
 Construct a fingerprint from initializer lists of trait types and detail classes and also an optional boot state. More...
 
 FFingerprint (const FFingerprint &InFingerprint)
 Construct a fingerprint as a copy of another one. More...
 
 FFingerprint (FFingerprint &&InFingerprint)
 Move-construct a new fingerprint. More...
 
template<typename ... Ts>
 FFingerprint (TFingerprint< Ts... > &&InFingerprint)
 Move-construct from a templated fingerprint. More...
 
 FFingerprint (FTraitmark &&InTraitmark, FDetailmark &InDetailmark)
 Construct a new fingerprint while moving a traitmark and a detailmark. More...
 

Static Public Member Functions

template<typename ... Ts>
static FFingerprint Make (const EBootFilter InBootState=EBootFilter::None)
 Make a fingerprint with components and an optional boot filter. 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.

Member Typedef Documentation

◆ DetailsType

The type of details array.

◆ TraitsType

The type of traits array.

Constructor & Destructor Documentation

◆ FFingerprint() [1/11]

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

Construct an empty fingerprint with an optional boot state.

◆ FFingerprint() [2/11]

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

Construct a new fingerprint from a single detail class and an optional boot state.

◆ FFingerprint() [3/11]

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

Construct a new fingerprint from a single trait type and an optional boot state.

◆ FFingerprint() [4/11]

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

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

◆ FFingerprint() [5/11]

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 an optional boot state.

◆ FFingerprint() [6/11]

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 an optional boot state.

◆ FFingerprint() [7/11]

FFingerprint::FFingerprint ( std::initializer_list< UScriptStruct * >  InTraitTypes,
std::initializer_list< TSubclassOf< UDetail >>  InDetailClasses,
const EBootFilter  InBootState = EBootFilter::None 
)
inline

Construct a fingerprint from initializer lists of trait types and detail classes and also an optional boot state.

◆ FFingerprint() [8/11]

FFingerprint::FFingerprint ( const FFingerprint InFingerprint)
inline

Construct a fingerprint as a copy of another one.

◆ FFingerprint() [9/11]

FFingerprint::FFingerprint ( FFingerprint &&  InFingerprint)
inline

Move-construct a new fingerprint.

◆ FFingerprint() [10/11]

template<typename ... Ts>
FFingerprint::FFingerprint ( TFingerprint< Ts... > &&  InFingerprint)
inline

Move-construct from a templated fingerprint.

◆ FFingerprint() [11/11]

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

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

Member Function Documentation

◆ Add() [1/9]

template<class ... Ts>
EApparatusStatus FFingerprint::Add ( )
inline

Add component(s) to a fingerprint.

Templated version.

Returns
The status of the operation.

◆ Add() [2/9]

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() [3/9]

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() [4/9]

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() [5/9]

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() [6/9]

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() [7/9]

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

Add detail classes to a fingerprint.

Returns
The status of the operation.

◆ Add() [8/9]

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

Add trait types to a fingerprint.

Returns
The status of the operation.

◆ Add() [9/9]

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 detail class.

Templated version.

Returns
The status of the operation.

◆ AddTrait()

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

Add a trait type.

Templated version.

Returns
The status of the operation.

◆ CalcHash()

uint32 FFingerprint::CalcHash ( ) const
inline

Calculate the hash sum of the fingerprint.

Cached internally.

◆ Contains() [1/4]

template<typename ... Ts>
bool FFingerprint::Contains ( ) const
inline

Check whether a fingerprint contains a component specification.

Returns
Returns true, if all of the components are within the fingerprint.

◆ Contains() [2/4]

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

Check if the fingerprint fully includes another fingerprint.

Parameters
InFingerprintThe fingerprint to test for inclusion.
Returns
Returns true, if all of the components are within the fingerprint.

◆ Contains() [3/4]

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

Check whether a fingerprint contains a detail specification.

◆ Contains() [4/4]

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

Check whether a fingerprint contains a trait specification.

◆ ContainsDetail()

template<class D >
bool FFingerprint::ContainsDetail ( ) const
inline

Check whether a fingerprint contains a detail specification.

◆ ContainsTrait()

template<typename T >
bool FFingerprint::ContainsTrait ( ) 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 DetailsType& 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 TraitsType& 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.

◆ Make()

template<typename ... Ts>
static FFingerprint FFingerprint::Make ( const EBootFilter  InBootState = EBootFilter::None)
inlinestatic

Make a fingerprint with components and an optional boot filter.

Template Parameters
TsThe types of components to construct with.
Parameters
InBootStateThe boot state to apply.
Returns
The resulting fingerprint.

◆ 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 *const  TraitType)
inline

Remove a trait type from the fingerprint.

◆ operator=() [1/9]

FFingerprint& FFingerprint::operator= ( const FDetailmark InDetailmark)
inline

Set the fingerprint equal to a detailmark.

◆ operator=() [2/9]

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

Set the fingerprint equal to another fingerprint.

◆ operator=() [3/9]

FFingerprint& FFingerprint::operator= ( const FTraitmark InTraitmark)
inline

Set the fingerprint equal to a traitmark.

◆ operator=() [4/9]

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

Set a fingerprint equal to an array of detail classes.

The boot state is preserved.

◆ operator=() [5/9]

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

Set a fingerprint equal to an array of details.

The boot state is preserved.

◆ operator=() [6/9]

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

Set a fingerprint equal to an array of trait types.

The boot state is preserved.

◆ operator=() [7/9]

FFingerprint& FFingerprint::operator= ( FDetailmark &&  InDetailmark)
inline

Move a detailmark to the fingerprint.

◆ operator=() [8/9]

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

Move a fingerprint to this one.

◆ operator=() [9/9]

FFingerprint& FFingerprint::operator= ( FTraitmark &&  InTraitmark)
inline

Move a traitmark to the fingerprint.

◆ Remove() [1/3]

template<class ... Cs>
EApparatusStatus FFingerprint::Remove ( )
inline

Remove component(s) from the fingerprint.

◆ Remove() [2/3]

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() [3/3]

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 D >
EApparatusStatus FFingerprint::RemoveDetail ( )
inline

Remove a detail class from a fingerprint.

Templated version.

Returns
The status of the operation.

◆ RemoveTrait()

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

Remove a trait type from a fingerprint.

Templated version.

Returns
The status of the operation.

◆ Reset()

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

Clear the fingerprint without any deallocations.

◆ Set() [1/9]

EApparatusStatus FFingerprint::Set ( const FDetailmark InDetailmark)
inline

Set the fingerprint equal to a detailmark.

◆ Set() [2/9]

EApparatusStatus FFingerprint::Set ( const FFingerprint InFingerprint)
inline

Set a fingerprint equal to another fingerprint.

◆ Set() [3/9]

EApparatusStatus FFingerprint::Set ( const FTraitmark InTraitmark)
inline

Set the fingerprint equal to a traitmark.

◆ Set() [4/9]

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

Set a fingerprint to an array of detail classes and a boot state.

◆ Set() [5/9]

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

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

◆ Set() [6/9]

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

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

◆ Set() [7/9]

EApparatusStatus FFingerprint::Set ( FDetailmark &&  InDetailmark)
inline

Move a detailmark to the fingerprint.

◆ Set() [8/9]

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

Move a fingerprint to this one.

◆ Set() [9/9]

EApparatusStatus FFingerprint::Set ( FTraitmark &&  InTraitmark)
inline

Move a traitmark to the fingerprint.

◆ 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.

◆ SetDetailmark() [1/2]

EApparatusStatus FFingerprint::SetDetailmark ( const FDetailmark InDetailmark)
inline

Set the fingerprint's detailmark equal to a detailmark.

The traitmark is preserved, excluding the boot state.

◆ SetDetailmark() [2/2]

EApparatusStatus FFingerprint::SetDetailmark ( FDetailmark &&  InDetailmark)
inline

Move a detailmark to the fingerprint's detailmark.

The traitmark is preserved, excluding the boot state.

◆ SetTraitmark() [1/2]

EApparatusStatus FFingerprint::SetTraitmark ( const FTraitmark InTraitmark)
inline

Set the fingerprint's traitmark equal to a traitmark.

The detailmark is preserved, excluding the boot state.

◆ SetTraitmark() [2/2]

EApparatusStatus FFingerprint::SetTraitmark ( FTraitmark &&  InTraitmark)
inline

Move a traitmark to the fingerprint's traitmark.

The detailmark is preserved, excluding the boot state.

◆ 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: