aboutsummaryrefslogtreecommitdiff
path: root/Packages/com.vrchat.core.vpm-resolver/Editor/PackageMaker/PackageMakerWindowData.cs
blob: df8eef65490241bfe064a587ce82e14d969a020c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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();
    }
}