Merge branch 'dev' into disconnect-at-end-of-game

This commit is contained in:
Mister_Nebula 2021-12-23 19:00:44 +00:00
commit 0015495ea1
2 changed files with 18 additions and 26 deletions

View File

@ -172,19 +172,15 @@ namespace QSB.ClientServerStateSync
} }
} }
private ClientState ForceGetCurrentState() private static ClientState ForceGetCurrentState()
{ => QSBSceneManager.CurrentScene switch
var currentScene = LoadManager.GetCurrentScene();
return currentScene switch
{ {
OWScene.TitleScreen => ClientState.InTitleScreen, OWScene.TitleScreen => ClientState.InTitleScreen,
OWScene.Credits_Fast => ClientState.WatchingShortCredits, OWScene.Credits_Fast => ClientState.WatchingShortCredits,
OWScene.Credits_Final or OWScene.PostCreditsScene => ClientState.WatchingLongCredits, OWScene.Credits_Final or OWScene.PostCreditsScene => ClientState.WatchingLongCredits,
OWScene.SolarSystem => ClientState.AliveInSolarSystem, OWScene.SolarSystem => ClientState.AliveInSolarSystem,
OWScene.EyeOfTheUniverse => ClientState.AliveInEye, OWScene.EyeOfTheUniverse => ClientState.AliveInEye,
_ => ClientState.NotLoaded, _ => ClientState.NotLoaded
}; };
}
} }
} }

View File

@ -94,24 +94,20 @@ namespace QSB.ClientServerStateSync
private void OnTriggerSupernova() private void OnTriggerSupernova()
{ {
FireChangeServerStateEvent(ServerState.WaitingForAllPlayersToDie); if (QSBSceneManager.CurrentScene == OWScene.SolarSystem)
}
private ServerState ForceGetCurrentState()
{
var currentScene = LoadManager.GetCurrentScene();
switch (currentScene)
{ {
case OWScene.SolarSystem: FireChangeServerStateEvent(ServerState.WaitingForAllPlayersToDie);
return ServerState.InSolarSystem;
case OWScene.EyeOfTheUniverse:
return ServerState.InEye;
default:
return ServerState.NotLoaded;
} }
} }
private static ServerState ForceGetCurrentState()
=> QSBSceneManager.CurrentScene switch
{
OWScene.SolarSystem => ServerState.InSolarSystem,
OWScene.EyeOfTheUniverse => ServerState.InEye,
_ => ServerState.NotLoaded
};
private void Update() private void Update()
{ {
if (!QSBCore.IsHost) if (!QSBCore.IsHost)
@ -128,9 +124,9 @@ namespace QSB.ClientServerStateSync
if (_currentState == ServerState.WaitingForAllPlayersToReady) if (_currentState == ServerState.WaitingForAllPlayersToReady)
{ {
if (QSBPlayerManager.PlayerList.All(x if (QSBPlayerManager.PlayerList.All(x
=> x.State is ClientState.WaitingForOthersToBeReady => x.State is ClientState.WaitingForOthersToBeReady
or ClientState.AliveInSolarSystem or ClientState.AliveInSolarSystem
or ClientState.AliveInEye)) or ClientState.AliveInEye))
{ {
DebugLog.DebugWrite($"All ready!!"); DebugLog.DebugWrite($"All ready!!");
QSBEventManager.FireEvent(EventNames.QSBStartLoop); QSBEventManager.FireEvent(EventNames.QSBStartLoop);
@ -153,4 +149,4 @@ namespace QSB.ClientServerStateSync
} }
} }
} }
} }