ICookedEditorPackageManager

Allows a project to control how packages are cooked when making a cooked editor.

Windows
MacOS
Linux

Inheritance Hierarchy

ICookedEditorPackageManager

FIniCookedEditorPackageManager

References

Module

CookedEditor

Header

/Engine/Source/Developer/CookedEditor/Public/CookedEditorPackageManager.h

Include

#include "CookedEditorPackageManager.h"

Syntax

class ICookedEditorPackageManager

Remarks

Allows a project to control how packages are cooked when making a cooked editor.

Unlike a runtime game, a cooked editor typically needs to include all engine and plugin content, to make all resources available for the crafting of future games in the cooked editor with asset needs that are not yet known. When cooking a cooked editor target platform, an instance of this class adds the requests for all of that extra content.

The default implementation is FIniCookedEditorPackageManager which allows for Game.ini settings to control most functionality. By default (as set in BaseGame.ini) all content is cooked with a few class types and plugns that are not due to incompatibility with having been cooked and loaded by the editor.

If "Cook Against Release" mode is enabled, then making the cooked editor will act like "DLC" where it uses an already created Game or Client release and will not cook pacakges that are already in the release.

To override this class, generally you will want to override the Project functions in the first public section. In GetProjectPackagesToCook(), you can call AddPackagesFromPath to cook spefic project content subdirectories as needed

You likely can use just this class without needing to subclass TCookedEditorTargetPlatform at all, but you can do that if needed.

Destructors

Functions

Name Description

Protected function Const

void

 

AddPackagesFromPath

(
    TArray< FName >& Packages,
    const TCHAR* Path,
    EPackageSearchMode SearchMode
)

Use the asset registry to find packages to be cooked

Public function Const

bool

 

AllowAssetToBeGathered

(
    const FAssetData& AssetData
)

Allows the subclass to disallow some assets to be gathered during AddPackagesFromPath, for instance This is similar to AllowObjectToBeCooked, but it can help with, for instance, removing maps from subdirectories, while still allowing the normal maps that come from the standard cooking process

Public function Const

bool

 

AllowEnginePluginContentToBeCooked

(
    const TSharedRef< IPlugin >
)

Should the given enabled engine plugin be cooked?

Public function Const

bool

 

AllowObjectToBeCooked

(
    const UObject* Obj
)

Allows the subclass to exclude specific objects in packages discovered during the cook.

Public function Const

bool

 

AllowProjectPluginContentToBeCooked

(
    const TSharedRef< IPlugin >
)

Should the given enabled project plugin be cooked?

Public function Static

TUniquePtr< ...

 

FactoryForTargetPlatform

(
    ITargetPlatform* TP,
    bool bIsCookedCooker
)

Construct a package manager for the given TP

Protected function Virtual Const

void

 

FilterGatheredPackages

(
    TArray< FName >& PackageNames
)

Allow a subclass to remove packages found in GatherAllPackages

Public function Const

void

 

GatherAllPackages

(
    TArray< FName >& PackageNames,
    const ITargetPlatform* TargetP...
)

Gathers the packages this PackageManager wants to manage (ie cook)

Protected function Const

void

 

GatherAllPackagesExceptDisabled

(
    TArray< FName >& PackageNames,
    const ITargetPlatform* TargetP...,
    const TArray< FString >& DisabledP...
)

Meat of this class, this calls other functions that generally will be overridden - subclass needs to pass in disabled plugins

Public function Const

void

 

GetEnginePackagesToCook

(
    TArray< FName >& PackagesToCook
)

Override to control engine packages to cook

Public function Const

void

 

GetProjectPackagesToCook

(
    TArray< FName >& PackagesToCook
)

Override to add project specific packages to cook

Enums

Name

Description

Protected enum

EPackageSearchMode