88 lines
1.4 KiB
C#
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();
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
} |