internal void AddNewItem()
 {
     var item = new KeyValueItem { IsNew = true };
     item.DeleteCommand = new KeyValueItemDeleteCommand(this, item);
     ChangeMonitor monitor = new ChangeMonitor(this, item);
     monitor.PropertyChanged += new PropertyChangedEventHandler(monitor_PropertyChanged);
     changeMonitors.Add(monitor);
     list.Add(item);
 }
Пример #2
0
        internal static void Pulse()
        {
            try
            {
                if (!Player.IsValid)
                {
                    return;
                }

                ChangeMonitor.CheckForChanges();
                ActorHistory.UpdateActors();
                PositionCache.RecordPosition();

                // Mark Dungeon Explorer nodes as Visited if combat pulls us into it
                if (ProfileManager.CurrentProfileBehavior != null)
                {
                    Type profileBehaviorType = ProfileManager.CurrentProfileBehavior.GetType();
                    if (profileBehaviorType == typeof(ExploreDungeonTag))
                    {
                        ExploreDungeonTag exploreDungeonTag = (ExploreDungeonTag)ProfileManager.CurrentProfileBehavior;
                        exploreDungeonTag.MarkNearbyNodesVisited();
                    }
                }
                LoadOnceTag.RecordLoadOnceProfile();

                RiftTrial.PulseRiftTrial();
                CheckGamesPerHourStop();
                SkipCutScene();
                AdvanceConversation();
            }
            catch (Exception ex)
            {
                Logger.Log(ex.ToString());
            }
        }
Пример #3
0
 internal void UpdatePositionTraceState()
 {
     if (EventOptions.PositionChangeNotification)
     {
         if (_xChangeMonitor == null)
         {
             _xChangeMonitor = new ChangeMonitor();
             _xChangeMonitor.Bind(this, GraphAreaBase.XProperty);
             _xChangeMonitor.ChangeDetected += changeMonitor_ChangeDetected;
         }
         if (_yChangeMonitor == null)
         {
             _yChangeMonitor = new ChangeMonitor();
             _yChangeMonitor.Bind(this, GraphAreaBase.YProperty);
             _yChangeMonitor.ChangeDetected += changeMonitor_ChangeDetected;
         }
     }
     else
     {
         if (_xChangeMonitor != null)
         {
             _xChangeMonitor.ChangeDetected -= changeMonitor_ChangeDetected;
             _xChangeMonitor.Unbind();
             _xChangeMonitor = null;
         }
         if (_yChangeMonitor != null)
         {
             _yChangeMonitor.ChangeDetected -= changeMonitor_ChangeDetected;
             _yChangeMonitor.Unbind();
             _yChangeMonitor = null;
         }
     }
 }
Пример #4
0
        /// <summary>
        /// 添加缓存项
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <param name="dependency">缓存依赖</param>
        /// <returns></returns>
        public bool Add(string key, object value, ChangeMonitor dependency)
        {
            var policy = this.BuildDefaultPolicy();

            policy.ChangeMonitors.Add(dependency);
            return(Cache.Add(key, value, policy));
        }
Пример #5
0
        public object AddOrGetExisting(string key, object value, ChangeMonitor dependency)
        {
            var policy = this.BuildDefaultPolicy();

            policy.ChangeMonitors.Add(dependency);
            return(this.Cache.AddOrGetExisting(key, value, policy));
        }
Пример #6
0
 internal static void OutOfGamePulse()
 {
     ChangeMonitor.CheckForChanges();
     Player.UpdateOutOfGame();
     EventManager.Update();
     SelectBehavior();
 }
        /// <summary>
        /// 变化监控
        /// </summary>
        /// <param name="key">键值</param>
        /// <param name="value">数据</param>
        /// <param name="changeMonitor">变化监控</param>
        public void Set(string key, object value, ChangeMonitor changeMonitor)
        {
            CacheItemPolicy policy = new CacheItemPolicy();

            policy.ChangeMonitors.Add(changeMonitor);
            CurrentCache.Set(key, value, policy);
        }
Пример #8
0
    // Use this for initialization
    void Start()
    {
        monitor = new ChangeMonitor(true);

        monitor.Add(() => MaximumHealth);
        monitor.Add(() => Strength);
        monitor.Add <float>(() => WatchThisGrow, (newValue, priorValue) => newValue > priorValue);
    }
