ModuleMenu_TypeDataToBaseModuleRejections
ModuleMenu_TypeDataToBaseModuleRejections
#Overview
name: ModuleMenu_TypeDataToBaseModuleRejections
The value of this variable can be defined or overridden in .ini config files. 5
.ini config files referencing this setting variable.
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of ModuleMenu_TypeDataToBaseModuleRejections is to define a list of module rejections for specific TypeData in the Cascade particle system editor. It is used to control which base modules are incompatible or should not be displayed in the module menu for certain TypeData.
This setting variable is primarily used in the Cascade module, which is part of Unreal Engine’s particle system editor. It is specifically utilized in the Editor subsystem, particularly within the Cascade editor interface.
The value of this variable is set in the UCascadeConfiguration class, which is likely loaded from a configuration file. It is defined as a UPROPERTY with the ‘config’ specifier, indicating that it can be modified through configuration files or the editor interface.
ModuleMenu_TypeDataToBaseModuleRejections interacts with other variables in the UCascadeConfiguration class, such as ModuleMenu_TypeDataToSpecificModuleRejections. Together, these variables help define the compatibility and visibility of modules in the Cascade editor.
Developers must be aware that this variable directly impacts the user interface and available options in the Cascade particle system editor. Modifying this variable will affect which modules are available for selection when working with specific TypeData in particle systems.
Best practices when using this variable include:
- Carefully considering which base modules should be rejected for each TypeData to maintain a logical and user-friendly interface.
- Keeping the rejections list up-to-date as new modules or TypeData are added to the engine.
- Documenting any changes made to this variable, as it can significantly impact the workflow of particle system designers.
- Testing thoroughly after making changes to ensure that the Cascade editor behaves as expected and that no critical functionality is accidentally removed.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditor.ini:271, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
(ObjName="None",InvalidObjNames=("ParticleModuleBeamBase","ParticleModuleTrailBase","ParticleModuleVectorFieldBase"))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:272, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
(ObjName="ParticleModuleTypeDataBeam2",InvalidObjNames=("ParticleModuleTrailBase","ParticleModuleVectorFieldBase","ParticleModuleLightBase"))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:273, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
(ObjName="ParticleModuleTypeDataMesh",InvalidObjNames=("ParticleModuleBeamBase","ParticleModuleTrailBase","ParticleModuleVectorFieldBase"))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:274, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
(ObjName="ParticleModuleTypeDataRibbon",InvalidObjNames=("ParticleModuleVectorFieldBase","ParticleModuleLightBase"))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEditor.ini:275, section: [/Script/Cascade.CascadeConfiguration]
- INI Section:
/Script/Cascade.CascadeConfiguration
- Raw value:
(ObjName="ParticleModuleTypeDataGpu",InvalidObjNames=("ParticleModuleBeamBase","ParticleModuleTrailBase","ParticleModuleCameraBase","ParticleModuleKillBase","ParticleModuleParameterBase","ParticleModuleLightBase"))
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/Cascade/Classes/CascadeConfiguration.h:37
Scope (from outer to inner):
file
class class UCascadeConfiguration : public UObject
Source code excerpt:
*/
UPROPERTY(EditAnywhere, config, Category=Configure)
TArray<struct FModuleMenuMapper> ModuleMenu_TypeDataToBaseModuleRejections;
/** Module-to-TypeData mappings. */
UPROPERTY(EditAnywhere, config, Category=Configure)
TArray<struct FModuleMenuMapper> ModuleMenu_TypeDataToSpecificModuleRejections;
/** Modules that Cascade should ignore in the menu system. */
#Loc: <Workspace>/Engine/Source/Editor/Cascade/Private/Cascade.cpp:5377
Scope (from outer to inner):
file
function void UCascadeConfiguration::CacheModuleRejections
Source code excerpt:
}
for (int32 TypeDataIndex = 0; TypeDataIndex < ModuleMenu_TypeDataToBaseModuleRejections.Num(); ++TypeDataIndex)
{
FModuleMenuMapper& MenuMapper = ModuleMenu_TypeDataToBaseModuleRejections[TypeDataIndex];
FName TypeDataName = FName(*MenuMapper.ObjName);
TSet<FName>& Rejections = TypeDataModuleRejections.FindOrAdd(TypeDataName);
for (int32 BaseModuleIndex = 0; BaseModuleIndex < MenuMapper.InvalidObjNames.Num(); ++BaseModuleIndex)
{
FName BaseClassName = *MenuMapper.InvalidObjNames[BaseModuleIndex];
UClass* BaseClass = NULL;
#Loc: <Workspace>/Engine/Source/Editor/Cascade/Private/CascadeEmitterCanvasClient.cpp:2269
Scope (from outer to inner):
file
function bool FCascadeEmitterCanvasClient::IsBaseModuleTypeDataPairSuitableForModuleMenu
Source code excerpt:
FModuleMenuMapper* Mapper = NULL;
for (int32 MapIndex = 0; MapIndex < EditorConfig->ModuleMenu_TypeDataToBaseModuleRejections.Num(); MapIndex++)
{
if (EditorConfig->ModuleMenu_TypeDataToBaseModuleRejections[MapIndex].ObjName == TDName)
{
Mapper = &(EditorConfig->ModuleMenu_TypeDataToBaseModuleRejections[MapIndex]);
break;
}
}
if (Mapper)
{