public static void Load(Ship_Game.ScreenManager screenManager, bool loadingIsSlow, params GameScreen[] screensToLoad)
 {
     GameScreen[] screens = screenManager.GetScreens();
     for (int i = 0; i < (int)screens.Length; i++)
     {
         screens[i].ExitScreen();
     }
     screenManager.AddScreen(new LoadingScreen(screenManager, loadingIsSlow, screensToLoad));
 }
 public bool HandleInput(InputState input, Ship_Game.ScreenManager ScreenManager, Camera2d camera)
 {
     Vector2 RectPos = camera.GetScreenSpaceFromWorldSpace(new Vector2((float)this.BaseRect.X, (float)this.BaseRect.Y));
     Rectangle moddedRect = new Rectangle((int)RectPos.X, (int)RectPos.Y, this.BaseRect.Width, this.BaseRect.Height);
     Vector2 RectPos2 = camera.GetScreenSpaceFromWorldSpace(new Vector2((float)this.UnlocksRect.X, (float)this.UnlocksRect.Y));
     Rectangle moddedRect2 = new Rectangle((int)RectPos2.X, (int)RectPos2.Y, this.UnlocksRect.Width, this.UnlocksRect.Height);
     Vector2 RectPos3 = camera.GetScreenSpaceFromWorldSpace(new Vector2((float)this.IconRect.X, (float)this.IconRect.Y));
     Rectangle moddedRect3 = new Rectangle((int)RectPos3.X, (int)RectPos3.Y, this.IconRect.Width, this.IconRect.Height);
     if (HelperFunctions.CheckIntersection(moddedRect, input.CursorPosition) || HelperFunctions.CheckIntersection(moddedRect2, input.CursorPosition))
     {
         if (this.nodeState != NodeState.Hover)
         {
             AudioManager.PlayCue("mouse_over4");
         }
         this.nodeState = NodeState.Hover;
         if (input.InGameSelect)
         {
             this.nodeState = NodeState.Press;
             return true;
         }
         if (input.RightMouseClick)
         {
             this.screen.RightClicked = true;
             ScreenManager.AddScreen(new ResearchPopup(this.screen.empireUI.screen, new Rectangle(0, 0, 600, 600), this.tech.UID));
             return false;
         }
     }
     else
     {
         this.nodeState = NodeState.Normal;
     }
     if (!HelperFunctions.CheckIntersection(moddedRect3, input.CursorPosition))
     {
         foreach (UnlocksGrid.GridItem gridItem in this.grid.GridOfUnlocks)
         {
             Vector2 RectPos4 = camera.GetScreenSpaceFromWorldSpace(new Vector2((float)gridItem.rect.X, (float)gridItem.rect.Y));
             Rectangle moddedRect4 = new Rectangle((int)RectPos4.X, (int)RectPos4.Y, gridItem.rect.Width, gridItem.rect.Height);
             if (!HelperFunctions.CheckIntersection(moddedRect4, input.CursorPosition))
             {
                 continue;
             }
             string tip = string.Concat(gridItem.item.privateName, "\n\n", gridItem.item.Description);
             if (gridItem.item.HullUnlocked == null)
             {
                 ToolTip.CreateTooltip(tip, ScreenManager);
             }
             else
             {
                 ToolTip.CreateTooltip(string.Concat(ResourceManager.HullsDict[gridItem.item.HullUnlocked].Name, " (", Localizer.GetRole(ResourceManager.HullsDict[gridItem.item.HullUnlocked].Role, EmpireManager.GetEmpireByName(screen.empireUI.screen.PlayerLoyalty)), ")"), ScreenManager);
             }
         }
     }
     else
     {
         ToolTip.CreateTooltip(string.Concat("Right Click to Expand \n\n", Localizer.Token(ResourceManager.TechTree[this.tech.UID].DescriptionIndex)), ScreenManager);
     }
     return false;
 }