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); }
public bool DependencySatisfied(ModDependency dep) { if (dep.Optional) { return(true); } return(mods.Where(m => m.Enabled).Any(mod => mod.SatisfiesDependency(dep))); }
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); }
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); }