Apparatus Version 1.23
ECS data-oriented workflow for Unreal Engine.
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions
Flagmark.h File Reference
#include <More/type_traits>
#include "CoreMinimal.h"
#include "UObject/Class.h"
#include "More/EnumClassFlags.h"
#include "ApparatusStatus.h"
#include "Flagmark.generated.h"
Include dependency graph for Flagmark.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  FFlagmarkIndicator
 Compile-time flagmark specification indicator. More...
 
struct  FExclusionIndicator
 Compile-time exclusion indicator. More...
 
struct  TFlagmark< InFlagmark >
 A flagmark Used within compile-time functionality. More...
 
struct  TExclude< T >
 Exclude a certain component or flagmark. More...
 

Typedefs

using EFlagmarkType = __underlying_type(EFlagmark)
 
Compile-Time Indicators
using FFM_None = TFlagmark< FM_None >
 No-flags compile-time indicator.
 
using FFM_Stale = TFlagmark< FM_Stale >
 Stale flag compile-time indicator.
 
using FFM_Booted = TFlagmark< FM_Booted >
 Booted flag compile-time indicator.
 
using FFM_Online = TFlagmark< FM_Online >
 Online flag compile-time indicator.
 
using FFM_Editor = TFlagmark< FM_Editor >
 Editor flag compile-time indicator.
 
using FFM_DeferredDespawn = TFlagmark< FM_DeferredDespawn >
 Deferred despawn flag compile-time indicator.
 
using FFM_AllSystemLevel = TFlagmark< FM_AllSystemLevel >
 All system-level flags compile-time indicator.
 
using FFM_A = TFlagmark< FM_A >
 User A-flag compile-time indicator.
 
using FFM_B = TFlagmark< FM_B >
 User B-flag compile-time indicator.
 
using FFM_C = TFlagmark< FM_C >
 User C-flag compile-time indicator.
 
using FFM_D = TFlagmark< FM_D >
 User D-flag compile-time indicator.
 
using FFM_E = TFlagmark< FM_E >
 User E-flag compile-time indicator.
 
using FFM_F = TFlagmark< FM_F >
 User F-flag compile-time indicator.
 
using FFM_G = TFlagmark< FM_G >
 User G-flag compile-time indicator.
 
using FFM_H = TFlagmark< FM_H >
 User H-flag compile-time indicator.
 
using FFM_I = TFlagmark< FM_I >
 User I-flag compile-time indicator.
 
using FFM_J = TFlagmark< FM_J >
 User J-flag compile-time indicator.
 
using FFM_K = TFlagmark< FM_K >
 User K-flag compile-time indicator.
 
using FFM_L = TFlagmark< FM_L >
 User L-flag compile-time indicator.
 
using FFM_M = TFlagmark< FM_M >
 User M-flag compile-time indicator.
 
using FFM_N = TFlagmark< FM_N >
 User N-flag compile-time indicator.
 
using FFM_O = TFlagmark< FM_O >
 User O-flag compile-time indicator.
 
using FFM_P = TFlagmark< FM_P >
 User P-flag compile-time indicator.
 
using FFM_Q = TFlagmark< FM_Q >
 User Q-flag compile-time indicator.
 
using FFM_R = TFlagmark< FM_R >
 User R-flag compile-time indicator.
 
using FFM_S = TFlagmark< FM_S >
 User S-flag compile-time indicator.
 
using FFM_T = TFlagmark< FM_T >
 User T-flag compile-time indicator.
 
using FFM_U = TFlagmark< FM_U >
 User U-flag compile-time indicator.
 
using FFM_V = TFlagmark< FM_V >
 User V-flag compile-time indicator.
 
using FFM_W = TFlagmark< FM_W >
 User W-flag compile-time indicator.
 
using FFM_X = TFlagmark< FM_X >
 User X-flag compile-time indicator.
 
