Nuke.Unreal
Build Unreal apps in Style.
Loading...
Searching...
No Matches
ModuleDescriptor.cs
1using System.Collections.Generic;
2
3namespace Nuke.Unreal.Plugins;
4
5/// <summary>
6/// The type of host that can load a module
7/// </summary>
8public enum ModuleHostType
9{
10 /// <summary>
11 /// ///
12 /// </summary>
13 Default,
14
15 /// <summary>
16 /// Any target using the UE runtime
17 /// </summary>
18 Runtime,
19
20 /// <summary>
21 /// Any target except for commandlet
22 /// </summary>
24
25 /// <summary>
26 /// Any target or program
27 /// </summary>
29
30 /// <summary>
31 /// Loaded only in cooked builds
32 /// </summary>
34
35 /// <summary>
36 /// Loaded only in uncooked builds
37 /// </summary>
39
40 /// <summary>
41 /// Loaded only when the engine has support for developer tools enabled
42 /// </summary>
44
45 /// <summary>
46 /// Loads on any targets where bBuildDeveloperTools is enabled
47 /// </summary>
49
50 /// <summary>
51 /// Loaded only by the editor
52 /// </summary>
53 Editor,
54
55 /// <summary>
56 /// Loaded only by the editor, except when running commandlets
57 /// </summary>
59
60 /// <summary>
61 /// Loaded by the editor or program targets
62 /// </summary>
64
65 /// <summary>
66 /// Loaded only by programs
67 /// </summary>
68 Program,
69
70 /// <summary>
71 /// Loaded only by servers
72 /// </summary>
74
75 /// <summary>
76 /// Loaded only by clients, and commandlets, and editor....
77 /// </summary>
79
80 /// <summary>
81 /// Loaded only by clients and editor (editor can run PIE which is kinda a commandlet)
82 /// </summary>
84}
85
86/// <summary>
87/// Indicates when the engine should attempt to load this module
88/// </summary>
90{
91 /// <summary>
92 /// Loaded at the default loading point during startup (during engine init, after game modules are loaded.)
93 /// </summary>
94 Default,
95
96 /// <summary>
97 /// Right after the default phase
98 /// </summary>
100
101 /// <summary>
102 /// Right before the default phase
103 /// </summary>
105
106 /// <summary>
107 /// Loaded as soon as plugins can possibly be loaded (need GConfig)
108 /// </summary>
110
111 /// <summary>
112 /// Loaded before the engine is fully initialized, immediately after the config system has been initialized. Necessary only for very low-level hooks
113 /// </summary>
115
116 /// <summary>
117 /// The first screen to be rendered after system splash screen
118 /// </summary>
120
121 /// <summary>
122 /// After PostConfigInit and before coreUobject initialized. used for early boot loading screens before the uobjects are initialized
123 /// </summary>
125
126 /// <summary>
127 /// Loaded before the engine is fully initialized for modules that need to hook into the loading screen before it triggers
128 /// </summary>
130
131 /// <summary>
132 /// After the engine has been initialized
133 /// </summary>
135
136 /// <summary>
137 /// Do not automatically load this module
138 /// </summary>
139 None,
140}
141
142/// <summary>
143/// Class containing information about a code module
144/// </summary>
145/// <param name="Name">
146/// Name of this module
147/// </param>
148/// <param name="Type">
149/// Usage type of module
150/// </param>
151/// <param name="LoadingPhase">
152/// When should the module be loaded during the startup sequence? This is sort of an advanced setting.
153/// </param>
154/// <param name="PlatformAllowList">
155/// List of allowed platforms
156/// </param>
157/// <param name="PlatformDenyList">
158/// List of disallowed platforms
159/// </param>
160/// <param name="TargetAllowList">
161/// List of allowed targets
162/// </param>
163/// <param name="TargetDenyList">
164/// List of disallowed targets
165/// </param>
166/// <param name="TargetConfigurationAllowList">
167/// List of allowed target configurations
168/// </param>
169/// <param name="TargetConfigurationDenyList">
170/// List of disallowed target configurations
171/// </param>
172/// <param name="ProgramAllowList">
173/// List of allowed programs
174/// </param>
175/// <param name="ProgramDenyList">
176/// List of disallowed programs
177/// </param>
178/// <param name="AdditionalDependencies">
179/// List of additional dependencies for building this module.
180/// </param>
181/// <param name="HasExplicitPlatforms">
182/// When true, an empty PlatformAllowList is interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin extensions */
183/// </param>
184public record class ModuleDescriptor(
185 string? Name = null,
186 ModuleHostType? Type = null,
187 ModuleLoadingPhase? LoadingPhase = null,
188 List<UnrealPlatform>? PlatformAllowList = null,
189 List<UnrealPlatform>? PlatformDenyList = null,
190 List<UnrealTargetType>? TargetAllowList = null,
191 List<UnrealTargetType>? TargetDenyList = null,
192 List<UnrealConfig>? TargetConfigurationAllowList = null,
193 List<UnrealConfig>? TargetConfigurationDenyList = null,
194 List<string>? ProgramAllowList = null,
195 List<string>? ProgramDenyList = null,
196 List<string>? AdditionalDependencies = null,
197 bool? HasExplicitPlatforms = null
198);
ModuleLoadingPhase
Indicates when the engine should attempt to load this module.
@ EarliestPossible
Loaded as soon as plugins can possibly be loaded (need GConfig)
@ PostConfigInit
Loaded before the engine is fully initialized, immediately after the config system has been initializ...
@ PreEarlyLoadingScreen
After PostConfigInit and before coreUobject initialized. used for early boot loading screens before t...
@ PostEngineInit
After the engine has been initialized.
@ None
Do not automatically load this module.
@ PreDefault
Right before the default phase.
@ PostSplashScreen
The first screen to be rendered after system splash screen.
@ PreLoadingScreen
Loaded before the engine is fully initialized for modules that need to hook into the loading screen b...
@ PostDefault
Right after the default phase.
record class ModuleDescriptor(string? Name=null, ModuleHostType? Type=null, ModuleLoadingPhase? LoadingPhase=null, List< UnrealPlatform >? PlatformAllowList=null, List< UnrealPlatform >? PlatformDenyList=null, List< UnrealTargetType >? TargetAllowList=null, List< UnrealTargetType >? TargetDenyList=null, List< UnrealConfig >? TargetConfigurationAllowList=null, List< UnrealConfig >? TargetConfigurationDenyList=null, List< string >? ProgramAllowList=null, List< string >? ProgramDenyList=null, List< string >? AdditionalDependencies=null, bool? HasExplicitPlatforms=null)
Class containing information about a code module.
ModuleHostType
The type of host that can load a module.
@ ClientOnly
Loaded only by clients, and commandlets, and editor....
@ UncookedOnly
Loaded only in uncooked builds.
@ Developer
Loaded only when the engine has support for developer tools enabled.
@ EditorAndProgram
Loaded by the editor or program targets.
@ Program
Loaded only by programs.
@ ClientOnlyNoCommandlet
Loaded only by clients and editor (editor can run PIE which is kinda a commandlet)
@ DeveloperTool
Loads on any targets where bBuildDeveloperTools is enabled.
@ ServerOnly
Loaded only by servers.
@ CookedOnly
Loaded only in cooked builds.
@ RuntimeAndProgram
Any target or program.
@ Runtime
Any target using the UE runtime.
@ RuntimeNoCommandlet
Any target except for commandlet.
@ EditorNoCommandlet
Loaded only by the editor, except when running commandlets.