Apparatus Version 1.8
ECS data-oriented workflow for Unreal Engine.
Public Member Functions | Static Public Member Functions | List of all members
UApparatusFunctionLibrary Class Reference

The main Apparatus function library. More...

#include <ApparatusFunctionLibrary.h>

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

Public Member Functions

 DECLARE_FUNCTION (execGetSubjectiveTrait)
 
 DECLARE_FUNCTION (execSetSubjectiveTrait)
 
 DECLARE_FUNCTION (execObtainSubjectiveTrait)
 
 DECLARE_FUNCTION (execGetSubjectTrait)
 
 DECLARE_FUNCTION (execSetSubjectTrait)
 
 DECLARE_FUNCTION (execObtainSubjectTrait)
 
 DECLARE_FUNCTION (execGetChainTrait)
 
 DECLARE_FUNCTION (execGetChainTraitHinted)
 

Static Public Member Functions

static int32 AddToSubjectHandles4 (FSubjectHandles4 &SubjectHandles, FSubjectHandle SubjectHandle)
 Add a subject handle to an array. More...
 
static int32 AddUniqueToSubjectHandles4 (FSubjectHandles4 &SubjectHandles, FSubjectHandle SubjectHandle)
 Add a unique subject handle to an array. More...
 
static void RemoveFromSubjectHandles4 (FSubjectHandles4 &SubjectHandles, FSubjectHandle SubjectHandle)
 Remove a subject handle from the array. More...
 
static int32 GetSubjectHandles4Length (FSubjectHandles4 &SubjectHandles)
 Get the number of elements in the array. More...
 
static FSubjectHandle GetSubjectHandles4At (const FSubjectHandles4 &SubjectHandles, const int32 Index)
 Get a copy for a subject handle at a specified index. More...
 
static void SetSubjectHandles4At (FSubjectHandles4 &SubjectHandles, const int32 Index, const FSubjectHandle &SubjectHandle)
 Set a subject handle at a specified index of the array. More...
 
static void ClearSubjectHandles4 (FSubjectHandles4 &SubjectHandles)
 Remove all elements from the array. More...
 
static int32 AddToSubjectHandles8 (FSubjectHandles8 &SubjectHandles, FSubjectHandle SubjectHandle)
 Add a subject handle to an array. More...
 
static int32 AddUniqueToSubjectHandles8 (FSubjectHandles8 &SubjectHandles, FSubjectHandle SubjectHandle)
 Add a unique subject handle to an array. More...
 
static void RemoveFromSubjectHandles8 (FSubjectHandles8 &SubjectHandles, FSubjectHandle SubjectHandle)
 Remove a subject handle from the array. More...
 
static int32 GetSubjectHandles8Length (FSubjectHandles8 &SubjectHandles)
 Get the number of elements in the array. More...
 
static FSubjectHandle GetSubjectHandles8At (const FSubjectHandles8 &SubjectHandles, const int32 Index)
 Get a copy for a subject handle at a specified index. More...
 
static void SetSubjectHandles8At (FSubjectHandles8 &SubjectHandles, const int32 Index, const FSubjectHandle &SubjectHandle)
 Set a subject handle at a specified index of the array. More...
 
static void ClearSubjectHandles8 (FSubjectHandles8 &SubjectHandles)
 Remove all elements from the array. More...
 
static int32 AddToSubjectHandles16 (FSubjectHandles16 &SubjectHandles, FSubjectHandle SubjectHandle)
 Add a subject handle to an array. More...
 
static int32 AddUniqueToSubjectHandles16 (FSubjectHandles16 &SubjectHandles, FSubjectHandle SubjectHandle)
 Add a unique subject handle to an array. More...
 
static void RemoveFromSubjectHandles16 (FSubjectHandles16 &SubjectHandles, FSubjectHandle SubjectHandle)
 Remove a subject handle from the array. More...
 
static int32 GetSubjectHandles16Length (FSubjectHandles16 &SubjectHandles)
 Get the number of elements in the array. More...
 
static FSubjectHandle GetSubjectHandles16At (const FSubjectHandles16 &SubjectHandles, const int32 Index)
 Get a copy for a subject handle at a specified index. More...
 
static void SetSubjectHandles16At (FSubjectHandles16 &SubjectHandles, const int32 Index, const FSubjectHandle &SubjectHandle)
 Set a subject handle at a specified index of the array. More...
 
static void ClearSubjectHandles16 (FSubjectHandles16 &SubjectHandles)
 Remove all elements from the array. More...
 
static FTraitmark MakeTraitmark (const TArray< UScriptStruct * > &Traits, const EBootFilter BootState=EBootFilter::None)
 
static FDetailmark MakeDetailmark (const TArray< TSubclassOf< UDetail >> &Details, const EBootFilter BootState=EBootFilter::None)
 
static FFingerprint MakeFingerprint (const TArray< UScriptStruct * > &Traits, const TArray< TSubclassOf< UDetail >> &Details, const EBootFilter BootState=EBootFilter::None)
 
static FFilter MakeFilter (const TArray< UScriptStruct * > &Traits, const TArray< TSubclassOf< UDetail >> &Details, const TArray< UScriptStruct * > &ExcludedTraits, const TArray< TSubclassOf< UDetail >> &ExcludedDetails, const EBootFilter Booting)
 Make a filter from the list of details, exclusion details, and a boot filter. More...
 
static FFilter MakeCachedFilter0 (const FString &Key, const EBootFilter Booting)
 Make a cached filter with 0 components;. More...
 
static FFilter MakeCachedFilter1 (const FString &Key, UScriptStruct *Trait_0, TSubclassOf< UDetail > Detail_0, UScriptStruct *ExcludedTrait_0, TSubclassOf< UDetail > ExcludedDetail_0, const EBootFilter Booting)
 Make a cached filter with 1 component;. More...
 
static FFilter MakeCachedFilter2 (const FString &Key, UScriptStruct *Trait_0, UScriptStruct *Trait_1, TSubclassOf< UDetail > Detail_0, TSubclassOf< UDetail > Detail_1, UScriptStruct *ExcludedTrait_0, UScriptStruct *ExcludedTrait_1, TSubclassOf< UDetail > ExcludedDetail_0, TSubclassOf< UDetail > ExcludedDetail_1, const EBootFilter Booting)
 Make a cached filter with 2 components;. More...
 
