コード例 #1
0
        private static Func <Ninject.Activation.IContext, IWurmApi> BuildWurmApiFactory(IKernel kernel)
        {
            return(context =>
            {
                IWurmAssistantConfig config = kernel.Get <IWurmAssistantConfig>();
                IWurmApiLoggerFactory loggerFactory = kernel.Get <IWurmApiLoggerFactory>();
                IWurmApiEventMarshaller eventMarshaller = kernel.Get <IWurmApiEventMarshaller>();
                IWurmAssistantDataDirectory wurmAssistantDataDirectory = kernel.Get <IWurmAssistantDataDirectory>();

                if (string.IsNullOrWhiteSpace(config.WurmGameClientInstallDirectory))
                {
                    throw new InvalidOperationException("Unknown path to Wurm Game Client installation folder.");
                }

                IWurmClientInstallDirectory wurmInstallDirectory =
                    new WurmInstallDirectoryOverride(config.WurmGameClientInstallDirectory);
                ServerInfoManager serverInfoManager = kernel.Get <ServerInfoManager>();

                var wurmApiConfig = new WurmApiConfig
                {
                    Platform = Platform.Windows,
                    ClearAllCaches = config.DropAllWurmApiCachesToggle,
                    WurmUnlimitedMode = config.WurmUnlimitedMode
                };
                serverInfoManager.UpdateWurmApiConfigDictionary(wurmApiConfig.ServerInfoMap);

                var wurmApiDataDir =
                    new DirectoryInfo(Path.Combine(wurmAssistantDataDirectory.DirectoryPath, "WurmApi"));

                var wurmApi = AldursLab.WurmApi.WurmApiFactory.Create(
                    new WurmApiCreationOptions()
                {
                    DataDirPath = wurmApiDataDir.FullName,
                    WurmApiLogger = loggerFactory.Create(),
                    WurmApiEventMarshaller = eventMarshaller,
                    WurmClientInstallDirectory = wurmInstallDirectory,
                    WurmApiConfig = wurmApiConfig
                });

                config.DropAllWurmApiCachesToggle = false;

                var validator = new WurmClientValidator(wurmApi, config);
                if (!validator.SkipOnStart)
                {
                    var issues = validator.Validate();
                    if (issues.Any())
                    {
                        validator.ShowSummaryWindow(issues);
                    }
                }

                return wurmApi;
            });
        }
コード例 #2
0
 public BackupManager([NotNull] IWurmAssistantDataDirectory dataDirectory, [NotNull] ILogger logger)
 {
     if (dataDirectory == null)
     {
         throw new ArgumentNullException(nameof(dataDirectory));
     }
     if (logger == null)
     {
         throw new ArgumentNullException(nameof(logger));
     }
     this.dataDirectory = dataDirectory;
     this.logger        = logger;
     backupDirRootPath  = Path.Combine(dataDirectory.DirectoryPath, "Backup");
 }
コード例 #3
0
        public PersistentContextsManager([NotNull] IWurmAssistantDataDirectory wurmAssistantDataDirectory,
                                         [NotNull] ITimerFactory timerFactory)
        {
            if (wurmAssistantDataDirectory == null)
            {
                throw new ArgumentNullException(nameof(wurmAssistantDataDirectory));
            }
            if (timerFactory == null)
            {
                throw new ArgumentNullException(nameof(timerFactory));
            }
            this.wurmAssistantDataDirectory = wurmAssistantDataDirectory;

            timer          = timerFactory.CreateUiThreadTimer();
            timer.Interval = TimeSpan.FromSeconds(15);
            timer.Tick    += TimerOnTick;
            timer.Start();
        }
