コード例 #1
0
        private void ButtonRemoved(ButtonRemoved e)
        {
            DynamicActionInfo removedActionInfo;

            lock (_cacheLock) {
                removedActionInfo = _dynamicActionInfoList.FirstOrDefaultWithContext(e);
                if (removedActionInfo == null)
                {
                    return;
                }
                _dynamicActionInfoList.Remove(removedActionInfo);

                var lastIndex = removedActionInfo.Index;
                foreach (var dynamicActioninfo in _dynamicActionInfoList)
                {
                    if (dynamicActioninfo.IsAfter(e))
                    {
                        if (dynamicActioninfo.Index > lastIndex)
                        {
                            lastIndex = dynamicActioninfo.Index;
                        }
                        dynamicActioninfo.Index--;
                    }
                }
            }

            //we only have to change the one action that changed, as the handler is smart enough to refresh everything else around
            PublishChangeEventsForChangedActions(removedActionInfo);
        }
コード例 #2
0
ファイル: ButtonManager.cs プロジェクト: EikeStein/HexMex
        public void RemoveButton(Button button)
        {
            if (Buttons.All(b => b.Value != button))
            {
                return;
            }
            var hexagonNode = Buttons.First(b => b.Value == button).Key;

            Buttons.Remove(hexagonNode);
            ButtonRemoved?.Invoke(this, button);
        }