static FFilter MakeCachedFilter4 (const FString &Key, UScriptStruct *Trait_0, UScriptStruct *Trait_1, UScriptStruct *Trait_2, UScriptStruct *Trait_3, TSubclassOf< UDetail > Detail_0, TSubclassOf< UDetail > Detail_1, TSubclassOf< UDetail > Detail_2, TSubclassOf< UDetail > Detail_3, UScriptStruct *ExcludedTrait_0, UScriptStruct *ExcludedTrait_1, UScriptStruct *ExcludedTrait_2, UScriptStruct *ExcludedTrait_3, TSubclassOf< UDetail > ExcludedDetail_0, TSubclassOf< UDetail > ExcludedDetail_1, TSubclassOf< UDetail > ExcludedDetail_2, TSubclassOf< UDetail > ExcludedDetail_3, const EBootFilter Booting)
 Make a cached filter with 4 components;. More...
 
static FFilter MakeCachedFilter8 (const FString &Key, UScriptStruct *Trait_0, UScriptStruct *Trait_1, UScriptStruct *Trait_2, UScriptStruct *Trait_3, UScriptStruct *Trait_4, UScriptStruct *Trait_5, UScriptStruct *Trait_6, UScriptStruct *Trait_7, TSubclassOf< UDetail > Detail_0, TSubclassOf< UDetail > Detail_1, TSubclassOf< UDetail > Detail_2, TSubclassOf< UDetail > Detail_3, TSubclassOf< UDetail > Detail_4, TSubclassOf< UDetail > Detail_5, TSubclassOf< UDetail > Detail_6, TSubclassOf< UDetail > Detail_7, UScriptStruct *ExcludedTrait_0, UScriptStruct *ExcludedTrait_1, UScriptStruct *ExcludedTrait_2, UScriptStruct *ExcludedTrait_3, UScriptStruct *ExcludedTrait_4, UScriptStruct *ExcludedTrait_5, UScriptStruct *ExcludedTrait_6, UScriptStruct *ExcludedTrait_7, TSubclassOf< UDetail > ExcludedDetail_0, TSubclassOf< UDetail > ExcludedDetail_1, TSubclassOf< UDetail > ExcludedDetail_2, TSubclassOf< UDetail > ExcludedDetail_3, TSubclassOf< UDetail > ExcludedDetail_4, TSubclassOf< UDetail > ExcludedDetail_5, TSubclassOf< UDetail > ExcludedDetail_6, TSubclassOf< UDetail > ExcludedDetail_7, const EBootFilter Booting)
 Make a cached filter with 8 components;. More...
 
static bool IsFilterViable (const FFilter &Filter)
 Check if the filter is viable and can actually be passed. More...
 
static bool FingerprintMatches (const FFingerprint &Fingerprint, const FFilter &Filter)
 Check if a fingerprint matches a filter. More...
 
static FBitMask BitMaskOr (const FBitMask &A, const FBitMask &B)
 Disjunct two bitmasks resulting in a bitmask. More...
 
static FBitMask BitMaskAnd (const FBitMask &A, const FBitMask &B)
 Conjunct two bit masks resulting in a bit mask. More...
 
static FFingerprintAddDetailToFingerprint (FFingerprint &Fingerprint, const TSubclassOf< UDetail > DetailClass)
 Add a detail class to a fingerprint. More...
 
static FFingerprintRemoveDetailFromFingerprint (FFingerprint &Fingerprint, const TSubclassOf< UDetail > DetailClass)
 Remove a detail class from a fingerprint. More...
 
static void GetSubjectiveFingerprint (TScriptInterface< ISubjective > Subjective, FFingerprint &OutFingerprint)
 Get the current fingerprint of a subjective. More...
 
static USubjectiveActorComponentGetSubjectiveComponent (TScriptInterface< ISubjective > Subjective)
 Cast subjective to an actor component. More...
 
static AActor * GetSubjectiveActor (TScriptInterface< ISubjective > Subjective)
 Get the actor of the subjective in question. More...
 
static TScriptInterface< ISubjectiveGetObjectSubjective (UObject *const Object)
 Get a subjective from an object. More...
 
static UUserWidget * GetSubjectiveWidget (TScriptInterface< ISubjective > Subjective)
 Get the widget in question, if this subjective is actually an user widget. More...
 
static class UDetailEnableSubjectiveDetail (TScriptInterface< ISubjective > Subjective, TSubclassOf< UDetail > DetailClass)
 Enable a detail of a certain type. More...
 
static class UBeltGetSubjectivePreferredBelt (TScriptInterface< ISubjective > Subjective)
 Get the preferred user-set belt. More...
 
static bool HasSubjectiveDetail (TScriptInterface< ISubjective > Subjective, TSubclassOf< UDetail > DetailClass, const bool bIncludeDisabled=false)
 Check if the subjective contains a detail of a certain type. More...
 
static UDetailFindSubjectiveDetail (TScriptInterface< ISubjective > Subjective, TSubclassOf< UDetail > DetailClass, const bool bIncludeDisabled=false)
 Find a detail by its type. More...
 
static void GetSubjectiveDetails (TScriptInterface< ISubjective > Subjective, TArray< UDetail * > &OutDetails, const bool bIncludeDisabled=false)
 Get the current list of details in the subject. More...
 
static TArray< UDetail * > FindSubjectiveDetails (TScriptInterface< ISubjective > Subjective, TSubclassOf< UDetail > DetailClass, const bool bIncludeDisabled=false)
 Find the details by their type. More...
 
static class UDetailAddSubjectiveDetail (TScriptInterface< ISubjective > Subjective, TSubclassOf< UDetail > DetailClass, const bool bReuseDisabled=false)
 Add or reuse a detail of a certain type. More...
 
static EApparatusStatus DisableSubjectiveDetail (TScriptInterface< ISubjective > Subjective, TSubclassOf< UDetail > DetailClass, const bool bDisableMultiple=false)
 Disable a first detail matching the passed type. More...
 
static void GetSubjectiveTrait (TScriptInterface< ISubjective > Subjective, UScriptStruct *TraitType, FGenericStruct &OutTraitData)
 Get a trait structure for a subjective. More...
 
