RapyutaSimulationPlugins
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Private Attributes | List of all members
URRGameSingleton Class Reference

GameSingleton class which handles asset loading. More...

#include <RRGameSingleton.h>

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

Public Member Functions

virtual ~URRGameSingleton ()
 
virtual void PrintSimConfig () const
 
bool InitializeResources (bool bInRequestResourceLoading=false)
 Read all sim dynamic resouces(Uassets) info from designated folders. More...
 
void FinalizeResources ()
 Finalize ResourceMap by calling FRRResourceInfo::Finalize. More...
 
bool CollateEntityAssetsInfoFromPAK (const TArray< FString > &InEntityModelNameList, bool bInForceReload=false)
 Load PAK files of a specific set of entity models, mounting then then collate their content assets info. More...
 
FString GetDynamicBPAssetPath (const FString &InBPAssetName)
 Get UE asset path of a dynamically created BP asset. More...
 
FORCEINLINE FString GetAssetsFolderName (const ERRResourceDataType InDataType)
 Get the leaf relative UE path of a folder housing assets of a particular resource data type. More...
 
FORCEINLINE FString GetDynamicAssetPath (const ERRResourceDataType InDataType, const FString &InAssetName, const TCHAR *InModuleName)
 Get the full UE path of a dynamic asset that is either early loaded at Sim initilization or generated dynamically at runtime. More...
 
template<ERRResourceDataType InDataType>
int32 CollateAssetsInfo ()
 Collate assets info for ResourceMap. More...
 
template<typename T >
int32 CollateAssetsInfo (const ERRResourceDataType InDataType, const FString &InAssetRelativeFolderPath)
 Collate assets info for ResourceMap. More...
 
void CollateAssetsInfo ()
 Collate assets info. More...
 
bool HaveAllResourcesBeenLoaded (bool bIsLogged=false) const
 Check all resources have been loaded or not. More...
 
template<ERRResourceDataType InDataType>
bool RequestResourcesLoading ()
 Collate asset resources info & Async load them by UAssetManager. More...
 
FORCEINLINE void OnResourceLoaded (ERRResourceDataType InDataType, FSoftObjectPath InResourcePath, FString InResourceUniqueName)
 This is used as param to [FStreamableDelegate::CreateUObject()] thus its params could not be constref-ized. More...
 
template<typename TResource >
FORCEINLINE bool ProcessAsyncLoadedResource (const ERRResourceDataType InDataType, const FSoftObjectPath &InResourcePath, const FString &InResourceUniqueName)
 Callback to handle an asynchronously loaded resource, which receives a [FSoftObjectPath] that references a valid [UObject]. More...
 
template<typename TResource >
FORCEINLINE void AddDynamicResource (const ERRResourceDataType InDataType, TResource *InResourceObject, const FString &InResourceUniqueName, const FString &InResourceAssetPath=EMPTY_STR)
 Update ResourceMap and ResourceStore with dynamically runtime-generated InResourceObject of which soft object path is also created on the fly. More...
 
template<typename TResource >
TResource * GetSimResource (const ERRResourceDataType InDataType, const FString &InResourceUniqueName, bool bIsStaticResource=true)
 Get the Sim Resource object, loading if required + updating resource store. More...
 
bool HasSimResource (const ERRResourceDataType InDataType, const FString &InResourceUniqueName) const
 Check resource exist with GetSimResourceInfo. More...
 
const TMap< FString, FRRResource > & GetSimResourceList (const ERRResourceDataType InDataType) const
 Get the Sim Resource List object with GetSimResourceInfo. More...
 
FRRResourceInfoGetSimResourceInfo (const ERRResourceDataType InDataType)
 Get the Sim Resource Info object from ResourceMap. More...
 
const FRRResourceInfoGetSimResourceInfo (const ERRResourceDataType InDataType) const
 Get the Sim Resource Info object from ResourceMap. More...
 
FORCEINLINE UStaticMesh * GetStaticMesh (const FString &InStaticMeshName, bool bIsStaticResource=true)
 Get or load static mesh, GetSimResource with ERRResourceDataType::UE_STATIC_MESH. More...
 
FORCEINLINE USkeletalMesh * GetSkeletalMesh (const FString &InSkeletalMeshName, bool bIsStaticResource=true)
 Get or load skeletal mesh, GetSimResource with ERRResourceDataType::UE_SKELETAL_MESH. More...
 
