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