public SictGbsWindowZuusctand WindowSurveyScanView() { return(MengeWindow .FirstOrDefaultNullable((Kandidaat) => Kandidaat.AingangScnapscusTailObjektIdentLezteBerecne() is VonSensor.WindowSurveyScanView)); }
public void Berecne(int?sessionDurationRemaining) { if (null == GbsBaumWurzel) { return; } AstSidePanels = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("SidePanels", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase)); LayerShipUiAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("ShipUI", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 5, 1); var FensterLayerTarget = Optimat.EveOnline.AuswertGbs.Extension .FirstMatchingNodeFromSubtreeBreadthFirst(GbsBaumWurzel, (Kandidaat) => string.Equals("l_target", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase)); var WindowOverviewAst = Optimat.EveOnline.AuswertGbs.Extension .FirstMatchingNodeFromSubtreeBreadthFirst(GbsBaumWurzel, (Kandidaat) => string.Equals("OverView", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase)); AstLayerMenu = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && string.Equals("l_menu", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); AstLayerMain = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && string.Equals("l_main", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); AstLayerModal = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && string.Equals("l_modal", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); LayerSystemmenuAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("SystemMenu", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && string.Equals("l_systemmenu", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); LayerSystemmenuSysmenuAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( LayerSystemmenuAst, (Kandidaat) => Kandidaat.PyObjTypNameIsContainer() && string.Equals("sysmenu", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); LayerLoginAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("Login", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && string.Equals("l_login", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 3, 1); var InflightLayer = GbsBaumWurzel?.FirstMatchingNodeFromSubtreeBreadthFirst(c => (c?.PyObjTypName?.RegexMatchSuccessIgnoreCase("Layer") ?? false) && (c?.Name?.RegexMatchSuccessIgnoreCase("inflight") ?? false)); var InflightBracketLayer = InflightLayer?.FirstMatchingNodeFromSubtreeBreadthFirst(c => (c?.PyObjTypName?.RegexMatchSuccessIgnoreCase("Layer") ?? false) && (c?.Name?.RegexMatchSuccessIgnoreCase("bracket") ?? false)); var setInflightBracket = InflightBracketLayer ?.MatchingNodesFromSubtreeBreadthFirst(c => c?.PyObjTypName?.RegexMatchSuccessIgnoreCase("InSpaceBracket") ?? false, null, null, null, true) ?.Select(bracketNode => bracketNode?.AsInSpaceBracket()) ?.ToArrayIfNotEmpty(); var LayerSystemmenuAstMengeKandidaatLabelVersionAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( LayerSystemmenuAst, (Kandidaat) => Optimat.EveOnline.AuswertGbs.Glob.GbsAstTypeIstLabel(Kandidaat), null, 3, 1) .ConcatNullable( Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( LayerLoginAst, (Kandidaat) => Optimat.EveOnline.AuswertGbs.Glob.GbsAstTypeIstLabel(Kandidaat), null, 3, 1)) ?.ToArray(); if (null != LayerSystemmenuAst) { SystemmenuAuswert = new SictAuswertGbsSystemMenu(LayerSystemmenuAst); SystemmenuAuswert.Berecne(); } if (null != LayerSystemmenuAstMengeKandidaatLabelVersionAst) { foreach (var KandidaatLabelVersionAst in LayerSystemmenuAstMengeKandidaatLabelVersionAst) { var Text = KandidaatLabelVersionAst.LabelText(); if (null == Text) { continue; } var Match = Regex.Match(Text ?? "", VersionLabelRegexPattern, RegexOptions.IgnoreCase); if (!Match.Success) { continue; } VersionString = Match.Groups[1].Value; break; } } AstLayerModalMengeKandidaatWindow = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( AstLayerModal, (Kandidaat) => Regex.Match(Kandidaat.PyObjTypName ?? "", "MessageBox", RegexOptions.IgnoreCase).Success || Regex.Match(Kandidaat.PyObjTypName ?? "", "HybridWindow", RegexOptions.IgnoreCase).Success || Regex.Match(Kandidaat.PyObjTypName ?? "", "PopupWnd", RegexOptions.IgnoreCase).Success, null, 3, 1); LayerHintAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && string.Equals("l_hint", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); var SetTooltipNode = GbsBaumWurzel.MatchingNodesFromSubtreeBreadthFirst(k => k?.PyObjTypNameMatchesRegexPattern("TooltipGeneric|TooltipPanel") ?? false); var SetTooltip = SetTooltipNode?.Select(TooltipNode => TooltipNode?.AlsContainer())?.WhereNotDefault()?.ToArrayIfNotEmpty(); ModuleButtonHintAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("ModuleButtonTooltip", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && (true == Kandidaat.VisibleIncludingInheritance), 2, 1); AstLayerUtilmenu = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && string.Equals("l_utilmenu", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); AstLayerAbovemain = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => string.Equals("LayerCore", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && string.Equals("l_abovemain", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); MengeKandidaatAbovemainMessageAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( AstLayerAbovemain, (Kandidaat) => string.Equals("Message", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, 3, 1); MengeKandidaatAbovemainPanelEveMenuAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( AstLayerAbovemain, (Kandidaat) => string.Equals("PanelEveMenu", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, 3, 1); MengeKandidaatAbovemainPanelGroupAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( AstLayerAbovemain, (Kandidaat) => string.Equals("PanelGroup", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, 3, 1); LayerMainMengeKandidaatWindowAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( AstLayerMain, (Kandidaat) => true == Kandidaat.VisibleIncludingInheritance && (null != Kandidaat.Caption || null != Kandidaat.WindowID), null, 2, 1, true); MengeKandidaatWindowAst = Bib3.Glob.ListeEnumerableAgregiirt( new UINodeInfoInTree[][] { LayerMainMengeKandidaatWindowAst, AstLayerModalMengeKandidaatWindow, }) ?.WhereNotDefault() ?.ToArray(); MengeWindow = MengeKandidaatWindowAst ?.Select((WindowAst) => Optimat.EveOnline.AuswertGbs.Glob.WindowBerecneScpezTypFürGbsAst(WindowAst)) ?.WhereNotDefault() ?.ToArray(); MengeKandidaatMenuAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( AstLayerMenu, (Kandidaat) => Regex.Match(Kandidaat.PyObjTypName ?? "", "DropDownMenu", RegexOptions.IgnoreCase).Success, null, 2, 1); if (null != ModuleButtonHintAst) { ModuleButtonTooltipAuswert = new SictAuswertGbsModuleButtonTooltip(ModuleButtonHintAst); ModuleButtonTooltipAuswert.Berecne(); } if (null != MengeKandidaatAbovemainPanelEveMenuAst) { MengeKandidaatAbovemainPanelEveMenuAuswert = MengeKandidaatAbovemainPanelEveMenuAst .Select((GbsAst) => { var Auswert = new SictAuswertGbsPanelEveMenu(GbsAst); Auswert.Berecne(); return(Auswert); }).ToArray(); } if (null != MengeKandidaatAbovemainPanelGroupAst) { MengeKandidaatAbovemainPanelGroupAuswert = MengeKandidaatAbovemainPanelGroupAst .Select((GbsAst) => { var Auswert = new SictAuswertGbsPanelGroup(GbsAst); Auswert.Berecne(); return(Auswert); }).ToArray(); } var MengeKandidaatUtilmenu = (null == AstLayerUtilmenu) ? null : Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( GbsBaumWurzel, (Kandidaat) => (true == Kandidaat.VisibleIncludingInheritance) && string.Equals("UtilMenu", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, null, 1); Utilmenu = new[] { AstLayerUtilmenu.AlsUtilmenu() }.WhereNotDefault()?.ToArrayIfNotEmpty(); AuswertSidePanels = new SictAuswertGbsSidePanels(AstSidePanels); AuswertSidePanels.Berecne(); LayerShipUiAstAuswert = new SictAuswertGbsShipUi(LayerShipUiAst); LayerShipUiAstAuswert.Berecne(); AuswertLayerTarget = new SictAuswertGbsLayerTarget(FensterLayerTarget); AuswertLayerTarget.Berecne(); var AuswertSidePanelsAuswertPanelCurrentSystem = AuswertSidePanels.AuswertPanelCurrentSystem; var AuswertSidePanelsAuswertPanelRoute = AuswertSidePanels.AuswertPanelRoute; var AuswertSidePanelsAstInfoPanelMissions = AuswertSidePanels.AuswertPanelMissions; var Ergeebnis = new MemoryMeasurement { SessionDurationRemaining = sessionDurationRemaining, }; Ergeebnis.UserDefaultLocaleName = BotEngine.WinApi.Kernel32.GetUserDefaultLocaleName(); if (null != SystemmenuAuswert) { Ergeebnis.SystemMenu = SystemmenuAuswert.Ergeebnis; } var AstLayerMainGrööse = AstLayerMain?.Grööse; if (AstLayerMainGrööse.HasValue) { Ergeebnis.ScreenSize = new Bib3.Geometrik.Vektor2DInt((int)AstLayerMainGrööse.Value.A, (int)AstLayerMainGrööse.Value.B); } if (null != ModuleButtonTooltipAuswert) { Ergeebnis.ModuleButtonTooltip = ModuleButtonTooltipAuswert.Ergeebnis; } Ergeebnis.Menu = MengeKandidaatMenuAst?.Select(SictAuswertGbsMenu.ReadMenu)?.WhereNotDefault()?.ToArrayIfNotEmpty(); Ergeebnis.AbovemainMessage = MengeKandidaatAbovemainMessageAst ?.Select((GbsAst) => GbsAst?.LargestLabelInSubtree()?.AsUIElementTextIfTextNotEmpty()) ?.Where(Label => 0 < Label?.Text?.Length) ?.ToArrayIfNotEmpty(); if (null != MengeKandidaatAbovemainPanelEveMenuAuswert) { Ergeebnis.AbovemainPanelEveMenu = MengeKandidaatAbovemainPanelEveMenuAuswert .Select((Kandidaat) => Kandidaat.Ergeebnis) .Where((Kandidaat) => null != Kandidaat) ?.ToArrayIfNotEmpty(); } if (null != MengeKandidaatAbovemainPanelGroupAuswert) { Ergeebnis.AbovemainPanelGroup = MengeKandidaatAbovemainPanelGroupAuswert .Select((Kandidaat) => Kandidaat.Ergeebnis) .Where((Kandidaat) => null != Kandidaat) ?.ToArrayIfNotEmpty(); } IWindowStation WindowStationLobby = null; IWindowOverview WindowOverview = null; IWindowInventory[] MengeWindowInventory = null; if (null != MengeWindow) { var MengeWindowStack = MengeWindow .OfType <WindowStack>() .ToArray(); var MengeWindowStackWindow = MengeWindowStack .Select((WindowStack) => WindowStack.TabSelectedWindow) .Where((Window) => null != Window) .ToArray(); var MengeWindowMitAusWindowStackWindow = MengeWindow .ConcatNullable(MengeWindowStackWindow) ?.ToArrayIfNotEmpty(); var MengeWindowOverView = MengeWindowMitAusWindowStackWindow?.OfType <IWindowOverview>().ToArrayIfNotEmpty(); var MengeWindowChatChannel = MengeWindowMitAusWindowStackWindow?.OfType <WindowChatChannel>().ToArrayIfNotEmpty(); var MengeWindowSelectedItemView = MengeWindowMitAusWindowStackWindow?.OfType <IWindowSelectedItemView>().ToArrayIfNotEmpty(); var MengeWindowPeopleAndPlaces = MengeWindowMitAusWindowStackWindow?.OfType <WindowPeopleAndPlaces>().ToArrayIfNotEmpty(); var MengeWindowDroneView = MengeWindowMitAusWindowStackWindow?.OfType <IWindowDroneView>().ToArrayIfNotEmpty(); var MengeWindowFittingWindow = MengeWindowMitAusWindowStackWindow?.OfType <WindowShipFitting>().ToArrayIfNotEmpty(); var MengeWindowFittingMgmt = MengeWindowMitAusWindowStackWindow?.OfType <WindowFittingMgmt>().ToArrayIfNotEmpty(); var MengeWindowStationLobby = MengeWindowMitAusWindowStackWindow?.OfType <IWindowStation>().ToArrayIfNotEmpty(); var MengeWindowSurveyScanView = MengeWindowMitAusWindowStackWindow?.OfType <IWindowSurveyScanView>().ToArrayIfNotEmpty(); MengeWindowInventory = MengeWindowMitAusWindowStackWindow?.OfType <IWindowInventory>().ToArrayIfNotEmpty(); var MengeWindowAgentDialogue = MengeWindowMitAusWindowStackWindow?.OfType <WindowAgentDialogue>().ToArrayIfNotEmpty(); var MengeWindowAgentBrowser = MengeWindowMitAusWindowStackWindow?.OfType <WindowAgentBrowser>().ToArrayIfNotEmpty(); var MengeWindowTelecom = MengeWindowMitAusWindowStackWindow?.OfType <WindowTelecom>().ToArrayIfNotEmpty(); var MengeWindowRegionalMarket = MengeWindowMitAusWindowStackWindow?.OfType <WindowRegionalMarket>().ToArrayIfNotEmpty(); var MengeWindowMarketAction = MengeWindowMitAusWindowStackWindow?.OfType <WindowMarketAction>().ToArrayIfNotEmpty(); var MengeWindowItemSell = MengeWindowMitAusWindowStackWindow?.OfType <WindowItemSell>().ToArrayIfNotEmpty(); Ergeebnis.WindowStack = MengeWindowStack.ToArrayIfNotEmpty(); WindowOverview = MengeWindowOverView?.FirstOrDefault(); WindowStationLobby = MengeWindowStationLobby?.FirstOrDefault(); Ergeebnis.WindowOverview = MengeWindowOverView.ToArrayIfNotEmpty(); Ergeebnis.WindowChatChannel = MengeWindowChatChannel.ToArrayIfNotEmpty(); Ergeebnis.WindowSelectedItemView = MengeWindowSelectedItemView.ToArrayIfNotEmpty(); Ergeebnis.WindowPeopleAndPlaces = MengeWindowPeopleAndPlaces.ToArrayIfNotEmpty(); Ergeebnis.WindowDroneView = MengeWindowDroneView.ToArrayIfNotEmpty(); Ergeebnis.WindowShipFitting = MengeWindowFittingWindow.ToArrayIfNotEmpty(); Ergeebnis.WindowFittingMgmt = MengeWindowFittingMgmt.ToArrayIfNotEmpty(); Ergeebnis.WindowStation = MengeWindowStationLobby.ToArrayIfNotEmpty(); Ergeebnis.WindowSurveyScanView = MengeWindowSurveyScanView.ToArrayIfNotEmpty(); Ergeebnis.WindowInventory = MengeWindowInventory; Ergeebnis.WindowAgentDialogue = MengeWindowAgentDialogue; Ergeebnis.WindowAgentBrowser = MengeWindowAgentBrowser; Ergeebnis.WindowTelecom = MengeWindowTelecom; Ergeebnis.WindowRegionalMarket = MengeWindowRegionalMarket; Ergeebnis.WindowMarketAction = MengeWindowMarketAction; Ergeebnis.WindowItemSell = MengeWindowItemSell; Ergeebnis.WindowProbeScanner = MengeWindowMitAusWindowStackWindow?.OfType <IWindowProbeScanner>().ToArrayIfNotEmpty(); var MengeWindowSonstige = MengeWindow .Except( new IEnumerable <IWindow>[] { MengeWindowStack, MengeWindowOverView, MengeWindowChatChannel, MengeWindowPeopleAndPlaces, MengeWindowSelectedItemView, MengeWindowSurveyScanView, MengeWindowDroneView, MengeWindowFittingWindow, MengeWindowFittingMgmt, MengeWindowStationLobby, MengeWindowInventory, MengeWindowAgentDialogue, MengeWindowAgentBrowser, MengeWindowTelecom, MengeWindowRegionalMarket, MengeWindowMarketAction, MengeWindowItemSell, Ergeebnis.WindowProbeScanner, }.ConcatNullable()) .ToArrayIfNotEmpty(); Ergeebnis.WindowOther = MengeWindowSonstige; } Ergeebnis.VersionString = VersionString; Ergeebnis.Neocom = AuswertSidePanels?.Neocom; Ergeebnis.InfoPanelCurrentSystem = AuswertSidePanelsAuswertPanelCurrentSystem?.ErgeebnisScpez; Ergeebnis.InfoPanelRoute = AuswertSidePanelsAuswertPanelRoute?.ErgeebnisScpez; Ergeebnis.InfoPanelMissions = AuswertSidePanelsAstInfoPanelMissions?.ErgeebnisScpez; var InfoPanelButtonCurrentSystem = AuswertSidePanels.InfoPanelButtonLocationInfoAst.AsUIElementIfVisible(); var InfoPanelButtonRoute = AuswertSidePanels.InfoPanelButtonRouteAst.AsUIElementIfVisible(); var InfoPanelButtonMissions = AuswertSidePanels.InfoPanelButtonMissionAst.AsUIElementIfVisible(); Ergeebnis.InfoPanelButtonCurrentSystem = InfoPanelButtonCurrentSystem; Ergeebnis.InfoPanelButtonRoute = InfoPanelButtonRoute; Ergeebnis.InfoPanelButtonMissions = InfoPanelButtonMissions; Ergeebnis.InfoPanelButtonIncursions = AuswertSidePanels?.InfoPanelButtonIncursionsAst?.AsUIElementIfVisible(); Ergeebnis.Utilmenu = Utilmenu; Ergeebnis.ShipUi = LayerShipUiAstAuswert.Ergeebnis; Ergeebnis.Target = AuswertLayerTarget?.SetTarget?.ToArrayIfNotEmpty(); Ergeebnis.Tooltip = SetTooltip; Ergeebnis.InflightBracket = setInflightBracket; this.AuswertErgeebnis = Ergeebnis; }
public void Aktualisiire( SictAutomatZuusctand AutomaatZuusctand, VonSensorikMesung AusScnapscusAuswertungZuusctand) { if (null == AutomaatZuusctand) { return; } var AgregatioonAusTransitionInfo = this.AgregatioonAusTransitionInfo; var ZaitMili = AutomaatZuusctand.NuzerZaitMili; var OverviewUndTarget = AutomaatZuusctand.OverviewUndTarget; /* * 2015.03.12 * * Ersaz durc ToCustomBotSnapshot * var GbsBaum = AutomaatZuusctand.VonNuzerMeldungZuusctandTailGbsBaum; * */ var GbsBaum = AutomaatZuusctand.ListeScnapscusLezteAuswertungErgeebnisNaacSimu; var MengeWindow = this.MengeWindow; var ListeAbovemainMessageAuswertMitZait = this.ListeAbovemainMessageAuswertMitZait; var ScnapscusWindowOverview = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.WindowOverview; var NeocomClockZaitKalenderModuloTaagStringUndMinMax = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.NeocomClockZaitKalenderModuloTaagMinMax; var ScnapscusWindowOverviewZaileInputFookusExklusiiv = (null == ScnapscusWindowOverview) ? null : ScnapscusWindowOverview.ZaileMitInputFookusExklusiiv(); var ScnapscusMengeWindow = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.MengeWindowBerecne(); var ScnapscusMengeWindowSictbar = ExtractFromOldAssembly.Bib3.Extension.WhereNullable(ScnapscusMengeWindow, (Kandidaat) => null == Kandidaat ? false : (true == Kandidaat.Sictbar)) .ToArrayNullable(); var ScnapscusMengeMenu = (null == AusScnapscusAuswertungZuusctand) ? null : AusScnapscusAuswertungZuusctand.MengeMenu; if (null == AgregatioonAusTransitionInfo) { this.AgregatioonAusTransitionInfo = AgregatioonAusTransitionInfo = new SictGbsAgregatioonAusTransitionInfo(); } AgregatioonAusTransitionInfo.Agregiire(AutomaatZuusctand); if (null == MengeWindow) { this.MengeWindow = MengeWindow = new List <SictGbsWindowZuusctand>(); } if (NeocomClockZaitKalenderModuloTaagStringUndMinMax.HasValue) { this.NeocomClockZaitModuloTaagMinMax = NeocomClockZaitKalenderModuloTaagStringUndMinMax.Value; } var ListeAusGbsAbovemainMessageMitZait = AutomaatZuusctand.ListeAusGbsAbovemainMessageMitZait(); var ListeAusGbsAbovemainMessageMitZaitLezte = (null == ListeAusGbsAbovemainMessageMitZait) ? null : ListeAusGbsAbovemainMessageMitZait.LastOrDefault(); if (null != AusScnapscusAuswertungZuusctand) { if (null != AusScnapscusAuswertungZuusctand.InfoPanelLocationInfo) { InfoPanelLocationInfoSictbarLezteZaitMili = ZaitMili; } if (null != AusScnapscusAuswertungZuusctand.InfoPanelRoute) { InfoPanelRouteSictbarLezteZaitMili = ZaitMili; } if (null != AusScnapscusAuswertungZuusctand.InfoPanelMissions) { InfoPanelMissionsSictbarLezteZaitMili = ZaitMili; } } SictGbsWindowZuusctand.ZuZaitAingangMengeObjektScnapscus( ZaitMili, ScnapscusMengeWindowSictbar, MengeWindow, false, AgregatioonAusTransitionInfo); { // Window entferne welce zu lange nit meer geöfnet sind. MengeWindow.RemoveAll((Kandidaat) => !Kandidaat.InLezteScnapscusSictbar()); } { var MengeWindowGrupe = MengeWindow.GroupBy((Kandidaat) => Kandidaat.GbsAstHerkunftAdrese).ToArray(); if (MengeWindowGrupe.Any((Grupe) => 1 < Grupe.Count())) { // Temp für Debug Verzwaigung } } { // Berecnung ListeAbovemainMessageAuswertMitZait if (null != ListeAusGbsAbovemainMessageMitZaitLezte) { var ListeAusGbsAbovemainMessageLezte = ListeAusGbsAbovemainMessageMitZaitLezte.Wert; var ListeAusGbsAbovemainMessageLezteText = ListeAusGbsAbovemainMessageLezte.LabelText; if (null != ListeAusGbsAbovemainMessageLezteText) { if (null != ListeAusGbsAbovemainMessageLezte) { if (null == ListeAbovemainMessageAuswertMitZait) { this.ListeAbovemainMessageAuswertMitZait = ListeAbovemainMessageAuswertMitZait = new List <SictVerlaufBeginUndEndeRef <SictMessageStringAuswert> >(); } SictVerlaufBeginUndEndeRef <SictMessageStringAuswert> AbovemainMessageAuswertMitZait = ListeAbovemainMessageAuswertMitZait .LastOrDefault((Kandidaat) => Kandidaat.BeginZait == ListeAusGbsAbovemainMessageMitZaitLezte.BeginZait); if (null == AbovemainMessageAuswertMitZait) { var AbovemainMessageAuswert = new SictMessageStringAuswert(ListeAusGbsAbovemainMessageLezteText); AbovemainMessageAuswertMitZait = new SictVerlaufBeginUndEndeRef <SictMessageStringAuswert>( ListeAusGbsAbovemainMessageMitZaitLezte.BeginZait, ListeAusGbsAbovemainMessageMitZaitLezte.EndeZait, AbovemainMessageAuswert); AbovemainMessageAuswert.Berecne(); ListeAbovemainMessageAuswertMitZait.Add(AbovemainMessageAuswertMitZait); if (AbovemainMessageAuswert.ClusterShutdownZaitDistanz.HasValue) { AbovemainMessageClusterShutdownLezte = AbovemainMessageAuswertMitZait; } } } } } } ListeAbovemainMessageDronesLezteAuswertMitZait = ListeAbovemainMessageAuswertMitZait .LastOrDefaultNullable((Kandidaat) => null == Kandidaat.Wert ? false : (Kandidaat.Wert.DroneBandwithAvailableMili.HasValue || Kandidaat.Wert.DroneCommandRange.HasValue || Kandidaat.Wert.DroneControlCountScrankeMax.HasValue)); ListeAbovemainMessageDronesLezteAlter = ZaitMili - (null == ListeAbovemainMessageDronesLezteAuswertMitZait ? (Int64?)null : (ListeAbovemainMessageDronesLezteAuswertMitZait.EndeZait ?? ZaitMili)); if (null != ListeAbovemainMessageAuswertMitZait) { foreach (var AbovemainMessageAuswertMitZait in ListeAbovemainMessageAuswertMitZait.Reversed().Take(4)) { if (AbovemainMessageAuswertMitZait.EndeZait.HasValue) { continue; } var AbovemainMessageMitZait = ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable( ListeAusGbsAbovemainMessageMitZait, (Kandidaat) => Kandidaat.BeginZait == AbovemainMessageAuswertMitZait.BeginZait); if (null == AbovemainMessageMitZait) { AbovemainMessageAuswertMitZait.EndeZait = ZaitMili; } else { AbovemainMessageAuswertMitZait.EndeZait = AbovemainMessageMitZait.EndeZait; } } { // Naacricte welce älter sind als Viir minuute entferne var ListeAbovemainMessageAuswertMitZaitZuErhalteZaitScranke = ZaitMili - 1000 * 60 * 4; ListeAbovemainMessageAuswertMitZait .RemoveAll((Kandidaat) => Kandidaat.BeginZait < ListeAbovemainMessageAuswertMitZaitZuErhalteZaitScranke); } } { // Berecnung ListeGbsMenu // Menge Menu werd geordnet für den Fal das in aine Scnapscus meerere Menu auftauce // 2014.02.27 Beobactung: lezte Menu erhält 0=InGbsZIndex -> noieste isc am waiteste vorne (okludiirt andere) var ScnapscusListeMenu = (null == ScnapscusMengeMenu) ? null : ScnapscusMengeMenu /* * 2015.09.01 * Änderung InGbsBaumAstIndex: Übernaame von noie Sensor InTreeIndex: Element occludes other Elements with lower Value. * * .OrderByDescending((ScnapscusMenu) => ScnapscusMenu.InGbsBaumAstIndex ?? -1) */ .OrderBy((ScnapscusMenu) => ScnapscusMenu.InGbsBaumAstIndex ?? -1) .ToArray(); var ScnapscusListeMenuFrüüheste = ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable(ScnapscusListeMenu); var ScnapscusListeMenuFrüühesteListeEntry = (null == ScnapscusListeMenuFrüüheste) ? null : ScnapscusListeMenuFrüüheste.ListeEntry; var MenuKaskaadeLezte = ExtractFromOldAssembly.Bib3.Extension.LastOrDefaultNullable(ListeMenuKaskaade); if (null == ScnapscusListeMenuFrüühesteListeEntry) { if (null != MenuKaskaadeLezte) { MenuKaskaadeLezte.AingangScnapscusLeer(ZaitMili); } MenuKaskaadeLezte = null; } else { GbsElement MenuWurzelAnnaameInitiaal = null; var MengeAufgaabeZuusctand = AutomaatZuusctand.MengeAufgaabeZuusctand; var ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame = AutomaatZuusctand.ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame .ToArrayNullable(); if (null != ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame) { foreach (var ScritLezteWirkungAufgaabePfaadZuBlatMitGrupePrioNaame in ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame) { if (null == ScritLezteWirkungAufgaabePfaadZuBlatMitGrupePrioNaame.Key) { continue; } foreach (var AufgaabeAst in ScritLezteWirkungAufgaabePfaadZuBlatMitGrupePrioNaame.Key) { var AufgaabeAstAufgaabeParam = AufgaabeAst.AufgaabeParam as AufgaabeParamAndere; if (null == AufgaabeAstAufgaabeParam) { continue; } var AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt = AufgaabeAstAufgaabeParam.MenuWurzelGbsObjekt; if (null == AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt) { continue; } var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdentNulbar = (Int64?)AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt.Ident; if (!AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdentNulbar.HasValue) { continue; } var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdent = AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdentNulbar.Value; var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläce = AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt.InGbsFläce; if (null == AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläce) { continue; } var AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläceVergröösertFürTestÜberscnaidung = AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläce.Vergröösert(40, 10); var ScnapscusAufgaabeMenuWurzelTarget = AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt as ShipUiTarget; var ScnapscusAufgaabeMenuWurzelOverviewRow = (GbsElement)(AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt as VonSensor.OverviewZaile); bool AnnaameMenuPasendZuAusAufgaabeMenuWurzel = true; var ScnapscusLezteMenuWurzelGbsObjektTarget = AusScnapscusAuswertungZuusctand.TargetEnthaltendGbsAstBerecne(AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt); var ScnapscusLezteMenuWurzelGbsObjektOverviewRow = (null == ScnapscusWindowOverview) ? null : ScnapscusWindowOverview.OverviewRowEnthaltendGbsAstBerecne(AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt); { /* * 2014.04.22 Beobactung Probleem: * In vorherige Scrit für OverviewZaile geöfnete Menu werd waiterverwendet als Menu welces für ain in Inventory angezaigte Objekt ersctelt werde solte. * In Folge werd der falsce Cargo Container Abandoned. * * Daher Ainfüürung zuusäzlice Bedingung: * Menu früheste Fläce mus überscnaide mit MenuWurzelGbsObjektAbbild.Fläce * */ // Bedingung: Fläce von ScnapscusAufgaabeMenuWurzelTarget und Menu müsen sic scnaide if (OrtogoonInt.Scnitfläce( AufgaabeAstAufgaabeParamMenuWurzelGbsObjektFläceVergröösertFürTestÜberscnaidung, ScnapscusListeMenuFrüüheste.InGbsFläce).IsLeer) { AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false; } } { /* * 2014.04.22 Beobactung Probleem: * In vorherige Scrit für OverviewZaile geöfnete Menu werd waiterverwendet als Menu welces für ain in Inventory angezaigte Objekt ersctelt werde solte. * In Folge werd der falsce Cargo Container Abandoned. * * Daher 2014.04.29 Ainfüürung zuusäzlice Bedingung: * Fals MenuWurzelGbsObjekt in aine Window enthalte isc mus diises das vorderste Window sain. * */ if (null == GbsBaum || null == MengeWindow) { AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false; } else { SictGbsWindowZuusctand MenuWurzelGbsObjektWindow = null; foreach (var KandidaatGbsWindow in MengeWindow) { var GbsWindowHerkunftAdrese = KandidaatGbsWindow.GbsAstHerkunftAdrese; if (!GbsWindowHerkunftAdrese.HasValue) { continue; } var GbsWindowAst = GbsBaum.SuuceFlacMengeGbsAstFrühesteMitIdent(GbsWindowHerkunftAdrese.Value); if (null == GbsWindowAst) { continue; } if (null != GbsWindowAst.SuuceFlacMengeGbsAstFrühesteMitIdent(AufgaabeAstAufgaabeParamMenuWurzelGbsObjektIdent)) { MenuWurzelGbsObjektWindow = KandidaatGbsWindow; } } if (null != MenuWurzelGbsObjektWindow) { /* * 2015.09.01 * Änderung InGbsBaumAstIndex: Übernaame von noie Sensor InTreeIndex: Element occludes other Elements with lower Value. * if (MengeWindow.Any((GbsWindow) => GbsWindow.ZIndex.HasValue && GbsWindow.ZIndex < (MenuWurzelGbsObjektWindow.ZIndex ?? int.MaxValue))) */ if (MengeWindow.Any((GbsWindow) => GbsWindow.ZIndex.HasValue && GbsWindow.ZIndex > (MenuWurzelGbsObjektWindow.ZIndex ?? int.MaxValue))) { // Ain anderes Window befindet sic waiter vorne als das Window welces MenuWurzelGbsObjekt enthalt. AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false; } } } } if (null != ScnapscusAufgaabeMenuWurzelTarget) { if (null == ScnapscusLezteMenuWurzelGbsObjektTarget) { AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false; } else { if (null == ScnapscusAufgaabeMenuWurzelTarget.InGbsFläce || null == ScnapscusLezteMenuWurzelGbsObjektTarget.InGbsFläce) { AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false; } else { var BeweegungSctreke = ScnapscusLezteMenuWurzelGbsObjektTarget.InGbsFläce.ZentrumLaage - ScnapscusAufgaabeMenuWurzelTarget.InGbsFläce.ZentrumLaage; if (!(BeweegungSctreke.Betraag < 4)) { // Target solte zwisce deen zwai Scnapscus nit beweegt haabe. AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false; } } var KandidaatMenuEntryIndikatorTarget = ScnapscusListeMenuFrüühesteListeEntry.MenuEntryTargetUnLock(); if (null == KandidaatMenuEntryIndikatorTarget) { AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false; } } } if (null != ScnapscusAufgaabeMenuWurzelOverviewRow) { if (null == ScnapscusLezteMenuWurzelGbsObjektOverviewRow) { AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false; } else { if (!(ObjektMitIdentInt64.Identisc(ScnapscusLezteMenuWurzelGbsObjektOverviewRow, ScnapscusWindowOverviewZaileInputFookusExklusiiv))) { AnnaameMenuPasendZuAusAufgaabeMenuWurzel = false; } } } if (!AnnaameMenuPasendZuAusAufgaabeMenuWurzel) { continue; } MenuWurzelAnnaameInitiaal = AufgaabeAstAufgaabeParamMenuWurzelGbsObjekt; } } } Action MenuKaskaadeKonstrukt = delegate() { MenuKaskaadeLezte = new SictGbsMenuKaskaadeZuusctand( ZaitMili, ScritLezteWirkungMengeAufgaabePfaadZuBlatMitGrupePrioNaame, MenuWurzelAnnaameInitiaal, ScnapscusListeMenu); ListeMenuKaskaade.Enqueue(MenuKaskaadeLezte); }; if (null == MenuKaskaadeLezte) { /* * 2015.01.16 * * MenuKaskaadeLezte = new SictGbsMenuKaskaadeZuusctand(ZaitMili, MenuWurzelAnnaameInitiaal, ScnapscusListeMenu); * ListeMenuKaskaade.Enqueue(MenuKaskaadeLezte); * */ MenuKaskaadeKonstrukt(); } else { if (!MenuKaskaadeLezte.AingangScnapscus(ZaitMili, ScnapscusListeMenu)) { /* * 2015.01.16 * * MenuKaskaadeLezte = new SictGbsMenuKaskaadeZuusctand(ZaitMili, MenuWurzelAnnaameInitiaal, ScnapscusListeMenu); * ListeMenuKaskaade.Enqueue(MenuKaskaadeLezte); * */ MenuKaskaadeKonstrukt(); } } } ListeMenuKaskaade.ListeKürzeBegin(30); var ListeMenu = (null == MenuKaskaadeLezte) ? null : MenuKaskaadeLezte.ListeMenu; var AusButtonListSurroundingsMenu = ExtractFromOldAssembly.Bib3.Extension.FirstOrDefaultNullable( ListeMenu, ButtonListSurroundingsMenuPrädikaatTailSctaatisc); if (null != AusButtonListSurroundingsMenu) { if (1 < AusButtonListSurroundingsMenu.ListeScnapscusZuZaitAingangBisherAnzaal) { // Übernaame ersct bai meer als ain Scnapscus da eventuel in früühescte Scnapscus noc nit ale Entry enthalte AusButtonListSurroundingsMenuLezteMitBeginZait = AusButtonListSurroundingsMenu.SictWertMitZaitBerecneFürBeginZait <SictGbsMenuZuusctand>(); } } } }