FORCEINLINE USkeleton * GetSkeleton (const FString &InSkeletonName, bool bIsStaticResource=true)
 Get or load physics skeleton, GetSimResource with ERRResourceDataType::UE_SKELETON. More...
 
FORCEINLINE UPhysicsAsset * GetPhysicsAsset (const FString &InPhysicsAssetName, bool bIsStaticResource=true)
 Get or load physics asset, GetSimResource with ERRResourceDataType::UE_PHYSICS_ASSET. More...
 
FORCEINLINE UMaterialInterface * GetMaterial (const FString &InMaterialName)
 Get or load material, calling GetSimResource with ERRResourceDataType::UE_MATERIAL. More...
 
FORCEINLINE UPhysicalMaterial * GetPhysicalMaterial (const FString &InPhysicalMaterialName)
 Get or load physical material, calling GetSimResource with ERRResourceDataType::UE_PHYSICAL_MATERIAL. More...
 
FORCEINLINE UTexture * GetTexture (const FString &InTextureName, bool bIsStaticResource=true)
 Get or load texture, calling GetSimResource with ERRResourceDataType::UE_TEXTURE. More...
 
FORCEINLINE UDataTable * GetDataTable (const FString &InDataTableName, bool bIsStaticResource=true)
 Get or load Data table, calling GetSimResource with ERRResourceDataType::UE_DATA_TABLE. More...
 
FORCEINLINE UBodySetup * GetBodySetup (const FString &InBodySetupName)
 Get or load BodySetup, calling GetSimResource with ERRResourceDataType::UE_BODY_SETUP. More...
 

Static Public Member Functions

static URRGameSingletonGet ()
 
static constexpr const FORCEINLINE TCHAR * GetAssetNamePrefix (const ERRResourceDataType InDataType)
 Get name prefix of asset. More...
 
static FORCEINLINE FString GetAssetsBasePath (const TCHAR *InModuleName)
 Get the Assets Base Path object. More...
 
static FORCEINLINE FString GetDynamicAssetsBasePath (const TCHAR *InModuleName)
 Get the dynamic Assets Base Path of a module. More...
 
static FORCEINLINE TArray< FString > GetDynamicAssetsBasePathList (const ERRResourceDataType InDataType)
 Get the Dynamic Assets Path List object. More...
 
static const FString GetMeshNameFromShapeType (const ERRShapeType InShapeType)
 
static ERRShapeType GetShapeTypeFromMeshName (const FString &InMeshName)
 

Public Attributes

bool BSIM_PROFILING = false
 
FString FOLDER_PATH_ASSET_PAKS = TEXT("Paks")
 
TObjectPtr< URRPakLoaderPakLoader = nullptr
 
bool bPakLoaderInitialized = false
 Whether PakLoader has been initialized, which is only true as in packaged game. More...
 
FIntPoint ASSETS_THUMBNAIL_SIZE = {512, 512}
 
FString ASSETS_RUNTIME_BP_SAVE_BASE_PATH = TEXT("/Game/RapyutaContents/Blueprints")
 Base path whereby runtime-created blueprint classes are saved, ideally in Project, so it could reference all plugins' assets. More...
 
FString FOLDER_PATH_ASSET_STATIC_MESHES = TEXT("StaticMeshes")
 
FString FOLDER_PATH_ASSET_SKELETAL_MESHES = TEXT("SkeletalMeshes")
 
FString FOLDER_PATH_ASSET_SKELETONS = TEXT("Skeletons")
 
FString FOLDER_PATH_PHYSICS_ASSETS = TEXT("PhysicsAssets")
 
FString FOLDER_PATH_ASSET_MATERIALS = TEXT("Materials")
 Dynamic Material assets folder path. More...
 
FString FOLDER_PATH_ASSET_TEXTURES = TEXT("Textures")
 Dynamic Texture assets folder path. More...
 
FString FOLDER_PATH_ASSET_DATA_TABLES = TEXT("DataTables")
 Dynamic Data Table assets folder path. More...
 

Static Public Attributes

static TMap< ERRResourceDataType, TArray< const TCHAR * > > SASSET_OWNING_MODULE_NAMES
 This list specifically hosts names of which module houses the UE assets based on their data type. More...
 
static constexpr const TCHAR * ASSETS_ROOT_PATH = TEXT("/")
 [ASSETS_ROOT_PATH] only returns base path of assets residing in Plugin, not from Project level, which should starts with [/Game/] More...
 
