Files
LuaCsForBarotraumaEP/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaScriptLoader.cs
Evil Factory 4075e71f7a separated Lua source by client, server and shared
github desktop bugged
2021-09-15 12:59:58 -03:00

88 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using MoonSharp.Interpreter;
using MoonSharp.Interpreter.Loaders;
namespace Barotrauma
{
partial class LuaSetup {
public class LuaScriptLoader : ScriptLoaderBase
{
public LuaSetup lua;
public LuaScriptLoader(LuaSetup l)
{
lua = l;
}
public override object LoadFile(string file, Table globalContext)
{
return File.ReadAllText(file);
}
public override bool ScriptFileExists(string file)
{
return File.Exists(file);
}
public void RunFolder(string folder)
{
foreach (var str in DirSearch(folder))
{
var s = str.Replace("\\", "/");
if (s.EndsWith(".lua"))
{
lua.PrintMessage(s);
try
{
lua.DoFile(s);
}
catch (Exception e)
{
lua.HandleLuaException(e);
}
}
}
}
static string[] DirSearch(string sDir)
{
List<string> files = new List<string>();
try
{
foreach (string f in Directory.GetFiles(sDir))
{
files.Add(f);
}
foreach (string d in Directory.GetDirectories(sDir))
{
foreach (string f in Directory.GetFiles(d))
{
files.Add(f);
}
DirSearch(d);
}
}
catch (System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
return files.ToArray();
}
}
}
}