static void Generic_GetSubjectiveTrait (TScriptInterface< ISubjective > Subjective, UScriptStruct *TraitType, void *const OutTraitData)
 
static void SetSubjectiveTrait (TScriptInterface< ISubjective > Subjective, UScriptStruct *TraitType, const FGenericStruct &InTraitData)
 Set a trait structure for a subjective. More...
 
static void Generic_SetSubjectiveTrait (TScriptInterface< ISubjective > Subjective, UScriptStruct *TraitType, const void *const InTraitData)
 
static void ObtainSubjectiveTrait (TScriptInterface< ISubjective > Subjective, UScriptStruct *TraitType, FGenericStruct &OutTraitData)
 Obtain a trait structure for a subjective. More...
 
static void Generic_ObtainSubjectiveTrait (TScriptInterface< ISubjective > Subjective, UScriptStruct *TraitType, void *const OutTraitData)
 
static void GetSubjectTrait (const FSubjectHandle &SubjectHandle, UScriptStruct *TraitType, FGenericStruct &OutTraitData)
 Get a trait structure from a subject. More...
 
static void Generic_GetSubjectTrait (const FSubjectHandle &SubjectHandle, UScriptStruct *TraitType, void *const OutTraitData)
 
static void SetSubjectTrait (FSubjectHandle &SubjectHandle, UScriptStruct *TraitType, const FGenericStruct &InTraitData)
 Set a trait structure for a subject. More...
 
static void Generic_SetSubjectTrait (FSubjectHandle &SubjectHandle, UScriptStruct *TraitType, const void *const InTraitData)
 
static void ObtainSubjectTrait (FSubjectHandle &SubjectHandle, UScriptStruct *TraitType, FGenericStruct &OutTraitData)
 Obtain a trait structure from a subject. More...
 
static void Generic_ObtainSubjectTrait (FSubjectHandle &SubjectHandle, UScriptStruct *TraitType, void *const OutTraitData)
 
static EApparatusStatus MechanismEnchain (UObject *const WorldContextObject, const FFilter &Filter, int32 &OutChainId)
 Enchain multiple iterable sequences (chunks or belts) based on a filter. More...
 
static int32 ChainIterableNum (UObject *const WorldContextObject, const int32 ChainId)
 Get the total iterable number of entities (Subjects/Subjectives) in the chain. More...
 
static bool BeginChain (UObject *const WorldContextObject, const int32 ChainId)
 Begin iterating upon a chain. More...
 
static bool AdvanceChain (UObject *const WorldContextObject, const int32 ChainId)
 Advance while iterating upon a chain. More...
 
static bool BeginOrAdvanceChain (UObject *const WorldContextObject, const int32 ChainId)
 Begin iterating or advance while iterating upon a chain. More...
 
static FSubjectHandle GetChainSubject (UObject *const WorldContextObject, const int32 ChainId)
 Get the current iteration's subject handle. More...
 
static TScriptInterface< ISubjectiveGetChainSubjective (UObject *const WorldContextObject, const int32 ChainId)
 Get the current iteration's subjective (if any). More...
 
static void GetChainTrait (UObject *const WorldContextObject, const int32 ChainId, UScriptStruct *TraitType, FGenericStruct &OutTraitData)
 Get an existing trait structure from the current chain cursor. More...
 
static void Generic_GetChainTrait (UObject *const WorldContextObject, const int32 &ChainId, UScriptStruct *TraitType, void *const OutTraitData)
 
static void GetChainTraitHinted (UObject *const WorldContextObject, const int32 ChainId, UScriptStruct *TraitType, const int32 TraitIndex, FGenericStruct &OutTraitData)
 Get an existing trait structure from the current chain cursor with a specific index hinted. More...
 
static void Generic_GetChainTraitHinted (UObject *const WorldContextObject, const int32 ChainId, UScriptStruct *TraitType, const int32 TraitIndex, void *const OutTraitData)
 
static UDetailGetChainDetail (UObject *const WorldContextObject, const int32 ChainId, TSubclassOf< UDetail > DetailClass)
 Get a detail from a current chain iteration. More...
 
static class UDetailGetChainDetailHinted (UObject *const WorldContextObject, const int32 ChainId, TSubclassOf< UDetail > DetailClass, const int32 DetailIndexHint)
 Get a detail from a chain while hinting its index. More...
 
static void CopySubjectTraits (const FSubjectHandle &SourceSubjectHandle, const FSubjectHandle &DestinationSubjectHandle)
 Copy traits from one subject to another. More...
 
static EApparatusStatus SpawnMachineSubject (UObject *const WorldContextObject, FSubjectHandle &OutSubjectHandle)
 Spawn a subject within the machine. More...
 
static void ResetSubjectHandle (FSubjectHandle &SubjectHandle)
 Reset the subject handle, making it invalid. More...
 
static FSubjectHandle GetInvalidSubjectHandle ()
 Get invalid subject handle constant. More...
 
static bool AreSubjectHandlesEqual (const FSubjectHandle &SubjectA, const FSubjectHandle &SubjectB)
 Check if two handles point at the same subject. More...
 
static bool AreSubjectHandlesNotEqual (const FSubjectHandle &SubjectA, const FSubjectHandle &SubjectB)
 Check if two handles point at different subjects. More...
 
static bool IsSubjectHandleValid (FSubjectHandle &SubjectHandle)
 Check if the subject handle is valid. More...
 
static void RemoveSubjectTrait (FSubjectHandle &SubjectHandle, UScriptStruct *TraitType)
 Remove a trait from the subject. More...
 
static void DisableSubjectDetail (FSubjectHandle &SubjectHandle, TSubclassOf< UDetail > DetailClass, const bool bDisableMultiple=false)
 Disable a detail for the subject. More...
 
static void RemoveSubjectiveTrait (TScriptInterface< ISubjective > Subjective, UScriptStruct *TraitType)
 Remove a trait from the subjective. More...
 
static TScriptInterface< ISubjectiveGetSubjectSubjective (const FSubjectHandle &SubjectHandle)
 Get the subjective of the subject (if any). More...
 
static bool HasSubjectTrait (const FSubjectHandle &SubjectHandle, UScriptStruct *TraitType)
 Check if the subject contains a trait. More...
 
static bool HasSubjectDetail (const FSubjectHandle &SubjectHandle, TSubclassOf< UDetail > DetailClass)
 Check if the subject contains a detail. More...
 