using FFM_Y = TFlagmark< FM_Y >
 User Y-flag compile-time indicator.
 
using FFM_Z = TFlagmark< FM_Z >
 User Z-flag compile-time indicator.
 
using FFM_AllUserLevel = TFlagmark< FM_AllUserLevel >
 All user-level flags compile-time indicator.
 
using FFM_All = TFlagmark< FM_All >
 All-flags-on compile-time indicator.
 

Enumerations

enum class  EFlagmarkBit : uint8 {
  Stale = 0x0 UMETA(Hidden) , Booted = 0x1 , Online = 0x2 , Editor = 0x3 UMETA(Hidden) ,
  DeferredDespawn = 0x4 UMETA(Hidden) , SystemLevelMax = DeferredDespawn UMETA(Hidden) , A = 0x5 , FirstUserLevel = A UMETA(Hidden) ,
  B , C , D , E ,
  F , G , H , I ,
  J , K , L , M ,
  N , O , P , Q ,
  R , S , T , U ,
  V , W , X , Y ,
  Z , Max = Z UMETA(Hidden)
}
 Flagmark bit identifiers. More...
 
enum  EFlagmark {
  FM_None = 0x0 UMETA(DisplayName = "None", Hidden) , FM_Stale = 1 << (int)EFlagmarkBit::Stale UMETA(Hidden) , FM_Booted = 1 << (int)EFlagmarkBit::Booted UMETA(DisplayName = "Booted") , FM_Online = 1 << (int)EFlagmarkBit::Online UMETA(DisplayName = "Online") ,
  FM_Editor = 1 << (int)EFlagmarkBit::Editor UMETA(Hidden) , FM_DeferredDespawn = 1 << (int)EFlagmarkBit::DeferredDespawn UMETA(Hidden) , FM_AllSystemLevel = FM_Stale | FM_Booted | FM_Online | FM_Editor | FM_DeferredDespawn UMETA(Hidden) , FM_A = 1 << (int)EFlagmarkBit::A UMETA(DisplayName = "A") ,
  FM_B = 1 << (int)EFlagmarkBit::B UMETA(DisplayName = "B") , FM_C = 1 << (int)EFlagmarkBit::C UMETA(DisplayName = "C") , FM_D = 1 << (int)EFlagmarkBit::D UMETA(DisplayName = "D") , FM_E = 1 << (int)EFlagmarkBit::E UMETA(DisplayName = "E") ,
  FM_F = 1 << (int)EFlagmarkBit::F UMETA(DisplayName = "F") , FM_G = 1 << (int)EFlagmarkBit::G UMETA(DisplayName = "G") , FM_H = 1 << (int)EFlagmarkBit::H UMETA(DisplayName = "H") , FM_I = 1 << (int)EFlagmarkBit::I UMETA(DisplayName = "I") ,
  FM_J = 1 << (int)EFlagmarkBit::J UMETA(DisplayName = "J") , FM_K = 1 << (int)EFlagmarkBit::K UMETA(DisplayName = "K") , FM_L = 1 << (int)EFlagmarkBit::L UMETA(DisplayName = "L") , FM_M = 1 << (int)EFlagmarkBit::M UMETA(DisplayName = "M") ,
  FM_N = 1 << (int)EFlagmarkBit::N UMETA(DisplayName = "N") , FM_O = 1 << (int)EFlagmarkBit::O UMETA(DisplayName = "O") , FM_P = 1 << (int)EFlagmarkBit::P UMETA(DisplayName = "P") , FM_Q = 1 << (int)EFlagmarkBit::Q UMETA(DisplayName = "Q") ,
  FM_R = 1 << (int)EFlagmarkBit::R UMETA(DisplayName = "R") , FM_S = 1 << (int)EFlagmarkBit::S UMETA(DisplayName = "S") , FM_T = 1 << (int)EFlagmarkBit::T UMETA(DisplayName = "T") , FM_U = 1 << (int)EFlagmarkBit::U UMETA(DisplayName = "U") ,
  FM_V = 1 << (int)EFlagmarkBit::V UMETA(DisplayName = "V") , FM_W = 1 << (int)EFlagmarkBit::W UMETA(DisplayName = "W") , FM_X = 1 << (int)EFlagmarkBit::X UMETA(DisplayName = "X") , FM_Y = 1 << (int)EFlagmarkBit::Y UMETA(DisplayName = "Y") ,
  FM_Z = 1 << (int)EFlagmarkBit::Z UMETA(DisplayName = "Z") , FM_AllUserLevel , FM_All = FM_AllSystemLevel | FM_AllUserLevel UMETA(Hidden)
}
 The universal flagmark functionality. More...
 

