public static object ExecuteCalculation(string calc, double input) { var lua = new LuaContext(); lua.LoadFromString( $"function exec(value)\r\n" + $"return {calc}\r\n" + $"end" ); lua.Execute(); var res = lua.Execute("exec", input); return(Convert.ToUInt32(res.result.First())); }
public static void SetValueInSaveFile(LuaContext luaContext, string[] strArgs, int[] intArgs, object value) { luaContext.RegisterFunction("edizon", "getStrArgs", getStrArgs(strArgs)); luaContext.RegisterFunction("edizon", "getIntArgs", getIntArgs(intArgs)); luaContext.Execute("setValueInSaveFile", value); }
public static byte[] GetModifiedSaveBuffer(LuaContext luaContext) { var res = luaContext.Execute("getModifiedSaveFile"); var firstRes = res.result.First(); if (firstRes is object[] save) { return(save.Select(x => Convert.ToByte(x)).ToArray()); } return(new byte[0]); }
public static object GetValueFromSaveFile(LuaContext luaContext, string[] strArgs, int[] intArgs) { luaContext.RegisterFunction("edizon", "getStrArgs", getStrArgs(strArgs)); luaContext.RegisterFunction("edizon", "getIntArgs", getIntArgs(intArgs)); var res = luaContext.Execute("getValueFromSaveFile"); if (!res.success) { LogConsole.Instance.Log(res.result.Where(r => r != null).Aggregate("", (a, b) => a + b.ToString() + Environment.NewLine), LogLevel.LUA); return(null); } return(res.result.First()); }
public static bool InitializeScript(ref LuaContext luaContext, string luaFile, string saveFile, string encoding, out string message) { message = String.Empty; try { luaContext = new LuaContext(); luaContext.RegisterFunction("edizon", "getSaveFileBuffer", getSaveFileBuffer(saveFile)); luaContext.RegisterFunction("edizon", "getSaveFileString", getSaveFileString(saveFile, encoding)); luaContext.RegisterFunction("", "print", Print()); luaContext.LoadFromFile(luaFile); luaContext.Execute(); } catch (Exception e) { message = e.Message; return(false); } return(true); }