public ActiveTriggers( string characterName, [NotNull] ISoundManager soundManager, [NotNull] ITrayPopups trayPopups, [NotNull] IWurmApi wurmApi, [NotNull] ILogger logger, [NotNull] IActionQueueConditions actionQueueConditions, [NotNull] TriggersDataContext triggersDataContext, [NotNull] ITelemetry telemetry) { 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 (logger == null) { throw new ArgumentNullException(nameof(logger)); } if (actionQueueConditions == null) { throw new ArgumentNullException(nameof(actionQueueConditions)); } if (triggersDataContext == null) { throw new ArgumentNullException(nameof(triggersDataContext)); } CharacterName = characterName; this.soundManager = soundManager; this.trayPopups = trayPopups; this.wurmApi = wurmApi; this.logger = logger; this.actionQueueConditions = actionQueueConditions; this.telemetry = telemetry ?? throw new ArgumentNullException(nameof(telemetry)); this.triggersConfig = triggersDataContext.CharacterTriggersConfigs.GetOrCreate(characterName); foreach (var entity in triggersConfig.TriggerEntities.Values) { try { triggers.Add(entity.TriggerId, BuildTrigger(entity)); } catch (Exception exception) { logger.Error(exception, string.Format("Error initializing trigger id {0}, name: {1}", entity.TriggerId, entity.Name)); } } }
public ConditionsManager([NotNull] TriggersDataContext triggersDataContext) { if (triggersDataContext == null) { throw new ArgumentNullException(nameof(triggersDataContext)); } this.triggersDataContext = triggersDataContext; MergeAllDefaultConditions(); RebuildConditionsCache(); }
public TriggersV2Migration( [NotNull] ObsoleteDataProvider obsoleteDataProvider, [NotNull] TriggersDataContext triggersDataContext) { if (obsoleteDataProvider == null) { throw new ArgumentNullException(nameof(obsoleteDataProvider)); } if (triggersDataContext == null) { throw new ArgumentNullException(nameof(triggersDataContext)); } this.obsoleteDataProvider = obsoleteDataProvider; this.triggersDataContext = triggersDataContext; }
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(); }
public TriggerManager( [NotNull] string characterName, [NotNull] IWurmApi wurmApi, [NotNull] ISoundManager soundManager, [NotNull] ILogger logger, [NotNull] ITrayPopups trayPopups, [NotNull] IActiveTriggersFactory activeTriggersFactory, [NotNull] IWindowManager windowManager, [NotNull] TriggersDataContext triggersDataContext, [NotNull] IExporterFactory exporterFactory, [NotNull] IImporterFactory importerFactory) { if (characterName == null) { throw new ArgumentNullException(nameof(characterName)); } if (wurmApi == null) { throw new ArgumentNullException(nameof(wurmApi)); } if (soundManager == null) { throw new ArgumentNullException(nameof(soundManager)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } if (trayPopups == null) { throw new ArgumentNullException(nameof(trayPopups)); } if (activeTriggersFactory == null) { throw new ArgumentNullException(nameof(activeTriggersFactory)); } if (windowManager == null) { throw new ArgumentNullException(nameof(windowManager)); } if (triggersDataContext == null) { throw new ArgumentNullException(nameof(triggersDataContext)); } if (exporterFactory == null) { throw new ArgumentNullException(nameof(exporterFactory)); } if (importerFactory == null) { throw new ArgumentNullException(nameof(importerFactory)); } this.CharacterName = characterName; this.wurmApi = wurmApi; this.soundManager = soundManager; this.logger = logger; this.trayPopups = trayPopups; this.activeTriggersFactory = activeTriggersFactory; this.windowManager = windowManager; this.exporterFactory = exporterFactory; this.importerFactory = importerFactory; this.triggersConfig = triggersDataContext.CharacterTriggersConfigs.GetOrCreate(characterName); activeTriggers = activeTriggersFactory.CreateActiveTriggers(CharacterName); activeTriggers.MutedEvaluator = GetMutedEvaluator(); //create control for Module UI controlUi = new UcPlayerTriggersController(); //create this notifier UI triggersConfigUi = new FormTriggersConfig(this, soundManager, windowManager, exporterFactory, importerFactory); UpdateMutedState(); controlUi.label1.Text = CharacterName; controlUi.buttonMute.Click += ToggleMute; controlUi.buttonConfigure.Click += Configure; controlUi.buttonRemove.Click += StopAndRemove; try { wurmApi.LogsMonitor.Subscribe(this.CharacterName, LogType.AllLogs, OnNewLogEvents); } catch (DataNotFoundException exception) { logger.Warn(exception, $"Unable to subscribe LogsMonitor events for character {this.CharacterName}."); } }