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(), }); }
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"), }); }