コード例 #1
0
        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));
                }
            }
        }
コード例 #2
0
        public ActionQueueTriggerConfig(ActionQueueTrigger actionQueueTrigger,
                                        [NotNull] IActionQueueConditions conditions)
        {
            if (conditions == null)
            {
                throw new ArgumentNullException("conditions");
            }
            this.actionQueueTrigger = actionQueueTrigger;
            this.conditions         = conditions;
            InitializeComponent();

            NotificationDelayInput.Value = ((decimal)this.actionQueueTrigger.NotificationDelay).ConstrainToRange(0, 1000);
        }
コード例 #3
0
 public ActionQueueTrigger(TriggerEntity triggerEntity, ISoundManager soundManager, ITrayPopups trayPopups,
                           IWurmApi wurmApi, ILogger logger, [NotNull] IActionQueueConditions conditionsManager, ITelemetry telemetry)
     : base(triggerEntity, soundManager, trayPopups, wurmApi, logger, telemetry)
 {
     if (logger == null)
     {
         throw new ArgumentNullException("logger");
     }
     if (conditionsManager == null)
     {
         throw new ArgumentNullException("conditionsManager");
     }
     this.logger            = logger;
     this.conditionsManager = conditionsManager;
     LockedLogTypes         = new[] { LogType.Event };
     lastActionFinished     = DateTime.Now;
     lastActionStarted      = DateTime.Now;
     lastEventLine          = string.Empty;
 }