Functions

APPARATUSRUNTIME_API UEnum * GetFlagmarkBitClass ()
 Get the boot flagmark bit class.
 
FString ToString (const EFlagmarkBit FlagmarkBit)
 Convert a flagmark bit enum variable to a string.
 
constexpr bool IsSystemLevel (const EFlagmarkBit Flag)
 Check if the flag is a system one and not allowed to be set by the user.
 
constexpr bool IsUserLevel (const EFlagmarkBit Flag)
 Check if the flag is a user one and is allowed to be set by the user.
 
EFlagmark FlagToEnum (const EFlagmarkBit Flag)
 
EFlagmark & operator-= (EFlagmark &Lhs, const EFlagmark Rhs)
 
constexpr EFlagmark operator- (EFlagmark Lhs, const EFlagmark Rhs)
 
EFlagmark & operator|= (EFlagmark &Lhs, const EFlagmarkBit Rhs)
 
EFlagmark & operator&= (EFlagmark &Lhs, const EFlagmarkBit Rhs)
 
EFlagmark & operator^= (EFlagmark &Lhs, const EFlagmarkBit Rhs)
 
constexpr EFlagmark operator| (EFlagmark Lhs, const EFlagmarkBit Rhs)
 
constexpr EFlagmark operator& (EFlagmark Lhs, const EFlagmarkBit Rhs)
 
constexpr EFlagmark operator^ (EFlagmark Lhs, const EFlagmarkBit Rhs)
 
EFlagmark & operator+= (EFlagmark &Lhs, const EFlagmarkBit Rhs)
 
EFlagmark & operator-= (EFlagmark &Lhs, const EFlagmarkBit Rhs)
 
constexpr EFlagmark operator- (EFlagmark Lhs, const EFlagmarkBit Rhs)
 
constexpr EFlagmark operator+ (EFlagmark Lhs, const EFlagmarkBit Rhs)
 
constexpr EFlagmark operator| (const EFlagmarkBit Lhs, const EFlagmarkBit Rhs)
 
constexpr EFlagmark operator& (const EFlagmarkBit Lhs, const EFlagmarkBit Rhs)
 
template<typename T >
constexpr bool IsFlagmarkType ()
 Check if the type is actually a flagmark.
 
constexpr bool HasSystemLevelFlags (const EFlagmark InFlagmark)
 Check if a flagmark contains any system-level flags.
 
constexpr bool HasUserLevelFlags (const EFlagmark InFlagmark)
 Check if a flagmark contains any user-level flags.
 
APPARATUSRUNTIME_API UEnum * GetFlagmarkClass ()
 Get the flagmark's Unreal Engine's reflective class object.
 
APPARATUSRUNTIME_API FString ToString (const EFlagmark Flagmark)
 Convert a flagmark enum variable to a string representation.
 
uint32 GetTypeHash (const EFlagmark Flagmark)
 Hash the boot filter.
 
FArchive & operator<< (FArchive &Archive, EFlagmark &Flagmark)
 Serialize a boot filter to an archive.
 
constexpr bool Matches (const EFlagmark Flagmark, const EFlagmark Filter)
 Check if the flagmark matches a flagmark.
 
