![]() |
Apparatus
Version 1.2.1
ECS data-driven workflow for Unreal Engine.
|
An interface for all sorts of subjects. More...
#include <Subjective.h>
Public Types | |
enum | { InvalidSlotIndex = FBeltSlot::InvalidIndex } |
Public Member Functions | |
const FFingerprint & | GetFingerprint () const |
Get the active fingerprint of the subjective. More... | |
bool | Matches (const FFilter &Filter) const |
Check if the subjective matches a supplied filter. More... | |
bool | Matches (const FTraitmark &InTraitmark) const |
Check if the subjective matches a supplied traitmark as a filter. More... | |
bool | Matches (const FDetailmark &InDetailmark) const |
Check if the subjective matches a supplied detailmark as a filter. More... | |
void | GetDetails (const bool bIncludeDisabled, TArray< UDetail * > &OutDetails) const |
Get the details of the subjective. More... | |
UDetail * | FindDetail (TSubclassOf< UDetail > DetailClass, const bool bIncludeDisabled=false) const |
Find the detail by a type. More... | |
void | FindDetails (TSubclassOf< UDetail > DetailClass, TArray< UDetail * > &OutDetails, const bool bIncludeDisabled=false) const |
Find the details by their type. More... | |
bool | HasDetail (TSubclassOf< UDetail > DetailClass, const bool bIncludeDisabled=false) const |
Check if there is a detail of specific class in the subjective. More... | |
virtual class UBelt * | GetPreferredBelt () const |
Get the preferred belt of the subjective (if any). More... | |
class UDetail * | EnableDetail (TSubclassOf< UDetail > DetailClass) |
Enable a detail of a certain type. More... | |
class UDetail * | AddDetail (TSubclassOf< UDetail > DetailClass, const bool bReuseDisabled=false) |
Add a new active detail or reuse an inactive one. More... | |
EApparatusStatus | DisableDetail (TSubclassOf< UDetail > DetailClass, const bool bDisableMultiple=false) |
Disable a certain detail(s) by type. More... | |
const struct FBeltSlot * | GetSlot () const |
Get the current belt slot of the subjective (if any). More... | |
bool | IsRegistered () const |
Check if the subjective is registered within the machine. More... | |
int32 | GetSlotIndex () const |
Get the current slot index of the subjective. More... | |
bool | IsBooted () const |
Check if the subject is booted. More... | |
FSubjectHandle & | GetHandle () |
Get the subject handle of this subjective. More... | |
const FSubjectHandle & | GetHandle () const |
Get the subject handle of this subjective. More... | |
virtual uint32 | GetHash () const |
Get the hash of the subjective. More... | |
Protected Member Functions | |
void | MarkBooted () |
Set the subjective as booted. More... | |
void | TakeBeltSlot (class UBelt *InBelt, int32 InSlotIndex) |
Set the current belt slot of the subjective (if any). More... | |
UBelt * | GetBelt () const |
Get the active belt of the subjective (if any). More... | |
virtual TArray< UDetail * > & | GetDetailsRef () |
Direct access for the internal details array. More... | |
virtual const TArray< UDetail * > & | GetDetailsRef () const |
Direct access for the internal details array. More... | |
FFingerprint & | GetFingerprint () |
Get the internal fingerprint of the subjective. More... | |
struct FBeltSlot * | GetSlotPtr () |
Get the current belt slot of the subjective (if any). More... | |
Protected Attributes | |
TWeakObjectPtr< UBelt > | Belt = nullptr |
A weak reference to a current subjective's belt (if any). More... | |
int32 | SlotIndex = FBeltSlot::InvalidIndex |
The index of the belt slot, this subject currently resides in. More... | |
FSubjectHandle | Handle |
The subject handle which points to a global subjects registry. More... | |
Friends | |
struct | FFingerprint |
struct | FBeltSlot |
struct | FBeltSlotCache |
class | UDetail |
class | UBelt |
class | UMachine |
class | UApparatusFunctionLibrary |
An interface for all sorts of subjects.
|
inline |
Add a new active detail or reuse an inactive one.
|
inline |
Disable a certain detail(s) by type.
You can't remove details, but only disable them.
Enable a detail of a certain type.
Add it if there is none already, or reuse an inactive one.
|
inline |
Find the detail by a type.
|
inline |
Find the details by their type.
Supports searching by a base type.
|
inlineprotected |
Get the active belt of the subjective (if any).
|
inline |
Get the details of the subjective.
|
inlineprotectedvirtual |
Direct access for the internal details array.
Reimplemented in USubjectiveUserWidget, USubjectiveActorComponent, and ASubjectiveActor.
|
inlineprotectedvirtual |
Direct access for the internal details array.
Constant version.
Reimplemented in USubjectiveUserWidget, USubjectiveActorComponent, and ASubjectiveActor.
|
inlineprotected |
Get the internal fingerprint of the subjective.
|
inline |
Get the active fingerprint of the subjective.
Constant version.
|
inline |
Get the subject handle of this subjective.
|
inline |
Get the subject handle of this subjective.
Constant version.
|
inlinevirtual |
Get the hash of the subjective.
|
inlinevirtual |
Get the preferred belt of the subjective (if any).
Reimplemented in USubjectiveUserWidget, USubjectiveActorComponent, and ASubjectiveActor.
|
inline |
Get the current belt slot of the subjective (if any).
Constant version.
nullptr
, if the subject is not (yet) part of any belt.
|
inline |
Get the current slot index of the subjective.
|
inlineprotected |
Get the current belt slot of the subjective (if any).
nullptr
, if the subject is not (yet) part of any belt.
|
inline |
Check if there is a detail of specific class in the subjective.
Should support examining by a base type.
|
inline |
Check if the subject is booted.
The subject must be booted (initialized) by the booting mechanics prior to being processed by the ticking mechanics.
|
inline |
Check if the subjective is registered within the machine.
|
inlineprotected |
Set the subjective as booted.
|
inline |
Check if the subjective matches a supplied detailmark as a filter.
|
inline |
Check if the subjective matches a supplied filter.
|
inline |
Check if the subjective matches a supplied traitmark as a filter.
|
inlineprotected |
Set the current belt slot of the subjective (if any).
InBelt | The belt must be stored in a GC-managed UPROPERTY. |
InSlotIndex | The slot must be referenced and stored by its index in a SlotIndex field. |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
protected |
A weak reference to a current subjective's belt (if any).
|
protected |
The subject handle which points to a global subjects registry.
|
protected |
The index of the belt slot, this subject currently resides in.