static bool HasSubjectiveTrait (TScriptInterface< ISubjective > Subjective, UScriptStruct *TraitType)
 Check if the subjective contains a trait. More...
 
static EApparatusStatus DespawnMachineSubject (const FSubjectHandle &SubjectHandle)
 Despawn a subject from the machine. More...
 

Detailed Description

The main Apparatus function library.

Member Function Documentation

◆ AddDetailToFingerprint()

FFingerprint & UApparatusFunctionLibrary::AddDetailToFingerprint ( FFingerprint Fingerprint,
const TSubclassOf< UDetail DetailClass 
)
inlinestatic

Add a detail class to a fingerprint.

◆ AddSubjectiveDetail()

static class UDetail* UApparatusFunctionLibrary::AddSubjectiveDetail ( TScriptInterface< ISubjective Subjective,
TSubclassOf< UDetail DetailClass,
const bool  bReuseDisabled = false 
)
inlinestatic

Add or reuse a detail of a certain type.

Parameters
SubjectiveThe subjective to add a detail to.
DetailClassThe type of a detail to add to a subject.
bReuseDisabledShould an inactive detail be reused, if possible. If the detail already exists and is active, a new detail is created, activated and returned. If the detail exists but is not currently active, it is activated and returned.
Returns
A new or reused detail. Guaranteed to be active.

◆ AddToSubjectHandles16()

static int32 UApparatusFunctionLibrary::AddToSubjectHandles16 ( FSubjectHandles16 SubjectHandles,
FSubjectHandle  SubjectHandle 
)
inlinestatic

Add a subject handle to an array.

Invalid handles won't be added for the purpose of economy.

◆ AddToSubjectHandles4()

static int32 UApparatusFunctionLibrary::AddToSubjectHandles4 ( FSubjectHandles4 SubjectHandles,
FSubjectHandle  SubjectHandle 
)
inlinestatic

Add a subject handle to an array.

Invalid handles won't be added for the purpose of economy.

◆ AddToSubjectHandles8()

static int32 UApparatusFunctionLibrary::AddToSubjectHandles8 ( FSubjectHandles8 SubjectHandles,
FSubjectHandle  SubjectHandle 
)
inlinestatic

Add a subject handle to an array.

Invalid handles won't be added for the purpose of economy.

◆ AddUniqueToSubjectHandles16()

static int32 UApparatusFunctionLibrary::AddUniqueToSubjectHandles16 ( FSubjectHandles16 SubjectHandles,
FSubjectHandle  SubjectHandle 
)
inlinestatic

Add a unique subject handle to an array.

Invalid handles won't be added for the purpose of economy.

◆ AddUniqueToSubjectHandles4()

static int32 UApparatusFunctionLibrary::AddUniqueToSubjectHandles4 ( FSubjectHandles4 SubjectHandles,
FSubjectHandle  SubjectHandle 
)
inlinestatic

Add a unique subject handle to an array.

Invalid handles won't be added for the purpose of economy.

◆ AddUniqueToSubjectHandles8()

static int32 UApparatusFunctionLibrary::AddUniqueToSubjectHandles8 ( FSubjectHandles8 SubjectHandles,
FSubjectHandle  SubjectHandle 
)
inlinestatic

Add a unique subject handle to an array.

Invalid handles won't be added for the purpose of economy.

◆ AdvanceChain()

static bool UApparatusFunctionLibrary::AdvanceChain ( UObject *const  WorldContextObject,
const int32  ChainId 
)
inlinestatic

Advance while iterating upon a chain.

Parameters
WorldContextObjectAn object to get a world context from.
ChainIdThe identifier of a chain to iterate upon.
Returns
Is the current iteration viable?

◆ AreSubjectHandlesEqual()

static bool UApparatusFunctionLibrary::AreSubjectHandlesEqual ( const FSubjectHandle SubjectA,
const FSubjectHandle SubjectB 
)
inlinestatic

Check if two handles point at the same subject.

◆ AreSubjectHandlesNotEqual()

static bool UApparatusFunctionLibrary::AreSubjectHandlesNotEqual ( const FSubjectHandle SubjectA,
const FSubjectHandle SubjectB 
)
inlinestatic

Check if two handles point at different subjects.

◆ BeginChain()

static bool UApparatusFunctionLibrary::BeginChain ( UObject *const  WorldContextObject,
const int32  ChainId 
)
inlinestatic

Begin iterating upon a chain.

Parameters
WorldContextObjectAn object to get a world context from.
ChainIdThe identifier of a chain to iterate upon.
Returns
Is the current iteration viable?

◆ BeginOrAdvanceChain()

static bool UApparatusFunctionLibrary::BeginOrAdvanceChain ( UObject *const  WorldContextObject,
const int32  ChainId 
)
inlinestatic

Begin iterating or advance while iterating upon a chain.

Parameters
WorldContextObjectAn object to get a world context from.
ChainIdThe identifier of a chain to iterate upon.
Returns
Is the current iteration viable or an end has come?

◆ BitMaskAnd()

static FBitMask UApparatusFunctionLibrary::BitMaskAnd ( const FBitMask A,
const FBitMask B 
)
inlinestatic

Conjunct two bit masks resulting in a bit mask.

◆ BitMaskOr()

static FBitMask UApparatusFunctionLibrary::BitMaskOr ( const FBitMask A,
const FBitMask B 
)
inlinestatic

Disjunct two bitmasks resulting in a bitmask.

◆ ChainIterableNum()

static int32 UApparatusFunctionLibrary::ChainIterableNum ( UObject *const  WorldContextObject,
const int32  ChainId 
)
inlinestatic

Get the total iterable number of entities (Subjects/Subjectives) in the chain.

Parameters
WorldContextObjectAn object to get a world context from.
ChainIdThe identifier of a chain to examine.
Returns
The number of entities available for iteration.

◆ ClearSubjectHandles16()

static void UApparatusFunctionLibrary::ClearSubjectHandles16 ( FSubjectHandles16 SubjectHandles)
inlinestatic

Remove all elements from the array.

◆ ClearSubjectHandles4()

static void UApparatusFunctionLibrary::ClearSubjectHandles4 ( FSubjectHandles4 SubjectHandles)
inlinestatic

