コード例 #1
0
        public ETGModComponent TryGetComponent(string name)
        {
            ETGModComponent component = null;

            AvailableComponents.TryGetValue(name, out component);
            return(component);
        }
コード例 #2
0
 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)
         )
 {
 }
コード例 #3
0
        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);
        }
コード例 #4
0
 public ComponentVersion(ETGModComponent component, ETGModVersion version)
 {
     Component = component;
     Version   = version;
 }