THE REQUIRE PATHS WORK!@!!!!!!11!

This commit is contained in:
Evil Factory
2026-02-08 23:38:52 -03:00
parent a505d48a4c
commit e8bec96970
3 changed files with 22 additions and 15 deletions
@@ -2,10 +2,6 @@ LuaSetup = {}
local path = ... local path = ...
package.path = {path .. "/Lua/?.lua"}
setmodulepaths(package.path)
local function AddTableToGlobal(tbl) local function AddTableToGlobal(tbl)
for k, v in pairs(tbl) do for k, v in pairs(tbl) do
_G[k] = v _G[k] = v
@@ -13,22 +9,22 @@ local function AddTableToGlobal(tbl)
end end
if SERVER then if SERVER then
AddTableToGlobal(require("DefaultLib/LibServer")) AddTableToGlobal(dofile(path .. "/Lua/DefaultLib/LibServer.lua"))
else else
AddTableToGlobal(require("DefaultLib/LibClient")) AddTableToGlobal(dofile(path .. "/Lua/DefaultLib/LibClient.lua"))
end end
AddTableToGlobal(require("DefaultLib/LibShared")) AddTableToGlobal(dofile(path .. "/Lua/DefaultLib/LibShared.lua"))
AddTableToGlobal(require("CompatibilityLib")) AddTableToGlobal(dofile(path .. "/Lua/CompatibilityLib.lua"))
require("DefaultHook") dofile(path .. "/Lua/DefaultHook.lua")
Descriptors = LuaSetup.LuaUserData Descriptors = LuaSetup.LuaUserData
require("DefaultLib/Utils/Math") dofile(path .. "/Lua/DefaultLib/Utils/Math.lua")
require("DefaultLib/Utils/String") dofile(path .. "/Lua/DefaultLib/Utils/String.lua")
require("DefaultLib/Utils/Util") dofile(path .. "/Lua/DefaultLib/Utils/Util.lua")
require("DefaultLib/Utils/SteamApi") dofile(path .. "/Lua/DefaultLib/Utils/SteamApi.lua")
LuaSetup = nil LuaSetup = nil
@@ -268,10 +268,21 @@ class LuaScriptManagementService : ILuaScriptManagementService, ILuaDataService
SetupEnvironment(enableSandbox); SetupEnvironment(enableSandbox);
if (_script == null) { return FluentResults.Result.Ok(); } // never happens
var result = FluentResults.Result.Ok(); var result = FluentResults.Result.Ok();
_isRunning = true; _isRunning = true;
var packages = executionOrder.Select(r => r.OwnerPackage)
.Distinct()
.Select(p => $"{p.Dir}/Lua/?.lua")
.ToArray();
((LuaScriptLoader)_luaScriptLoader).ModulePaths = packages;
Table package = (Table)_script.Globals["package"];
package.Set("path", DynValue.FromObject(_script, packages));
foreach (ILuaScriptResourceInfo resource in executionOrder.Where(l => l.IsAutorun)) foreach (ILuaScriptResourceInfo resource in executionOrder.Where(l => l.IsAutorun))
{ {
foreach (ContentPath filePath in resource.FilePaths) foreach (ContentPath filePath in resource.FilePaths)
@@ -279,7 +290,7 @@ class LuaScriptManagementService : ILuaScriptManagementService, ILuaDataService
try try
{ {
_loggerService.LogMessage($"Run {filePath.Value}"); _loggerService.LogMessage($"Run {filePath.Value}");
_script?.Call(_script.LoadFile(filePath.FullPath), Path.GetDirectoryName(resource.OwnerPackage.Path)); _script.Call(_script.LoadFile(filePath.FullPath), resource.OwnerPackage.Dir);
} }
catch(Exception e) catch(Exception e)
{ {
@@ -77,7 +77,7 @@ namespace Barotrauma.LuaCs
return false; return false;
} }
return true; return result.Value;
} }
private void UnsafeLogErrors(string message, FluentResults.Result result = null) private void UnsafeLogErrors(string message, FluentResults.Result result = null)