Ejemplo n.º 1
0
        public void Run(string[] args)
        {
            _writer.WriteLine($"Started OWML v{_owmlManifest.Version}");
            _writer.WriteLine("For detailed log, see Logs/OWML.Log.txt");

            LocateGamePath();

            CopyGameFiles();

            CreateLogsDirectory();

            var hasPortArgument = CommandLineArguments.HasArgument(Constants.ConsolePortArgument);

            if (!hasPortArgument)
            {
                ListenForOutput();
            }

            var mods = _modFinder.GetMods();

            ShowModList(mods);

            PatchGame(mods);

            StartGame(args);

            if (hasPortArgument)
            {
                ExitConsole();
            }

            Console.ReadLine();
        }
Ejemplo n.º 2
0
        public void LoadMods()
        {
            if (_owmlConfig.Verbose)
            {
                _console.WriteLine("Verbose mode is enabled");
                Application.logMessageReceived += OnLogMessageReceived;
            }
            var normalMods   = _modFinder.GetMods().Where(mod => !mod.Manifest.PriorityLoad).ToList();
            var sortedNormal = _sorter.SortMods(normalMods);

            var priorityMods   = _modFinder.GetMods().Where(mod => mod.Manifest.PriorityLoad).ToList();
            var sortedPriority = _sorter.SortMods(priorityMods);

            var modNames   = _modFinder.GetMods().Where(mod => mod.Config.Enabled).Select(mod => mod.Manifest.UniqueName).ToList();
            var sortedMods = sortedPriority.Concat(sortedNormal);

            foreach (var mod in sortedMods)
            {
                foreach (var dependency in mod.Manifest.Dependencies)
                {
                    if (!modNames.Contains(dependency))
                    {
                        _console.WriteLine($"Error! {mod.Manifest.UniqueName} needs {dependency}, but it's disabled!");
                    }
                }
                var modType = LoadMod(mod);
                if (modType == null)
                {
                    _logger.Log("Mod type is null, skipping");
                    _menus.ModsMenu.AddMod(mod, null);
                    continue;
                }
                var helper  = CreateModHelper(mod);
                var initMod = InitializeMod(modType, helper);
                _menus.ModsMenu.AddMod(mod, initMod);
                _modList.Add(initMod);
            }
        }