constexpr bool Matches (const EFlagmark Flagmark, const EFlagmark Filter, const EFlagmark ExcludingFilter)
 Check if the flagmark matches an including and excluding flagmark.
 

Typedef Documentation

◆ EFlagmarkType

using EFlagmarkType = __underlying_type( EFlagmark )

◆ FFM_A

using FFM_A = TFlagmark<FM_A>

User A-flag compile-time indicator.

◆ FFM_All

All-flags-on compile-time indicator.

◆ FFM_AllSystemLevel

All system-level flags compile-time indicator.

◆ FFM_AllUserLevel

All user-level flags compile-time indicator.

◆ FFM_B

using FFM_B = TFlagmark<FM_B>

User B-flag compile-time indicator.

◆ FFM_Booted

Booted flag compile-time indicator.

◆ FFM_C

using FFM_C = TFlagmark<FM_C>

User C-flag compile-time indicator.

◆ FFM_D

using FFM_D = TFlagmark<FM_D>

User D-flag compile-time indicator.

◆ FFM_DeferredDespawn

Deferred despawn flag compile-time indicator.

◆ FFM_E

using FFM_E = TFlagmark<FM_E>

User E-flag compile-time indicator.

◆ FFM_Editor

Editor flag compile-time indicator.

◆ FFM_F

using FFM_F = TFlagmark<FM_F>

User F-flag compile-time indicator.

◆ FFM_G

using FFM_G = TFlagmark<FM_G>

User G-flag compile-time indicator.

◆ FFM_H

using FFM_H = TFlagmark<FM_H>

User H-flag compile-time indicator.

◆ FFM_I

using FFM_I = TFlagmark<FM_I>

User I-flag compile-time indicator.

◆ FFM_J

using FFM_J = TFlagmark<FM_J>

User J-flag compile-time indicator.

◆ FFM_K

using FFM_K = TFlagmark<FM_K>

User K-flag compile-time indicator.

◆ FFM_L

using FFM_L = TFlagmark<FM_L>

User L-flag compile-time indicator.

◆ FFM_M

using FFM_M = TFlagmark<FM_M>

User M-flag compile-time indicator.

◆ FFM_N

using FFM_N = TFlagmark<FM_N>

User N-flag compile-time indicator.

◆ FFM_None

No-flags compile-time indicator.

◆ FFM_O

using FFM_O = TFlagmark<FM_O>

User O-flag compile-time indicator.

◆ FFM_Online

Online flag compile-time indicator.

◆ FFM_P

using FFM_P = TFlagmark<FM_P>

User P-flag compile-time indicator.

◆ FFM_Q

using FFM_Q = TFlagmark<FM_Q>

User Q-flag compile-time indicator.

◆ FFM_R

using FFM_R = TFlagmark<FM_R>

User R-flag compile-time indicator.

◆ FFM_S

using FFM_S = TFlagmark<FM_S>

User S-flag compile-time indicator.

◆ FFM_Stale

Stale flag compile-time indicator.

◆ FFM_T

using FFM_T = TFlagmark<FM_T>

User T-flag compile-time indicator.

◆ FFM_U

using FFM_U = TFlagmark<FM_U>

User U-flag compile-time indicator.

◆ FFM_V

using FFM_V = TFlagmark<FM_V>

User V-flag compile-time indicator.

◆ FFM_W

using FFM_W = TFlagmark<FM_W>

User W-flag compile-time indicator.

◆ FFM_X

using FFM_X = TFlagmark<FM_X>

User X-flag compile-time indicator.

◆ FFM_Y

using FFM_Y = TFlagmark<FM_Y>

User Y-flag compile-time indicator.

◆ FFM_Z

using FFM_Z = TFlagmark<FM_Z>

User Z-flag compile-time indicator.

Enumeration Type Documentation

◆ EFlagmark

enum EFlagmark

The universal flagmark functionality.

