16#include "EditorSubsystem.h"
34 ,
TEXT(
"Missing 'template<> struct TMassExternalSubsystemTraits<U%s>' for this subsystem"), *
GetNameSafe(T::StaticClass())))
55 ,
TEXT(
"Missing 'template<> struct TMassExternalSubsystemTraits<U%s>' for this subsystem"), *
GetNameSafe(T::StaticClass())))
148 return UWorld::GetSubsystem<T>(
World);
162 checkf(
false,
TEXT(
"FMassSubsystemAccess::FetchSubsystemInstance: Unhandled world-related USubsystem class %s"), *T::StaticClass()->GetName());
176 return GEditor->GetEditorSubsystem<T>();
181 checkf(
false,
TEXT(
"FMassSubsystemAccess::FetchSubsystemInstance: Unhandled world-less USubsystem class %s"), *T::StaticClass()->GetName());
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
ENGINE_API class UEngine * GEngine
Definition UnrealEngine.cpp:427
FString GetNameSafe(const FField *InField)
Definition Field.h:1230
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
SizeType AddZeroed()
Definition Array.h:2755
Definition SubclassOf.h:30
TSubsystemClass * GetEngineSubsystem() const
Definition Engine.h:3779
Definition Subsystem.h:48
UGameInstance * GetGameInstance() const
Definition World.h:4270
T * GetFirstLocalPlayerFromController() const
Definition World.h:2686
Definition MassSubsystemAccess.h:23
T * GetMutableSubsystem(const TSubclassOf< USubsystem > SubsystemClass)
Definition MassSubsystemAccess.h:74
MASSENTITY_API bool CacheSubsystemRequirements(const FMassSubsystemRequirements &SubsystemRequirements)
Definition MassSubsystemAccess.cpp:61
TWeakObjectPtr< UWorld > World
Definition MassSubsystemAccess.h:234
void SetSubsystemRequirementBits(const FMassExternalSubsystemBitSet &InConstSubsystemsBitSet, const FMassExternalSubsystemBitSet &InMutableSubsystemsBitSet)
Definition MassSubsystemAccess.h:126
TArray< USubsystem * > Subsystems
Definition MassSubsystemAccess.h:233
const T * GetSubsystem()
Definition MassSubsystemAccess.h:51
const T & GetSubsystemChecked()
Definition MassSubsystemAccess.h:63
MASSENTITY_API void SetSubsystemRequirements(const FMassSubsystemRequirements &SubsystemRequirements)
Definition MassSubsystemAccess.cpp:115
void GetSubsystemRequirementBits(FMassExternalSubsystemBitSet &OutConstSubsystemsBitSet, FMassExternalSubsystemBitSet &OutMutableSubsystemsBitSet)
Definition MassSubsystemAccess.h:120
T * GetMutableSubsystem()
Definition MassSubsystemAccess.h:30
static constexpr bool DoesRequireWorld()
Definition MassSubsystemAccess.h:133
T * GetSubsystemInternal(const uint32 SystemIndex, const TSubclassOf< USubsystem > SubsystemClass)
Definition MassSubsystemAccess.h:213
const T & GetSubsystemChecked(const TSubclassOf< USubsystem > SubsystemClass)
Definition MassSubsystemAccess.h:107
static T * FetchSubsystemInstance()
Definition MassSubsystemAccess.h:167
MASSENTITY_API bool CacheSubsystem(const uint32 SystemIndex)
Definition MassSubsystemAccess.cpp:87
FMassExternalSubsystemBitSet ConstSubsystemsBitSet
Definition MassSubsystemAccess.h:231
FMassExternalSubsystemBitSet MutableSubsystemsBitSet
Definition MassSubsystemAccess.h:232
static T * FetchSubsystemInstance(UWorld *World)
Definition MassSubsystemAccess.h:143
const T * GetSubsystem(const TSubclassOf< USubsystem > SubsystemClass)
Definition MassSubsystemAccess.h:95
T & GetMutableSubsystemChecked()
Definition MassSubsystemAccess.h:43
T & GetMutableSubsystemChecked(const TSubclassOf< USubsystem > SubsystemClass)
Definition MassSubsystemAccess.h:87
T * GetSubsystemInternal(const uint32 SystemIndex)
Definition MassSubsystemAccess.h:189
Definition MassRequirements.h:72
Definition UnrealTypeTraits.h:40
Definition WeakObjectPtrTemplates.h:25
FORCEINLINE T * Get(bool bEvenIfPendingKill) const
Definition WeakObjectPtrTemplates.h:132