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:

  1. Carefully considering which base modules should be rejected for each TypeData to maintain a logical and user-friendly interface.
  2. Keeping the rejections list up-to-date as new modules or TypeData are added to the engine.
  3. Documenting any changes made to this variable, as it can significantly impact the workflow of particle system designers.
  4. 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]

Location: <Workspace>/Engine/Config/BaseEditor.ini:272, section: [/Script/Cascade.CascadeConfiguration]

Location: <Workspace>/Engine/Config/BaseEditor.ini:273, section: [/Script/Cascade.CascadeConfiguration]

Location: <Workspace>/Engine/Config/BaseEditor.ini:274, section: [/Script/Cascade.CascadeConfiguration]

Location: <Workspace>/Engine/Config/BaseEditor.ini:275, section: [/Script/Cascade.CascadeConfiguration]

#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)
	{