static constexpr const TCHAR * ASSETS_PROJECT_BASE_MODULE_NAME = TEXT("Game")
 
static constexpr const TCHAR * ASSETS_PROJECT_MODULE_NAME = TEXT("Game/RapyutaContents")
 
static constexpr const TCHAR * DYNAMIC_CONTENTS_FOLDER_NAME = TEXT("DynamicContents")
 
static constexpr const TCHAR * SHAPE_NAME_PLANE = TEXT("Plane")
 
static constexpr const TCHAR * SHAPE_NAME_CUBE = TEXT("Cube")
 
static constexpr const TCHAR * SHAPE_NAME_CYLINDER = TEXT("Cylinder")
 
static constexpr const TCHAR * SHAPE_NAME_SPHERE = TEXT("Sphere")
 
static constexpr const TCHAR * SHAPE_NAME_CAPSULE = TEXT("Capsule")
 
static constexpr const TCHAR * MATERIAL_NAME_ASSET_MASTER = TEXT("M_RapyutaAssetMaster")
 
static constexpr const TCHAR * MATERIAL_NAME_PROP_MASTER = TEXT("M_RapyutaPropMaster")
 
static constexpr const TCHAR * MATERIAL_NAME_PHYSICS_WHEEL = TEXT("PM_Wheel")
 
static constexpr const TCHAR * MATERIAL_NAME_TRANSLUCENCE_MASTER = TEXT("M_RapyutaTranslucenceMaster")
 
static constexpr const TCHAR * TEXTURE_NAME_WHITE_MASK = TEXT("T_WhiteMask")
 
static constexpr const TCHAR * TEXTURE_NAME_BLACK_MASK = TEXT("T_BlackMask")
 

Protected Member Functions

 URRGameSingleton ()
 

Private Attributes

TMap< ERRResourceDataType, FRRResourceInfoResourceMap
 Async loaded, thus must be thread safe. A map just helps referencing an item faster, though costs some overheads. More...
 
TArray< TObjectPtr< UObject > > ResourceStore
 We need this to escape UObject-based resource Garbage Collection. More...
 

Detailed Description

GameSingleton class which handles asset loading.

GameSingleton class can exist during editor usage.

See also
GameSingleton
AsyncLoading

UCLASS(Config = RapyutaSimSettings)

Constructor & Destructor Documentation

◆ URRGameSingleton()

URRGameSingleton::URRGameSingleton ( )
protected

◆ ~URRGameSingleton()

virtual URRGameSingleton::~URRGameSingleton ( )
virtual

Member Function Documentation

◆ AddDynamicResource()

template<typename TResource >
FORCEINLINE void URRGameSingleton::AddDynamicResource ( const ERRResourceDataType  InDataType,
TResource *  InResourceObject,
const FString &  InResourceUniqueName,
const FString &  InResourceAssetPath = EMPTY_STR 
)
inline

Update ResourceMap and ResourceStore with dynamically runtime-generated InResourceObject of which soft object path is also created on the fly.

Template Parameters
TResource
Parameters
InDataType
InResourceObject
InResourceUniqueName
Returns

◆ CollateAssetsInfo() [1/3]

template<ERRResourceDataType InDataType>
int32 URRGameSingleton::CollateAssetsInfo ( )
inline

Collate assets info for ResourceMap.

Template Parameters
InDataType
Parameters
InAssetRelativeFolderPath
Returns
Num of assets

◆ CollateAssetsInfo() [2/3]

void URRGameSingleton::CollateAssetsInfo ( )
inline

Collate assets info.

◆ CollateAssetsInfo() [3/3]

template<typename T >
int32 URRGameSingleton::CollateAssetsInfo ( const ERRResourceDataType  InDataType,
const FString &  InAssetRelativeFolderPath 
)
inline

Collate assets info for ResourceMap.

Template Parameters
TResource
Parameters
InDataType
InAssetRelativeFolderPath
Returns
Num of assets

◆ CollateEntityAssetsInfoFromPAK()

bool URRGameSingleton::CollateEntityAssetsInfoFromPAK ( const TArray< FString > &  InEntityModelNameList,
bool  bInForceReload = false 
)

Load PAK files of a specific set of entity models, mounting then then collate their content assets info.

Parameters
InEntityModelName
bInForceReload
Returns
true/false

◆ FinalizeResources()

