public override void Process(InitialPlayerSync packet) { this.packet = packet; loadingMultiplayerWaitItem = WaitScreen.Add(Language.main.Get("Nitrox_SyncingWorld")); cumulativeProcessorsRan = 0; Multiplayer.Main.StartCoroutine(ProcessInitialSyncPacket(this, null)); }
public void ReloadPreview(double scale, Thickness margin, PageOrientation pageOrientation, PaperSize paperSize) { try { FitToPage_Scale(); scale = Scale; PrintControlView.ScalePreviewPaneVisibility(false); ReloadingPreview = true; ShowWaitScreen(); var printSize = GetPrintSize(paperSize, pageOrientation); var visual = GetScaledVisual(scale); CreatePaginator(visual, printSize); var visualPaginator = ((VisualPaginator)Paginator); visualPaginator.Initialize(IsMarkPageNumbers); PagesAcross = visualPaginator.HorizontalPageCount; ApproaxNumberOfPages = MaxCopies = Paginator.PageCount; if (Scale == 1) { NumberOfPages = ApproaxNumberOfPages; } DisplayPagePreviewsAll(visualPaginator); ReloadingPreview = false; } catch (Exception ex) { } finally { WaitScreen.Hide(); } }
protected void mvConference_ActiveViewChanged(object sender, EventArgs e) { MultiView mv = (MultiView)sender; switch (mv.ActiveViewIndex) { case 0: //Start break; case 1: //Wait WaitScreen.IncidentId = incidentId; WaitScreen.Start(); break; case 2: //Connect LiveConnect.IncidentId = incidentId; LiveConnect.Start(); break; case 3: //Survey Survey.IncidentId = incidentId; Survey.Start(); break; case 4: //Error ErrorControl.Start(); break; default: break; } upPage.Update(); }
private void ShowWaitScreen() { if (FullScreenPrintWindow != null) { WaitScreen.Show("Loading..."); } }
private static void SetLoadingComplete() { PropertyInfo property = PAXTerrainController.main.GetType().GetProperty("isWorking"); property.SetValue(PAXTerrainController.main, false, null); WaitScreen waitScreen = (WaitScreen)ReflectionHelper.ReflectionGet <WaitScreen>(null, "main", false, true); waitScreen.ReflectionCall("Hide"); }
public static IEnumerator LoadAsync() { WaitScreen.Item item = WaitScreen.Add("Loading Multiplayer", null); WaitScreen.ShowImmediately(); Main.StartSession(); yield return(new WaitUntil(() => Main.InitialSyncCompleted)); WaitScreen.Remove(item); SetLoadingComplete(); }
public static IEnumerator LoadAsync() { WaitScreen.Item item = WaitScreen.Add("Loading Multiplayer", null); WaitScreen.ShowImmediately(); Main.StartSession(); yield return(new WaitUntil(() => Main.InitialSyncCompleted == true)); PropertyInfo property = PAXTerrainController.main.GetType().GetProperty("isWorking"); property.SetValue(PAXTerrainController.main, false, null); WaitScreen.Remove(item); }
WaitScreen() { //save time instead of searching for the game controller //check if the instance is not null, we are creating more than one instance, warn us if (instance != null) { Debug.LogError("There's an instance already created, click on the next error to check it", gameObject); Debug.LogError("Original WaitScreen instance is", instance.gameObject); return; } instance = this; }
// Start is called before the first frame update void Start() { helpBg.enabled = false; FindObjectOfType <AudioManager>().Play("dawn"); _waitScreen = GameObject.Find(_WSObj).GetComponent <WaitScreen>(); _waitScreenMain = GameObject.Find(_WSMainObj).GetComponent <WaitScreen>(); _move = GameObject.Find(_MoveObj).GetComponent <Move>(); _countDown = GameObject.Find(_countDownObj).GetComponent <CountDown>(); winButton = GameObject.Find(winBTname).GetComponent <Button>(); winText = GameObject.Find(winTextName).GetComponent <Text>(); winButton.gameObject.SetActive(false); winText.gameObject.SetActive(false); helpText = GameObject.Find(helpTextName).GetComponent <Text>(); helpText.gameObject.SetActive(false); }
public static void SubnauticaLoadingCompleted() { if (Main.IsMultiplayer()) { Main.InitialSyncCompleted = false; Main.StartCoroutine(LoadAsync()); } else { PropertyInfo property = PAXTerrainController.main.GetType().GetProperty("isWorking"); property.SetValue(PAXTerrainController.main, false, null); WaitScreen waitScreen = (WaitScreen)typeof(WaitScreen).ReflectionGet("main", false, true); waitScreen.ReflectionCall("Hide"); } }
public void ReloadPreview(PageOrientation pageOrientation, PaperSize currentPaper) { ReloadingPreview = true; if (FullScreenPrintWindow != null) { WaitScreen.Show("Loading Preview"); } if (PageOrientation == PageOrientation.Portrait) { FlowDocument.PageHeight = currentPaper.Height; FlowDocument.PageWidth = currentPaper.Width; } else { FlowDocument.PageHeight = currentPaper.Width; FlowDocument.PageWidth = currentPaper.Height; } _ms = new MemoryStream(); _pkg = Package.Open(_ms, FileMode.Create, FileAccess.ReadWrite); const string pack = "pack://temp.xps"; var oldPackage = PackageStore.GetPackage(new Uri(pack)); if (oldPackage == null) { PackageStore.AddPackage(new Uri(pack), _pkg); } else { PackageStore.RemovePackage(new Uri(pack)); PackageStore.AddPackage(new Uri(pack), _pkg); } _xpsDocument = new XpsDocument(_pkg, CompressionOption.SuperFast, pack); var xpsWriter = XpsDocument.CreateXpsDocumentWriter(_xpsDocument); var documentPaginator = ((IDocumentPaginatorSource)FlowDocument).DocumentPaginator; xpsWriter.Write(documentPaginator); Paginator = documentPaginator; MaxCopies = NumberOfPages = ApproaxNumberOfPages = Paginator.PageCount; PagesAcross = 2; DisplayPagePreviewsAll(documentPaginator); WaitScreen.Hide(); ReloadingPreview = false; }
private static void SetLoadingComplete() { PropertyInfo property = PAXTerrainController.main.GetType().GetProperty("isWorking"); property.SetValue(PAXTerrainController.main, false, null); WaitScreen waitScreen = (WaitScreen)ReflectionHelper.ReflectionGet <WaitScreen>(null, "main", false, true); waitScreen.ReflectionCall("Hide"); List <WaitScreen.IWaitItem> items = (List <WaitScreen.IWaitItem>)waitScreen.ReflectionGet("items"); items.Clear(); PlayerManager remotePlayerManager = NitroxServiceLocator.LocateService <PlayerManager>(); DiscordController.Main.InitDRPDiving(Main.multiplayerSession.AuthenticationContext.Username, remotePlayerManager.GetTotalPlayerCount(), Main.multiplayerSession.IpAddress + ":" + Main.multiplayerSession.ServerPort); }
public CharacterLoadingEventWiring(WaitScreen waitScreen, CharacterList characterList, MainMenu mainMenu, CharacterSelectionMenu selectionMenu) { characterList.RefreshCompleted += sender => { mainMenu.Open(); if (characterList.TryGetActiveCharacter(out Character.Character character)) { mainMenu.SetDisplayCharacter(character); } else { mainMenu.HideDisplayCharacter(); } selectionMenu.SetCharacterList(sender.Characters.ToList()); waitScreen.Close(); }; }
private IEnumerator ProcessInitialSyncPacket(object sender, EventArgs eventArgs) { bool moreProcessorsToRun; do { yield return(Multiplayer.Main.StartCoroutine(RunPendingProcessors())); moreProcessorsToRun = (alreadyRan.Count < processors.Count); if (moreProcessorsToRun && processorsRanLastCycle == 0) { throw new Exception("Detected circular dependencies in initial packet sync between: " + GetRemainingProcessorsText()); } } while (moreProcessorsToRun); WaitScreen.Remove(loadingMultiplayerWaitItem); Multiplayer.Main.InitialSyncCompleted = true; }
private static void SetLoadingComplete() { PropertyInfo property = PAXTerrainController.main.GetType().GetProperty("isWorking"); property.SetValue(PAXTerrainController.main, false, null); WaitScreen waitScreen = (WaitScreen)ReflectionHelper.ReflectionGet <WaitScreen>(null, "main", false, true); waitScreen.ReflectionCall("Hide"); List <WaitScreen.IWaitItem> items = (List <WaitScreen.IWaitItem>)waitScreen.ReflectionGet("items"); items.Clear(); PlayerManager remotePlayerManager = NitroxServiceLocator.LocateService <PlayerManager>(); LoadingScreenVersionText.DisableWarningText(); NitroxServiceLocator.LocateService <PlayerChatManager>().LoadChatKeyHint(); }
private static IEnumerator LoadMusic(bool force = false) { if (Config.IncludeOST) { LoadOST(); } LoadCustomMusic(); var failed = failedPaths.Count(); yield return(new WaitWhile(() => WaitScreen.main == null)); if (OSTPreload == null && OST.Any(x => x.Value == null)) { OSTPreload = CoroutineHost.StartCoroutine(PreloadOST()); } if (CustomMusicPreload == null && CustomMusic.Any(x => x.Value == null)) { CustomMusicPreload = CoroutineHost.StartCoroutine(PreloadCustomMusic()); } if ((OSTPreload != null || CustomMusicPreload != null) && force) { FreezeTime.Begin("CustomTunesPreload"); WaitScreen.ShowImmediately(); } yield return(OSTPreload); yield return(CustomMusicPreload); GeneratePlaylist(); yield return(new WaitWhile(() => WaitScreen.main.isShown)); FreezeTime.End("CustomTunesPreload"); if (failedPaths.Count() > failed) { ErrorMessage.AddError("Some tracks failed to load, see error log for details."); } }
private static void SetLoadingComplete() { PropertyInfo property = PAXTerrainController.main.GetType().GetProperty("isWorking"); property.SetValue(PAXTerrainController.main, false, null); WaitScreen waitScreen = (WaitScreen)ReflectionHelper.ReflectionGet <WaitScreen>(null, "main", false, true); waitScreen.ReflectionCall("Hide"); List <WaitScreen.IWaitItem> items = (List <WaitScreen.IWaitItem>)waitScreen.ReflectionGet("items"); items.Clear(); PlayerManager remotePlayerManager = NitroxServiceLocator.LocateService <PlayerManager>(); LoadingScreenVersionText.DisableWarningText(); DiscordRPController.Main.InitializeInGame(Main.multiplayerSession.AuthenticationContext.Username, remotePlayerManager.GetTotalPlayerCount(), Main.multiplayerSession.SessionPolicy.MaxConnections, $"{Main.multiplayerSession.IpAddress}:{Main.multiplayerSession.ServerPort}"); NitroxServiceLocator.LocateService <PlayerChatManager>().LoadChatKeyHint(); }
public static IEnumerator LoadAsync() { WaitScreen.ManualWaitItem worldSettleItem = WaitScreen.Add(Language.main.Get("Nitrox_WorldSettling")); WaitScreen.ShowImmediately(); yield return(new WaitUntil(() => LargeWorldStreamer.main != null && LargeWorldStreamer.main.land != null && LargeWorldStreamer.main.IsReady() && LargeWorldStreamer.main.IsWorldSettled())); WaitScreen.Remove(worldSettleItem); WaitScreen.ManualWaitItem item = WaitScreen.Add(Language.main.Get("Nitrox_JoiningSession")); yield return(Main.StartCoroutine(Main.StartSession())); WaitScreen.Remove(item); yield return(new WaitUntil(() => Main.InitialSyncCompleted)); SetLoadingComplete(); }
private IEnumerator ProcessInitialSyncPacket(object sender, EventArgs eventArgs) { // Some packets should not fire during game session join but only afterwards so that initialized/spawned game objects don't trigger packet sending again. using (packetSender.Suppress <PingRenamed>()) { bool moreProcessorsToRun; do { yield return(Multiplayer.Main.StartCoroutine(RunPendingProcessors())); moreProcessorsToRun = alreadyRan.Count < processors.Count; if (moreProcessorsToRun && processorsRanLastCycle == 0) { throw new Exception("Detected circular dependencies in initial packet sync between: " + GetRemainingProcessorsText()); } } while (moreProcessorsToRun); } WaitScreen.Remove(loadingMultiplayerWaitItem); Multiplayer.Main.InitialSyncCompleted = true; }
private IEnumerator RunPendingProcessors() { processorsRanLastCycle = 0; foreach (InitialSyncProcessor processor in processors) { if (IsWaitingToRun(processor.GetType()) && HasDependenciesSatisfied(processor)) { loadingMultiplayerWaitItem.SetProgress(cumulativeProcessorsRan, processors.Count); Log.Info("Running " + processor.GetType()); alreadyRan.Add(processor.GetType()); processorsRanLastCycle++; cumulativeProcessorsRan++; subWaitScreenItem = WaitScreen.Add("Running " + processor.GetType().Name); yield return(Multiplayer.Main.StartCoroutine(processor.Process(packet, subWaitScreenItem))); WaitScreen.Remove(subWaitScreenItem); } } }
private static IEnumerator PreloadCustomMusic() { WaitScreen.ManualWaitItem waitItemCustomMusic = null; yield return(new WaitUntil(() => WaitScreen.main != null)); waitItemCustomMusic = WaitScreen.Add("Preloading custom music ♫"); foreach (var audioClipPath in CustomMusic.ToList()) { if (audioClipPath.Value == null) { var loadTrackTask = LoadTrack(audioClipPath.Key); yield return(loadTrackTask); yield return(new WaitWhile(() => loadTrackTask.GetResult() == null)); var audioClip = loadTrackTask.GetResult(); if (audioClip.AudioClip == null) { CustomMusic.Remove(audioClipPath.Key); failedPaths.Add(audioClipPath.Key); } else { yield return(new WaitWhile(() => audioClip.AudioClip.loadState == AudioDataLoadState.Loading)); RegisterAudioClip(audioClipPath.Key, audioClip.AudioClip); } waitItemCustomMusic.SetProgress(CustomMusic.Count(x => x.Value != null), CustomMusic.Count()); } } WaitScreen.Remove(waitItemCustomMusic); CustomMusicPreload = null; }
public CharCreationMenuEventWiring( CharCreationMenu charCreationMenu, MainMenu mainMenu, CharacterCreation characterCreation, WaitScreen waitScreen, CharacterList characterList, ErrorScreenManager errorScreenManager) { charCreationMenu.CharacterCreationCompleted += (sender, args) => { sender.Close(); characterCreation.StartCharacterCreation(args.CharCreationInfo); waitScreen.Message = "Charaktererstellung läuft..."; waitScreen.Open(); }; characterCreation.CharacterCreationFailed += (sender, args) => { charCreationMenu.SetHelpText(args.ReasonText); waitScreen.Close(); errorScreenManager.ShowError(args.ReasonText, charCreationMenu.Open); }; characterCreation.CharacterCreationSuccessful += sender => { waitScreen.Message = "Lade Charakterliste..."; waitScreen.Open(); characterList.RefreshFromServer(); }; charCreationMenu.OnEscape += sender => { sender.Close(); mainMenu.Open(); }; }
public AccountCreationMenuEventWiring(AccountCreationMenu accountCreationMenu, LoginMenu loginMenu, AccountCreation accountCreation, WaitScreen waitScreen) { //Escape was pressed accountCreationMenu.OnEscape += sender => { loginMenu.Open(); accountCreationMenu.Close(); }; //Account creation canceled. accountCreationMenu.ChancelSelected += sender => { loginMenu.Open(); accountCreationMenu.Close(); }; //Account creation started. accountCreationMenu.CreationInformationEntered += sender => { waitScreen.Open(); waitScreen.Message = "Accounterstellung läuft..."; sender.Close(); accountCreation.StartAccountCreation(accountCreationMenu.UserName, accountCreationMenu.Password); }; //Account creation successful return to login menu accountCreation.AccountCreationSuccessful += sender => { loginMenu.UserName = accountCreationMenu.UserName; loginMenu.Password = accountCreationMenu.Password; loginMenu.Open(); accountCreationMenu.Close(); waitScreen.Close(); }; //Account creation failed. Display error. accountCreation.AccountCreationFailed += (sender, args) => { accountCreationMenu.SetErrorText(args.ReasonText); accountCreationMenu.Open(); waitScreen.Close(); }; }
public MainMenuEventWiring( MainMenu mainMenu, CharCreationMenu charCreationMenu, ExitMenu exitMenu, ScriptClient client, LoginMenu loginMenu, Login.Login login, WaitScreen waitScreen, CharacterSelectionMenu selectionMenu, JoinGameSender joinGameSender, CharacterList characterList, ErrorScreenManager errorScreenManager) { mainMenu.CharacterCreationSelected += sender => { sender.Close(); charCreationMenu.Open(); }; mainMenu.JoinGameSelected += sender => { if (!characterList.TryGetActiveCharacter(out Character.Character character)) { mainMenu.Close(); errorScreenManager.ShowError("Kein Character gewählt!", mainMenu.Open); return; } joinGameSender.StartJoinGame(character); waitScreen.Message = "Trete Spiel bei..."; waitScreen.Open(); mainMenu.Close(); //client.SendSpectateMessage(); }; mainMenu.BackToLoginSelected += sender => { sender.Close(); waitScreen.Message = "Logout läuft..."; waitScreen.Open(); login.StartLogout(); }; mainMenu.CharacterSelectionSelected += sender => { selectionMenu.Open(); sender.Close(); }; mainMenu.ExitGameSelected += sender => { sender.Close(); exitMenu.Open(); }; joinGameSender.JoinGameRequestSuccessful += sender => { //The server accepted the join request, close the ui, from here on the server does most of the controlling. waitScreen.Close(); }; joinGameSender.JoinGameFailed += (sender, args) => { //Something went wrong show an error message to the player and then return to the main menu. waitScreen.Close(); errorScreenManager.ShowError(args.ReasonText, mainMenu.Open); }; }
public InGameMenuWiring(ScriptClient client, InGameMenu inGameMenu, ExitMenu exitMenu, WaitScreen waitScreen, Login.Login login, CharacterList characterList, LeaveGameSender leaveMsgSender) { inGameMenu.BackToMainMenu += sender => { leaveMsgSender.SendLeaveGameMessage(); waitScreen.Message = "Lade Charakterliste..."; waitScreen.Open(); sender.Close(); characterList.RefreshFromServer(); }; inGameMenu.BackToLoginSelected += sender => { sender.Close(); waitScreen.Message = "Logout läuft..."; waitScreen.Open(); login.StartLogout(); }; inGameMenu.ExitGameSelected += sender => { sender.Close(); exitMenu.Open(); }; inGameMenu.OnEscape += sender => sender.Close(); }
public LoginMenuWiring( LoginMenu loginMenu, WaitScreen waitScreen, Login.Login login, IEnumerable <IClosableMenu> closableMenus, CharacterList characterList, AccountCreationMenu accountCreationMenu, ErrorScreenManager errorScreenManager) { var menus = closableMenus.ToArray(); //Login credentials have been entered. Switch to the waiting screen and try to login an the server. loginMenu.CredentialsEntered += (sender, args) => { //Missing parts of the login information, show an error message. if (string.IsNullOrWhiteSpace(args.UserName) || string.IsNullOrWhiteSpace(args.Password)) { errorScreenManager.ShowError("Accountname und Password eingeben!", loginMenu.Open); return; } waitScreen.Message = "Login läuft..."; waitScreen.Open(); loginMenu.Close(); login.StartLogin(args.UserName, args.Password); }; //Login got denied for some reason. Show an error message and the go back to the login screen. login.LoginDenied += (sender, args) => { waitScreen.Close(); errorScreenManager.ShowError($"Login fehlgeschlagen: {args.ReasonText}", loginMenu.Open); }; //Login successful. Go to the main menu. login.LoginAcknowledged += (sender, args) => { waitScreen.Message = "Lade Charakterliste..."; waitScreen.Open(); characterList.RefreshFromServer(); }; //Open the account creation menu. loginMenu.CreateAccountSelected += sender => { accountCreationMenu.Open(); loginMenu.Close(); }; login.LoggedOut += sender => { //CGameManager.ExitSession(); //Close all menus on logout(its somewhat of a cleanup). foreach (var closableMenu in menus) { closableMenu.Close(); } loginMenu.Open(); }; }