Nuke.Unreal
Build Unreal apps in Style.
Loading...
Searching...
No Matches
PluginReferenceDescriptor.cs
1using System;
2using System.Collections.Generic;
3using System.Diagnostics;
4using System.Linq;
5
6namespace Nuke.Unreal.Plugins;
7
8/// <summary>
9/// Representation of a reference to a plugin from a project file
10/// </summary>
11/// <param name="Name">
12/// Name of the plugin
13/// </param>
14/// <param name="Enabled">
15/// Whether it should be enabled by default
16/// </param>
17/// <param name="Optional">
18/// Whether this plugin is optional, and the game should silently ignore it not being present
19/// </param>
20/// <param name="Description">
21/// Description of the plugin for users that do not have it installed.
22/// </param>
23/// <param name="MarketplaceURL">
24/// URL for this plugin on the marketplace, if the user doesn't have it installed.
25/// </param>
26/// <param name="PlatformAllowList">
27/// If enabled, list of platforms for which the plugin should be enabled (or all platforms if blank).
28/// </param>
29/// <param name="PlatformDenyList">
30/// If enabled, list of platforms for which the plugin should be disabled.
31/// </param>
32/// <param name="TargetConfigurationAllowList">
33/// If enabled, list of target configurations for which the plugin should be enabled (or all target configurations if blank).
34/// </param>
35/// <param name="TargetConfigurationDenyList">
36/// If enabled, list of target configurations for which the plugin should be disabled.
37/// </param>
38/// <param name="TargetAllowList">
39/// If enabled, list of targets for which the plugin should be enabled (or all targets if blank).
40/// </param>
41/// <param name="TargetDenyList">
42/// If enabled, list of targets for which the plugin should be disabled.
43/// </param>
44/// <param name="SupportedTargetPlatforms">
45/// The list of supported platforms for this plugin. This field is copied from the plugin descriptor, and supplements the user's allowed/denied platforms.
46/// </param>
47/// <param name="HasExplicitPlatforms">
48/// When true, empty SupportedTargetPlatforms and PlatformAllowList are interpreted as 'no platforms' with the expectation that explicit platforms will be added in plugin platform extensions
49/// </param>
50/// <param name="RequestedVersion">
51/// When set, specifies a specific version of the plugin that this references.
52/// </param>
53public record class PluginReferenceDescriptor(
54 string? Name = null,
55 bool? Enabled = null,
56 bool? Optional = null,
57 string? Description = null,
58 string? MarketplaceURL = null,
59 List<string>? PlatformAllowList = null,
60 List<string>? PlatformDenyList = null,
61 List<UnrealConfig>? TargetConfigurationAllowList = null,
62 List<UnrealConfig>? TargetConfigurationDenyList = null,
63 List<UnrealTargetType>? TargetAllowList = null,
64 List<UnrealTargetType>? TargetDenyList = null,
65 List<string>? SupportedTargetPlatforms = null,
66 bool? HasExplicitPlatforms = null,
67 int? RequestedVersion = null
68);
record class PluginReferenceDescriptor(string? Name=null, bool? Enabled=null, bool? Optional=null, string? Description=null, string? MarketplaceURL=null, List< string >? PlatformAllowList=null, List< string >? PlatformDenyList=null, List< UnrealConfig >? TargetConfigurationAllowList=null, List< UnrealConfig >? TargetConfigurationDenyList=null, List< UnrealTargetType >? TargetAllowList=null, List< UnrealTargetType >? TargetDenyList=null, List< string >? SupportedTargetPlatforms=null, bool? HasExplicitPlatforms=null, int? RequestedVersion=null)
Representation of a reference to a plugin from a project file.