void URRGameSingleton::FinalizeResources ( )

Finalize ResourceMap by calling FRRResourceInfo::Finalize.

◆ Get()

static URRGameSingleton* URRGameSingleton::Get ( )
static

◆ GetAssetNamePrefix()

static constexpr const FORCEINLINE TCHAR* URRGameSingleton::GetAssetNamePrefix ( const ERRResourceDataType  InDataType)
inlinestaticconstexpr

Get name prefix of asset.

Parameters
InDataType
See also
Asset naming convention

◆ GetAssetsBasePath()

static FORCEINLINE FString URRGameSingleton::GetAssetsBasePath ( const TCHAR *  InModuleName)
inlinestatic

Get the Assets Base Path object.

For particular handling, please set the asset path ending with '/'

This concatenation operator ensure only a single '/' is put in between

Parameters
InModuleName
Returns
FString ASSETS_ROOT_PATH / InModuleName

◆ GetAssetsFolderName()

FORCEINLINE FString URRGameSingleton::GetAssetsFolderName ( const ERRResourceDataType  InDataType)
inline

Get the leaf relative UE path of a folder housing assets of a particular resource data type.

NOTE: This function returns a user-configurable folder path value, thus cannot be made static or constexpr

Parameters
InDataType
Returns
FString

◆ GetBodySetup()

FORCEINLINE UBodySetup* URRGameSingleton::GetBodySetup ( const FString &  InBodySetupName)
inline

Get or load BodySetup, calling GetSimResource with ERRResourceDataType::UE_BODY_SETUP.

Parameters
InBodySetupName
Returns
FORCEINLINE*

◆ GetDataTable()

FORCEINLINE UDataTable* URRGameSingleton::GetDataTable ( const FString &  InDataTableName,
bool  bIsStaticResource = true 
)
inline

Get or load Data table, calling GetSimResource with ERRResourceDataType::UE_DATA_TABLE.

Parameters
InDataTableName
bIsStaticResource
Returns
FORCEINLINE*

◆ GetDynamicAssetPath()

FORCEINLINE FString URRGameSingleton::GetDynamicAssetPath ( const ERRResourceDataType  InDataType,
const FString &  InAssetName,
const TCHAR *  InModuleName 
)
inline

Get the full UE path of a dynamic asset that is either early loaded at Sim initilization or generated dynamically at runtime.

Parameters
InDataType
InAssetName
InModuleName
Returns
FString

◆ GetDynamicAssetsBasePath()

static FORCEINLINE FString URRGameSingleton::GetDynamicAssetsBasePath ( const TCHAR *  InModuleName)
inlinestatic

Get the dynamic Assets Base Path of a module.

Parameters
InModuleName
Returns
FString #GetAssetsBasePath(InModuleName) / DYNAMIC_CONTENTS_FOLDER_NAME

◆ GetDynamicAssetsBasePathList()

static FORCEINLINE TArray<FString> URRGameSingleton::GetDynamicAssetsBasePathList ( const ERRResourceDataType  InDataType)
inlinestatic

Get the Dynamic Assets Path List object.

Return the TArray of SASSET_OWNING_MODULE_NAMES[i] / DYNAMIC_CONTENTS_FOLDER_NAME

Note
SASSET_OWNING_MODULE_NAMES must have been initialized earlier & once only at Sim start by [ConfigureSimInPlay()]
Parameters
InDataType
Returns
TArray<FString>

◆ GetDynamicBPAssetPath()

FString URRGameSingleton::GetDynamicBPAssetPath ( const FString &  InBPAssetName)
inline

Get UE asset path of a dynamically created BP asset.

Parameters
InBPAssetName
Returns
as ASSETS_RUNTIME_BP_SAVE_BASE_PATH / InBPAssetName
Note
Dynamic BP assets are loaded by UE itself, not by Sim resource early loading as other dynamic resources (static meshes, textures, etc.).

Also, in order for them to reference any other arbitrary asset, it's advisable to save them into project's Content (not into plugins)

◆ GetMaterial()

FORCEINLINE UMaterialInterface* URRGameSingleton::GetMaterial ( const FString &  InMaterialName)
inline

Get or load material, calling GetSimResource with ERRResourceDataType::UE_MATERIAL.

Parameters
InMaterialName
Returns
FORCEINLINE*

◆ GetMeshNameFromShapeType()

