/// <summary>
        /// Writes the plugin descriptor to an existing Json writer
        /// </summary>
        /// <param name="Writer">The writer to receive plugin data</param>
        public void Write(JsonWriter Writer)
        {
            Writer.WriteValue("FileVersion", (int)ProjectDescriptorVersion.Latest);
            Writer.WriteValue("EngineAssociation", EngineAssociation);
            Writer.WriteValue("Category", Category);
            Writer.WriteValue("Description", Description);

            // Write the enterprise flag
            if (IsEnterpriseProject)
            {
                Writer.WriteValue("Enterprise", IsEnterpriseProject);
            }

            // Write the module list
            ModuleDescriptor.WriteArray(Writer, "Modules", Modules);

            // Write the plugin list
            PluginReferenceDescriptor.WriteArray(Writer, "Plugins", Plugins);

            // Write out the additional plugin directories to scan
            if (AdditionalPluginDirectories != null && AdditionalPluginDirectories.Length > 0)
            {
                Writer.WriteStringArrayField("AdditionalPluginDirectories", AdditionalPluginDirectories);
            }

            // Write the target platforms
            if (TargetPlatforms != null && TargetPlatforms.Length > 0)
            {
                Writer.WriteStringArrayField("TargetPlatforms", TargetPlatforms);
            }

            // If it's a signed sample, write the name hash
            if (EpicSampleNameHash != 0)
            {
                Writer.WriteValue("EpicSampleNameHash", (uint)EpicSampleNameHash);
            }

            // Write the custom build steps
            if (PreBuildSteps != null)
            {
                PreBuildSteps.Write(Writer, "PreBuildSteps");
            }
            if (PostBuildSteps != null)
            {
                PostBuildSteps.Write(Writer, "PostBuildSteps");
            }
        }
        /// <summary>
        /// Saves the descriptor to disk
        /// </summary>
        /// <param name="FileName">The filename to write to</param>
        public void Save(string FileName, bool bPluginTypeEnabledByDefault)
        {
            using (JsonWriter Writer = new JsonWriter(FileName))
            {
                Writer.WriteObjectStart();

                Writer.WriteValue("FileVersion", (int)ProjectDescriptorVersion.Latest);
                Writer.WriteValue("Version", Version);
                Writer.WriteValue("VersionName", VersionName);
                Writer.WriteValue("FriendlyName", FriendlyName);
                Writer.WriteValue("Description", Description);
                Writer.WriteValue("Category", Category);
                Writer.WriteValue("CreatedBy", CreatedBy);
                Writer.WriteValue("CreatedByURL", CreatedByURL);
                Writer.WriteValue("DocsURL", DocsURL);
                Writer.WriteValue("MarketplaceURL", MarketplaceURL);
                Writer.WriteValue("SupportURL", SupportURL);
                if (bEnabledByDefault != bPluginTypeEnabledByDefault)
                {
                    Writer.WriteValue("EnabledByDefault", bEnabledByDefault);
                }
                Writer.WriteValue("CanContainContent", bCanContainContent);
                Writer.WriteValue("IsBetaVersion", bIsBetaVersion);
                Writer.WriteValue("Installed", bInstalled);
                Writer.WriteValue("RequiresBuildPlatform", bRequiresBuildPlatform);

                ModuleDescriptor.WriteArray(Writer, "Modules", Modules);

                if (PreBuildSteps != null)
                {
                    PreBuildSteps.Write(Writer, "PreBuildSteps");
                }

                if (PostBuildSteps != null)
                {
                    PostBuildSteps.Write(Writer, "PostBuildSteps");
                }

                Writer.WriteObjectEnd();
            }
        }
Exemple #3
0
        /// <summary>
        /// Writes the plugin descriptor to an existing Json writer
        /// </summary>
        /// <param name="Writer">The writer to receive plugin data</param>
        public void Write(JsonWriter Writer)
        {
            Writer.WriteValue("FileVersion", (int)ProjectDescriptorVersion.Latest);
            Writer.WriteValue("Version", Version);
            Writer.WriteValue("VersionName", VersionName);
            Writer.WriteValue("FriendlyName", FriendlyName);
            Writer.WriteValue("Description", Description);
            Writer.WriteValue("Category", Category);
            Writer.WriteValue("CreatedBy", CreatedBy);
            Writer.WriteValue("CreatedByURL", CreatedByURL);
            Writer.WriteValue("DocsURL", DocsURL);
            Writer.WriteValue("MarketplaceURL", MarketplaceURL);
            Writer.WriteValue("SupportURL", SupportURL);
            if (!String.IsNullOrEmpty(EngineVersion))
            {
                Writer.WriteValue("EngineVersion", EngineVersion);
            }
            if (bEnabledByDefault.HasValue)
            {
                Writer.WriteValue("EnabledByDefault", bEnabledByDefault.Value);
            }
            Writer.WriteValue("CanContainContent", bCanContainContent);
            if (bIsBetaVersion)
            {
                Writer.WriteValue("IsBetaVersion", bIsBetaVersion);
            }
            if (bInstalled)
            {
                Writer.WriteValue("Installed", bInstalled);
            }

            if (bRequiresBuildPlatform)
            {
                Writer.WriteValue("RequiresBuildPlatform", bRequiresBuildPlatform);
            }

            if (SupportedTargetPlatforms != null && SupportedTargetPlatforms.Length > 0)
            {
                Writer.WriteEnumArrayField <UnrealTargetPlatform>("SupportedTargetPlatforms", SupportedTargetPlatforms);
            }

            if (SupportedPrograms != null && SupportedPrograms.Length > 0)
            {
                Writer.WriteStringArrayField("SupportedPrograms", SupportedPrograms);
            }

            ModuleDescriptor.WriteArray(Writer, "Modules", Modules);

            LocalizationTargetDescriptor.WriteArray(Writer, "LocalizationTargets", LocalizationTargets);

            if (PreBuildSteps != null)
            {
                PreBuildSteps.Write(Writer, "PreBuildSteps");
            }

            if (PostBuildSteps != null)
            {
                PostBuildSteps.Write(Writer, "PostBuildSteps");
            }

            PluginReferenceDescriptor.WriteArray(Writer, "Plugins", Plugins);
        }