Пример #9
0
        public T AddOrGetExisting <T>(string key, T value, ChangeMonitor dependency)
        {
            var policy = this.BuildDefaultPolicy();

            policy.ChangeMonitors.Add(dependency);
            var result = this.Cache.AddOrGetExisting(key, value, policy);

            return(result is T ? (T)result : default(T));
        }
        /// <summary>
        /// Builds a <see cref="CacheItemPolicy"/> from a configuration element and adds a single <see cref="ChangeMonitor"/> to the policy.
        /// </summary>
        /// <param name="monitor"></param>
        /// <param name="objectCacheName"></param>
        /// <returns></returns>
        public virtual CacheItemPolicy GetCacheItemPolicy(ChangeMonitor monitor, string objectCacheName = null)
        {
            var policy = GetCacheItemPolicy(objectCacheName);

            if (monitor != null)
            {
                policy.ChangeMonitors.Add(monitor);
            }
            return(policy);
        }
Пример #11
0
        internal void AddNewItem()
        {
            var item = new KeyValueItem {
                IsNew = true
            };

            item.DeleteCommand = new KeyValueItemDeleteCommand(this, item);
            ChangeMonitor monitor = new ChangeMonitor(this, item);

            monitor.PropertyChanged += new PropertyChangedEventHandler(monitor_PropertyChanged);
            changeMonitors.Add(monitor);
            list.Add(item);
        }
Пример #12
0
 private void Disable()
 {
     Enabled             = false;
     TrinityCombat.Party = DefaultProviders.Party;
     Log.Info("Plugin disabled! ");
     CurrentBehavior?.Deactivate();
     BotMain.OnStart -= BotMain_OnStart;
     BotMain.OnStop  -= BotMain_OnStop;
     EventManager.Disable();
     EventManager.OnPulseOutOfGame -= Pulse;
     Service.OnUpdatePreview       -= ServiceOnUpdatePreview;
     Server.ShutdownServer();
     Client.ShutdownClient();
     TabUi.RemoveTab();
     ChangeMonitor.Disable();
 }
Пример #13
0
        /// <summary>
        /// Adds the MethodResult to cache.
        /// </summary>
        /// <param name="cache">The cache.</param>
        /// <param name="key">The key.</param>
        /// <param name="result">The result.</param>
        private void AddToCache(ObjectCache cache, string key, IMethodReturn result)
        {
            CacheItemPolicy policy = new CacheItemPolicy {
                SlidingExpiration = TimeSpan.FromMinutes(_timeSpan)
            };

            if (Type != null)
            {
                Type t = typeof(EntityChangeMonitor <>);
                t = t.MakeGenericType(Type);
                ChangeMonitor changeMonitor = Container.Resolve(t) as ChangeMonitor;

                policy.ChangeMonitors.Add(changeMonitor);
            }
            cache.Add(key, result.ReturnValue, policy);
        }
Пример #14
0
        //private void EditArea_DataItemUnShown(object sender, EditAreaDataItemArg e)
        //{
        //    foreach (var columnControl in FormulaColumns)
        //    {
        //        var fullFormula = AgentUICoreMediator.GetAgentUICoreMediator.formulaManager.GetFormula(columnControl.Column.CustomFormula.ID);
        //        if (fullFormula.FormulaItems.Any(x => x.ItemType == FormuaItemType.Column || !string.IsNullOrEmpty(x.RelationshipIDTail)))
        //        {
        //            e.DataItem.RemoveChangeMonitorByGenaralKey("formulaColumn" + AgentHelper.GetUniqueDataPostfix(e.DataItem));
        //        }
        //    }
        //}

        //private void EditArea_DataItemShown(object sender, EditAreaDataItemArg e)
        //{

        //}

        private void DataItem_RelatedDataTailOrColumnChanged(object sender, ChangeMonitor e)
        {
            if (e.GeneralKey.StartsWith("formulaColumn"))
            {
                if (EditArea.DataItemIsInEditMode(e.DataToCall))
                {
                    foreach (var columnControl in FormulaColumns.Where(x => x.Column.ID.ToString() == e.UsageKey))
                    {
                        var formulaColumn = FormulaColumns.First(x => x.Column.ID == columnControl.Column.ID).Column.ColumnCustomFormula;
                        var dataProperty  = e.DataToCall.GetProperty(columnControl.Column.ID);
                        if (dataProperty != null)
                        {
                            CalculateProperty(dataProperty, formulaColumn, e.DataToCall, false);
                        }
                    }
                }
            }
        }
Пример #15
0
        public void OnEnabled()
        {
            Enabled = true;
            Log.Info(" v{0} Enabled", Version);
            BotMain.OnStart += BotMain_OnStart;
            BotMain.OnStop  += BotMain_OnStop;
            CurrentBehavior  = DefaultBehavior;
            EventManager.Enable();
            BotHistory.Enable();
            TabUi.InstallTab();
            ChangeMonitor.Enable();

            Service.Connect();
            CommunicationThread.ThreadStart();

            // When start button is clicked, hooks are cleared,
            TreeHooks.Instance.OnHooksCleared += OnHooksCleared;
        }