static const FString URRGameSingleton::GetMeshNameFromShapeType ( const ERRShapeType  InShapeType)
inlinestatic

◆ GetPhysicalMaterial()

FORCEINLINE UPhysicalMaterial* URRGameSingleton::GetPhysicalMaterial ( const FString &  InPhysicalMaterialName)
inline

Get or load physical material, calling GetSimResource with ERRResourceDataType::UE_PHYSICAL_MATERIAL.

Parameters
InPhysicalMaterialName
Returns
FORCEINLINE*

◆ GetPhysicsAsset()

FORCEINLINE UPhysicsAsset* URRGameSingleton::GetPhysicsAsset ( const FString &  InPhysicsAssetName,
bool  bIsStaticResource = true 
)
inline

Get or load physics asset, GetSimResource with ERRResourceDataType::UE_PHYSICS_ASSET.

Parameters
InPhysicsAssetName
bIsStaticResource
Returns
FORCEINLINE*

◆ GetShapeTypeFromMeshName()

static ERRShapeType URRGameSingleton::GetShapeTypeFromMeshName ( const FString &  InMeshName)
inlinestatic

◆ GetSimResource()

template<typename TResource >
TResource* URRGameSingleton::GetSimResource ( const ERRResourceDataType  InDataType,
const FString &  InResourceUniqueName,
bool  bIsStaticResource = true 
)
inline

Get the Sim Resource object, loading if required + updating resource store.

Template Parameters
TResource
Parameters
InDataType
InResourceUniqueName
bIsStaticResource
Returns
TResource*

◆ GetSimResourceInfo() [1/2]

FRRResourceInfo& URRGameSingleton::GetSimResourceInfo ( const ERRResourceDataType  InDataType)
inline

Get the Sim Resource Info object from ResourceMap.

Parameters
InDataType
Returns
FRRResourceInfo&

◆ GetSimResourceInfo() [2/2]

const FRRResourceInfo& URRGameSingleton::GetSimResourceInfo ( const ERRResourceDataType  InDataType) const
inline

Get the Sim Resource Info object from ResourceMap.

Parameters
InDataType
Returns
const FRRResourceInfo&

◆ GetSimResourceList()

const TMap<FString, FRRResource>& URRGameSingleton::GetSimResourceList ( const ERRResourceDataType  InDataType) const
inline

Get the Sim Resource List object with GetSimResourceInfo.

Parameters
InDataType
Returns
const TMap<FString, FRRResource>&

◆ GetSkeletalMesh()

FORCEINLINE USkeletalMesh* URRGameSingleton::GetSkeletalMesh ( const FString &  InSkeletalMeshName,
bool  bIsStaticResource = true 
)
inline

Get or load skeletal mesh, GetSimResource with ERRResourceDataType::UE_SKELETAL_MESH.

Parameters
InSkeletalMeshName
bIsStaticResource
Returns
FORCEINLINE*

◆ GetSkeleton()

FORCEINLINE USkeleton* URRGameSingleton::GetSkeleton ( const FString &  InSkeletonName,
bool  bIsStaticResource = true 
)
inline

Get or load physics skeleton, GetSimResource with ERRResourceDataType::UE_SKELETON.

Parameters
InSkeletonName
bIsStaticResource
Returns
FORCEINLINE*

◆ GetStaticMesh()

FORCEINLINE UStaticMesh* URRGameSingleton::GetStaticMesh ( const FString &  InStaticMeshName,
bool  bIsStaticResource = true 
)
inline

Get or load static mesh, GetSimResource with ERRResourceDataType::UE_STATIC_MESH.

(NOTE) StaticMesh could be dynamically created

Parameters
InStaticMeshName
bIsStaticResource
Returns
FORCEINLINE*

◆ GetTexture()

FORCEINLINE UTexture* URRGameSingleton::GetTexture ( const FString &  InTextureName,
bool  bIsStaticResource = true 
)
inline

Get or load texture, calling GetSimResource with ERRResourceDataType::UE_TEXTURE.

Parameters
InTextureName
bIsStaticResource
Returns
FORCEINLINE*

◆ HasSimResource()

bool URRGameSingleton::HasSimResource ( const ERRResourceDataType  InDataType,
const FString &  InResourceUniqueName 
) const
inline

Check resource exist with GetSimResourceInfo.

Parameters
InDataType
InResourceUniqueName
Returns
true
false

◆ HaveAllResourcesBeenLoaded()

