|
@@ -0,0 +1,89 @@
|
|
|
+using System;
|
|
|
+
|
|
|
+namespace TBL.GodotSharp.Content;
|
|
|
+
|
|
|
+public partial class Package
|
|
|
+{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public struct Info
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public readonly string Name;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public readonly string AuthorInfo;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public readonly Version VersionInfo;
|
|
|
+
|
|
|
+ public Info(string name, string author, string version)
|
|
|
+ {
|
|
|
+ Name = name;
|
|
|
+ AuthorInfo = author;
|
|
|
+ if (!Version.TryParse(version, out VersionInfo))
|
|
|
+ VersionInfo = new Version();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public readonly bool IsCompatibleWith(DependencyInfo target)
|
|
|
+ {
|
|
|
+ return Content.IsCompatibleWith(VersionInfo, target.Target.VersionInfo,
|
|
|
+ (target.Flags & DependencyInfo.FlagsEnum.Strict) != 0 ? 1 : 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public struct DependencyInfo
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public readonly Info Target;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public readonly FlagsEnum Flags;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [Flags]
|
|
|
+ public enum FlagsEnum
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ None,
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Unnecessary,
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Strict
|
|
|
+ }
|
|
|
+
|
|
|
+ public DependencyInfo(Info target, FlagsEnum flags = FlagsEnum.None)
|
|
|
+ {
|
|
|
+ Target = target;
|
|
|
+ Flags = flags;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|