コード例 #1
0
ファイル: LootHelper.cs プロジェクト: leorik/Zilon_Roguelike
        public static IEnumerable <IStaticObject> FindAvailableContainers(IEnumerable <IStaticObject> containers,
                                                                          IGraphNode observeNode, ISectorMap map)
        {
            if (containers is null)
            {
                throw new System.ArgumentNullException(nameof(containers));
            }

            foreach (var container in containers)
            {
                // Проверяем необходимость проверки контейнера
                var props = container.GetModule <IPropContainer>().Content.CalcActualItems();
                if (!props.Any())
                {
                    continue;
                }

                // Проверяем доступность контейнера для достижения
                var target    = container;
                var isVisible = LogicHelper.CheckTargetVisible(map, observeNode, target.Node);
                if (!isVisible)
                {
                    continue;
                }

                yield return(container);
            }
        }
コード例 #2
0
        public static IEnumerable <IPropContainer> FindAvailableContainers(IEnumerable <IPropContainer> containers,
                                                                           IMapNode observeNode, ISectorMap map)
        {
            foreach (var container in containers)
            {
                // Проверяем необходимость проверки контейнера
                var props = container.Content.CalcActualItems();
                if (!props.Any())
                {
                    continue;
                }

                // Проверяем доступность контейнера для достижения
                var target    = container;
                var isVisible = LogicHelper.CheckTargetVisible(map, observeNode, target.Node);
                if (!isVisible)
                {
                    continue;
                }

                yield return(container);
            }
        }