예제 #1
0
        static public ISquadronUI AsSquadronUI(this UINodeInfoInTree squadronUINode)
        {
            if (!(squadronUINode?.VisibleIncludingInheritance ?? false))
            {
                return(null);
            }

            return(new SquadronUI(squadronUINode?.AsUIElementIfVisible())
            {
                SetAbilityIcon =
                    squadronUINode?.MatchingNodesFromSubtreeBreadthFirst(node => node.PyObjTypNameMatchesRegexPatternIgnoreCase(AbilityIconPyTypeName))
                    ?.Select(AsSquadronAbilityIcon)?.WhereNotDefault()?.OrderByCenterVerticalDown()?.ToArrayIfNotEmpty(),

                Squadron =
                    squadronUINode?.FirstMatchingNodeFromSubtreeBreadthFirst(node => (node?.VisibleIncludingInheritance ?? false) && node.PyObjTypNameMatchesRegexPatternIgnoreCase("SquadronCont"))?.AsSquadronContainer(),
            });
        }
예제 #2
0
        static public ISquadronsUI AsSquadronsUI(this UINodeInfoInTree squadronsNode)
        {
            if (!(squadronsNode?.VisibleIncludingInheritance ?? false))
            {
                return(null);
            }

            var squadronsContainer = squadronsNode?.AlsContainer();

            var setSquadronUINode =
                squadronsNode?.MatchingNodesFromSubtreeBreadthFirst(node => node.PyObjTypNameMatchesRegexPatternIgnoreCase("SquadronUI"));

            var buttonFromPyTypeName = new Func <string, IUIElement>(pyTypeNameRegexPattern =>
                                                                     squadronsNode?.FirstMatchingNodeFromSubtreeBreadthFirst(node => node.PyObjTypNameMatchesRegexPatternIgnoreCase(pyTypeNameRegexPattern))?.AsUIElementIfVisible());

            return(new SquadronsUI(squadronsContainer)
            {
                SetSquadron = setSquadronUINode?.Select(node => node?.AsSquadronUI())?.WhereNotDefault()?.OrderBy(squadronUI => squadronUI?.RegionCenter()?.A)?.ToArrayIfNotEmpty(),
                LaunchAllButton = buttonFromPyTypeName("ButtonLaunchAll"),
                OpenBayButton = buttonFromPyTypeName("ButtonOpenBay"),
                RecallAllButton = buttonFromPyTypeName("ButtonRecallAll"),
            });
        }