Lua is automatically initialized when entering singleplayer campaigns (doesn't include submarine editor) and roundStart && roundEnd hooks now work in CL Lua

This commit is contained in:
Evil Factory
2022-02-14 16:19:53 -03:00
parent 0d5ba52a15
commit d3e0625ef4
5 changed files with 15 additions and 2 deletions

View File

@@ -1101,6 +1101,7 @@ namespace Barotrauma
MainMenuScreen.Select();
GameSession = null;
GameMain.Lua.Stop();
}
public void ShowCampaignDisclaimer(Action onContinue = null)

View File

@@ -1761,8 +1761,6 @@ namespace Barotrauma.Networking
AddChatMessage($"ServerMessage.HowToCommunicate~[chatbutton]={GameMain.Config.KeyBindText(InputType.Chat)}~[radiobutton]={GameMain.Config.KeyBindText(InputType.RadioChat)}", ChatMessageType.Server);
GameMain.Lua.hook.Call("roundStart", new object[] { });
yield return CoroutineStatus.Success;
}

View File

@@ -1202,6 +1202,8 @@ namespace Barotrauma
GameMain.GameSession.CrewManager.AddCharacterInfo(characterInfo);
}
((SinglePlayerCampaign)GameMain.GameSession.GameMode).LoadNewLevel();
GameMain.Lua.Initialize();
}
private void LoadGame(string saveFile)
@@ -1220,6 +1222,8 @@ namespace Barotrauma
//TODO
//GameMain.LobbyScreen.Select();
GameMain.Lua.Initialize();
}
#region UI Methods

View File

@@ -91,4 +91,8 @@ end
setmodulepaths(modulePaths)
Hook.Add("stop", "luaSetup.stop", function ()
print("Stopping Lua...")
end)
Hook.Call("loaded")

View File

@@ -460,6 +460,8 @@ namespace Barotrauma
GUI.PreventPauseMenuToggle = false;
HintManager.OnRoundStarted();
GameMain.Lua.hook.Call("roundStart");
#endif
}
@@ -686,6 +688,10 @@ namespace Barotrauma
{
RoundEnding = true;
#if CLIENT
GameMain.Lua.hook.Call("roundEnd");
#endif
try
{
IEnumerable<Character> crewCharacters = GetSessionCrewCharacters();