From 880fae10e8f06a209c579a4c566b5cb65c420043 Mon Sep 17 00:00:00 2001 From: Soar Qin Date: Mon, 3 Mar 2025 19:55:53 +0800 Subject: [PATCH] Work in progress --- CheatEnabler/CheatEnabler.csproj | 2 +- DSP_Mods.sln | 6 + Dustbin/Dustbin.csproj | 2 +- HideTips/HideTips.csproj | 2 +- LabOpt/LabOpt.csproj | 2 +- LuaScriptEngine/CHANGELOG.md | 7 + LuaScriptEngine/LuaScriptEngine.cs | 198 ++++++++++++++++++ LuaScriptEngine/LuaScriptEngine.csproj | 30 +++ LuaScriptEngine/README.md | 8 + LuaScriptEngine/package/icon.png | Bin 0 -> 51585 bytes LuaScriptEngine/package/manifest.json | 9 + MechaDronesTweaks/MechaDronesTweaks.csproj | 2 +- OCBatchBuild/OCBatchBuild.csproj | 2 +- .../OverclockEverything.csproj | 2 +- PoolOpt/PoolOpt.csproj | 2 +- UXAssist/UXAssist.csproj | 2 +- UniverseGenTweaks/UniverseGenTweaks.csproj | 2 +- UserCloak/UserCloak.csproj | 2 +- 18 files changed, 269 insertions(+), 11 deletions(-) create mode 100644 LuaScriptEngine/CHANGELOG.md create mode 100644 LuaScriptEngine/LuaScriptEngine.cs create mode 100644 LuaScriptEngine/LuaScriptEngine.csproj create mode 100644 LuaScriptEngine/README.md create mode 100644 LuaScriptEngine/package/icon.png create mode 100644 LuaScriptEngine/package/manifest.json diff --git a/CheatEnabler/CheatEnabler.csproj b/CheatEnabler/CheatEnabler.csproj index 9f08495..49ecb83 100644 --- a/CheatEnabler/CheatEnabler.csproj +++ b/CheatEnabler/CheatEnabler.csproj @@ -29,6 +29,6 @@ - + diff --git a/DSP_Mods.sln b/DSP_Mods.sln index f1fa876..ebcd76b 100644 --- a/DSP_Mods.sln +++ b/DSP_Mods.sln @@ -34,6 +34,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UXAssist", "UXAssist\UXAssi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UserCloak", "UserCloak\UserCloak.csproj", "{096D2E4B-D1CE-424D-9954-C36A23E9E279}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LuaScriptEngine", "LuaScriptEngine\LuaScriptEngine.csproj", "{E9375F0E-26DC-4CEC-80DC-9C48F23340BC}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -96,5 +98,9 @@ Global {096D2E4B-D1CE-424D-9954-C36A23E9E279}.Debug|Any CPU.Build.0 = Debug|Any CPU {096D2E4B-D1CE-424D-9954-C36A23E9E279}.Release|Any CPU.ActiveCfg = Release|Any CPU {096D2E4B-D1CE-424D-9954-C36A23E9E279}.Release|Any CPU.Build.0 = Release|Any CPU + {E9375F0E-26DC-4CEC-80DC-9C48F23340BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E9375F0E-26DC-4CEC-80DC-9C48F23340BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E9375F0E-26DC-4CEC-80DC-9C48F23340BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E9375F0E-26DC-4CEC-80DC-9C48F23340BC}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/Dustbin/Dustbin.csproj b/Dustbin/Dustbin.csproj index 8633170..2c878f9 100644 --- a/Dustbin/Dustbin.csproj +++ b/Dustbin/Dustbin.csproj @@ -33,6 +33,6 @@ - + diff --git a/HideTips/HideTips.csproj b/HideTips/HideTips.csproj index 55f6188..0f069ac 100644 --- a/HideTips/HideTips.csproj +++ b/HideTips/HideTips.csproj @@ -24,6 +24,6 @@ - + diff --git a/LabOpt/LabOpt.csproj b/LabOpt/LabOpt.csproj index 21129e0..b383fbf 100644 --- a/LabOpt/LabOpt.csproj +++ b/LabOpt/LabOpt.csproj @@ -24,6 +24,6 @@ - + diff --git a/LuaScriptEngine/CHANGELOG.md b/LuaScriptEngine/CHANGELOG.md new file mode 100644 index 0000000..83aadba --- /dev/null +++ b/LuaScriptEngine/CHANGELOG.md @@ -0,0 +1,7 @@ +## Changlog +* 1.0.0 + + Initial release + +## 更新日志 +* 1.0.0 + + 初始版本 diff --git a/LuaScriptEngine/LuaScriptEngine.cs b/LuaScriptEngine/LuaScriptEngine.cs new file mode 100644 index 0000000..0b1b656 --- /dev/null +++ b/LuaScriptEngine/LuaScriptEngine.cs @@ -0,0 +1,198 @@ +using System; +using System.Collections.Generic; +using BepInEx; +using BepInEx.Logging; +using HarmonyLib; +using NLua; + +namespace LuaScriptEngine; + +[BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)] +public class LuaScriptEngine : BaseUnityPlugin +{ + private class Timer + { + public Timer(LuaFunction func, long startInterval, long repeatInterval = 0L) + { + _func = func; + _repeatInterval = repeatInterval; + _nextTick = GameMain.gameTick + startInterval; + } + + public bool Check(long gameTick) + { + if (gameTick < _nextTick) return false; + try + { + _func.Call(); + } + catch (Exception e) + { + Logger.LogError($"Error in Lua script: {e}"); + } + + if (_repeatInterval <= 0L) return true; + _nextTick += _repeatInterval; + if (_nextTick < gameTick) + _nextTick = gameTick + 1; + return false; + } + + private readonly LuaFunction _func; + private readonly long _repeatInterval; + private long _nextTick; + } + public new static readonly ManualLogSource Logger = + BepInEx.Logging.Logger.CreateLogSource(PluginInfo.PLUGIN_NAME); + + private Harmony _harmony; + + private static readonly Lua LuaState = new(); + private static readonly List PreUpdateFuncs = []; + private static readonly List PostUpdateFuncs = []; + private static readonly List PreGameBeginFuncs = []; + private static readonly List PostGameBeginFuncs = []; + private static readonly List PreGameEndFuncs = []; + private static readonly List PostGameEndFuncs = []; + private static readonly List Timers = []; + private static readonly List RemovedTimers = []; + + private void Awake() + { + LuaState.LoadCLRPackage(); + LuaState.DoString("import('Assembly-CSharp')"); + LuaState["register_callback"] = (string tp, bool pre, LuaFunction action) => + { + switch (tp) + { + case "update": + (pre ? PreUpdateFuncs : PostUpdateFuncs).Add(action); + break; + case "game_begin": + (pre ? PreGameBeginFuncs : PostGameBeginFuncs).Add(action); + break; + case "game_end": + (pre ? PreGameEndFuncs : PostGameEndFuncs).Add(action); + break; + } + }; + LuaState["add_timer"] = int(LuaFunction func, long firstInterval, long repeatInterval) => + { + var timer = new Timer(func, firstInterval, repeatInterval); + if (RemovedTimers.Count <= 0) + { + Timers.Add(timer); + return Timers.Count - 1; + } + var index = RemovedTimers[RemovedTimers.Count - 1]; + Timers[index] = timer; + RemovedTimers.RemoveAt(RemovedTimers.Count - 1); + return index; + }; + LuaState["remove_timer"] = void (int index) => + { + if (index < 0 || index >= Timers.Count) return; + Timers[index] = null; + RemovedTimers.Add(index); + }; + + var assemblyPath = System.IO.Path.Combine( + System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)!, + "scripts" + ); + + foreach (var file in System.IO.Directory.GetFiles(assemblyPath, "*.lua")) + { + Logger.LogInfo($"Loading Lua script: {file}"); + LuaState.DoFile(file); + } + _harmony = Harmony.CreateAndPatchAll(typeof(Patches)); + } + + private void OnDestroy() + { + RemovedTimers.Clear(); + Timers.Clear(); + PreUpdateFuncs.Clear(); + PostUpdateFuncs.Clear(); + PreGameBeginFuncs.Clear(); + PostGameBeginFuncs.Clear(); + PreGameEndFuncs.Clear(); + PostGameEndFuncs.Clear(); + + _harmony?.UnpatchSelf(); + LuaState.Dispose(); + } + + private static class Patches + { + private static void LoopCall(List funcs) + { + foreach (var func in funcs) + { + try + { + func.Call(); + } + catch (Exception e) + { + Logger.LogError($"Error in Lua script: {e}"); + } + } + } + + [HarmonyPrefix] + [HarmonyPatch(typeof(GameMain), nameof(GameMain.FixedUpdate))] + private static void GameMain_FixedUpdate_Prefix() + { + if (Timers.Count > 0) + { + var gameTick = GameMain.gameTick; + for (var index = Timers.Count - 1; index >= 0; index--) + { + var timer = Timers[index]; + if (timer == null || !timer.Check(gameTick)) continue; + Timers[index] = null; + RemovedTimers.Add(index); + } + } + + LoopCall(PreUpdateFuncs); + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(GameMain), nameof(GameMain.FixedUpdate))] + private static void GameMain_FixedUpdate_Postfix() + { + LoopCall(PostUpdateFuncs); + } + + [HarmonyPrefix] + [HarmonyPatch(typeof(GameMain), nameof(GameMain.Begin))] + private static void GameMain_Begin_Prefix() + { + LoopCall(PreGameBeginFuncs); + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(GameMain), nameof(GameMain.Begin))] + private static void GameMain_Begin_Postfix() + { + LoopCall(PostGameBeginFuncs); + } + + [HarmonyPrefix] + [HarmonyPatch(typeof(GameMain), nameof(GameMain.End))] + private static void GameMain_End_Prefix() + { + LoopCall(PreGameEndFuncs); + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(GameMain), nameof(GameMain.End))] + private static void GameMain_End_Postfix() + { + LoopCall(PostGameEndFuncs); + } + } +} \ No newline at end of file diff --git a/LuaScriptEngine/LuaScriptEngine.csproj b/LuaScriptEngine/LuaScriptEngine.csproj new file mode 100644 index 0000000..29d55b3 --- /dev/null +++ b/LuaScriptEngine/LuaScriptEngine.csproj @@ -0,0 +1,30 @@ + + + + + net472 + LuaScriptEngine + org.soardev.luascriptengine + DSP MOD - LuaScriptEngine + 1.0.0 + true + latest + https://nuget.bepinex.dev/v3/index.json + + + + + + + + + + + + + + + + + + diff --git a/LuaScriptEngine/README.md b/LuaScriptEngine/README.md new file mode 100644 index 0000000..a7a1119 --- /dev/null +++ b/LuaScriptEngine/README.md @@ -0,0 +1,8 @@ +# LuaScriptEngine + +#### Write mod functions in lua scripts +#### 用lua脚本编写mod功能 + +## Usage + +## 使用说明 diff --git a/LuaScriptEngine/package/icon.png b/LuaScriptEngine/package/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..84fa77dca8470566c356323e9d8d12d1be158f18 GIT binary patch literal 51585 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 P00000NkvXXu0mjf;L7SK literal 0 HcmV?d00001 diff --git a/LuaScriptEngine/package/manifest.json b/LuaScriptEngine/package/manifest.json new file mode 100644 index 0000000..27ea4d4 --- /dev/null +++ b/LuaScriptEngine/package/manifest.json @@ -0,0 +1,9 @@ +{ + "name": "LuaScriptEngine", + "version_number": "1.0.0", + "website_url": "https://github.com/soarqin/DSP_Mods/tree/master/LuaScriptEngine", + "description": "Write mod functions in lua scripts / 用lua脚本编写mod功能", + "dependencies": [ + "xiaoye97-BepInEx-5.4.17" + ] +} diff --git a/MechaDronesTweaks/MechaDronesTweaks.csproj b/MechaDronesTweaks/MechaDronesTweaks.csproj index 9ff8c51..a286cae 100644 --- a/MechaDronesTweaks/MechaDronesTweaks.csproj +++ b/MechaDronesTweaks/MechaDronesTweaks.csproj @@ -24,6 +24,6 @@ - + diff --git a/OCBatchBuild/OCBatchBuild.csproj b/OCBatchBuild/OCBatchBuild.csproj index e7101f7..988e55e 100644 --- a/OCBatchBuild/OCBatchBuild.csproj +++ b/OCBatchBuild/OCBatchBuild.csproj @@ -24,6 +24,6 @@ - + diff --git a/OverclockEverything/OverclockEverything.csproj b/OverclockEverything/OverclockEverything.csproj index 9c1a6f0..a61565f 100644 --- a/OverclockEverything/OverclockEverything.csproj +++ b/OverclockEverything/OverclockEverything.csproj @@ -26,6 +26,6 @@ - + diff --git a/PoolOpt/PoolOpt.csproj b/PoolOpt/PoolOpt.csproj index 53c64c5..1f447d2 100644 --- a/PoolOpt/PoolOpt.csproj +++ b/PoolOpt/PoolOpt.csproj @@ -24,6 +24,6 @@ - + diff --git a/UXAssist/UXAssist.csproj b/UXAssist/UXAssist.csproj index 70bce5a..427f444 100644 --- a/UXAssist/UXAssist.csproj +++ b/UXAssist/UXAssist.csproj @@ -37,6 +37,6 @@ - + diff --git a/UniverseGenTweaks/UniverseGenTweaks.csproj b/UniverseGenTweaks/UniverseGenTweaks.csproj index 46433b8..66c6a39 100644 --- a/UniverseGenTweaks/UniverseGenTweaks.csproj +++ b/UniverseGenTweaks/UniverseGenTweaks.csproj @@ -29,6 +29,6 @@ - + diff --git a/UserCloak/UserCloak.csproj b/UserCloak/UserCloak.csproj index b64603b..36ba930 100644 --- a/UserCloak/UserCloak.csproj +++ b/UserCloak/UserCloak.csproj @@ -24,6 +24,6 @@ - +