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; }