Changed the assembly name to allow double-click to open in macOS

Added random number generator in JS engine.
This commit is contained in:
Creeper Lv
2026-03-22 02:12:35 +11:00
parent f57fcb621f
commit e5cb9c2d28
2 changed files with 42 additions and 18 deletions
@@ -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<string, string> symbols)
{
+5 -11
View File
@@ -1,38 +1,32 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<!--If you are willing to use platform-specific APIs, use conditional compilation.
<OutputType>WinExe</OutputType><!--If you are willing to use platform-specific APIs, use conditional compilation.
See https://docs.avaloniaui.net/docs/guides/platforms/platform-specific-code/dotnet for more details.-->
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<PublishAot>true</PublishAot>
<AssemblyName>ProgrartDesktop</AssemblyName>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
<ApplicationIcon>progrart_app_icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Content Include="progrart_app_icon.ico"/>
</ItemGroup>
<ItemGroup>
<TrimmerRootAssembly Include="Progrart"/>
<TrimmerRootAssembly Include="Progrart.Core"/>
<TrimmerRootAssembly Include="Jint"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Avalonia.Desktop" />
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Include="Avalonia.Desktop"/><!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Include="Avalonia.Diagnostics">
<IncludeAssets Condition="'$(Configuration)' != 'Debug'">None</IncludeAssets>
<PrivateAssets Condition="'$(Configuration)' != 'Debug'">All</PrivateAssets>
<IncludeAssets Condition="&apos;$(Configuration)&apos; != &apos;Debug&apos;">None</IncludeAssets>
<PrivateAssets Condition="&apos;$(Configuration)&apos; != &apos;Debug&apos;">All</PrivateAssets>
</PackageReference>
<PackageReference Include="SkiaSharp.NativeAssets.Linux"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Progrart\Progrart.csproj"/>
</ItemGroup>