net.dreditor.editor.utility.converting 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.attestation.p7m +0 -0
- package/ActorConversion.cs +104 -104
- package/ActorConversion.cs.meta +11 -11
- package/ConvertRoomDataRegion.cs +437 -437
- package/ConvertRoomDataRegion.cs.meta +11 -11
- package/ConvertRoomDataScenes.cs +168 -168
- package/ConvertRoomDataScenes.cs.meta +11 -11
- package/ConvertUtility.cs +107 -107
- package/ConvertUtility.cs.meta +11 -11
- package/DREditor.Editor.Utility.Converting.asmdef +33 -33
- package/DREditor.Editor.Utility.Converting.asmdef.meta +7 -7
- package/MigrationUtility.cs +128 -128
- package/MigrationUtility.cs.meta +11 -11
- package/package.json +53 -48
- package/package.json.meta +7 -7
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 6ff79ff0f10accd458d6413e7c465bc5
|
|
3
|
-
MonoImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
defaultReferences: []
|
|
7
|
-
executionOrder: 0
|
|
8
|
-
icon: {instanceID: 0}
|
|
9
|
-
userData:
|
|
10
|
-
assetBundleName:
|
|
11
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 6ff79ff0f10accd458d6413e7c465bc5
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
package/ConvertRoomDataScenes.cs
CHANGED
|
@@ -1,169 +1,169 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.RoomBuilding;
|
|
3
|
-
using DREditor.RoomBuilding.Old;
|
|
4
|
-
using System.Collections.Generic;
|
|
5
|
-
using UnityEditor;
|
|
6
|
-
using UnityEditor.SceneManagement;
|
|
7
|
-
using UnityEngine;
|
|
8
|
-
|
|
9
|
-
namespace DREditor.Editor.Utility.Converting
|
|
10
|
-
{
|
|
11
|
-
/// <summary>
|
|
12
|
-
///
|
|
13
|
-
/// </summary>
|
|
14
|
-
public class ConvertRoomDataScenes : ScriptableWizard
|
|
15
|
-
{
|
|
16
|
-
// Get the asset of the RoomStateManager Prefab
|
|
17
|
-
|
|
18
|
-
// Get all valid scenes guids
|
|
19
|
-
// Get all valid scene assets
|
|
20
|
-
// Get the paths to each valid scene
|
|
21
|
-
// Open each scene
|
|
22
|
-
|
|
23
|
-
// If that scene contains a RoomManager,
|
|
24
|
-
// Then
|
|
25
|
-
// Instantiate the prefab in the scene
|
|
26
|
-
// Select Prefab
|
|
27
|
-
// Delete the RoomManager GameObject
|
|
28
|
-
// Set the scene dirty and save
|
|
29
|
-
// ELSE
|
|
30
|
-
// Move to the next scene
|
|
31
|
-
|
|
32
|
-
/// <summary>
|
|
33
|
-
///
|
|
34
|
-
/// </summary>
|
|
35
|
-
static readonly List<RoomStateBuilder> Builders = new();
|
|
36
|
-
|
|
37
|
-
/// <summary>
|
|
38
|
-
///
|
|
39
|
-
/// </summary>
|
|
40
|
-
[Header("")]
|
|
41
|
-
[Tooltip("")]
|
|
42
|
-
[SerializeField] protected GameObject roomStateManagerPrefab = null;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
[MenuItem("DREditor/Convert/Convert Scene Room Managers")]
|
|
46
|
-
public static void CreateWizard() => DisplayWizard<ConvertRoomDataScenes>("Convert Room Data", "Convert");
|
|
47
|
-
|
|
48
|
-
protected virtual void OnWizardCreate()
|
|
49
|
-
{
|
|
50
|
-
if (EditorUtility.DisplayDialog("Confirm", "You MUST convert the Room Data Assets FIRST." +
|
|
51
|
-
"\nYou can do this by calling: DREditor/Convert/Convert All Room Data Builders." +
|
|
52
|
-
"\nHave you done this?", "Yes", "No"))
|
|
53
|
-
ConvertSceneRoomManagers();
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
/// <summary>
|
|
58
|
-
///
|
|
59
|
-
/// </summary>
|
|
60
|
-
protected virtual void ConvertSceneRoomManagers()
|
|
61
|
-
{
|
|
62
|
-
InitializeBuilders();
|
|
63
|
-
|
|
64
|
-
ConvertAllValidScenes();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/// <summary>
|
|
68
|
-
///
|
|
69
|
-
/// </summary>
|
|
70
|
-
protected virtual void InitializeBuilders()
|
|
71
|
-
{
|
|
72
|
-
Builders.Clear();
|
|
73
|
-
|
|
74
|
-
var found = AssetDatabase.FindAssets("t:RoomStateBuilder");
|
|
75
|
-
|
|
76
|
-
if (found.Length != 0)
|
|
77
|
-
foreach (var asset in found)
|
|
78
|
-
{
|
|
79
|
-
string path = AssetDatabase.GUIDToAssetPath(asset);
|
|
80
|
-
|
|
81
|
-
var roomStateBuilder = AssetDatabase.LoadAssetAtPath<RoomStateBuilder>(path);
|
|
82
|
-
|
|
83
|
-
Builders.Add(roomStateBuilder);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
/// <summary>
|
|
89
|
-
///
|
|
90
|
-
/// </summary>
|
|
91
|
-
protected virtual void ConvertAllValidScenes()
|
|
92
|
-
{
|
|
93
|
-
var scenes = CustomEditorUtility.GetAllValidSceneAssets();
|
|
94
|
-
|
|
95
|
-
foreach (var scene in scenes)
|
|
96
|
-
ConvertScene(scene);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/// <summary>
|
|
100
|
-
///
|
|
101
|
-
/// </summary>
|
|
102
|
-
/// <param name="scene"></param>
|
|
103
|
-
protected virtual void ConvertScene(SceneAsset scene)
|
|
104
|
-
{
|
|
105
|
-
try
|
|
106
|
-
{
|
|
107
|
-
CustomEditorUtility.LoadScene(scene);
|
|
108
|
-
}
|
|
109
|
-
catch
|
|
110
|
-
{
|
|
111
|
-
UnityEngine.Debug.LogWarning("Had trouble opening scene: " + scene.name + " , Skipping conversion.");
|
|
112
|
-
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
ExecuteRoomConvert();
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/// <summary>
|
|
120
|
-
///
|
|
121
|
-
/// </summary>
|
|
122
|
-
protected virtual void ExecuteRoomConvert()
|
|
123
|
-
{
|
|
124
|
-
var roomManagers = MonoBehaviour.FindObjectsByType<RoomManager>();
|
|
125
|
-
|
|
126
|
-
if (roomManagers.Length > 0 && HasExistingBuilder(out RoomStateBuilder builder))
|
|
127
|
-
{
|
|
128
|
-
var managerObject = (GameObject)PrefabUtility.InstantiatePrefab(roomStateManagerPrefab);
|
|
129
|
-
|
|
130
|
-
var manager = managerObject.GetComponent<RoomStateManager>();
|
|
131
|
-
|
|
132
|
-
manager.SetBuilder(builder);
|
|
133
|
-
|
|
134
|
-
EditorUtility.SetDirty(manager);
|
|
135
|
-
|
|
136
|
-
MonoBehaviour.DestroyImmediate(roomManagers[0].gameObject);
|
|
137
|
-
|
|
138
|
-
EditorUtility.SetDirty(managerObject);
|
|
139
|
-
|
|
140
|
-
EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/// <summary>
|
|
145
|
-
///
|
|
146
|
-
/// </summary>
|
|
147
|
-
/// <param name="builder"></param>
|
|
148
|
-
/// <returns></returns>
|
|
149
|
-
protected virtual bool HasExistingBuilder(out RoomStateBuilder builder)
|
|
150
|
-
{
|
|
151
|
-
builder = null;
|
|
152
|
-
|
|
153
|
-
if (Builders.Count != 0)
|
|
154
|
-
{
|
|
155
|
-
foreach (var roomStateBuilder in Builders)
|
|
156
|
-
{
|
|
157
|
-
if (roomStateBuilder != null && roomStateBuilder.name == EditorSceneManager.GetActiveScene().name)
|
|
158
|
-
{
|
|
159
|
-
builder = roomStateBuilder;
|
|
160
|
-
|
|
161
|
-
return true;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.RoomBuilding;
|
|
3
|
+
using DREditor.RoomBuilding.Old;
|
|
4
|
+
using System.Collections.Generic;
|
|
5
|
+
using UnityEditor;
|
|
6
|
+
using UnityEditor.SceneManagement;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
|
|
9
|
+
namespace DREditor.Editor.Utility.Converting
|
|
10
|
+
{
|
|
11
|
+
/// <summary>
|
|
12
|
+
///
|
|
13
|
+
/// </summary>
|
|
14
|
+
public class ConvertRoomDataScenes : ScriptableWizard
|
|
15
|
+
{
|
|
16
|
+
// Get the asset of the RoomStateManager Prefab
|
|
17
|
+
|
|
18
|
+
// Get all valid scenes guids
|
|
19
|
+
// Get all valid scene assets
|
|
20
|
+
// Get the paths to each valid scene
|
|
21
|
+
// Open each scene
|
|
22
|
+
|
|
23
|
+
// If that scene contains a RoomManager,
|
|
24
|
+
// Then
|
|
25
|
+
// Instantiate the prefab in the scene
|
|
26
|
+
// Select Prefab
|
|
27
|
+
// Delete the RoomManager GameObject
|
|
28
|
+
// Set the scene dirty and save
|
|
29
|
+
// ELSE
|
|
30
|
+
// Move to the next scene
|
|
31
|
+
|
|
32
|
+
/// <summary>
|
|
33
|
+
///
|
|
34
|
+
/// </summary>
|
|
35
|
+
static readonly List<RoomStateBuilder> Builders = new();
|
|
36
|
+
|
|
37
|
+
/// <summary>
|
|
38
|
+
///
|
|
39
|
+
/// </summary>
|
|
40
|
+
[Header("")]
|
|
41
|
+
[Tooltip("")]
|
|
42
|
+
[SerializeField] protected GameObject roomStateManagerPrefab = null;
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
[MenuItem("DREditor/Convert/Convert Scene Room Managers")]
|
|
46
|
+
public static void CreateWizard() => DisplayWizard<ConvertRoomDataScenes>("Convert Room Data", "Convert");
|
|
47
|
+
|
|
48
|
+
protected virtual void OnWizardCreate()
|
|
49
|
+
{
|
|
50
|
+
if (EditorUtility.DisplayDialog("Confirm", "You MUST convert the Room Data Assets FIRST." +
|
|
51
|
+
"\nYou can do this by calling: DREditor/Convert/Convert All Room Data Builders." +
|
|
52
|
+
"\nHave you done this?", "Yes", "No"))
|
|
53
|
+
ConvertSceneRoomManagers();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
/// <summary>
|
|
58
|
+
///
|
|
59
|
+
/// </summary>
|
|
60
|
+
protected virtual void ConvertSceneRoomManagers()
|
|
61
|
+
{
|
|
62
|
+
InitializeBuilders();
|
|
63
|
+
|
|
64
|
+
ConvertAllValidScenes();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/// <summary>
|
|
68
|
+
///
|
|
69
|
+
/// </summary>
|
|
70
|
+
protected virtual void InitializeBuilders()
|
|
71
|
+
{
|
|
72
|
+
Builders.Clear();
|
|
73
|
+
|
|
74
|
+
var found = AssetDatabase.FindAssets("t:RoomStateBuilder");
|
|
75
|
+
|
|
76
|
+
if (found.Length != 0)
|
|
77
|
+
foreach (var asset in found)
|
|
78
|
+
{
|
|
79
|
+
string path = AssetDatabase.GUIDToAssetPath(asset);
|
|
80
|
+
|
|
81
|
+
var roomStateBuilder = AssetDatabase.LoadAssetAtPath<RoomStateBuilder>(path);
|
|
82
|
+
|
|
83
|
+
Builders.Add(roomStateBuilder);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
/// <summary>
|
|
89
|
+
///
|
|
90
|
+
/// </summary>
|
|
91
|
+
protected virtual void ConvertAllValidScenes()
|
|
92
|
+
{
|
|
93
|
+
var scenes = CustomEditorUtility.GetAllValidSceneAssets();
|
|
94
|
+
|
|
95
|
+
foreach (var scene in scenes)
|
|
96
|
+
ConvertScene(scene);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/// <summary>
|
|
100
|
+
///
|
|
101
|
+
/// </summary>
|
|
102
|
+
/// <param name="scene"></param>
|
|
103
|
+
protected virtual void ConvertScene(SceneAsset scene)
|
|
104
|
+
{
|
|
105
|
+
try
|
|
106
|
+
{
|
|
107
|
+
CustomEditorUtility.LoadScene(scene);
|
|
108
|
+
}
|
|
109
|
+
catch
|
|
110
|
+
{
|
|
111
|
+
UnityEngine.Debug.LogWarning("Had trouble opening scene: " + scene.name + " , Skipping conversion.");
|
|
112
|
+
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
ExecuteRoomConvert();
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/// <summary>
|
|
120
|
+
///
|
|
121
|
+
/// </summary>
|
|
122
|
+
protected virtual void ExecuteRoomConvert()
|
|
123
|
+
{
|
|
124
|
+
var roomManagers = MonoBehaviour.FindObjectsByType<RoomManager>();
|
|
125
|
+
|
|
126
|
+
if (roomManagers.Length > 0 && HasExistingBuilder(out RoomStateBuilder builder))
|
|
127
|
+
{
|
|
128
|
+
var managerObject = (GameObject)PrefabUtility.InstantiatePrefab(roomStateManagerPrefab);
|
|
129
|
+
|
|
130
|
+
var manager = managerObject.GetComponent<RoomStateManager>();
|
|
131
|
+
|
|
132
|
+
manager.SetBuilder(builder);
|
|
133
|
+
|
|
134
|
+
EditorUtility.SetDirty(manager);
|
|
135
|
+
|
|
136
|
+
MonoBehaviour.DestroyImmediate(roomManagers[0].gameObject);
|
|
137
|
+
|
|
138
|
+
EditorUtility.SetDirty(managerObject);
|
|
139
|
+
|
|
140
|
+
EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/// <summary>
|
|
145
|
+
///
|
|
146
|
+
/// </summary>
|
|
147
|
+
/// <param name="builder"></param>
|
|
148
|
+
/// <returns></returns>
|
|
149
|
+
protected virtual bool HasExistingBuilder(out RoomStateBuilder builder)
|
|
150
|
+
{
|
|
151
|
+
builder = null;
|
|
152
|
+
|
|
153
|
+
if (Builders.Count != 0)
|
|
154
|
+
{
|
|
155
|
+
foreach (var roomStateBuilder in Builders)
|
|
156
|
+
{
|
|
157
|
+
if (roomStateBuilder != null && roomStateBuilder.name == EditorSceneManager.GetActiveScene().name)
|
|
158
|
+
{
|
|
159
|
+
builder = roomStateBuilder;
|
|
160
|
+
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
return false;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
169
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: f031a83469ae6d34db2692c0db899dfa
|
|
3
|
-
MonoImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
defaultReferences: []
|
|
7
|
-
executionOrder: 0
|
|
8
|
-
icon: {instanceID: 0}
|
|
9
|
-
userData:
|
|
10
|
-
assetBundleName:
|
|
11
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: f031a83469ae6d34db2692c0db899dfa
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
package/ConvertUtility.cs
CHANGED
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using System.Collections.Generic;
|
|
3
|
-
using System.IO;
|
|
4
|
-
using UnityEditor;
|
|
5
|
-
using UnityEngine;
|
|
6
|
-
|
|
7
|
-
namespace DREditor.Editor.Utility.Converting
|
|
8
|
-
{
|
|
9
|
-
/// <summary>
|
|
10
|
-
///
|
|
11
|
-
/// </summary>
|
|
12
|
-
public static class ConvertUtility
|
|
13
|
-
{
|
|
14
|
-
/// <summary>
|
|
15
|
-
///
|
|
16
|
-
/// </summary>
|
|
17
|
-
/// <typeparam name="T"></typeparam>
|
|
18
|
-
/// <param name="list"></param>
|
|
19
|
-
/// <param name="index"></param>
|
|
20
|
-
/// <returns></returns>
|
|
21
|
-
public static bool HasValidIndexFor<T>(this List<T> list, int index) => index >= 0 && index < list.Count;
|
|
22
|
-
|
|
23
|
-
/// <summary>
|
|
24
|
-
///
|
|
25
|
-
/// </summary>
|
|
26
|
-
/// <param name="asset"></param>
|
|
27
|
-
/// <returns></returns>
|
|
28
|
-
public static string GetFolderPath(this Object asset)
|
|
29
|
-
{
|
|
30
|
-
string assetPath = AssetDatabase.GetAssetPath(asset);
|
|
31
|
-
|
|
32
|
-
assetPath = assetPath.Replace("/" + asset.name + ".asset", "");
|
|
33
|
-
|
|
34
|
-
return assetPath;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/// <summary>
|
|
38
|
-
///
|
|
39
|
-
/// </summary>
|
|
40
|
-
/// <typeparam name="T"></typeparam>
|
|
41
|
-
/// <param name="guid"></param>
|
|
42
|
-
/// <returns></returns>
|
|
43
|
-
public static T GetAssetFromGUID<T>(string guid) where T : UnityEngine.Object
|
|
44
|
-
{
|
|
45
|
-
string path = AssetDatabase.GUIDToAssetPath(guid);
|
|
46
|
-
|
|
47
|
-
return AssetDatabase.LoadAssetAtPath<T>(path);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/// <summary>
|
|
51
|
-
///
|
|
52
|
-
/// </summary>
|
|
53
|
-
/// <param name="obj"></param>
|
|
54
|
-
/// <param name="path"></param>
|
|
55
|
-
public static void CreateAssetAt(UnityEngine.Object obj, string path)
|
|
56
|
-
{
|
|
57
|
-
if (!path.EndsWith(".asset"))
|
|
58
|
-
path += ".asset";
|
|
59
|
-
|
|
60
|
-
AssetDatabase.CreateAsset(obj, path);
|
|
61
|
-
|
|
62
|
-
AssetDatabase.SaveAssets();
|
|
63
|
-
|
|
64
|
-
EditorUtility.SetDirty(obj);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/// <summary>
|
|
68
|
-
///
|
|
69
|
-
/// </summary>
|
|
70
|
-
/// <param name="assetPath"></param>
|
|
71
|
-
/// <param name="assetName"></param>
|
|
72
|
-
/// <returns></returns>
|
|
73
|
-
public static bool TryCreateFolder(ref string assetPath, string assetName)
|
|
74
|
-
{
|
|
75
|
-
assetPath = assetPath.Replace(".asset", "");
|
|
76
|
-
|
|
77
|
-
if (!ProjectFolderExists(assetPath + "/" + assetName))
|
|
78
|
-
{
|
|
79
|
-
string shellFolder = AssetDatabase.CreateFolder(assetPath, assetName);
|
|
80
|
-
|
|
81
|
-
if (shellFolder == "")
|
|
82
|
-
{
|
|
83
|
-
UnityEngine.Debug.LogWarning("Could not create folder. Canceling Initialization.");
|
|
84
|
-
|
|
85
|
-
UnityEngine.Debug.Log("Builder Path: " + assetPath);
|
|
86
|
-
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
assetPath = assetPath + "/" + assetName;
|
|
92
|
-
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/// <summary>
|
|
97
|
-
///
|
|
98
|
-
/// </summary>
|
|
99
|
-
/// <param name="relativePath"></param>
|
|
100
|
-
/// <returns></returns>
|
|
101
|
-
public static bool ProjectFolderExists(string relativePath)
|
|
102
|
-
{
|
|
103
|
-
string fullPath = Path.Combine(Application.dataPath, "..", relativePath);
|
|
104
|
-
|
|
105
|
-
return Directory.Exists(fullPath);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
|
|
7
|
+
namespace DREditor.Editor.Utility.Converting
|
|
8
|
+
{
|
|
9
|
+
/// <summary>
|
|
10
|
+
///
|
|
11
|
+
/// </summary>
|
|
12
|
+
public static class ConvertUtility
|
|
13
|
+
{
|
|
14
|
+
/// <summary>
|
|
15
|
+
///
|
|
16
|
+
/// </summary>
|
|
17
|
+
/// <typeparam name="T"></typeparam>
|
|
18
|
+
/// <param name="list"></param>
|
|
19
|
+
/// <param name="index"></param>
|
|
20
|
+
/// <returns></returns>
|
|
21
|
+
public static bool HasValidIndexFor<T>(this List<T> list, int index) => index >= 0 && index < list.Count;
|
|
22
|
+
|
|
23
|
+
/// <summary>
|
|
24
|
+
///
|
|
25
|
+
/// </summary>
|
|
26
|
+
/// <param name="asset"></param>
|
|
27
|
+
/// <returns></returns>
|
|
28
|
+
public static string GetFolderPath(this Object asset)
|
|
29
|
+
{
|
|
30
|
+
string assetPath = AssetDatabase.GetAssetPath(asset);
|
|
31
|
+
|
|
32
|
+
assetPath = assetPath.Replace("/" + asset.name + ".asset", "");
|
|
33
|
+
|
|
34
|
+
return assetPath;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/// <summary>
|
|
38
|
+
///
|
|
39
|
+
/// </summary>
|
|
40
|
+
/// <typeparam name="T"></typeparam>
|
|
41
|
+
/// <param name="guid"></param>
|
|
42
|
+
/// <returns></returns>
|
|
43
|
+
public static T GetAssetFromGUID<T>(string guid) where T : UnityEngine.Object
|
|
44
|
+
{
|
|
45
|
+
string path = AssetDatabase.GUIDToAssetPath(guid);
|
|
46
|
+
|
|
47
|
+
return AssetDatabase.LoadAssetAtPath<T>(path);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/// <summary>
|
|
51
|
+
///
|
|
52
|
+
/// </summary>
|
|
53
|
+
/// <param name="obj"></param>
|
|
54
|
+
/// <param name="path"></param>
|
|
55
|
+
public static void CreateAssetAt(UnityEngine.Object obj, string path)
|
|
56
|
+
{
|
|
57
|
+
if (!path.EndsWith(".asset"))
|
|
58
|
+
path += ".asset";
|
|
59
|
+
|
|
60
|
+
AssetDatabase.CreateAsset(obj, path);
|
|
61
|
+
|
|
62
|
+
AssetDatabase.SaveAssets();
|
|
63
|
+
|
|
64
|
+
EditorUtility.SetDirty(obj);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/// <summary>
|
|
68
|
+
///
|
|
69
|
+
/// </summary>
|
|
70
|
+
/// <param name="assetPath"></param>
|
|
71
|
+
/// <param name="assetName"></param>
|
|
72
|
+
/// <returns></returns>
|
|
73
|
+
public static bool TryCreateFolder(ref string assetPath, string assetName)
|
|
74
|
+
{
|
|
75
|
+
assetPath = assetPath.Replace(".asset", "");
|
|
76
|
+
|
|
77
|
+
if (!ProjectFolderExists(assetPath + "/" + assetName))
|
|
78
|
+
{
|
|
79
|
+
string shellFolder = AssetDatabase.CreateFolder(assetPath, assetName);
|
|
80
|
+
|
|
81
|
+
if (shellFolder == "")
|
|
82
|
+
{
|
|
83
|
+
UnityEngine.Debug.LogWarning("Could not create folder. Canceling Initialization.");
|
|
84
|
+
|
|
85
|
+
UnityEngine.Debug.Log("Builder Path: " + assetPath);
|
|
86
|
+
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
assetPath = assetPath + "/" + assetName;
|
|
92
|
+
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/// <summary>
|
|
97
|
+
///
|
|
98
|
+
/// </summary>
|
|
99
|
+
/// <param name="relativePath"></param>
|
|
100
|
+
/// <returns></returns>
|
|
101
|
+
public static bool ProjectFolderExists(string relativePath)
|
|
102
|
+
{
|
|
103
|
+
string fullPath = Path.Combine(Application.dataPath, "..", relativePath);
|
|
104
|
+
|
|
105
|
+
return Directory.Exists(fullPath);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
108
|
}
|
package/ConvertUtility.cs.meta
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 861473e519cac9f459804906f93810a4
|
|
3
|
-
MonoImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
defaultReferences: []
|
|
7
|
-
executionOrder: 0
|
|
8
|
-
icon: {instanceID: 0}
|
|
9
|
-
userData:
|
|
10
|
-
assetBundleName:
|
|
11
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 861473e519cac9f459804906f93810a4
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|