From 59d4ec8ad7bc3e8bcc20dd069489dec44f5da460 Mon Sep 17 00:00:00 2001 From: Evil Factory <36804725+evilfactory@users.noreply.github.com> Date: Sun, 5 Jun 2022 14:25:40 -0300 Subject: [PATCH] Game.LoadGame, Game.SaveGame and Game.LoadCampaign --- .../Lua/DefaultRegister/RegisterShared.lua | 1 + .../SharedSource/LuaCs/Lua/LuaClasses/LuaGame.cs | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua b/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua index a373970f9..8dfa8d27a 100644 --- a/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua +++ b/Barotrauma/BarotraumaShared/Lua/DefaultRegister/RegisterShared.lua @@ -169,6 +169,7 @@ RegisterBarotrauma("PvPMode") RegisterBarotrauma("Mission") RegisterBarotrauma("CampaignMode") RegisterBarotrauma("CoOpMode") +RegisterBarotrauma("MultiPlayerCampaign") RegisterBarotrauma("CampaignMetadata") RegisterBarotrauma("Wallet") diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaGame.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaGame.cs index 43db145ad..1cf3259b7 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaGame.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaGame.cs @@ -366,8 +366,22 @@ namespace Barotrauma public void AssignOnExecute(string names, object onExecute) => DebugConsole.AssignOnExecute(names, (string[] a) => { GameMain.LuaCs.CallLuaFunction(onExecute, new object[] { a }); }); + public void SaveGame(string path) + { + if (LuaCsFile.CanWriteToPath(path)) { throw new ScriptRuntimeException($"Saving files to {path} is disallowed."); } + SaveUtil.SaveGame(path); + } + + public void LoadGame(string path) + { + SaveUtil.LoadGame(path); + } #if SERVER + public void LoadCampaign(string path) + { + MultiPlayerCampaign.LoadCampaign(path); + } public static void SendMessage(string msg, ChatMessageType? messageType = null, Client sender = null, Character character = null) {