public override void OnLoadFinished() { base.OnLoadFinished(); MBGlobals.InitializeReferences(); GameState state; if (GameNetwork.IsDedicatedServer) { int dedicatedServerType = (int)Module.CurrentModule.StartupInfo.DedicatedServerType; state = (GameState)Game.Current.GameStateManager.CreateState <UnspecifiedDedicatedServerState>(); } else { state = (GameState)Game.Current.GameStateManager.CreateState <LobbyState>(); } Game.Current.GameStateManager.CleanAndPushState(state); }
protected override void DoLoadingForGameManager( GameManagerLoadingSteps gameManagerLoadingStep, out GameManagerLoadingSteps nextStep) { nextStep = GameManagerLoadingSteps.None; switch (gameManagerLoadingStep) { case GameManagerLoadingSteps.PreInitializeZerothStep: nextStep = GameManagerLoadingSteps.FirstInitializeFirstStep; break; case GameManagerLoadingSteps.FirstInitializeFirstStep: MBGameManager.LoadModuleData(false); MBDebug.Print("Game creating..."); MBGlobals.InitializeReferences(); Game.CreateGame((TaleWorlds.Core.GameType) new MultiplayerGame(), (GameManagerBase)this).DoLoading(); nextStep = GameManagerLoadingSteps.WaitSecondStep; break; case GameManagerLoadingSteps.WaitSecondStep: MBGameManager.StartNewGame(); nextStep = GameManagerLoadingSteps.SecondInitializeThirdState; break; case GameManagerLoadingSteps.SecondInitializeThirdState: nextStep = Game.Current.DoLoading() ? GameManagerLoadingSteps.PostInitializeFourthState : GameManagerLoadingSteps.SecondInitializeThirdState; break; case GameManagerLoadingSteps.PostInitializeFourthState: bool flag = true; foreach (MBSubModuleBase subModule in Module.CurrentModule.SubModules) { flag = flag && subModule.DoLoading(Game.Current); } nextStep = flag ? GameManagerLoadingSteps.FinishLoadingFifthStep : GameManagerLoadingSteps.PostInitializeFourthState; break; case GameManagerLoadingSteps.FinishLoadingFifthStep: nextStep = GameManagerLoadingSteps.None; break; } }