bool URRGameSingleton::HaveAllResourcesBeenLoaded ( bool  bIsLogged = false) const

Check all resources have been loaded or not.

Parameters
bIsLogged
Returns
true
false

◆ InitializeResources()

bool URRGameSingleton::InitializeResources ( bool  bInRequestResourceLoading = false)

Read all sim dynamic resouces(Uassets) info from designated folders.

Parameters
bInRequestResourceLoading
  • True: Load all dynamic-contents-designated resources
  • False: Only collate resources metadata, LoadObject<>() will be invoked on-the-fly during Sim run in [GetSimResource()]
Returns
true if inited successfully

◆ OnResourceLoaded()

FORCEINLINE void URRGameSingleton::OnResourceLoaded ( ERRResourceDataType  InDataType,
FSoftObjectPath  InResourcePath,
FString  InResourceUniqueName 
)
inline

This is used as param to [FStreamableDelegate::CreateUObject()] thus its params could not be constref-ized.

◆ PrintSimConfig()

virtual void URRGameSingleton::PrintSimConfig ( ) const
virtual

◆ ProcessAsyncLoadedResource()

template<typename TResource >
FORCEINLINE bool URRGameSingleton::ProcessAsyncLoadedResource ( const ERRResourceDataType  InDataType,
const FSoftObjectPath &  InResourcePath,
const FString &  InResourceUniqueName 
)
inline

Callback to handle an asynchronously loaded resource, which receives a [FSoftObjectPath] that references a valid [UObject].

Then put it into both ResourceMap & ResourceStore.

Template Parameters
TResource
Parameters
InDataType
InResourcePath
InResourceUniqueName
Returns
bool
See also
FSoftObjectPath
Asynchronous Asset Loading

◆ RequestResourcesLoading()

template<ERRResourceDataType InDataType>
bool URRGameSingleton::RequestResourcesLoading ( )
inline

Collate asset resources info & Async load them by UAssetManager.

Template Parameters
InDataType
Returns
true
false
See also
UAssetManager

Member Data Documentation

◆ ASSETS_PROJECT_BASE_MODULE_NAME

constexpr const TCHAR* URRGameSingleton::ASSETS_PROJECT_BASE_MODULE_NAME = TEXT("Game")
staticconstexpr

◆ ASSETS_PROJECT_MODULE_NAME

constexpr const TCHAR* URRGameSingleton::ASSETS_PROJECT_MODULE_NAME = TEXT("Game/RapyutaContents")
staticconstexpr

◆ ASSETS_ROOT_PATH

constexpr const TCHAR* URRGameSingleton::ASSETS_ROOT_PATH = TEXT("/")
staticconstexpr

[ASSETS_ROOT_PATH] only returns base path of assets residing in Plugin, not from Project level, which should starts with [/Game/]

And ideally, Sim should not store common runtime-created assets in Project, since they should be accessible among plugins.

◆ ASSETS_RUNTIME_BP_SAVE_BASE_PATH

FString URRGameSingleton::ASSETS_RUNTIME_BP_SAVE_BASE_PATH = TEXT("/Game/RapyutaContents/Blueprints")

Base path whereby runtime-created blueprint classes are saved, ideally in Project, so it could reference all plugins' assets.

UPROPERTY(Config)

◆ ASSETS_THUMBNAIL_SIZE

FIntPoint URRGameSingleton::ASSETS_THUMBNAIL_SIZE = {512, 512}

◆ bPakLoaderInitialized

bool URRGameSingleton::bPakLoaderInitialized = false

Whether PakLoader has been initialized, which is only true as in packaged game.

UPROPERTY()

◆ BSIM_PROFILING

bool URRGameSingleton::BSIM_PROFILING = false

◆ DYNAMIC_CONTENTS_FOLDER_NAME

constexpr const TCHAR* URRGameSingleton::DYNAMIC_CONTENTS_FOLDER_NAME = TEXT("DynamicContents")
staticconstexpr

◆ FOLDER_PATH_ASSET_DATA_TABLES

FString URRGameSingleton::FOLDER_PATH_ASSET_DATA_TABLES = TEXT("DataTables")

Dynamic Data Table assets folder path.

UPROPERTY(config)

◆ FOLDER_PATH_ASSET_MATERIALS

FString URRGameSingleton::FOLDER_PATH_ASSET_MATERIALS = TEXT("Materials")

Dynamic Material assets folder path.

