From e5cb9c2d283d57441ca8cb68a24c1d9e56e2abfa Mon Sep 17 00:00:00 2001 From: Creeper Lv Date: Sun, 22 Mar 2026 02:12:35 +1100 Subject: [PATCH] Changed the assembly name to allow double-click to open in macOS Added random number generator in JS engine. --- Progrart.Core/JSExecution/ExecutionEngine.cs | 30 ++++++++++++++++++++ Progrart.Desktop/Progrart.Desktop.csproj | 30 ++++++++------------ 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/Progrart.Core/JSExecution/ExecutionEngine.cs b/Progrart.Core/JSExecution/ExecutionEngine.cs index 4cdcf87..a019a7a 100644 --- a/Progrart.Core/JSExecution/ExecutionEngine.cs +++ b/Progrart.Core/JSExecution/ExecutionEngine.cs @@ -83,6 +83,36 @@ namespace Progrart.Core.JSExecution _obj.Set("floor", JsObject.FromObject(Engine, (object)MathFunctions.floor)); _obj.Set("sinh", JsObject.FromObject(Engine, (object)MathFunctions.sinh)); _obj.Set("cosh", JsObject.FromObject(Engine, (object)MathFunctions.cosh)); + Engine.SetValue("random", JsObject.FromObject(Engine, (int seed) => + { + var obj = new JsObject(Engine); + Random random = new Random(seed); + obj.Set("Next", JsObject.FromObject(Engine, () => + { + return random.Next(); + })); + obj.Set("NextMax", JsObject.FromObject(Engine, (int max) => + { + return random.Next(max); + })); + obj.Set("NextFloat", JsObject.FromObject(Engine, () => random.NextDouble())); + return obj; + })); + Engine.SetValue("random_undetermined", JsObject.FromObject(Engine, () => + { + var obj = new JsObject(Engine); + Random random = new Random(); + obj.Set("Next", JsObject.FromObject(Engine, () => + { + return random.Next(); + })); + obj.Set("NextMax", JsObject.FromObject(Engine, (int max) => + { + return random.Next(max); + })); + obj.Set("NextFloat", JsObject.FromObject(Engine, () => random.NextDouble())); + return obj; + })); } string formSymbol(Dictionary symbols) { diff --git a/Progrart.Desktop/Progrart.Desktop.csproj b/Progrart.Desktop/Progrart.Desktop.csproj index 44231bb..3ef6471 100644 --- a/Progrart.Desktop/Progrart.Desktop.csproj +++ b/Progrart.Desktop/Progrart.Desktop.csproj @@ -1,39 +1,33 @@  - WinExe - net10.0 enable true + ProgrartDesktop - app.manifest progrart_app_icon.ico - - + - - - - + + + - - - + - None - All + None + All - + - - + - + \ No newline at end of file