using System.Collections.Generic; using UnityEngine; using Ubisoft.Hotel.Package; using Ubisoft.Hotel.Package.Editor; namespace Ubisoft.Hotel.PackageManager.Editor { public class VersionProperty : PackageProperty { public static VersionProperty CreateInstanceWithParams(string name, string version) { VersionProperty returnValue = CreateInstance(); returnValue.name = name; returnValue.Version = new Version(version); return returnValue; } [SerializeField] private Version m_version; [SerializeField] private int m_versionCode = 1; public Version Version { get { return m_version; } set { m_version = value; } } public int VersionCode { get { return m_versionCode; } set { m_versionCode = value; } } public string VersionAsString { get { return m_version == null ? null : m_version.ToString(); } } public string GetVersionAsString(int major, int minor, int patch) { return Version.GetVersionAsString(major, minor, patch); } public override void Apply(BuildSuite buildSuite) { UnityBuildProperty unityProperty = UnityBuildProperty.CreateInstanceWithParams($"{name}_unity"); unityProperty.Version = VersionAsString; unityProperty.VersionCode = VersionCode; buildSuite.OrderProperty(unityProperty); } public override void AddPackagePropertyPlayer(List list) { PlayerVersionProperty property = CreateInstance(); property.name = HtTypes.GetTypeShortName(GetType()); property.Version = Version; list.Add(property); } public void BumpMajor() { Version.Major++; Version.Minor = 0; Version.Patch = 0; } public void BumpMinor() { Version.Minor++; Version.Patch = 0; } public void BumpPatch() { Version.Patch++; VersionCode++; } } }