fixed: barotrauma for some reason ignores content packages that only contain lua scripts

This commit is contained in:
Evil Factory
2021-09-08 11:41:20 -03:00
parent a8fb910e8d
commit eb28b3a7f1
2 changed files with 27 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ using Barotrauma.Items.Components;
using System.IO;
using System.Net;
using System.Linq;
using System.Xml.Linq;
namespace Barotrauma
{
@@ -369,6 +370,29 @@ namespace Barotrauma
return GameMain.Config.AllEnabledPackages.ToArray();
}
public static List<string> GetEnabledPackagesDirectlyFromFile()
{
List<string> enabledPackages = new List<string>();
XDocument doc = XMLExtensions.LoadXml("config_player.xml");
var contentPackagesElement = doc.Root.Element("contentpackages");
string coreName = contentPackagesElement.Element("core")?.GetAttributeString("name", "");
enabledPackages.Add(coreName);
XElement regularElement = contentPackagesElement.Element("regular");
List<XElement> subElements = regularElement?.Elements()?.ToList();
foreach (var subElement in subElements)
{
if (!bool.TryParse(subElement.GetAttributeString("enabled", "false"), out bool enabled) || !enabled) { continue; }
string name = subElement.GetAttributeString("name", null);
enabledPackages.Add(name);
}
return enabledPackages;
}
}

View File

@@ -12,7 +12,7 @@ else
print("LUA LOADER: Only enabled mods will be executed. Lua/MoonsharpSetup.lua")
end
local enabledPackages = Game.GetEnabledContentPackages()
local enabledPackages = Game.GetEnabledPackagesDirectlyFromFile()
local function endsWith(str, suffix)
return str:sub(-string.len(suffix)) == suffix
@@ -34,8 +34,8 @@ local modulePaths = {}
if not runDisabledMods then
for _, package in pairs(enabledPackages) do
d = package.Name:gsub("\\", "/")
for _, packageName in pairs(enabledPackages) do
d = packageName:gsub("\\", "/")
d = "Mods/" .. d
table.insert(modulePaths, (d .. "/Lua/?.lua"))