fixes and custom serialization

This commit is contained in:
Oiltanker
2022-04-18 15:40:50 +03:00
parent 8bcd19a4ff
commit 767ff55604
2 changed files with 23 additions and 13 deletions
@@ -97,12 +97,16 @@ namespace Barotrauma
public CsModStore GetCsStore(string modName) { public CsModStore GetCsStore(string modName) {
var result = csModInterface.Where(i => i.Mod.GetType().FullName == modName).FirstOrDefault(); var result = csModInterface.Where(i => i.Mod.GetType().FullName == modName).FirstOrDefault();
if (!result.Mod.IsDisposed) return result; if (result != null)
else
{ {
csModInterface.Remove(result); if (!result.Mod.IsDisposed) return result;
return null; else
{
csModInterface.Remove(result);
return null;
}
} }
else return null;
} }
protected LuaModStore GetLuaStore(string modName) => luaModInterface.Where(i => i.Name == modName).FirstOrDefault(); protected LuaModStore GetLuaStore(string modName) => luaModInterface.Where(i => i.Name == modName).FirstOrDefault();
} }
@@ -30,7 +30,7 @@ namespace Barotrauma
public LuaCsNetworking Networking { get; private set; } public LuaCsNetworking Networking { get; private set; }
public LuaCsModStore ModStore { get; private set; } public LuaCsModStore ModStore { get; private set; }
public CsScriptLoader NetScriptLoader { get; private set; } public CsScriptLoader CsScriptLoader { get; private set; }
public CsLua Lua { get; private set; } public CsLua Lua { get; private set; }
public LuaCsSetup() public LuaCsSetup()
@@ -315,6 +315,9 @@ namespace Barotrauma
Hook.Initialize(); Hook.Initialize();
ModStore.Initialize(); ModStore.Initialize();
UserData.RegisterType<LuaCsAction>();
UserData.RegisterType<LuaCsFile>();
UserData.RegisterType<LuaCsPatch>();
UserData.RegisterType<CsScriptRunner>(); UserData.RegisterType<CsScriptRunner>();
UserData.RegisterType<LuaGame>(); UserData.RegisterType<LuaGame>();
UserData.RegisterType<LuaCsTimer>(); UserData.RegisterType<LuaCsTimer>();
@@ -356,18 +359,21 @@ namespace Barotrauma
// LuaDocs.GenerateDocsAll(); // LuaDocs.GenerateDocsAll();
ContentPackage csPackage = GetPackage("CsForBarotrauma"); //ContentPackage csPackage = GetPackage("CsForBarotrauma");
if (csPackage != null) //if (csPackage != null)
{ //{
NetScriptLoader = new CsScriptLoader(this); CsScriptLoader = new CsScriptLoader(this);
NetScriptLoader.SearchFolders(); CsScriptLoader.SearchFolders();
try try
{ {
var modTypes = NetScriptLoader.Compile(); var modTypes = CsScriptLoader.Compile();
modTypes.ForEach(t => t.GetConstructor(new Type[] { })?.Invoke(null)); modTypes.ForEach(t => {
UserData.RegisterType(t);
t.GetConstructor(new Type[] { })?.Invoke(null);
});
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -375,7 +381,7 @@ namespace Barotrauma
} }
PrintMessage("Cs! Version " + AssemblyInfo.GitRevision); PrintMessage("Cs! Version " + AssemblyInfo.GitRevision);
} //}
ContentPackage luaPackage = GetPackage("LuaForBarotraumaUnstable"); ContentPackage luaPackage = GetPackage("LuaForBarotraumaUnstable");