using System.Collections.Generic; using UnityEngine; namespace Ubisoft.Hotel.Package.Editor { public class PackageSpaceBuildSuiteProvider : IBuildSuiteProvider { private readonly Object m_parent; public PackageSpaceBuildSuiteProvider(Object parent) { m_parent = parent; } public void ApplyToBuildSuite(EPlatform platform, BuildSuite buildSuite) { List packages = PackageManagerHelper.GetHotelPackages(); BuildSuite packageSpaceBuildSuite; foreach (Package package in packages) { if (package.NeedsToApplyToBuildSuite) { // packageBuildSuite properties need to be cloned in order to avoid serialization problems packageSpaceBuildSuite = CreateBuildSuite(package.Name); package.ApplyToBuildSuite(packageSpaceBuildSuite); // We order the properties of the cloned build suite buildSuite.OrderBuildSuite(packageSpaceBuildSuite); } } } private BuildSuite CreateBuildSuite(string name) { BuildSuite returnValue = BuildSuite.CreateInstanceWithParams(name + "_BuildSuite"); returnValue.Serialize(m_parent); return returnValue; } } }