1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using System;
-
- using UnityEngine;
-
- namespace Unity.PlasticSCM.Editor.UI
- {
- internal class EditorVersion
- {
- internal int Year;
- internal int Release;
- internal int Update;
-
- EditorVersion(int year, int release, int update)
- {
- Year = year;
- Release = release;
- Update = update;
- }
-
-
- public override string ToString()
- {
- return String.Format("{0}.{1}.{2}", Year, Release, Update);
- }
-
- internal static bool IsCurrentEditorOlderThan(string version)
- {
- return IsEditorOlderThan(Application.unityVersion, version);
- }
-
- internal static bool IsEditorOlderThan(string versionA, string versionB)
- {
- var editorA = Parse(versionA);
- var editorB = Parse(versionB);
- if (editorA.Year == editorB.Year)
- {
- if (editorA.Release == editorB.Release)
- {
- return editorA.Update < editorB.Update;
- }
- return editorA.Release < editorB.Release;
- }
- return editorA.Year < editorB.Year;
- }
-
- static int ParseUpdateString(string version)
- {
- int pos = 0;
- char[] characters = version.ToCharArray();
- while (Char.IsDigit(characters[pos]))
- {
- ++pos;
- }
- return int.Parse(version.Substring(0, pos));
- }
-
- static EditorVersion Parse(string version)
- {
- var versions = version.Split('.');
-
- var year = 0;
- year = int.Parse(versions[0]);
- var release = 0;
- release = int.Parse(versions[1]);
- var update = 0;
- update = ParseUpdateString(versions[2]);
-
- return new EditorVersion(year, release, update);
- }
- }
- }
|