Apparatus Version 1.2.1
ECS data-driven workflow for Unreal Engine.
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
UBelt Class Reference

The conveyor belt consisting of subjects. More...

#include <Belt.h>

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

Public Types

enum  { InvalidSlotIndex = FBeltSlot::InvalidIndex }
 

Public Member Functions

bool IsLocked () const
 Is the belt currently locked? More...
 
EApparatusStatus Lock (const FFilter &InFilter) const
 Lock the belt under a specific filter to become semi-immutable. More...
 
EApparatusStatus Lock () const
 Add locks to the belt under the existing already locked filter. More...
 
EApparatusStatus Unlock () const
 Unlock the belt to become mutable again. More...
 
int32 IterableNum () const
 Get the current number of elements valid for iterating. More...
 
bool IsSparse () const
 Is this a sparse belt allowing some empty detail spaces? More...
 
const FDetailmarkGetDetailmark () const
 The detailmark of the belt. More...
 
const FFilterGetLockingFilter () const
 The locked filter of the belt. More...
 
EApparatusStatus Expand (const FDetailmark &InDetailmark, const EBootFilter BootFilter=EBootFilter::None)
 Expand a belt to accommodate the new detailmark. More...
 
int32 Num () const
 The number of slots currently in the belt. More...
 
const FBeltSlotSlotAt (const int32 SlotIndex) const
 Get a belt slot by its index. More...
 
FBeltSlotSlotAt (const int32 SlotIndex)
 Get a belt slot by its index. More...
 
const FBeltSlotoperator[] (const int32 SlotIndex) const
 Get a belt slot by its index. More...
 
FBeltSlotoperator[] (const int32 SlotIndex)
 Get a belt slot by its index. More...
 
FBeltIt begin (const FFilter &InFilter)
 Get the first slot for iterating with the. More...
 
FBeltIt begin ()
 Get the first slot for iterating with the currently locked filter. More...
 
FBeltIt end ()
 The ending iterator. More...
 
EApparatusStatus Refresh (TScriptInterface< ISubjective > Subjective)
 Refresh a subjective within the belt. More...
 
EApparatusStatus Refresh (TScriptInterface< ISubjective > Subjective, const TArray< class UDetail * > &InDetails)
 Refresh a subjective within the belt. More...
 
bool Matches (const FFilter &Filter) const
 Check if the belt matches a filter. More...
 

Static Public Member Functions

static class UBeltNew (UObject *Owner, const FDetailmark &InDetailmark)
 Create a new belt instance. More...
 
static class UBeltNew (UObject *Owner, const FName &Name, const FDetailmark &InDetailmark)
 Create a new belt instance. More...
 
static class UBeltNew (UObject *Owner, const FName &Name, const FDetailmark &InDetailmark, const EBootFilter BootFilter)
 Create a new belt instance. More...
 

Friends

struct FBeltSlot
 
struct FBeltIt
 
class USubjectiveActorComponent
 
class USubjectiveUserWidget
 
class UDetail
 
class UMachine
 
class ISubjective
 

Detailed Description

The conveyor belt consisting of subjects.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
InvalidSlotIndex 

Invalid slot index.

Member Function Documentation

◆ begin() [1/2]

FBeltIt UBelt::begin ( )
inline

Get the first slot for iterating with the currently locked filter.

Returns
The begining iterator.

◆ begin() [2/2]

FBeltIt UBelt::begin ( const FFilter InFilter)
inline

Get the first slot for iterating with the.

Parameters
InFilterA filter to iterate with.
Returns
The begining iterator.

◆ end()

FBeltIt UBelt::end ( )
inline

The ending iterator.

Returns
The ending iterator.

◆ Expand()

EApparatusStatus UBelt::Expand ( const FDetailmark InDetailmark,
const EBootFilter  BootFilter = EBootFilter::None 
)

Expand a belt to accommodate the new detailmark.

Note
The target detailmark will be added while being decomposed to its base classes.
Parameters
InDetailmarkThe new detailmark to include.
Returns
The status of the operation.

◆ GetDetailmark()

