From e5bc6a25922c6ccf81be9ad2e0ba74bcde7652ef Mon Sep 17 00:00:00 2001
From: ninemine <106434473+NINEMINEsigma@users.noreply.github.com>
Date: Fri, 27 Jun 2025 19:51:53 +0800
Subject: [PATCH] =?UTF-8?q?BS=200.0.1=20EasySave=E5=88=9D=E6=AD=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Convention/Runtime/Config.cs | 20 +
.../Runtime/EasySave/Attributes/Attributes.cs | 7 +
Convention/Runtime/EasySave/EasySave.cs | 1492 +++++++++++++++++
Convention/Runtime/EasySave/EasySaveCrypto.cs | 208 +++
Convention/Runtime/EasySave/EasySaveFile.cs | 515 ++++++
Convention/Runtime/EasySave/EasySaveIO.cs | 165 ++
.../Runtime/EasySave/EasySaveReflection.cs | 725 ++++++++
.../Runtime/EasySave/EasySaveSpreadsheet.cs | 301 ++++
.../EasySave/Readers/EasySaveJSONReader.cs | 566 +++++++
.../EasySave/Readers/EasySaveReader.cs | 454 +++++
.../EasySave/Settings/EasySaveDefaults.cs | 18 +
.../EasySave/Settings/EasySaveSettings.cs | 373 +++++
.../EasySave/Streams/EasySaveFileStream.cs | 68 +
.../EasySave/Streams/EasySaveStream.cs | 92 +
.../Types/Collection Types/ECollectionType.cs | 116 ++
.../Collection Types/EasySave2DArrayType.cs | 150 ++
.../Collection Types/EasySave3DArrayType.cs | 164 ++
.../Collection Types/EasySaveArrayType.cs | 97 ++
.../EasySaveConcurrentDictionaryType.cs | 140 ++
.../EasySaveDictionaryType.cs | 140 ++
.../Collection Types/EasySaveHashSetType.cs | 89 +
.../Collection Types/EasySaveListType.cs | 109 ++
.../EasySaveNativeArrayType.cs | 72 +
.../Collection Types/EasySaveQueueType.cs | 146 ++
.../Collection Types/EasySaveStackType.cs | 150 ++
.../Collection Types/EasySaveTupleType.cs | 76 +
.../EasySave/Types/EasySaveObjectType.cs | 78 +
.../EasySave/Types/EasySaveProperty.cs | 30 +
.../Runtime/EasySave/Types/EasySaveType.cs | 191 +++
.../Runtime/EasySave/Types/EasySaveTypeMgr.cs | 150 ++
.../NET Types/EasySaveType_BigInteger.cs | 36 +
.../Types/NET Types/EasySaveType_Random.cs | 66 +
.../Types/NET Types/EasySaveType_Type.cs | 26 +
.../Primitive Types/EasySaveType_DateTime.cs | 35 +
.../EasySaveType_EasySaveRef.cs | 55 +
.../Primitive Types/EasySaveType_IntPtr.cs | 35 +
.../Primitive Types/EasySaveType_UIntPtr.cs | 35 +
.../Primitive Types/EasySaveType_bool.cs | 35 +
.../Primitive Types/EasySaveType_byte.cs | 25 +
.../Primitive Types/EasySaveType_byteArray.cs | 25 +
.../Primitive Types/EasySaveType_char.cs | 32 +
.../Primitive Types/EasySaveType_decimal.cs | 35 +
.../Primitive Types/EasySaveType_double.cs | 35 +
.../Primitive Types/EasySaveType_enum.cs | 57 +
.../Primitive Types/EasySaveType_float.cs | 35 +
.../Types/Primitive Types/EasySaveType_int.cs | 35 +
.../Primitive Types/EasySaveType_long.cs | 35 +
.../Primitive Types/EasySaveType_sbyte.cs | 35 +
.../Primitive Types/EasySaveType_short.cs | 35 +
.../Primitive Types/EasySaveType_string.cs | 35 +
.../Primitive Types/EasySaveType_uint.cs | 35 +
.../Primitive Types/EasySaveType_ulong.cs | 35 +
.../Primitive Types/EasySaveType_ushort.cs | 35 +
.../EasySaveReflectedObjectType.cs | 33 +
.../EasySaveReflectedValueType.cs | 36 +
.../EasySave/Writers/EasySaveBinary.cs | 121 ++
.../EasySave/Writers/EasySaveCacheWriter.cs | 156 ++
.../EasySave/Writers/EasySaveJSONWriter.cs | 232 +++
.../EasySave/Writers/EasySaveWriter.cs | 446 +++++
[Test]/Program.cs | 41 +-
60 files changed, 8785 insertions(+), 29 deletions(-)
create mode 100644 Convention/Runtime/EasySave/Attributes/Attributes.cs
create mode 100644 Convention/Runtime/EasySave/EasySave.cs
create mode 100644 Convention/Runtime/EasySave/EasySaveCrypto.cs
create mode 100644 Convention/Runtime/EasySave/EasySaveFile.cs
create mode 100644 Convention/Runtime/EasySave/EasySaveIO.cs
create mode 100644 Convention/Runtime/EasySave/EasySaveReflection.cs
create mode 100644 Convention/Runtime/EasySave/EasySaveSpreadsheet.cs
create mode 100644 Convention/Runtime/EasySave/Readers/EasySaveJSONReader.cs
create mode 100644 Convention/Runtime/EasySave/Readers/EasySaveReader.cs
create mode 100644 Convention/Runtime/EasySave/Settings/EasySaveDefaults.cs
create mode 100644 Convention/Runtime/EasySave/Settings/EasySaveSettings.cs
create mode 100644 Convention/Runtime/EasySave/Streams/EasySaveFileStream.cs
create mode 100644 Convention/Runtime/EasySave/Streams/EasySaveStream.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/ECollectionType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySave2DArrayType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySave3DArrayType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySaveArrayType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySaveConcurrentDictionaryType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySaveDictionaryType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySaveHashSetType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySaveListType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySaveNativeArrayType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySaveQueueType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySaveStackType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Collection Types/EasySaveTupleType.cs
create mode 100644 Convention/Runtime/EasySave/Types/EasySaveObjectType.cs
create mode 100644 Convention/Runtime/EasySave/Types/EasySaveProperty.cs
create mode 100644 Convention/Runtime/EasySave/Types/EasySaveType.cs
create mode 100644 Convention/Runtime/EasySave/Types/EasySaveTypeMgr.cs
create mode 100644 Convention/Runtime/EasySave/Types/NET Types/EasySaveType_BigInteger.cs
create mode 100644 Convention/Runtime/EasySave/Types/NET Types/EasySaveType_Random.cs
create mode 100644 Convention/Runtime/EasySave/Types/NET Types/EasySaveType_Type.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_DateTime.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_EasySaveRef.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_IntPtr.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_UIntPtr.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_bool.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_byte.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_byteArray.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_char.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_decimal.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_double.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_enum.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_float.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_int.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_long.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_sbyte.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_short.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_string.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_uint.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_ulong.cs
create mode 100644 Convention/Runtime/EasySave/Types/Primitive Types/EasySaveType_ushort.cs
create mode 100644 Convention/Runtime/EasySave/Types/Reflected Types/EasySaveReflectedObjectType.cs
create mode 100644 Convention/Runtime/EasySave/Types/Reflected Types/EasySaveReflectedValueType.cs
create mode 100644 Convention/Runtime/EasySave/Writers/EasySaveBinary.cs
create mode 100644 Convention/Runtime/EasySave/Writers/EasySaveCacheWriter.cs
create mode 100644 Convention/Runtime/EasySave/Writers/EasySaveJSONWriter.cs
create mode 100644 Convention/Runtime/EasySave/Writers/EasySaveWriter.cs
diff --git a/Convention/Runtime/Config.cs b/Convention/Runtime/Config.cs
index 66fbad3..794c2c2 100644
--- a/Convention/Runtime/Config.cs
+++ b/Convention/Runtime/Config.cs
@@ -31,6 +31,26 @@ namespace Convention
{
return MainThreadID == Thread.CurrentThread.ManagedThreadId;
}
+
+ //var filePath = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Local\Temp");
+
+ public static string CompanyName = "DefaultCom";
+
+ public static string ProductName = "DefaultProject";
+
+ public static string PersistentDataPath
+ {
+ get
+ {
+ if (IsPlatformWindows)
+ return Environment.ExpandEnvironmentVariables($@"%userprofile%\AppData\LocalLow\{CompanyName}\{ProductName}\");
+ else if (IsPlatformLinux)
+ return Environment.ExpandEnvironmentVariables(@"$HOME/.config/");
+ return "";
+ }
+ }
+
+ public static string DataPath => "Assets/";
}
public static partial class Utility
diff --git a/Convention/Runtime/EasySave/Attributes/Attributes.cs b/Convention/Runtime/EasySave/Attributes/Attributes.cs
new file mode 100644
index 0000000..aee3fd6
--- /dev/null
+++ b/Convention/Runtime/EasySave/Attributes/Attributes.cs
@@ -0,0 +1,7 @@
+using System;
+
+[AttributeUsage(AttributeTargets.Class | AttributeTargets.Field | AttributeTargets.Property)]
+public class EasySaved : Attribute{}
+
+[AttributeUsage(AttributeTargets.Class | AttributeTargets.Field | AttributeTargets.Property)]
+public class EasySaveIgnored : Attribute { }
diff --git a/Convention/Runtime/EasySave/EasySave.cs b/Convention/Runtime/EasySave/EasySave.cs
new file mode 100644
index 0000000..ef02d93
--- /dev/null
+++ b/Convention/Runtime/EasySave/EasySave.cs
@@ -0,0 +1,1492 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Convention.EasySave.Internal;
+
+namespace Convention.EasySave
+{
+ ///
+ /// The main class for Easy Save methods. All methods in this class are static.
+ ///
+ public class EasySave
+ {
+ public enum Location { File, InternalMS, Cache };
+ public enum Directory { PersistentDataPath, DataPath }
+ public enum EncryptionType { None, AES };
+ public enum CompressionType { None, Gzip };
+ public enum Format { JSON };
+ public enum ReferenceMode { ByRef, ByValue, ByRefAndValue };
+ public enum ImageType { JPEG, PNG };
+
+ #region EasySave.Save
+
+ // Saves the value to the default file with the given key.
+ /// The key we want to use to identify our value in the file.
+ /// The value we want to save.
+ public static void Save(string key, object value)
+ {
+ Save