UPROPERTY(config)

◆ FOLDER_PATH_ASSET_PAKS

FString URRGameSingleton::FOLDER_PATH_ASSET_PAKS = TEXT("Paks")

◆ FOLDER_PATH_ASSET_SKELETAL_MESHES

FString URRGameSingleton::FOLDER_PATH_ASSET_SKELETAL_MESHES = TEXT("SkeletalMeshes")

◆ FOLDER_PATH_ASSET_SKELETONS

FString URRGameSingleton::FOLDER_PATH_ASSET_SKELETONS = TEXT("Skeletons")

◆ FOLDER_PATH_ASSET_STATIC_MESHES

FString URRGameSingleton::FOLDER_PATH_ASSET_STATIC_MESHES = TEXT("StaticMeshes")

◆ FOLDER_PATH_ASSET_TEXTURES

FString URRGameSingleton::FOLDER_PATH_ASSET_TEXTURES = TEXT("Textures")

Dynamic Texture assets folder path.

UPROPERTY(config)

◆ FOLDER_PATH_PHYSICS_ASSETS

FString URRGameSingleton::FOLDER_PATH_PHYSICS_ASSETS = TEXT("PhysicsAssets")

◆ MATERIAL_NAME_ASSET_MASTER

constexpr const TCHAR* URRGameSingleton::MATERIAL_NAME_ASSET_MASTER = TEXT("M_RapyutaAssetMaster")
staticconstexpr

◆ MATERIAL_NAME_PHYSICS_WHEEL

constexpr const TCHAR* URRGameSingleton::MATERIAL_NAME_PHYSICS_WHEEL = TEXT("PM_Wheel")
staticconstexpr

◆ MATERIAL_NAME_PROP_MASTER

constexpr const TCHAR* URRGameSingleton::MATERIAL_NAME_PROP_MASTER = TEXT("M_RapyutaPropMaster")
staticconstexpr

◆ MATERIAL_NAME_TRANSLUCENCE_MASTER

constexpr const TCHAR* URRGameSingleton::MATERIAL_NAME_TRANSLUCENCE_MASTER = TEXT("M_RapyutaTranslucenceMaster")
staticconstexpr

◆ PakLoader

TObjectPtr<URRPakLoader> URRGameSingleton::PakLoader = nullptr

◆ ResourceMap

TMap<ERRResourceDataType, FRRResourceInfo> URRGameSingleton::ResourceMap
private

Async loaded, thus must be thread safe. A map just helps referencing an item faster, though costs some overheads.

Besides, UE does not support UPROPERTY() on a map yet.

◆ ResourceStore

TArray<TObjectPtr<UObject> > URRGameSingleton::ResourceStore
private

We need this to escape UObject-based resource Garbage Collection.

UPROPERTY()

◆ SASSET_OWNING_MODULE_NAMES

TMap<ERRResourceDataType, TArray<const TCHAR*> > URRGameSingleton::SASSET_OWNING_MODULE_NAMES
static

This list specifically hosts names of which module houses the UE assets based on their data type.

◆ SHAPE_NAME_CAPSULE

constexpr const TCHAR* URRGameSingleton::SHAPE_NAME_CAPSULE = TEXT("Capsule")
staticconstexpr

◆ SHAPE_NAME_CUBE

constexpr const TCHAR* URRGameSingleton::SHAPE_NAME_CUBE = TEXT("Cube")
staticconstexpr

◆ SHAPE_NAME_CYLINDER

constexpr const TCHAR* URRGameSingleton::SHAPE_NAME_CYLINDER = TEXT("Cylinder")
staticconstexpr

◆ SHAPE_NAME_PLANE

constexpr const TCHAR* URRGameSingleton::SHAPE_NAME_PLANE = TEXT("Plane")
staticconstexpr

◆ SHAPE_NAME_SPHERE

constexpr const TCHAR* URRGameSingleton::SHAPE_NAME_SPHERE = TEXT("Sphere")
staticconstexpr

◆ TEXTURE_NAME_BLACK_MASK

constexpr const TCHAR* URRGameSingleton::TEXTURE_NAME_BLACK_MASK = TEXT("T_BlackMask")
staticconstexpr

◆ TEXTURE_NAME_WHITE_MASK

constexpr const TCHAR* URRGameSingleton::TEXTURE_NAME_WHITE_MASK = TEXT("T_WhiteMask")
staticconstexpr

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