Remove all elements from the array.

◆ ClearSubjectHandles8()

static void UApparatusFunctionLibrary::ClearSubjectHandles8 ( FSubjectHandles8 SubjectHandles)
inlinestatic

Remove all elements from the array.

◆ CopySubjectTraits()

static void UApparatusFunctionLibrary::CopySubjectTraits ( const FSubjectHandle SourceSubjectHandle,
const FSubjectHandle DestinationSubjectHandle 
)
inlinestatic

Copy traits from one subject to another.

The existing traits of the destination subject are not removed but the new ones are added and/or override the existing matching.

Parameters
SourceSubjectHandleThe source subject to copy from.
DestinationSubjectHandleThe destination subject to copy to.

◆ DECLARE_FUNCTION() [1/8]

UApparatusFunctionLibrary::DECLARE_FUNCTION ( execGetChainTrait  )
inline

◆ DECLARE_FUNCTION() [2/8]

UApparatusFunctionLibrary::DECLARE_FUNCTION ( execGetChainTraitHinted  )
inline

◆ DECLARE_FUNCTION() [3/8]

UApparatusFunctionLibrary::DECLARE_FUNCTION ( execGetSubjectiveTrait  )
inline

◆ DECLARE_FUNCTION() [4/8]

UApparatusFunctionLibrary::DECLARE_FUNCTION ( execGetSubjectTrait  )
inline

◆ DECLARE_FUNCTION() [5/8]

UApparatusFunctionLibrary::DECLARE_FUNCTION ( execObtainSubjectiveTrait  )
inline

◆ DECLARE_FUNCTION() [6/8]

UApparatusFunctionLibrary::DECLARE_FUNCTION ( execObtainSubjectTrait  )
inline

◆ DECLARE_FUNCTION() [7/8]

UApparatusFunctionLibrary::DECLARE_FUNCTION ( execSetSubjectiveTrait  )
inline

◆ DECLARE_FUNCTION() [8/8]

UApparatusFunctionLibrary::DECLARE_FUNCTION ( execSetSubjectTrait  )
inline

◆ DespawnMachineSubject()

static EApparatusStatus UApparatusFunctionLibrary::DespawnMachineSubject ( const FSubjectHandle SubjectHandle)
inlinestatic

Despawn a subject from the machine.

◆ DisableSubjectDetail()

static void UApparatusFunctionLibrary::DisableSubjectDetail ( FSubjectHandle SubjectHandle,
TSubclassOf< UDetail DetailClass,
const bool  bDisableMultiple = false 
)
inlinestatic

Disable a detail for the subject.

◆ DisableSubjectiveDetail()

static EApparatusStatus UApparatusFunctionLibrary::DisableSubjectiveDetail ( TScriptInterface< ISubjective Subjective,
TSubclassOf< UDetail DetailClass,
const bool  bDisableMultiple = false 
)
inlinestatic

Disable a first detail matching the passed type.

You can't remove details, but only disable them instead.

Parameters
SubjectiveThe subjective to disable a detail for.
DetailClassThe class of detail(s) to disable.
bDisableMultipleShould multiple matching details be disabled at once, or only the first one?
Returns
The status of the operation. Returns "Noop" if nothing was actually changed.

◆ EnableSubjectiveDetail()

static class UDetail* UApparatusFunctionLibrary::EnableSubjectiveDetail ( TScriptInterface< ISubjective Subjective,
TSubclassOf< UDetail DetailClass 
)
inlinestatic

Enable a detail of a certain type.

If the detail already exists and is active, nothing is performed, and that detail is returned. If the detail does not exist at all, a new detail is added, activated and returned. If the detail exists but is not currently active, it is activated and returned.

◆ FindSubjectiveDetail()

static UDetail* UApparatusFunctionLibrary::FindSubjectiveDetail ( TScriptInterface< ISubjective Subjective,
TSubclassOf< UDetail DetailClass,
const bool  bIncludeDisabled = false 
)
inlinestatic

Find a detail by its type.

◆ FindSubjectiveDetails()

TArray< UDetail * > UApparatusFunctionLibrary::FindSubjectiveDetails ( TScriptInterface< ISubjective Subjective,
TSubclassOf< UDetail DetailClass,
const bool  bIncludeDisabled = false 
)
inlinestatic

Find the details by their type.

◆ FingerprintMatches()

static bool UApparatusFunctionLibrary::FingerprintMatches ( const FFingerprint Fingerprint,
const FFilter Filter 
)
inlinestatic

Check if a fingerprint matches a filter.

◆ Generic_GetChainTrait()

static void UApparatusFunctionLibrary::Generic_GetChainTrait ( UObject *const  WorldContextObject,
const int32 &  ChainId,
UScriptStruct *  TraitType,
void *const  OutTraitData 
)
inlinestatic

◆ Generic_GetChainTraitHinted()

static void UApparatusFunctionLibrary::Generic_GetChainTraitHinted ( UObject *const  WorldContextObject,
const int32  ChainId,
UScriptStruct *  TraitType,
const int32  TraitIndex,
void *const  OutTraitData 
)
inlinestatic

◆ Generic_GetSubjectiveTrait()

static void UApparatusFunctionLibrary::Generic_GetSubjectiveTrait ( TScriptInterface< ISubjective Subjective,
UScriptStruct *  TraitType,
void *const  OutTraitData 
)
inlinestatic

◆ Generic_GetSubjectTrait()

static void UApparatusFunctionLibrary::Generic_GetSubjectTrait ( const FSubjectHandle SubjectHandle,
UScriptStruct *  TraitType,
void *const  OutTraitData 
)
inlinestatic

◆ Generic_ObtainSubjectiveTrait()

static void UApparatusFunctionLibrary::Generic_ObtainSubjectiveTrait ( TScriptInterface< ISubjective Subjective,
UScriptStruct *  TraitType,
void *const  OutTraitData 
)
inlinestatic

◆ Generic_ObtainSubjectTrait()

static void UApparatusFunctionLibrary::Generic_ObtainSubjectTrait ( FSubjectHandle SubjectHandle,
UScriptStruct *  TraitType,
void *const  OutTraitData 
)
inlinestatic

◆ Generic_SetSubjectiveTrait()

