net.dreditor.editor.utility.converting 0.1.6 → 0.1.8

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.
@@ -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:
@@ -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
  }
@@ -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: