5 #include "CoreMinimal.h"
6 #include "GameFramework/Actor.h"
10 #include "Fingerprint.h"
12 #include "Subjective.h"
14 #include "SubjectiveActor.generated.h"
16 UCLASS(ClassGroup =
"Apparatus", Meta = (BlueprintSpawnableComponent))
24 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Transient, Category = Subject,
25 Meta = (AllowPrivateAccess =
"true"))
32 class UBelt* Belt =
nullptr;
42 UPROPERTY(EditAnywhere, Category = Subject,
43 Meta = (AllowPrivateAccess =
"true"))
44 class UBelt* PreferredBelt =
nullptr;
46 friend class FSubjectDetails;
51 UPROPERTY(EditAnywhere, Instanced, Category = Details,
52 Meta = (AllowPrivateAccess =
"true"))
57 FORCEINLINE struct
FBeltSlot* GetSlot()
const override
63 return &(*Belt)[SlotIndex];
71 virtual void BeginPlay()
override;
75 virtual void Tick(
float DeltaTime)
override;
77 virtual void EndPlay(
const EEndPlayReason::Type EndPlayReason)
override;
81 if (InBelt ==
nullptr)
89 SlotIndex = InSlotIndex;
117 return PreferredBelt;
Definition: SubjectiveActor.h:18
void TakeBeltSlot(UBelt *InBelt, int32 InSlotIndex) override
Set the current belt slot of the subjective (if any).
Definition: SubjectiveActor.h:79
const TArray< UDetail * > & GetDetailsRef() const override
Direct access for the internal details array.
Definition: SubjectiveActor.h:105
class UBelt * GetPreferredBelt() const override
Get the preferred belt of the subjective (if any).
Definition: SubjectiveActor.h:115
TArray< UDetail * > & GetDetailsRef() override
Direct access for the internal details array.
Definition: SubjectiveActor.h:93
FFingerprint & GetFingerprint() override
Get the internal fingerprint of the subjective.
Definition: SubjectiveActor.h:98
const FFingerprint & GetFingerprint() const override
Get the active fingerprint of the subjective.
Definition: SubjectiveActor.h:110
An interface for all sorts of subjects.
Definition: Subjective.h:42
The conveyor belt consisting of subjects.
Definition: Belt.h:60
static const int32 InvalidSlotIndex
Is this a special buffering belt?
Definition: Belt.h:96
The base subject detail (component) class.
Definition: Detail.h:35
The belt slot, containing the cached details.
Definition: BeltSlot.h:40
The details fingerprint.
Definition: Fingerprint.h:117