static void UApparatusFunctionLibrary::Generic_SetSubjectiveTrait ( TScriptInterface< ISubjective Subjective,
UScriptStruct *  TraitType,
const void *const  InTraitData 
)
inlinestatic

◆ Generic_SetSubjectTrait()

static void UApparatusFunctionLibrary::Generic_SetSubjectTrait ( FSubjectHandle SubjectHandle,
UScriptStruct *  TraitType,
const void *const  InTraitData 
)
inlinestatic

◆ GetChainDetail()

static UDetail* UApparatusFunctionLibrary::GetChainDetail ( UObject *const  WorldContextObject,
const int32  ChainId,
TSubclassOf< UDetail DetailClass 
)
inlinestatic

Get a detail from a current chain iteration.

Parameters
WorldContextObjectAn object to get a world context from.
ChainIdThe identifier of a chain to get from.
DetailClassThe class of the detail to get.
Returns
The detail of the specified type.

◆ GetChainDetailHinted()

static class UDetail* UApparatusFunctionLibrary::GetChainDetailHinted ( UObject *const  WorldContextObject,
const int32  ChainId,
TSubclassOf< UDetail DetailClass,
const int32  DetailIndexHint 
)
inlinestatic

Get a detail from a chain while hinting its index.

Parameters
WorldContextObjectAn object to get a world context from.
ChainIdThe identifier of a chain to iterate upon.
DetailClassA class of the detail to get.
DetailIndexHintThe hinted index of the detail to get.

◆ GetChainSubject()

static FSubjectHandle UApparatusFunctionLibrary::GetChainSubject ( UObject *const  WorldContextObject,
const int32  ChainId 
)
inlinestatic

Get the current iteration's subject handle.

Parameters
WorldContextObjectAn object to get a world context from.
ChainIdThe identifier of a chain to iterate upon.
Returns
The subject handle of the current iteration.

◆ GetChainSubjective()

static TScriptInterface<ISubjective> UApparatusFunctionLibrary::GetChainSubjective ( UObject *const  WorldContextObject,
const int32  ChainId 
)
inlinestatic

Get the current iteration's subjective (if any).

Parameters
WorldContextObjectAn object to get a world context from.
ChainIdThe identifier of a chain to iterate upon.
Returns
The subjective of the current iteration.

◆ GetChainTrait()

static void UApparatusFunctionLibrary::GetChainTrait ( UObject *const  WorldContextObject,
const int32  ChainId,
UScriptStruct *  TraitType,
FGenericStruct &  OutTraitData 
)
inlinestatic

Get an existing trait structure from the current chain cursor.

◆ GetChainTraitHinted()

static void UApparatusFunctionLibrary::GetChainTraitHinted ( UObject *const  WorldContextObject,
const int32  ChainId,
UScriptStruct *  TraitType,
const int32  TraitIndex,
FGenericStruct &  OutTraitData 
)
inlinestatic

Get an existing trait structure from the current chain cursor with a specific index hinted.

◆ GetInvalidSubjectHandle()

static FSubjectHandle UApparatusFunctionLibrary::GetInvalidSubjectHandle ( )
inlinestatic

Get invalid subject handle constant.

◆ GetObjectSubjective()

static TScriptInterface<ISubjective> UApparatusFunctionLibrary::GetObjectSubjective ( UObject *const  Object)
inlinestatic

Get a subjective from an object.

This method is smart enough to search for subjective within an actor's components (if any).

Parameters
ObjectAn object to examine. If is an actor, its components are also examined.

◆ GetSubjectHandles16At()

static FSubjectHandle UApparatusFunctionLibrary::GetSubjectHandles16At ( const FSubjectHandles16 SubjectHandles,
const int32  Index 
)
inlinestatic

Get a copy for a subject handle at a specified index.

◆ GetSubjectHandles16Length()

static int32 UApparatusFunctionLibrary::GetSubjectHandles16Length ( FSubjectHandles16 SubjectHandles)
inlinestatic

Get the number of elements in the array.

◆ GetSubjectHandles4At()

static FSubjectHandle UApparatusFunctionLibrary::GetSubjectHandles4At ( const FSubjectHandles4 SubjectHandles,
const int32  Index 
)
inlinestatic

Get a copy for a subject handle at a specified index.

◆ GetSubjectHandles4Length()

static int32 UApparatusFunctionLibrary::GetSubjectHandles4Length ( FSubjectHandles4 SubjectHandles)
inlinestatic

Get the number of elements in the array.

◆ GetSubjectHandles8At()

static FSubjectHandle UApparatusFunctionLibrary::GetSubjectHandles8At ( const FSubjectHandles8 SubjectHandles,
const int32  Index 
)
inlinestatic

Get a copy for a subject handle at a specified index.

◆ GetSubjectHandles8Length()

static int32 UApparatusFunctionLibrary::GetSubjectHandles8Length ( FSubjectHandles8 SubjectHandles)
inlinestatic

Get the number of elements in the array.

◆ GetSubjectiveActor()

static AActor* UApparatusFunctionLibrary::GetSubjectiveActor ( TScriptInterface< ISubjective Subjective)
inlinestatic

Get the actor of the subjective in question.

◆ GetSubjectiveComponent()

static USubjectiveActorComponent* UApparatusFunctionLibrary::GetSubjectiveComponent ( TScriptInterface< ISubjective Subjective)
inlinestatic

Cast subjective to an actor component.

◆ GetSubjectiveDetails()

void UApparatusFunctionLibrary::GetSubjectiveDetails ( TScriptInterface< ISubjective Subjective,
TArray< UDetail * > &  OutDetails,
const bool  bIncludeDisabled = false 
)
inlinestatic

Get the current list of details in the subject.

◆ GetSubjectiveFingerprint()

static void UApparatusFunctionLibrary::GetSubjectiveFingerprint ( TScriptInterface< ISubjective Subjective,
FFingerprint OutFingerprint 
)
inlinestatic

Get the current fingerprint of a subjective.

◆ GetSubjectivePreferredBelt()

static class UBelt* UApparatusFunctionLibrary::GetSubjectivePreferredBelt ( TScriptInterface< ISubjective Subjective)
inlinestatic

Get the preferred user-set belt.

Returns
The preferred belt or nullptr, if not set.

◆ GetSubjectiveTrait()