The flagmarks are checked during the iterating procedure, but the checks themselves are pretty trivial.

Enumerator
FM_None 

No flags set.

FM_Stale 

(Re)moved subject.

FM_Booted 

An initialized subject.

FM_Online 

Networked subject.

FM_Editor 

Editor-spawned subject.

FM_DeferredDespawn 

Participating in a deferred removal process.

FM_AllSystemLevel 

A mask with all the system flags set.

FM_A 

User flag A.

FM_B 

User flag B.

FM_C 

User flag C.

FM_D 

User flag D.

FM_E 

User flag E.

FM_F 

User flag F.

FM_G 

User flag G.

FM_H 

User flag H.

FM_I 

User flag I.

FM_J 

User flag J.

FM_K 

User flag K.

FM_L 

User flag L.

FM_M 

User flag M.

FM_N 

User flag N.

FM_O 

User flag O.

FM_P 

User flag P.

FM_Q 

User flag Q.

FM_R 

User flag R.

FM_S 

User flag S.

FM_T 

User flag T.

FM_U 

User flag U.

FM_V 

User flag V.

FM_W 

User flag W.

FM_X 

User flag X.

FM_Y 

User flag Y.

FM_Z 

User flag Z.

FM_AllUserLevel 

A mask with all the user-level flags set.

FM_All 

A mask with all the flags set.

◆ EFlagmarkBit

enum class EFlagmarkBit : uint8
strong

Flagmark bit identifiers.

Enumerator
Stale 

Subject (re)moved from the chunk.

Booted 

An initialized subject.

Online 

Networked subject.

Editor 

Editor-spawned subject.

DeferredDespawn 

Participating in a deferred entity removal.

SystemLevelMax 

The maximum system-level bit.

A 

User flag A.

FirstUserLevel 

The first user-level flag available (A).

B 

User flag B.

C 

User flag C.

D 

User flag D.

E 

User flag E.

F 

User flag F.

G 

User flag G.

H 

User flag H.

I 

User flag I.

J 

User flag J.

K 

User flag K.

L 

User flag L.

M 

User flag M.

N 

User flag N.

O 

User flag O.

P 

User flag P.

Q 

User flag Q.

R 

User flag R.

S 

User flag S.

T 

User flag T.

U 

User flag U.

V 

User flag V.

W 

User flag W.

X 

User flag X.

Y 

User flag Y.

Z 

User flag Z.

Max 

The maximum flag available.

Seems like sign-bit flag is not supported.

Function Documentation

◆ FlagToEnum()

EFlagmark FlagToEnum ( const EFlagmarkBit  Flag)
inline

◆ GetFlagmarkBitClass()

APPARATUSRUNTIME_API UEnum * GetFlagmarkBitClass ( )
inline

Get the boot flagmark bit class.

◆ GetFlagmarkClass()

APPARATUSRUNTIME_API UEnum * GetFlagmarkClass ( )
inline

Get the flagmark's Unreal Engine's reflective class object.

◆ GetTypeHash()

uint32 GetTypeHash ( const EFlagmark  Flagmark)
inline

Hash the boot filter.

◆ HasSystemLevelFlags()

constexpr bool HasSystemLevelFlags ( const EFlagmark  InFlagmark)
inlineconstexpr

Check if a flagmark contains any system-level flags.

System-level flags can't be set by the user.

Parameters
InFlagmarkThe flagmark to examine.
Returns
The state of examination.

◆ HasUserLevelFlags()

constexpr bool HasUserLevelFlags ( const EFlagmark  InFlagmark)
inlineconstexpr

Check if a flagmark contains any user-level flags.

Only user-level flags can be set by the user.

Parameters
InFlagmarkThe flagmark to examine.
Returns
The state of examination.

◆ IsFlagmarkType()

template<typename T >
constexpr bool IsFlagmarkType ( )
inlineconstexpr