コード例 #4
0
        public LoggingManager([NotNull] IThreadMarshaller threadMarshaller,
                              [NotNull] IWurmAssistantDataDirectory wurmAssistantDataDirectory)
        {
            if (threadMarshaller == null)
            {
                throw new ArgumentNullException(nameof(threadMarshaller));
            }
            if (wurmAssistantDataDirectory == null)
            {
                throw new ArgumentNullException(nameof(wurmAssistantDataDirectory));
            }
            this.threadMarshaller = threadMarshaller;

            var logOutputDirFullPath = Path.Combine(wurmAssistantDataDirectory.DirectoryPath, "Logs");

            loggingConfig = new LoggingConfig(logOutputDirFullPath);

            factoryLogger = new Logger(this, "LoggingManager");
        }
コード例 #5
0
        public SoundsLibrary([NotNull] IWurmAssistantDataDirectory wurmAssistantDataDirectory, [NotNull] ILogger logger)
        {
            if (wurmAssistantDataDirectory == null)
            {
                throw new ArgumentNullException(nameof(wurmAssistantDataDirectory));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            this.soundFilesPath = Path.Combine(wurmAssistantDataDirectory.DirectoryPath, SoundbankDirName);
            this.logger         = logger;

            var dirInfo = new DirectoryInfo(soundFilesPath);

            if (!dirInfo.Exists)
            {
                dirInfo.Create();
            }
        }
コード例 #6
0
        public AppMigrationsManager(
            [NotNull] IKernel kernel,
            [NotNull] IWurmAssistantDataDirectory dataDirectory,
            [NotNull] PersistentContextsManager persistentContextsManager,
            [NotNull] ILogger logger,
            [NotNull] ITrayPopups trayPopups,
            [NotNull] BackupManager backupManager)
        {
            if (kernel == null)
            {
                throw new ArgumentNullException(nameof(kernel));
            }
            if (dataDirectory == null)
            {
                throw new ArgumentNullException(nameof(dataDirectory));
            }
            if (persistentContextsManager == null)
            {
                throw new ArgumentNullException(nameof(persistentContextsManager));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (trayPopups == null)
            {
                throw new ArgumentNullException(nameof(trayPopups));
            }
            if (backupManager == null)
            {
                throw new ArgumentNullException(nameof(backupManager));
            }
            this.kernel = kernel;
            this.persistentContextsManager = persistentContextsManager;
            this.logger        = logger;
            this.trayPopups    = trayPopups;
            this.backupManager = backupManager;

            upgradeInfoFile = new FileInfo(Path.Combine(dataDirectory.DirectoryPath, "upgrade.dat"));
            LoadCurrentVersion();
        }
コード例 #7
0
        public GrangerFeature(
            [NotNull] ILogger logger,
            [NotNull] IWurmAssistantDataDirectory dataDirectory,
            [NotNull] ISoundManager soundManager,
            [NotNull] ITrayPopups trayPopups,
            [NotNull] IWurmApi wurmApi,
            [NotNull] GrangerSettings grangerSettings,
            [NotNull] DefaultBreedingEvaluatorOptions defaultBreedingEvaluatorOptions,
            [NotNull] IWurmAssistantConfig wurmAssistantConfig,
            [NotNull] ITimerFactory timerFactory,
            [NotNull] CreatureColorDefinitions creatureColorDefinitions,
            [NotNull] GrangerContext grangerContext,
            [NotNull] IFormEditCreatureColorsFactory formEditCreatureColorsFactory,
            [NotNull] ITelemetry telemetry)
        {
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (dataDirectory == null)
            {
                throw new ArgumentNullException(nameof(dataDirectory));
            }
            if (soundManager == null)
            {
                throw new ArgumentNullException(nameof(soundManager));
            }
            if (trayPopups == null)
            {
                throw new ArgumentNullException(nameof(trayPopups));
            }
            if (wurmApi == null)
            {
                throw new ArgumentNullException(nameof(wurmApi));
            }
            if (grangerSettings == null)
            {
                throw new ArgumentNullException(nameof(grangerSettings));
            }
            if (defaultBreedingEvaluatorOptions == null)
            {
                throw new ArgumentNullException(nameof(defaultBreedingEvaluatorOptions));
            }
            if (wurmAssistantConfig == null)
            {
                throw new ArgumentNullException(nameof(wurmAssistantConfig));
            }
            if (timerFactory == null)
            {
                throw new ArgumentNullException(nameof(timerFactory));
            }
            if (creatureColorDefinitions == null)
            {
                throw new ArgumentNullException(nameof(creatureColorDefinitions));
            }
            if (grangerContext == null)
            {
                throw new ArgumentNullException(nameof(grangerContext));
            }
            if (formEditCreatureColorsFactory == null)
            {
                throw new ArgumentNullException(nameof(formEditCreatureColorsFactory));
            }

            this.logger        = logger;
            this.dataDirectory = dataDirectory;
            this.soundManager  = soundManager;
            this.trayPopups    = trayPopups;

            settings = grangerSettings;
            this.defaultBreedingEvaluatorOptions = defaultBreedingEvaluatorOptions;
            this.creatureColorDefinitions        = creatureColorDefinitions;

            context = grangerContext;
            this.formEditCreatureColorsFactory = formEditCreatureColorsFactory;
            this.telemetry = telemetry ?? throw new ArgumentNullException(nameof(telemetry));

            grangerUi = new FormGrangerMain(this,
                                            settings,
                                            context,
                                            logger,
                                            wurmApi,
                                            defaultBreedingEvaluatorOptions,
                                            creatureColorDefinitions,
                                            formEditCreatureColorsFactory,
                                            telemetry);

            logsFeedMan = new LogsFeedManager(this, context, wurmApi, logger, trayPopups, wurmAssistantConfig, creatureColorDefinitions, grangerSettings, telemetry);
            logsFeedMan.UpdatePlayers(settings.CaptureForPlayers);
            grangerUi.GrangerPlayerListChanged += GrangerUI_Granger_PlayerListChanged;

            updateLoop          = timerFactory.CreateUiThreadTimer();
            updateLoop.Interval = TimeSpan.FromMilliseconds(500);
            updateLoop.Tick    += (sender, args) => Update();
            updateLoop.Start();
        }
コード例 #8
0
        public TriggersFeature(
            [NotNull] ISoundManager soundManager,
            [NotNull] IWurmAssistantDataDirectory wurmAssistantDataDirectory,
            [NotNull] ITimerFactory timerFactory,
            [NotNull] IWurmApi wurmApi,
            [NotNull] ITrayPopups trayPopups,
            [NotNull] ILogger logger,
            [NotNull] TriggersDataContext triggersDataContext,
            [NotNull] ITriggerManagerFactory triggerManagerFactory)
        {
            if (soundManager == null)
            {
                throw new ArgumentNullException(nameof(soundManager));
            }
            if (wurmAssistantDataDirectory == null)
            {
                throw new ArgumentNullException(nameof(wurmAssistantDataDirectory));
            }
            if (timerFactory == null)
            {
                throw new ArgumentNullException(nameof(timerFactory));
            }
            if (wurmApi == null)
            {
                throw new ArgumentNullException(nameof(wurmApi));
            }
            if (trayPopups == null)
            {
                throw new ArgumentNullException(nameof(trayPopups));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (triggersDataContext == null)
            {
                throw new ArgumentNullException(nameof(triggersDataContext));
            }
            if (triggerManagerFactory == null)
            {
                throw new ArgumentNullException(nameof(triggerManagerFactory));
            }
            this.soundManager = soundManager;
            this.wurmAssistantDataDirectory = wurmAssistantDataDirectory;
            this.wurmApi               = wurmApi;
            this.trayPopups            = trayPopups;
            this.logger                = logger;
            this.triggersDataContext   = triggersDataContext;
            this.triggerManagerFactory = triggerManagerFactory;

            updateTimer          = timerFactory.CreateUiThreadTimer();
            updateTimer.Interval = TimeSpan.FromMilliseconds(500);
            updateTimer.Tick    += (sender, args) => Update();

            mainUi = new FormTriggersMain(this, soundManager);
            foreach (var name in GetAllActiveCharacters())
            {
                AddManager(name);
            }
            updateTimer.Start();
        }
コード例 #9
0
 public DataBackupUserSettings(IWurmAssistantDataDirectory dataDirectory)
 {
     settingsFile = new FileInfo(Path.Combine(dataDirectory.DirectoryPath, "backupSettings.dat"));
     Load();
 }
コード例 #10
0
        public MainMenuUserControl(
            [NotNull] IProcessStarter processStarter,
            [NotNull] IUserNotifier userNotifier,
            [NotNull] IServersEditorViewFactory serversEditorViewFactory,
            [NotNull] IDebuggingWindowFactory debuggingWindowFactory,
            [NotNull] INewsViewModelFactory newsViewModelFactory,
            [NotNull] IWurmAssistantDataDirectory wurmAssistantDataDirectory,
            [NotNull] IWurmAssistantConfig wurmAssistantConfig,
            [NotNull] IEnvironment environment,
            [NotNull] IWurmClientValidatorFactory wurmClientValidatorFactory,
            [NotNull] ILogger logger,
            [NotNull] IOptionsFormFactory optionsFormFactory,
            [NotNull] IDataBackupsViewModelFactory dataBackupsViewModelFactory,
            [NotNull] IWindowManager windowManager)
        {
            if (processStarter == null)
            {
                throw new ArgumentNullException(nameof(processStarter));
            }
            if (userNotifier == null)
            {
                throw new ArgumentNullException(nameof(userNotifier));
            }
            if (serversEditorViewFactory == null)
            {
                throw new ArgumentNullException(nameof(serversEditorViewFactory));
            }
            if (debuggingWindowFactory == null)
            {
                throw new ArgumentNullException(nameof(debuggingWindowFactory));
            }
            if (newsViewModelFactory == null)
            {
                throw new ArgumentNullException(nameof(newsViewModelFactory));
            }
            if (wurmAssistantDataDirectory == null)
            {
                throw new ArgumentNullException(nameof(wurmAssistantDataDirectory));
            }
            if (wurmAssistantConfig == null)
            {
                throw new ArgumentNullException(nameof(wurmAssistantConfig));
            }
            if (environment == null)
            {
                throw new ArgumentNullException(nameof(environment));
            }
            if (wurmClientValidatorFactory == null)
            {
                throw new ArgumentNullException(nameof(wurmClientValidatorFactory));
            }
            if (logger == null)
            {
                throw new ArgumentNullException(nameof(logger));
            }
            if (optionsFormFactory == null)
            {
                throw new ArgumentNullException(nameof(optionsFormFactory));
            }
            if (dataBackupsViewModelFactory == null)
            {
                throw new ArgumentNullException(nameof(dataBackupsViewModelFactory));
            }
            if (windowManager == null)
            {
                throw new ArgumentNullException(nameof(windowManager));
            }
            this.processStarter             = processStarter;
            this.userNotifier               = userNotifier;
            this.serversEditorViewFactory   = serversEditorViewFactory;
            this.debuggingWindowFactory     = debuggingWindowFactory;
            this.newsViewModelFactory       = newsViewModelFactory;
            this.wurmAssistantDataDirectory = wurmAssistantDataDirectory;
            this.wurmAssistantConfig        = wurmAssistantConfig;
            this.environment = environment;
            this.wurmClientValidatorFactory = wurmClientValidatorFactory;
            this.logger                      = logger;
            this.optionsFormFactory          = optionsFormFactory;
            this.dataBackupsViewModelFactory = dataBackupsViewModelFactory;
            this.windowManager               = windowManager;

            InitializeComponent();

            debugToolStripMenuItem.Visible = false;
#if DEBUG
            debugToolStripMenuItem.Visible = true;
#endif
        }