Пример #16
0
        public void OnDisabled()
        {
            Enabled = false;
            Log.Info("Plugin disabled! ");

            if (CurrentBehavior != null)
            {
                CurrentBehavior.Deactivate();
            }

            BotMain.OnStart -= BotMain_OnStart;
            BotMain.OnStop  -= BotMain_OnStop;
            EventManager.Disable();
            EventManager.OnPulseOutOfGame += Pulse;
            Service.OnUpdatePreview       -= ServiceOnUpdatePreview;
            BotHistory.Disable();
            TabUi.RemoveTab();
            ChangeMonitor.Disable();
        }
Пример #17
0
 private void Enable()
 {
     if (!Application.Current.CheckAccess())
     {
         return;
     }
     Enabled             = true;
     TrinityCombat.Party = new AutoFollowPartyProvider();
     Log.Info(" v{0} Enabled", Version);
     BotMain.OnStart += BotMain_OnStart;
     BotMain.OnStop  += BotMain_OnStop;
     CurrentBehavior  = DefaultBehavior;
     EventManager.Enable();
     TabUi.InstallTab();
     ChangeMonitor.Enable();
     Server.ServerStartAttempts = 0;
     Client.ConnectionAttempts  = 0;
     Service.Connect();
     CommunicationThread.ThreadStart();
     TreeHooks.Instance.OnHooksCleared += OnHooksCleared;
 }
        void CustomAttributesEditor_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            property = (BindableProperty)e.NewValue;
            CustomEditorBinder.BindProperty(this, property);

            NameValueCollection value = (NameValueCollection)property.Value;
            list = new ObservableCollection<KeyValueItem>();
            foreach (string key in value)
            {
                var item = new KeyValueItem { Key = key, Value = value[key] };
                item.DeleteCommand = new KeyValueItemDeleteCommand(this, item);
                ChangeMonitor monitor = new ChangeMonitor(this, item);
                monitor.PropertyChanged += new PropertyChangedEventHandler(monitor_PropertyChanged);
                changeMonitors.Add(monitor);
                list.Add(item);
            }

            AddNewItem();

            this.Items.ItemsSource = list;
        }
Пример #19
0
        void CustomAttributesEditor_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            property = (BindableProperty)e.NewValue;
            CustomEditorBinder.BindProperty(this, property);

            NameValueCollection value = (NameValueCollection)property.Value;

            list = new ObservableCollection <KeyValueItem>();
            foreach (string key in value)
            {
                var item = new KeyValueItem {
                    Key = key, Value = value[key]
                };
                item.DeleteCommand = new KeyValueItemDeleteCommand(this, item);
                ChangeMonitor monitor = new ChangeMonitor(this, item);
                monitor.PropertyChanged += new PropertyChangedEventHandler(monitor_PropertyChanged);
                changeMonitors.Add(monitor);
                list.Add(item);
            }

            AddNewItem();

            this.Items.ItemsSource = list;
        }
Пример #20
0
 public void RemoveChangeMonitor(ChangeMonitor changeMonitor)
 {
     _changeMonitors.Remove(changeMonitor);
 }
Пример #21
0
 public ProxyRenderer()
 {
     canvasRenderersBySubmeshIndex = new Dictionary <int, CanvasRenderer>();
     canvasRendererPool            = new ProxyRendererObjectPool <CanvasRenderer>(CreateCanvasRenderer, ProxyRenderer.DestroyCanvasRenderer, 8);
     monitor = new ChangeMonitor(true);
 }
Пример #22
0
 internal static void InGamePulse()
 {
     ChangeMonitor.CheckForChanges();
     Player.Update();
     SelectBehavior();
 }
Пример #23
0
 private void OnEnable()
 {
     _monitor = GetComponent <ChangeMonitor>();
 }
 /// <summary>
 /// Builds a <see cref="CacheItemPolicy"/> from a configuration element and adds a single <see cref="ChangeMonitor"/> to the policy.
 /// </summary>
 /// <param name="monitor"></param>
 /// <param name="objectCacheName"></param>
 /// <returns></returns>
 public static CacheItemPolicy GetCacheItemPolicy(this ChangeMonitor monitor, string objectCacheName = null)
 {
     return(_provider.Value.GetCacheItemPolicy(monitor, objectCacheName));
 }
Пример #25
0
 public void AddChangeMonitor(ChangeMonitor changeMonitor)
 {
     _changeMonitors.Add(changeMonitor);
 }