const FDetailmark& UBelt::GetDetailmark ( ) const
inline

The detailmark of the belt.

Note
All of the base class details are decomposed into separate details here.
This is a sparse detailmark and some details may actually be missing within the slots.

◆ GetLockingFilter()

const FFilter& UBelt::GetLockingFilter ( ) const
inline

The locked filter of the belt.

This is an exact filter that should be matched for slots.

◆ IsLocked()

bool UBelt::IsLocked ( ) const
inline

Is the belt currently locked?

Returns
The state of examination.

◆ IsSparse()

bool UBelt::IsSparse ( ) const
inline

Is this a sparse belt allowing some empty detail spaces?

◆ IterableNum()

int32 UBelt::IterableNum ( ) const
inline

Get the current number of elements valid for iterating.

◆ Lock() [1/2]

EApparatusStatus UBelt::Lock ( ) const
inline

Add locks to the belt under the existing already locked filter.

Returns
The status of the operation.

◆ Lock() [2/2]

EApparatusStatus UBelt::Lock ( const FFilter InFilter) const
inline

Lock the belt under a specific filter to become semi-immutable.

Returns
The status of the operation.

◆ Matches()

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

Check if the belt matches a filter.

◆ New() [1/3]

UBelt * UBelt::New ( UObject *  Owner,
const FDetailmark InDetailmark 
)
static

Create a new belt instance.

◆ New() [2/3]

UBelt * UBelt::New ( UObject *  Owner,
const FName &  Name,
const FDetailmark InDetailmark 
)
static

Create a new belt instance.

◆ New() [3/3]

UBelt * UBelt::New ( UObject *  Owner,
const FName &  Name,
const FDetailmark InDetailmark,
const EBootFilter  BootFilter 
)
static

Create a new belt instance.

◆ Num()

int32 UBelt::Num ( ) const
inline

The number of slots currently in the belt.

Returns the un-buffered active count.

◆ operator[]() [1/2]

FBeltSlot& UBelt::operator[] ( const int32  SlotIndex)
inline

Get a belt slot by its index.

Parameters
SlotIndexThe index of the belt slot.
Returns
The belt slot.

◆ operator[]() [2/2]

const FBeltSlot& UBelt::operator[] ( const int32  SlotIndex) const
inline

Get a belt slot by its index.

Constant version.

Parameters
SlotIndexThe index of the belt slot.
Returns
The belt slot.

◆ Refresh() [1/2]

EApparatusStatus UBelt::Refresh ( TScriptInterface< ISubjective Subjective)

Refresh a subjective within the belt.

Parameters
SubjectiveA subjective to refresh.

◆ Refresh() [2/2]

EApparatusStatus UBelt::Refresh ( TScriptInterface< ISubjective Subjective,
const TArray< class UDetail * > &  InDetails 
)

Refresh a subjective within the belt.

Parameters
SubjectiveA subjective to refresh.
InDetailsThe list of new detail to refresh with.

◆ SlotAt() [1/2]

FBeltSlot& UBelt::SlotAt ( const int32  SlotIndex)
inline

Get a belt slot by its index.

Parameters
SlotIndexThe index of the belt slot.
Returns
The belt slot.

◆ SlotAt() [2/2]

const FBeltSlot& UBelt::SlotAt ( const int32  SlotIndex) const
inline

Get a belt slot by its index.

Constant version.

Parameters
SlotIndexThe index of the belt slot.
Returns
The belt slot.

◆ Unlock()

EApparatusStatus UBelt::Unlock ( ) const
inline

Unlock the belt to become mutable again.

Returns
The status of the operation.

Friends And Related Function Documentation

◆ FBeltIt

friend struct FBeltIt
friend

◆ FBeltSlot

friend struct FBeltSlot
friend

◆ ISubjective

friend class ISubjective
friend

◆ UDetail

friend class UDetail
friend

◆ UMachine

friend class UMachine
friend

◆ USubjectiveActorComponent

friend class USubjectiveActorComponent
friend

◆ USubjectiveUserWidget

friend class USubjectiveUserWidget
friend

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