aboutsummaryrefslogtreecommitdiff
path: root/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs')
-rw-r--r--Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs b/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs
new file mode 100644
index 0000000..df8eef6
--- /dev/null
+++ b/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs
@@ -0,0 +1,48 @@
+using System.IO;
+using UnityEditor;
+using UnityEngine;
+using VRC.PackageManagement.PackageMaker;
+
+public class PackageMakerWindowData : ScriptableObject
+{
+ public static string defaultAssetPath = Path.Combine("Assets", "PackageMakerWindowData.asset");
+ public string targetAssetFolder;
+ public string packageID;
+
+ public string authorName;
+ public string authorEmail;
+ public string authorUrl;
+ public PackageMakerWindow.VRCPackageEnum relatedPackage;
+
+ public static PackageMakerWindowData GetOrCreate()
+ {
+ var existingData = AssetDatabase.AssetPathToGUID(defaultAssetPath);
+ if (string.IsNullOrWhiteSpace(existingData))
+ {
+ return Create();
+ }
+ else
+ {
+ var saveData = AssetDatabase.LoadAssetAtPath<PackageMakerWindowData>(defaultAssetPath);
+ if (saveData == null)
+ {
+ Debug.LogError($"Could not load saved data but the save file exists. Resetting.");
+ return Create();
+ }
+ return saveData;
+ }
+ }
+
+ public static PackageMakerWindowData Create()
+ {
+ var saveData = CreateInstance<PackageMakerWindowData>();
+ AssetDatabase.CreateAsset(saveData, defaultAssetPath);
+ AssetDatabase.SaveAssets();
+ return saveData;
+ }
+
+ public void Save()
+ {
+ AssetDatabase.SaveAssets();
+ }
+}