feat: add NuGet and Godot distribution

This commit is contained in:
2026-09-05 03:41:37 +08:00
parent 0030f5b794
commit 422cf9a48b
8 changed files with 160 additions and 1 deletions
+43
View File
@@ -0,0 +1,43 @@
#nullable enable
using System.IO;
using Cysharp.Threading.Tasks;
using ShrinkSDK.Runtime;
namespace ShrinkDataSaver;
public sealed class ShrinkDataSaverRuntimeConfig
{
public string? RootPath { get; set; }
public string SaveFileExtension { get; set; } = ".sav";
public string SettingsFileName { get; set; } = "settings.json";
public int CurrentSaveVersion { get; set; } = 1;
public int MaxSlots { get; set; } = 3;
public float SettingsWriteDebounceSeconds { get; set; } = 0.35f;
public bool DontDestroyOnLoadDriver { get; set; }
}
public static class ShrinkDataSaverRuntime
{
public static bool IsInitialized { get; private set; }
public static void Initialize(ShrinkDataSaverRuntimeConfig? config = null)
{
if (IsInitialized) return;
config ??= new ShrinkDataSaverRuntimeConfig();
var root = string.IsNullOrWhiteSpace(config.RootPath)
? ShrinkRuntimeServices.Paths.PersistentDataPath
: config.RootPath!;
Directory.CreateDirectory(root);
var storage = new LocalStorageProvider(root);
ShrinkDataSaverPlatform.SettingsWriteDebounceSeconds = config.SettingsWriteDebounceSeconds;
ShrinkDataSaverPlatform.MaxSlots = config.MaxSlots;
ShrinkSettings.Initialize(storage, Path.Combine(root, config.SettingsFileName));
ShrinkSave.Initialize(storage, Path.Combine(root, "saves"), config.SaveFileExtension,
config.CurrentSaveVersion);
ShrinkSettings.LoadAsync().Forget();
IsInitialized = true;
ShrinkRuntimeServices.Logger.Log(ShrinkLogLevel.Information,
$"[ShrinkDataSaver] Runtime initialized. Root: {root}");
}
}
+29
View File
@@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
<AssemblyName>ShrinkDataSaver.Runtime</AssemblyName>
<RootNamespace>ShrinkDataSaver</RootNamespace>
<PackageId>ShrinkSDK.DataSaver</PackageId>
<Version>2.3.0</Version>
<Description>ShrinkSDK engine-neutral versioned save and settings runtime.</Description>
<ShrinkCodeGenEnabled>false</ShrinkCodeGenEnabled>
<Nullable>disable</Nullable>
</PropertyGroup>
<ItemGroup>
<Compile Include="Runtime\ShrinkDataSaverRuntime.cs" />
<Compile Include="..\Runtime\AssemblyInfo.cs" />
<Compile Include="..\Runtime\DataSerializer.cs" />
<Compile Include="..\Runtime\IStorageProvider.cs" />
<Compile Include="..\Runtime\LocalStorageProvider.cs" />
<Compile Include="..\Runtime\MigrationChain.cs" />
<Compile Include="..\Runtime\SaveEncryptor.cs" />
<Compile Include="..\Runtime\SaveTypes.cs" />
<Compile Include="..\Runtime\ShrinkDataSaverPlatform.cs" />
<Compile Include="..\Runtime\ShrinkSave.cs" />
<Compile Include="..\Runtime\ShrinkSettings.cs" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="UniTask" Version="2.5.10" />
<PackageReference Include="ShrinkSDK.Runtime.Abstractions" Version="0.1.0" />
</ItemGroup>
</Project>