static void UApparatusFunctionLibrary::GetSubjectiveTrait ( TScriptInterface< ISubjective Subjective,
UScriptStruct *  TraitType,
FGenericStruct &  OutTraitData 
)
inlinestatic

Get a trait structure for a subjective.

◆ GetSubjectiveWidget()

static UUserWidget* UApparatusFunctionLibrary::GetSubjectiveWidget ( TScriptInterface< ISubjective Subjective)
inlinestatic

Get the widget in question, if this subjective is actually an user widget.

◆ GetSubjectSubjective()

static TScriptInterface<ISubjective> UApparatusFunctionLibrary::GetSubjectSubjective ( const FSubjectHandle SubjectHandle)
inlinestatic

Get the subjective of the subject (if any).

◆ GetSubjectTrait()

static void UApparatusFunctionLibrary::GetSubjectTrait ( const FSubjectHandle SubjectHandle,
UScriptStruct *  TraitType,
FGenericStruct &  OutTraitData 
)
inlinestatic

Get a trait structure from a subject.

◆ HasSubjectDetail()

static bool UApparatusFunctionLibrary::HasSubjectDetail ( const FSubjectHandle SubjectHandle,
TSubclassOf< UDetail DetailClass 
)
inlinestatic

Check if the subject contains a detail.

◆ HasSubjectiveDetail()

static bool UApparatusFunctionLibrary::HasSubjectiveDetail ( TScriptInterface< ISubjective Subjective,
TSubclassOf< UDetail DetailClass,
const bool  bIncludeDisabled = false 
)
inlinestatic

Check if the subjective contains a detail of a certain type.

◆ HasSubjectiveTrait()

static bool UApparatusFunctionLibrary::HasSubjectiveTrait ( TScriptInterface< ISubjective Subjective,
UScriptStruct *  TraitType 
)
inlinestatic

Check if the subjective contains a trait.

◆ HasSubjectTrait()

static bool UApparatusFunctionLibrary::HasSubjectTrait ( const FSubjectHandle SubjectHandle,
UScriptStruct *  TraitType 
)
inlinestatic

Check if the subject contains a trait.

◆ IsFilterViable()

static bool UApparatusFunctionLibrary::IsFilterViable ( const FFilter Filter)
inlinestatic

Check if the filter is viable and can actually be passed.

◆ IsSubjectHandleValid()

static bool UApparatusFunctionLibrary::IsSubjectHandleValid ( FSubjectHandle SubjectHandle)
inlinestatic

Check if the subject handle is valid.

◆ MakeCachedFilter0()

static FFilter UApparatusFunctionLibrary::MakeCachedFilter0 ( const FString &  Key,
const EBootFilter  Booting 
)
inlinestatic

Make a cached filter with 0 components;.

◆ MakeCachedFilter1()

static FFilter UApparatusFunctionLibrary::MakeCachedFilter1 ( const FString &  Key,
UScriptStruct *  Trait_0,
TSubclassOf< UDetail Detail_0,
UScriptStruct *  ExcludedTrait_0,
TSubclassOf< UDetail ExcludedDetail_0,
const EBootFilter  Booting 
)
inlinestatic

Make a cached filter with 1 component;.

◆ MakeCachedFilter2()

static FFilter UApparatusFunctionLibrary::MakeCachedFilter2 ( const FString &  Key,
UScriptStruct *  Trait_0,
UScriptStruct *  Trait_1,
TSubclassOf< UDetail Detail_0,
TSubclassOf< UDetail Detail_1,
UScriptStruct *  ExcludedTrait_0,
UScriptStruct *  ExcludedTrait_1,
TSubclassOf< UDetail ExcludedDetail_0,
TSubclassOf< UDetail ExcludedDetail_1,
const EBootFilter  Booting 
)
inlinestatic

Make a cached filter with 2 components;.

◆ MakeCachedFilter4()

static FFilter UApparatusFunctionLibrary::MakeCachedFilter4 ( const FString &  Key,
UScriptStruct *  Trait_0,
UScriptStruct *  Trait_1,
UScriptStruct *  Trait_2,
UScriptStruct *  Trait_3,
TSubclassOf< UDetail Detail_0,
TSubclassOf< UDetail Detail_1,
TSubclassOf< UDetail Detail_2,
TSubclassOf< UDetail Detail_3,
UScriptStruct *  ExcludedTrait_0,
UScriptStruct *  ExcludedTrait_1,
UScriptStruct *  ExcludedTrait_2,
UScriptStruct *  ExcludedTrait_3,
TSubclassOf< UDetail ExcludedDetail_0,
TSubclassOf< UDetail ExcludedDetail_1,
TSubclassOf< UDetail ExcludedDetail_2,
TSubclassOf< UDetail ExcludedDetail_3,
const EBootFilter  Booting 
)
inlinestatic

Make a cached filter with 4 components;.

◆ MakeCachedFilter8()

static FFilter UApparatusFunctionLibrary::MakeCachedFilter8 ( const FString &  Key,
UScriptStruct *  Trait_0,
UScriptStruct *  Trait_1,
UScriptStruct *  Trait_2,
UScriptStruct *  Trait_3,
UScriptStruct *  Trait_4,
UScriptStruct *  Trait_5,
UScriptStruct *  Trait_6,
UScriptStruct *  Trait_7,
TSubclassOf< UDetail Detail_0,
TSubclassOf< UDetail Detail_1,
TSubclassOf< UDetail Detail_2,
TSubclassOf< UDetail Detail_3,
TSubclassOf< UDetail Detail_4,
TSubclassOf< UDetail Detail_5,
TSubclassOf< UDetail Detail_6,
TSubclassOf< UDetail Detail_7,
UScriptStruct *  ExcludedTrait_0,
UScriptStruct *  ExcludedTrait_1,
UScriptStruct *  ExcludedTrait_2,
UScriptStruct *  ExcludedTrait_3,
UScriptStruct *  ExcludedTrait_4,
UScriptStruct *  ExcludedTrait_5,
UScriptStruct *  ExcludedTrait_6,
UScriptStruct *  ExcludedTrait_7,
TSubclassOf< UDetail ExcludedDetail_0,
TSubclassOf< UDetail ExcludedDetail_1,
TSubclassOf< UDetail ExcludedDetail_2,
TSubclassOf< UDetail ExcludedDetail_3,
TSubclassOf< UDetail ExcludedDetail_4,
TSubclassOf< UDetail ExcludedDetail_5,
TSubclassOf< UDetail ExcludedDetail_6,
TSubclassOf< UDetail ExcludedDetail_7,
const EBootFilter  Booting 
)
inlinestatic