Check if the type is actually a flagmark.

◆ IsSystemLevel()

constexpr bool IsSystemLevel ( const EFlagmarkBit  Flag)
inlineconstexpr

Check if the flag is a system one and not allowed to be set by the user.

Parameters
FlagThe flag to examine.
Returns
The state of examination.

◆ IsUserLevel()

constexpr bool IsUserLevel ( const EFlagmarkBit  Flag)
inlineconstexpr

Check if the flag is a user one and is allowed to be set by the user.

Parameters
FlagThe flag to examine.
Returns
The state of examination.

◆ Matches() [1/2]

constexpr bool Matches ( const EFlagmark  Flagmark,
const EFlagmark  Filter 
)
inlineconstexpr

Check if the flagmark matches a flagmark.

◆ Matches() [2/2]

constexpr bool Matches ( const EFlagmark  Flagmark,
const EFlagmark  Filter,
const EFlagmark  ExcludingFilter 
)
inlineconstexpr

Check if the flagmark matches an including and excluding flagmark.

◆ operator&() [1/2]

constexpr EFlagmark operator& ( const EFlagmarkBit  Lhs,
const EFlagmarkBit  Rhs 
)
inlineconstexpr

◆ operator&() [2/2]

constexpr EFlagmark operator& ( EFlagmark  Lhs,
const EFlagmarkBit  Rhs 
)
inlineconstexpr

◆ operator&=()

EFlagmark & operator&= ( EFlagmark &  Lhs,
const EFlagmarkBit  Rhs 
)
inline

◆ operator+()

constexpr EFlagmark operator+ ( EFlagmark  Lhs,
const EFlagmarkBit  Rhs 
)
inlineconstexpr

◆ operator+=()

EFlagmark & operator+= ( EFlagmark &  Lhs,
const EFlagmarkBit  Rhs 
)
inline

◆ operator-() [1/2]

constexpr EFlagmark operator- ( EFlagmark  Lhs,
const EFlagmark  Rhs 
)
inlineconstexpr

◆ operator-() [2/2]

constexpr EFlagmark operator- ( EFlagmark  Lhs,
const EFlagmarkBit  Rhs 
)
inlineconstexpr

◆ operator-=() [1/2]

EFlagmark & operator-= ( EFlagmark &  Lhs,
const EFlagmark  Rhs 
)
inline

◆ operator-=() [2/2]

EFlagmark & operator-= ( EFlagmark &  Lhs,
const EFlagmarkBit  Rhs 
)
inline

◆ operator<<()

FArchive & operator<< ( FArchive &  Archive,
EFlagmark &  Flagmark 
)
inline

Serialize a boot filter to an archive.

◆ operator^()

constexpr EFlagmark operator^ ( EFlagmark  Lhs,
const EFlagmarkBit  Rhs 
)
inlineconstexpr

◆ operator^=()

EFlagmark & operator^= ( EFlagmark &  Lhs,
const EFlagmarkBit  Rhs 
)
inline

◆ operator|() [1/2]

constexpr EFlagmark operator| ( const EFlagmarkBit  Lhs,
const EFlagmarkBit  Rhs 
)
inlineconstexpr

◆ operator|() [2/2]

constexpr EFlagmark operator| ( EFlagmark  Lhs,
const EFlagmarkBit  Rhs 
)
inlineconstexpr

◆ operator|=()

EFlagmark & operator|= ( EFlagmark &  Lhs,
const EFlagmarkBit  Rhs 
)
inline

◆ ToString() [1/2]

APPARATUSRUNTIME_API FString ToString ( const EFlagmark  Flagmark)

Convert a flagmark enum variable to a string representation.

Parameters
FlagmarkThe flagmark to convert to a string.
Returns
The string representation of the flagmark.

◆ ToString() [2/2]

FString ToString ( const EFlagmarkBit  FlagmarkBit)
inline

Convert a flagmark bit enum variable to a string.