public ETGModComponent TryGetComponent(string name) { ETGModComponent component = null; AvailableComponents.TryGetValue(name, out component); return(component); }
public InstallableComponent(ETGModComponent component, ETGModVersion ver, DownloadedBuild dl) : this( component.Name, ver.Key, ver.DisplayName, dl.ExtractedPath, ver.SupportedGungeon, ver.RequiresPatchedExe, Directory.GetFileSystemEntries(dl.ExtractedPath) ) { }
public void Install(IEnumerable <ComponentInfo> components, string exe_path = null) { exe_path = _GetExePath(exe_path); var real_components = new List <ComponentVersion>(); var used_components = new HashSet <ETGModComponent>(); var gungeon_version = Autodetector.GetVersionIn(exe_path); foreach (var com in components) { ETGModComponent component = _Downloader.TryGet(com.Name.Trim()); if (component != null) { if (used_components.Contains(component)) { throw new InstallationFailedException($"Duplicate {component.Name} component."); } used_components.Add(component); ETGModVersion version = null; if (com.Version == null) { version = component.Versions[0]; } else { foreach (var ver in component.Versions) { if (ver.Key == com.Version.Trim()) { version = ver; break; } } if (version == null) { throw new InstallationFailedException($"Version {com.Version} of component {com.Name} doesn't exist."); } } real_components.Add(new ComponentVersion(component, version)); } else { throw new InstallationFailedException($"Component {com.Name} doesn't exist in the list of components."); } } Install(real_components, exe_path); }
public ComponentVersion(ETGModComponent component, ETGModVersion version) { Component = component; Version = version; }