net.dreditor.roombuilding 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/DREditor.RoomBuilding.asmdef +28 -28
- package/DREditor.RoomBuilding.asmdef.meta +7 -7
- package/Editor/DREditor.RoomBuilding.Editor.asmdef +19 -19
- package/Editor/DREditor.RoomBuilding.Editor.asmdef.meta +7 -7
- package/Editor/FindCharactersInRoomsWizard.cs +55 -55
- package/Editor/FindCharactersInRoomsWizard.cs.meta +11 -11
- package/Editor/RoomBuilderContainsObjective.cs +38 -38
- package/Editor/RoomBuilderContainsObjective.cs.meta +11 -11
- package/Editor/RoomBuilderScanWizard.cs +90 -90
- package/Editor/RoomBuilderScanWizard.cs.meta +11 -11
- package/Editor/ScanRoomBuilders.cs +74 -74
- package/Editor/ScanRoomBuilders.cs.meta +11 -11
- package/Editor.meta +8 -8
- package/Implementation/Actors/ActorData.cs +115 -115
- package/Implementation/Actors/ActorData.cs.meta +11 -11
- package/Implementation/Actors/ActorStateData.cs +10 -10
- package/Implementation/Actors/ActorStateData.cs.meta +11 -11
- package/Implementation/Actors/ActorStateLoader.cs +344 -344
- package/Implementation/Actors/ActorStateLoader.cs.meta +11 -11
- package/Implementation/Actors/TActorData.cs +35 -35
- package/Implementation/Actors/TActorData.cs.meta +11 -11
- package/Implementation/Actors/TrialActorManager.cs +157 -157
- package/Implementation/Actors/TrialActorManager.cs.meta +11 -11
- package/Implementation/Actors.meta +8 -8
- package/Implementation/DoorLoader.cs +117 -117
- package/Implementation/DoorLoader.cs.meta +11 -11
- package/Implementation/DoorLoaderUtility.cs +51 -51
- package/Implementation/DoorLoaderUtility.cs.meta +11 -11
- package/Implementation/DoorStateData.cs +11 -11
- package/Implementation/DoorStateData.cs.meta +11 -11
- package/Implementation/ItemActorLoader.cs +157 -157
- package/Implementation/ItemActorLoader.cs.meta +11 -11
- package/Implementation/ItemData.cs +67 -67
- package/Implementation/ItemData.cs.meta +11 -11
- package/Implementation/ItemStateData.cs +10 -10
- package/Implementation/ItemStateData.cs.meta +11 -11
- package/Implementation/MoveLoader.cs +67 -67
- package/Implementation/MoveLoader.cs.meta +11 -11
- package/Implementation/MoveStateData.cs +11 -11
- package/Implementation/MoveStateData.cs.meta +11 -11
- package/Implementation/RoomStateHandlerBase.cs +241 -241
- package/Implementation/RoomStateHandlerBase.cs.meta +11 -11
- package/Implementation/SaveableData.cs +56 -56
- package/Implementation/SaveableData.cs.meta +11 -11
- package/Implementation/SaveableDataSet.cs +66 -66
- package/Implementation/SaveableDataSet.cs.meta +11 -11
- package/Implementation/SaveableManager.cs +70 -70
- package/Implementation/SaveableManager.cs.meta +11 -11
- package/Implementation/SaveableStateData.cs +10 -10
- package/Implementation/SaveableStateData.cs.meta +11 -11
- package/Implementation/SpawnableLoader.cs +125 -125
- package/Implementation/SpawnableLoader.cs.meta +11 -11
- package/Implementation/SpawnableStateData.cs +11 -11
- package/Implementation/SpawnableStateData.cs.meta +11 -11
- package/Implementation/StateDataAsset.cs +28 -28
- package/Implementation/StateDataAsset.cs.meta +11 -11
- package/Implementation/SubAreaLoader.cs +108 -108
- package/Implementation/SubAreaLoader.cs.meta +11 -11
- package/Implementation/SubAreaStateData.cs +11 -11
- package/Implementation/SubAreaStateData.cs.meta +11 -11
- package/Implementation/TriggerConverter.cs +137 -137
- package/Implementation/TriggerConverter.cs.meta +11 -11
- package/Implementation/TriggerLoader.cs +295 -295
- package/Implementation/TriggerLoader.cs.meta +11 -11
- package/Implementation/TriggerStateData.cs +18 -18
- package/Implementation/TriggerStateData.cs.meta +11 -11
- package/Implementation.meta +8 -8
- package/InstanceListWrapper.cs +23 -23
- package/InstanceListWrapper.cs.meta +11 -11
- package/Instances/ConvertInstanceData.cs +89 -89
- package/Instances/ConvertInstanceData.cs.meta +11 -11
- package/Instances/InstanceData.cs +43 -43
- package/Instances/InstanceData.cs.meta +11 -11
- package/Instances/InstanceStateData.cs +51 -51
- package/Instances/InstanceStateData.cs.meta +11 -11
- package/Instances/RoomInstanceData.cs +68 -68
- package/Instances/RoomInstanceData.cs.meta +11 -11
- package/Instances/RoomInstanceManager.cs +452 -452
- package/Instances/RoomInstanceManager.cs.meta +11 -11
- package/Instances.meta +8 -8
- package/LoadInvestigationRoomState.cs +53 -53
- package/LoadInvestigationRoomState.cs.meta +11 -11
- package/Old/ActorLoader.cs +382 -382
- package/Old/ActorLoader.cs.meta +11 -11
- package/Old/Room.cs +24 -24
- package/Old/Room.cs.meta +11 -11
- package/Old/RoomBuilder.cs +59 -59
- package/Old/RoomBuilder.cs.meta +11 -11
- package/Old/RoomData.cs +90 -90
- package/Old/RoomData.cs.meta +11 -11
- package/Old/RoomManager.cs +256 -256
- package/Old/RoomManager.cs.meta +11 -11
- package/Old/RoomManagerDisplayEditor.cs +72 -72
- package/Old/RoomManagerDisplayEditor.cs.meta +11 -11
- package/Old/RoomManagerEditor.cs +211 -211
- package/Old/RoomManagerEditor.cs.meta +11 -11
- package/Old/RoomManagerShellDisplayEditor.cs +48 -48
- package/Old/RoomManagerShellDisplayEditor.cs.meta +11 -11
- package/Old/RoomSection.cs +35 -35
- package/Old/RoomSection.cs.meta +11 -11
- package/Old.meta +8 -8
- package/RoomManagerBase.cs +84 -84
- package/RoomManagerBase.cs.meta +11 -11
- package/RoomManagerEditorBase.cs +86 -86
- package/RoomManagerEditorBase.cs.meta +11 -11
- package/RoomManagerEditorCoreBase.cs +159 -159
- package/RoomManagerEditorCoreBase.cs.meta +11 -11
- package/RoomSaveDisplayEditorBase.cs +111 -111
- package/RoomSaveDisplayEditorBase.cs.meta +11 -11
- package/RoomShellDisplayEditorBase.cs +68 -68
- package/RoomShellDisplayEditorBase.cs.meta +11 -11
- package/RoomStateBuilder.cs +53 -53
- package/RoomStateBuilder.cs.meta +11 -11
- package/RoomStateData.cs +58 -58
- package/RoomStateData.cs.meta +11 -11
- package/RoomStateManager.cs +202 -202
- package/RoomStateManager.cs.meta +11 -11
- package/RoomStateManagerEditor.cs +392 -392
- package/RoomStateManagerEditor.cs.meta +11 -11
- package/RoomStateSaveDisplayEditor.cs +175 -175
- package/RoomStateSaveDisplayEditor.cs.meta +11 -11
- package/RoomStateSection.cs +69 -69
- package/RoomStateSection.cs.meta +11 -11
- package/RoomStateShellDisplayEditor.cs +108 -108
- package/RoomStateShellDisplayEditor.cs.meta +11 -11
- package/{Samples → Samples~}/Room_State_Manager.prefab +473 -473
- package/{Samples → Samples~}/Room_State_Manager.prefab.meta +7 -7
- package/{Samples → Samples~}/Trial_Actor_Manager.prefab +51 -51
- package/{Samples → Samples~}/Trial_Actor_Manager.prefab.meta +7 -7
- package/package.json +51 -46
- package/package.json.meta +7 -7
- package/Samples.meta +0 -8
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.Spawnables;
|
|
3
|
-
using System;
|
|
4
|
-
using UnityEngine;
|
|
5
|
-
|
|
6
|
-
namespace DREditor.RoomBuilding.Implementation
|
|
7
|
-
{
|
|
8
|
-
/// <summary>
|
|
9
|
-
///
|
|
10
|
-
/// </summary>
|
|
11
|
-
[Serializable]
|
|
12
|
-
public class SaveableDataSet
|
|
13
|
-
{
|
|
14
|
-
/// <summary>
|
|
15
|
-
///
|
|
16
|
-
/// </summary>
|
|
17
|
-
public int subID;
|
|
18
|
-
|
|
19
|
-
/// <summary>
|
|
20
|
-
///
|
|
21
|
-
/// </summary>
|
|
22
|
-
[TextArea(3, 1000)]
|
|
23
|
-
public string data;
|
|
24
|
-
|
|
25
|
-
/// <summary>
|
|
26
|
-
///
|
|
27
|
-
/// </summary>
|
|
28
|
-
public string typeName;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
public SaveableDataSet(ISaveable manager)
|
|
32
|
-
{
|
|
33
|
-
if (manager == null)
|
|
34
|
-
{
|
|
35
|
-
UnityEngine.Debug.Log("Logging notice of savable data set with null manager.");
|
|
36
|
-
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
subID = manager.SubID;
|
|
41
|
-
|
|
42
|
-
data = manager.Save();
|
|
43
|
-
|
|
44
|
-
typeName = manager.GetType().Name;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/* The ISaveable is designed to make managers to dynamically save data by transfering it to data strings and
|
|
49
|
-
* being able to load it whenever one needs it etc.
|
|
50
|
-
public class SaveableClass : Monobehavior, ISaveable
|
|
51
|
-
{
|
|
52
|
-
#region Saving
|
|
53
|
-
public int SubID { get => subID; }
|
|
54
|
-
[SerializeField] int subID;
|
|
55
|
-
public string Save()
|
|
56
|
-
{
|
|
57
|
-
return JsonUtility.ToJson(InstanceData);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public void Load(string data)
|
|
61
|
-
{
|
|
62
|
-
InstanceData = JsonUtility.FromJson<InstanceDataClass>(data);
|
|
63
|
-
}
|
|
64
|
-
#endregion
|
|
65
|
-
}
|
|
66
|
-
*/
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Spawnables;
|
|
3
|
+
using System;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
|
|
6
|
+
namespace DREditor.RoomBuilding.Implementation
|
|
7
|
+
{
|
|
8
|
+
/// <summary>
|
|
9
|
+
///
|
|
10
|
+
/// </summary>
|
|
11
|
+
[Serializable]
|
|
12
|
+
public class SaveableDataSet
|
|
13
|
+
{
|
|
14
|
+
/// <summary>
|
|
15
|
+
///
|
|
16
|
+
/// </summary>
|
|
17
|
+
public int subID;
|
|
18
|
+
|
|
19
|
+
/// <summary>
|
|
20
|
+
///
|
|
21
|
+
/// </summary>
|
|
22
|
+
[TextArea(3, 1000)]
|
|
23
|
+
public string data;
|
|
24
|
+
|
|
25
|
+
/// <summary>
|
|
26
|
+
///
|
|
27
|
+
/// </summary>
|
|
28
|
+
public string typeName;
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
public SaveableDataSet(ISaveable manager)
|
|
32
|
+
{
|
|
33
|
+
if (manager == null)
|
|
34
|
+
{
|
|
35
|
+
UnityEngine.Debug.Log("Logging notice of savable data set with null manager.");
|
|
36
|
+
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
subID = manager.SubID;
|
|
41
|
+
|
|
42
|
+
data = manager.Save();
|
|
43
|
+
|
|
44
|
+
typeName = manager.GetType().Name;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* The ISaveable is designed to make managers to dynamically save data by transfering it to data strings and
|
|
49
|
+
* being able to load it whenever one needs it etc.
|
|
50
|
+
public class SaveableClass : Monobehavior, ISaveable
|
|
51
|
+
{
|
|
52
|
+
#region Saving
|
|
53
|
+
public int SubID { get => subID; }
|
|
54
|
+
[SerializeField] int subID;
|
|
55
|
+
public string Save()
|
|
56
|
+
{
|
|
57
|
+
return JsonUtility.ToJson(InstanceData);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public void Load(string data)
|
|
61
|
+
{
|
|
62
|
+
InstanceData = JsonUtility.FromJson<InstanceDataClass>(data);
|
|
63
|
+
}
|
|
64
|
+
#endregion
|
|
65
|
+
}
|
|
66
|
+
*/
|
|
67
67
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: db3757bc1cf45cf4cb327c9cd7f5b2f3
|
|
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: db3757bc1cf45cf4cb327c9cd7f5b2f3
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.Spawnables;
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
using System.Linq;
|
|
5
|
-
using UnityEngine;
|
|
6
|
-
|
|
7
|
-
namespace DREditor.RoomBuilding.Implementation
|
|
8
|
-
{
|
|
9
|
-
/// <summary>
|
|
10
|
-
///
|
|
11
|
-
/// </summary>
|
|
12
|
-
[ClassHeader(nameof(RoomStateHandlerBase<SaveableStateData, SaveableDataSet>) +
|
|
13
|
-
" for types <" + nameof(SaveableStateData) + ", " + nameof(SaveableDataSet) + ">" +
|
|
14
|
-
"\n\n")]
|
|
15
|
-
public class SaveableManager : RoomStateHandlerBase<SaveableStateData, SaveableDataSet>
|
|
16
|
-
{
|
|
17
|
-
/// <inheritdoc/>
|
|
18
|
-
public override List<SaveableDataSet> Save() => SaveData().dataSets;
|
|
19
|
-
|
|
20
|
-
/// <inheritdoc/>
|
|
21
|
-
public override void Unload(bool inEditor) { }
|
|
22
|
-
|
|
23
|
-
/// <inheritdoc/>
|
|
24
|
-
protected override void LoadAssetProcess(List<SaveableDataSet> baseDatas, List<SaveableDataSet> instanceDatas = null)
|
|
25
|
-
{
|
|
26
|
-
Load(new SaveableData(baseDatas));
|
|
27
|
-
|
|
28
|
-
Load(new SaveableData(instanceDatas));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/// <summary>
|
|
32
|
-
///
|
|
33
|
-
/// </summary>
|
|
34
|
-
/// <returns></returns>
|
|
35
|
-
public static SaveableData SaveData()
|
|
36
|
-
{
|
|
37
|
-
SaveableData data = new();
|
|
38
|
-
|
|
39
|
-
var list = UnityEngine.Object.FindObjectsByType<MonoBehaviour>().OfType<ISaveable>();
|
|
40
|
-
|
|
41
|
-
if (!list.Any())
|
|
42
|
-
return data;
|
|
43
|
-
|
|
44
|
-
foreach (var item in list)
|
|
45
|
-
{
|
|
46
|
-
data.dataSets.Add(new SaveableDataSet(item));
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
data.IsMatch();
|
|
50
|
-
|
|
51
|
-
return data;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/// <summary>
|
|
55
|
-
///
|
|
56
|
-
/// </summary>
|
|
57
|
-
/// <param name="data"></param>
|
|
58
|
-
public static void Load(SaveableData data)
|
|
59
|
-
{
|
|
60
|
-
if (data == null || data.dataSets == null || data.dataSets.Count == 0)
|
|
61
|
-
return;
|
|
62
|
-
|
|
63
|
-
var list = UnityEngine.Object.FindObjectsByType<MonoBehaviour>().OfType<ISaveable>();
|
|
64
|
-
|
|
65
|
-
foreach (var item in list)
|
|
66
|
-
foreach (var info in data.dataSets)
|
|
67
|
-
if (info.subID == item.SubID && item.GetType().Name == info.typeName)
|
|
68
|
-
item.Load(info.data);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Spawnables;
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using System.Linq;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
|
|
7
|
+
namespace DREditor.RoomBuilding.Implementation
|
|
8
|
+
{
|
|
9
|
+
/// <summary>
|
|
10
|
+
///
|
|
11
|
+
/// </summary>
|
|
12
|
+
[ClassHeader(nameof(RoomStateHandlerBase<SaveableStateData, SaveableDataSet>) +
|
|
13
|
+
" for types <" + nameof(SaveableStateData) + ", " + nameof(SaveableDataSet) + ">" +
|
|
14
|
+
"\n\n")]
|
|
15
|
+
public class SaveableManager : RoomStateHandlerBase<SaveableStateData, SaveableDataSet>
|
|
16
|
+
{
|
|
17
|
+
/// <inheritdoc/>
|
|
18
|
+
public override List<SaveableDataSet> Save() => SaveData().dataSets;
|
|
19
|
+
|
|
20
|
+
/// <inheritdoc/>
|
|
21
|
+
public override void Unload(bool inEditor) { }
|
|
22
|
+
|
|
23
|
+
/// <inheritdoc/>
|
|
24
|
+
protected override void LoadAssetProcess(List<SaveableDataSet> baseDatas, List<SaveableDataSet> instanceDatas = null)
|
|
25
|
+
{
|
|
26
|
+
Load(new SaveableData(baseDatas));
|
|
27
|
+
|
|
28
|
+
Load(new SaveableData(instanceDatas));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/// <summary>
|
|
32
|
+
///
|
|
33
|
+
/// </summary>
|
|
34
|
+
/// <returns></returns>
|
|
35
|
+
public static SaveableData SaveData()
|
|
36
|
+
{
|
|
37
|
+
SaveableData data = new();
|
|
38
|
+
|
|
39
|
+
var list = UnityEngine.Object.FindObjectsByType<MonoBehaviour>().OfType<ISaveable>();
|
|
40
|
+
|
|
41
|
+
if (!list.Any())
|
|
42
|
+
return data;
|
|
43
|
+
|
|
44
|
+
foreach (var item in list)
|
|
45
|
+
{
|
|
46
|
+
data.dataSets.Add(new SaveableDataSet(item));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
data.IsMatch();
|
|
50
|
+
|
|
51
|
+
return data;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/// <summary>
|
|
55
|
+
///
|
|
56
|
+
/// </summary>
|
|
57
|
+
/// <param name="data"></param>
|
|
58
|
+
public static void Load(SaveableData data)
|
|
59
|
+
{
|
|
60
|
+
if (data == null || data.dataSets == null || data.dataSets.Count == 0)
|
|
61
|
+
return;
|
|
62
|
+
|
|
63
|
+
var list = UnityEngine.Object.FindObjectsByType<MonoBehaviour>().OfType<ISaveable>();
|
|
64
|
+
|
|
65
|
+
foreach (var item in list)
|
|
66
|
+
foreach (var info in data.dataSets)
|
|
67
|
+
if (info.subID == item.SubID && item.GetType().Name == info.typeName)
|
|
68
|
+
item.Load(info.data);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
71
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 92dee3b5b45812b4f9da16dcb8f383af
|
|
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: 92dee3b5b45812b4f9da16dcb8f383af
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using System;
|
|
3
|
-
|
|
4
|
-
namespace DREditor.RoomBuilding.Implementation
|
|
5
|
-
{
|
|
6
|
-
/// <summary>
|
|
7
|
-
///
|
|
8
|
-
/// </summary>
|
|
9
|
-
[Serializable]
|
|
10
|
-
public class SaveableStateData : StateDataAsset<SaveableDataSet> { }
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using System;
|
|
3
|
+
|
|
4
|
+
namespace DREditor.RoomBuilding.Implementation
|
|
5
|
+
{
|
|
6
|
+
/// <summary>
|
|
7
|
+
///
|
|
8
|
+
/// </summary>
|
|
9
|
+
[Serializable]
|
|
10
|
+
public class SaveableStateData : StateDataAsset<SaveableDataSet> { }
|
|
11
11
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 177b9539d3c61f14d90778a87b6a2481
|
|
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: 177b9539d3c61f14d90778a87b6a2481
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,126 +1,126 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.Spawnables;
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
#if UNITY_EDITOR
|
|
5
|
-
using UnityEditor;
|
|
6
|
-
#endif
|
|
7
|
-
using UnityEngine;
|
|
8
|
-
|
|
9
|
-
namespace DREditor.RoomBuilding.Implementation
|
|
10
|
-
{
|
|
11
|
-
/// <summary>
|
|
12
|
-
///
|
|
13
|
-
/// </summary>
|
|
14
|
-
[ClassHeader(nameof(RoomStateHandlerBase<SpawnableStateData, GameObject>) +
|
|
15
|
-
" for types <" + nameof(SpawnableStateData) + ", " + nameof(GameObject) + ">" +
|
|
16
|
-
"\n\n")]
|
|
17
|
-
public class SpawnableLoader : RoomStateHandlerBase<SpawnableStateData, GameObject>
|
|
18
|
-
{
|
|
19
|
-
/// <inheritdoc/>
|
|
20
|
-
public override List<GameObject> Save() => SaveSpawnables();
|
|
21
|
-
|
|
22
|
-
/// <inheritdoc/>
|
|
23
|
-
protected override void LoadAssetProcess(List<GameObject> baseDatas, List<GameObject> instanceDatas = null)
|
|
24
|
-
{
|
|
25
|
-
LoadSpawnables(baseDatas);
|
|
26
|
-
|
|
27
|
-
if (instanceDatas != null && instanceDatas.Count != 0)
|
|
28
|
-
LoadSpawnables(instanceDatas);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/// <inheritdoc/>
|
|
32
|
-
public override void Unload(bool inEditor) => UnloadSpawnables(true);
|
|
33
|
-
|
|
34
|
-
/// <summary>
|
|
35
|
-
///
|
|
36
|
-
/// </summary>
|
|
37
|
-
/// <returns></returns>
|
|
38
|
-
public static List<GameObject> SaveSpawnables()
|
|
39
|
-
{
|
|
40
|
-
List<GameObject> objects = new();
|
|
41
|
-
var spawnables = FindObjectsByType<Spawnable>();
|
|
42
|
-
|
|
43
|
-
#if UNITY_EDITOR
|
|
44
|
-
foreach (Spawnable spawnable in spawnables)
|
|
45
|
-
if (PrefabUtility.GetCorrespondingObjectFromSource(spawnable.gameObject) is GameObject prefab &&
|
|
46
|
-
!objects.Contains(prefab))
|
|
47
|
-
objects.Add(prefab);
|
|
48
|
-
#endif
|
|
49
|
-
|
|
50
|
-
return objects;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/// <summary>
|
|
54
|
-
///
|
|
55
|
-
/// </summary>
|
|
56
|
-
/// <param name="spawnables"></param>
|
|
57
|
-
public static void LoadSpawnables(List<GameObject> spawnables)
|
|
58
|
-
{
|
|
59
|
-
#if UNITY_EDITOR
|
|
60
|
-
if (Application.isPlaying)
|
|
61
|
-
SpawnObjects(spawnables);
|
|
62
|
-
else
|
|
63
|
-
LoadSpawnablesInEditor(spawnables);
|
|
64
|
-
#else
|
|
65
|
-
SpawnObjects(spawnables);
|
|
66
|
-
#endif
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/// <summary>
|
|
70
|
-
///
|
|
71
|
-
/// </summary>
|
|
72
|
-
/// <param name="spawnables"></param>
|
|
73
|
-
static void SpawnObjects(List<GameObject> spawnables)
|
|
74
|
-
{
|
|
75
|
-
foreach (GameObject gameObject in spawnables)
|
|
76
|
-
SpawnObject(gameObject);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/// <summary>
|
|
80
|
-
///
|
|
81
|
-
/// </summary>
|
|
82
|
-
/// <param name="spawnable"></param>
|
|
83
|
-
static void SpawnObject(GameObject spawnable)
|
|
84
|
-
{
|
|
85
|
-
if (spawnable != null)
|
|
86
|
-
ClearCloneName(Instantiate(spawnable));
|
|
87
|
-
else
|
|
88
|
-
UnityEngine.Debug.LogWarning("There's a Missing Prefab Reference in this room save!");
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/// <summary>
|
|
92
|
-
///
|
|
93
|
-
/// </summary>
|
|
94
|
-
/// <param name="gameObject"></param>
|
|
95
|
-
static void ClearCloneName(GameObject gameObject) =>
|
|
96
|
-
gameObject.name = gameObject.name.Replace("(Clone)", "");
|
|
97
|
-
#if UNITY_EDITOR
|
|
98
|
-
/// <summary>
|
|
99
|
-
///
|
|
100
|
-
/// </summary>
|
|
101
|
-
/// <param name="spawnables"></param>
|
|
102
|
-
static void LoadSpawnablesInEditor(List<GameObject> spawnables)
|
|
103
|
-
{
|
|
104
|
-
foreach (GameObject spawnable in spawnables)
|
|
105
|
-
if (spawnable != null)
|
|
106
|
-
PrefabUtility.InstantiatePrefab(spawnable);
|
|
107
|
-
else
|
|
108
|
-
UnityEngine.Debug.LogWarning("There's a Missing Prefab Reference in this room save!");
|
|
109
|
-
}
|
|
110
|
-
#endif
|
|
111
|
-
/// <summary>
|
|
112
|
-
///
|
|
113
|
-
/// </summary>
|
|
114
|
-
/// <param name="inEditor"></param>
|
|
115
|
-
public static void UnloadSpawnables(bool inEditor)
|
|
116
|
-
{
|
|
117
|
-
var spawnables = FindObjectsByType<Spawnable>();
|
|
118
|
-
|
|
119
|
-
foreach (Spawnable spawnable in spawnables)
|
|
120
|
-
if (inEditor)
|
|
121
|
-
DestroyImmediate(spawnable.gameObject);
|
|
122
|
-
else
|
|
123
|
-
Destroy(spawnable.gameObject);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Spawnables;
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
#if UNITY_EDITOR
|
|
5
|
+
using UnityEditor;
|
|
6
|
+
#endif
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
|
|
9
|
+
namespace DREditor.RoomBuilding.Implementation
|
|
10
|
+
{
|
|
11
|
+
/// <summary>
|
|
12
|
+
///
|
|
13
|
+
/// </summary>
|
|
14
|
+
[ClassHeader(nameof(RoomStateHandlerBase<SpawnableStateData, GameObject>) +
|
|
15
|
+
" for types <" + nameof(SpawnableStateData) + ", " + nameof(GameObject) + ">" +
|
|
16
|
+
"\n\n")]
|
|
17
|
+
public class SpawnableLoader : RoomStateHandlerBase<SpawnableStateData, GameObject>
|
|
18
|
+
{
|
|
19
|
+
/// <inheritdoc/>
|
|
20
|
+
public override List<GameObject> Save() => SaveSpawnables();
|
|
21
|
+
|
|
22
|
+
/// <inheritdoc/>
|
|
23
|
+
protected override void LoadAssetProcess(List<GameObject> baseDatas, List<GameObject> instanceDatas = null)
|
|
24
|
+
{
|
|
25
|
+
LoadSpawnables(baseDatas);
|
|
26
|
+
|
|
27
|
+
if (instanceDatas != null && instanceDatas.Count != 0)
|
|
28
|
+
LoadSpawnables(instanceDatas);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/// <inheritdoc/>
|
|
32
|
+
public override void Unload(bool inEditor) => UnloadSpawnables(true);
|
|
33
|
+
|
|
34
|
+
/// <summary>
|
|
35
|
+
///
|
|
36
|
+
/// </summary>
|
|
37
|
+
/// <returns></returns>
|
|
38
|
+
public static List<GameObject> SaveSpawnables()
|
|
39
|
+
{
|
|
40
|
+
List<GameObject> objects = new();
|
|
41
|
+
var spawnables = FindObjectsByType<Spawnable>();
|
|
42
|
+
|
|
43
|
+
#if UNITY_EDITOR
|
|
44
|
+
foreach (Spawnable spawnable in spawnables)
|
|
45
|
+
if (PrefabUtility.GetCorrespondingObjectFromSource(spawnable.gameObject) is GameObject prefab &&
|
|
46
|
+
!objects.Contains(prefab))
|
|
47
|
+
objects.Add(prefab);
|
|
48
|
+
#endif
|
|
49
|
+
|
|
50
|
+
return objects;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/// <summary>
|
|
54
|
+
///
|
|
55
|
+
/// </summary>
|
|
56
|
+
/// <param name="spawnables"></param>
|
|
57
|
+
public static void LoadSpawnables(List<GameObject> spawnables)
|
|
58
|
+
{
|
|
59
|
+
#if UNITY_EDITOR
|
|
60
|
+
if (Application.isPlaying)
|
|
61
|
+
SpawnObjects(spawnables);
|
|
62
|
+
else
|
|
63
|
+
LoadSpawnablesInEditor(spawnables);
|
|
64
|
+
#else
|
|
65
|
+
SpawnObjects(spawnables);
|
|
66
|
+
#endif
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/// <summary>
|
|
70
|
+
///
|
|
71
|
+
/// </summary>
|
|
72
|
+
/// <param name="spawnables"></param>
|
|
73
|
+
static void SpawnObjects(List<GameObject> spawnables)
|
|
74
|
+
{
|
|
75
|
+
foreach (GameObject gameObject in spawnables)
|
|
76
|
+
SpawnObject(gameObject);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/// <summary>
|
|
80
|
+
///
|
|
81
|
+
/// </summary>
|
|
82
|
+
/// <param name="spawnable"></param>
|
|
83
|
+
static void SpawnObject(GameObject spawnable)
|
|
84
|
+
{
|
|
85
|
+
if (spawnable != null)
|
|
86
|
+
ClearCloneName(Instantiate(spawnable));
|
|
87
|
+
else
|
|
88
|
+
UnityEngine.Debug.LogWarning("There's a Missing Prefab Reference in this room save!");
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/// <summary>
|
|
92
|
+
///
|
|
93
|
+
/// </summary>
|
|
94
|
+
/// <param name="gameObject"></param>
|
|
95
|
+
static void ClearCloneName(GameObject gameObject) =>
|
|
96
|
+
gameObject.name = gameObject.name.Replace("(Clone)", "");
|
|
97
|
+
#if UNITY_EDITOR
|
|
98
|
+
/// <summary>
|
|
99
|
+
///
|
|
100
|
+
/// </summary>
|
|
101
|
+
/// <param name="spawnables"></param>
|
|
102
|
+
static void LoadSpawnablesInEditor(List<GameObject> spawnables)
|
|
103
|
+
{
|
|
104
|
+
foreach (GameObject spawnable in spawnables)
|
|
105
|
+
if (spawnable != null)
|
|
106
|
+
PrefabUtility.InstantiatePrefab(spawnable);
|
|
107
|
+
else
|
|
108
|
+
UnityEngine.Debug.LogWarning("There's a Missing Prefab Reference in this room save!");
|
|
109
|
+
}
|
|
110
|
+
#endif
|
|
111
|
+
/// <summary>
|
|
112
|
+
///
|
|
113
|
+
/// </summary>
|
|
114
|
+
/// <param name="inEditor"></param>
|
|
115
|
+
public static void UnloadSpawnables(bool inEditor)
|
|
116
|
+
{
|
|
117
|
+
var spawnables = FindObjectsByType<Spawnable>();
|
|
118
|
+
|
|
119
|
+
foreach (Spawnable spawnable in spawnables)
|
|
120
|
+
if (inEditor)
|
|
121
|
+
DestroyImmediate(spawnable.gameObject);
|
|
122
|
+
else
|
|
123
|
+
Destroy(spawnable.gameObject);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
126
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: fd3c20c9b5ffe70408aec280a75678af
|
|
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: fd3c20c9b5ffe70408aec280a75678af
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using System;
|
|
3
|
-
using UnityEngine;
|
|
4
|
-
|
|
5
|
-
namespace DREditor.RoomBuilding.Implementation
|
|
6
|
-
{
|
|
7
|
-
/// <summary>
|
|
8
|
-
///
|
|
9
|
-
/// </summary>
|
|
10
|
-
[Serializable]
|
|
11
|
-
public class SpawnableStateData : StateDataAsset<GameObject> { }
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using System;
|
|
3
|
+
using UnityEngine;
|
|
4
|
+
|
|
5
|
+
namespace DREditor.RoomBuilding.Implementation
|
|
6
|
+
{
|
|
7
|
+
/// <summary>
|
|
8
|
+
///
|
|
9
|
+
/// </summary>
|
|
10
|
+
[Serializable]
|
|
11
|
+
public class SpawnableStateData : StateDataAsset<GameObject> { }
|
|
12
12
|
}
|