コード例 #1
0
ファイル: Mod.cs プロジェクト: Chakani42/Foreman
 public bool SatisfiesDependency(ModDependency dep)
 {
     if (Name != dep.ModName)
     {
         return(false);
     }
     if (dep.Version != null)
     {
         if (dep.VersionType == DependencyType.EqualTo &&
             parsedVersion != dep.Version)
         {
             return(false);
         }
         if (dep.VersionType == DependencyType.GreaterThan &&
             parsedVersion <= dep.Version)
         {
             return(false);
         }
         if (dep.VersionType == DependencyType.GreaterThanOrEqual &&
             parsedVersion < dep.Version)
         {
             return(false);
         }
     }
     return(true);
 }
コード例 #2
0
ファイル: DependencyGraph.cs プロジェクト: gix/foreman
        public bool DependencySatisfied(ModDependency dep)
        {
            if (dep.Optional)
            {
                return(true);
            }

            return(mods.Where(m => m.Enabled).Any(mod => mod.SatisfiesDependency(dep)));
        }
コード例 #3
0
        public bool DependencySatisfied(ModDependency dep)
        {
            if (dep.Optional)
            {
                return(true);
            }

            foreach (Mod mod in mods.Where(m => m.Enabled))
            {
                if (mod.SatisfiesDependency(dep))
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #4
0
ファイル: Mod.cs プロジェクト: Rybadour/Foreman
        public bool SatisfiesDependency(ModDependency dep)
        {
            if (Name != dep.ModName)
            {
                return(false);
            }
            if (dep.Version != null)
            {
                bool versionMatch = true;
                switch (dep.VersionOperator)
                {
                case VersionOperator.EqualTo:
                    versionMatch = parsedVersion == dep.Version;
                    break;

                case VersionOperator.GreaterThan:
                    versionMatch = parsedVersion > dep.Version;
                    break;

                case VersionOperator.GreaterThanOrEqual:
                    versionMatch = parsedVersion >= dep.Version;
                    break;

                case VersionOperator.LessThan:
                    versionMatch = parsedVersion < dep.Version;
                    break;

                case VersionOperator.LessThanOrEqual:
                    versionMatch = parsedVersion <= dep.Version;
                    break;
                }

                if (!versionMatch)
                {
                    return(false);
                }
            }
            return(true);
        }