Make a cached filter with 8 components;.

◆ MakeDetailmark()

FDetailmark UApparatusFunctionLibrary::MakeDetailmark ( const TArray< TSubclassOf< UDetail >> &  Details,
const EBootFilter  BootState = EBootFilter::None 
)
inlinestatic

◆ MakeFilter()

FFilter UApparatusFunctionLibrary::MakeFilter ( const TArray< UScriptStruct * > &  Traits,
const TArray< TSubclassOf< UDetail >> &  Details,
const TArray< UScriptStruct * > &  ExcludedTraits,
const TArray< TSubclassOf< UDetail >> &  ExcludedDetails,
const EBootFilter  Booting 
)
inlinestatic

Make a filter from the list of details, exclusion details, and a boot filter.

◆ MakeFingerprint()

FFingerprint UApparatusFunctionLibrary::MakeFingerprint ( const TArray< UScriptStruct * > &  Traits,
const TArray< TSubclassOf< UDetail >> &  Details,
const EBootFilter  BootState = EBootFilter::None 
)
inlinestatic

◆ MakeTraitmark()

FTraitmark UApparatusFunctionLibrary::MakeTraitmark ( const TArray< UScriptStruct * > &  Traits,
const EBootFilter  BootState = EBootFilter::None 
)
inlinestatic

◆ MechanismEnchain()

static EApparatusStatus UApparatusFunctionLibrary::MechanismEnchain ( UObject *const  WorldContextObject,
const FFilter Filter,
int32 &  OutChainId 
)
inlinestatic

Enchain multiple iterable sequences (chunks or belts) based on a filter.

Parameters
WorldContextObjectAn object to get a world context from.
FilterA filter to enchain under.
OutChainIdThe output chain identifier.
Returns
The status of the operation.

◆ ObtainSubjectiveTrait()

static void UApparatusFunctionLibrary::ObtainSubjectiveTrait ( TScriptInterface< ISubjective Subjective,
UScriptStruct *  TraitType,
FGenericStruct &  OutTraitData 
)
inlinestatic

Obtain a trait structure for a subjective.

◆ ObtainSubjectTrait()

static void UApparatusFunctionLibrary::ObtainSubjectTrait ( FSubjectHandle SubjectHandle,
UScriptStruct *  TraitType,
FGenericStruct &  OutTraitData 
)
inlinestatic

Obtain a trait structure from a subject.

◆ RemoveDetailFromFingerprint()

FFingerprint & UApparatusFunctionLibrary::RemoveDetailFromFingerprint ( FFingerprint Fingerprint,
const TSubclassOf< UDetail DetailClass 
)
inlinestatic

Remove a detail class from a fingerprint.

◆ RemoveFromSubjectHandles16()

void UApparatusFunctionLibrary::RemoveFromSubjectHandles16 ( FSubjectHandles16 SubjectHandles,
FSubjectHandle  SubjectHandle 
)
inlinestatic

Remove a subject handle from the array.

◆ RemoveFromSubjectHandles4()

void UApparatusFunctionLibrary::RemoveFromSubjectHandles4 ( FSubjectHandles4 SubjectHandles,
FSubjectHandle  SubjectHandle 
)
inlinestatic

Remove a subject handle from the array.

◆ RemoveFromSubjectHandles8()

void UApparatusFunctionLibrary::RemoveFromSubjectHandles8 ( FSubjectHandles8 SubjectHandles,
FSubjectHandle  SubjectHandle 
)
inlinestatic

Remove a subject handle from the array.

◆ RemoveSubjectiveTrait()

static void UApparatusFunctionLibrary::RemoveSubjectiveTrait ( TScriptInterface< ISubjective Subjective,
UScriptStruct *  TraitType 
)
inlinestatic

Remove a trait from the subjective.

◆ RemoveSubjectTrait()

static void UApparatusFunctionLibrary::RemoveSubjectTrait ( FSubjectHandle SubjectHandle,
UScriptStruct *  TraitType 
)
inlinestatic

Remove a trait from the subject.

◆ ResetSubjectHandle()

static void UApparatusFunctionLibrary::ResetSubjectHandle ( FSubjectHandle SubjectHandle)
inlinestatic

Reset the subject handle, making it invalid.

The subject itself won't be despawned though.

◆ SetSubjectHandles16At()

static void UApparatusFunctionLibrary::SetSubjectHandles16At ( FSubjectHandles16 SubjectHandles,
const int32  Index,
const FSubjectHandle SubjectHandle 
)
inlinestatic

Set a subject handle at a specified index of the array.

◆ SetSubjectHandles4At()

static void UApparatusFunctionLibrary::SetSubjectHandles4At ( FSubjectHandles4 SubjectHandles,
const int32  Index,
const FSubjectHandle SubjectHandle 
)
inlinestatic

Set a subject handle at a specified index of the array.

◆ SetSubjectHandles8At()

static void UApparatusFunctionLibrary::SetSubjectHandles8At ( FSubjectHandles8 SubjectHandles,
const int32  Index,
const FSubjectHandle SubjectHandle 
)
inlinestatic

Set a subject handle at a specified index of the array.

◆ SetSubjectiveTrait()

static void UApparatusFunctionLibrary::SetSubjectiveTrait ( TScriptInterface< ISubjective Subjective,
UScriptStruct *  TraitType,
const FGenericStruct &  InTraitData 
)
inlinestatic

Set a trait structure for a subjective.

◆ SetSubjectTrait()

static void UApparatusFunctionLibrary::SetSubjectTrait ( FSubjectHandle SubjectHandle,
UScriptStruct *  TraitType,
const FGenericStruct &  InTraitData 
)
inlinestatic

Set a trait structure for a subject.

◆ SpawnMachineSubject()

static EApparatusStatus UApparatusFunctionLibrary::SpawnMachineSubject ( UObject *const  WorldContextObject,
FSubjectHandle OutSubjectHandle 
)
inlinestatic

Spawn a subject within the machine.


The documentation for this class was generated from the following file: