diff options
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.cs | 48 |
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(); + } +} |
