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.
Files changed (133) hide show
  1. package/.attestation.p7m +0 -0
  2. package/DREditor.RoomBuilding.asmdef +28 -28
  3. package/DREditor.RoomBuilding.asmdef.meta +7 -7
  4. package/Editor/DREditor.RoomBuilding.Editor.asmdef +19 -19
  5. package/Editor/DREditor.RoomBuilding.Editor.asmdef.meta +7 -7
  6. package/Editor/FindCharactersInRoomsWizard.cs +55 -55
  7. package/Editor/FindCharactersInRoomsWizard.cs.meta +11 -11
  8. package/Editor/RoomBuilderContainsObjective.cs +38 -38
  9. package/Editor/RoomBuilderContainsObjective.cs.meta +11 -11
  10. package/Editor/RoomBuilderScanWizard.cs +90 -90
  11. package/Editor/RoomBuilderScanWizard.cs.meta +11 -11
  12. package/Editor/ScanRoomBuilders.cs +74 -74
  13. package/Editor/ScanRoomBuilders.cs.meta +11 -11
  14. package/Editor.meta +8 -8
  15. package/Implementation/Actors/ActorData.cs +115 -115
  16. package/Implementation/Actors/ActorData.cs.meta +11 -11
  17. package/Implementation/Actors/ActorStateData.cs +10 -10
  18. package/Implementation/Actors/ActorStateData.cs.meta +11 -11
  19. package/Implementation/Actors/ActorStateLoader.cs +344 -344
  20. package/Implementation/Actors/ActorStateLoader.cs.meta +11 -11
  21. package/Implementation/Actors/TActorData.cs +35 -35
  22. package/Implementation/Actors/TActorData.cs.meta +11 -11
  23. package/Implementation/Actors/TrialActorManager.cs +157 -157
  24. package/Implementation/Actors/TrialActorManager.cs.meta +11 -11
  25. package/Implementation/Actors.meta +8 -8
  26. package/Implementation/DoorLoader.cs +117 -117
  27. package/Implementation/DoorLoader.cs.meta +11 -11
  28. package/Implementation/DoorLoaderUtility.cs +51 -51
  29. package/Implementation/DoorLoaderUtility.cs.meta +11 -11
  30. package/Implementation/DoorStateData.cs +11 -11
  31. package/Implementation/DoorStateData.cs.meta +11 -11
  32. package/Implementation/ItemActorLoader.cs +157 -157
  33. package/Implementation/ItemActorLoader.cs.meta +11 -11
  34. package/Implementation/ItemData.cs +67 -67
  35. package/Implementation/ItemData.cs.meta +11 -11
  36. package/Implementation/ItemStateData.cs +10 -10
  37. package/Implementation/ItemStateData.cs.meta +11 -11
  38. package/Implementation/MoveLoader.cs +67 -67
  39. package/Implementation/MoveLoader.cs.meta +11 -11
  40. package/Implementation/MoveStateData.cs +11 -11
  41. package/Implementation/MoveStateData.cs.meta +11 -11
  42. package/Implementation/RoomStateHandlerBase.cs +241 -241
  43. package/Implementation/RoomStateHandlerBase.cs.meta +11 -11
  44. package/Implementation/SaveableData.cs +56 -56
  45. package/Implementation/SaveableData.cs.meta +11 -11
  46. package/Implementation/SaveableDataSet.cs +66 -66
  47. package/Implementation/SaveableDataSet.cs.meta +11 -11
  48. package/Implementation/SaveableManager.cs +70 -70
  49. package/Implementation/SaveableManager.cs.meta +11 -11
  50. package/Implementation/SaveableStateData.cs +10 -10
  51. package/Implementation/SaveableStateData.cs.meta +11 -11
  52. package/Implementation/SpawnableLoader.cs +125 -125
  53. package/Implementation/SpawnableLoader.cs.meta +11 -11
  54. package/Implementation/SpawnableStateData.cs +11 -11
  55. package/Implementation/SpawnableStateData.cs.meta +11 -11
  56. package/Implementation/StateDataAsset.cs +28 -28
  57. package/Implementation/StateDataAsset.cs.meta +11 -11
  58. package/Implementation/SubAreaLoader.cs +108 -108
  59. package/Implementation/SubAreaLoader.cs.meta +11 -11
  60. package/Implementation/SubAreaStateData.cs +11 -11
  61. package/Implementation/SubAreaStateData.cs.meta +11 -11
  62. package/Implementation/TriggerConverter.cs +137 -137
  63. package/Implementation/TriggerConverter.cs.meta +11 -11
  64. package/Implementation/TriggerLoader.cs +295 -295
  65. package/Implementation/TriggerLoader.cs.meta +11 -11
  66. package/Implementation/TriggerStateData.cs +18 -18
  67. package/Implementation/TriggerStateData.cs.meta +11 -11
  68. package/Implementation.meta +8 -8
  69. package/InstanceListWrapper.cs +23 -23
  70. package/InstanceListWrapper.cs.meta +11 -11
  71. package/Instances/ConvertInstanceData.cs +89 -89
  72. package/Instances/ConvertInstanceData.cs.meta +11 -11
  73. package/Instances/InstanceData.cs +43 -43
  74. package/Instances/InstanceData.cs.meta +11 -11
  75. package/Instances/InstanceStateData.cs +51 -51
  76. package/Instances/InstanceStateData.cs.meta +11 -11
  77. package/Instances/RoomInstanceData.cs +68 -68
  78. package/Instances/RoomInstanceData.cs.meta +11 -11
  79. package/Instances/RoomInstanceManager.cs +452 -452
  80. package/Instances/RoomInstanceManager.cs.meta +11 -11
  81. package/Instances.meta +8 -8
  82. package/LoadInvestigationRoomState.cs +53 -53
  83. package/LoadInvestigationRoomState.cs.meta +11 -11
  84. package/Old/ActorLoader.cs +382 -382
  85. package/Old/ActorLoader.cs.meta +11 -11
  86. package/Old/Room.cs +24 -24
  87. package/Old/Room.cs.meta +11 -11
  88. package/Old/RoomBuilder.cs +59 -59
  89. package/Old/RoomBuilder.cs.meta +11 -11
  90. package/Old/RoomData.cs +90 -90
  91. package/Old/RoomData.cs.meta +11 -11
  92. package/Old/RoomManager.cs +256 -256
  93. package/Old/RoomManager.cs.meta +11 -11
  94. package/Old/RoomManagerDisplayEditor.cs +72 -72
  95. package/Old/RoomManagerDisplayEditor.cs.meta +11 -11
  96. package/Old/RoomManagerEditor.cs +211 -211
  97. package/Old/RoomManagerEditor.cs.meta +11 -11
  98. package/Old/RoomManagerShellDisplayEditor.cs +48 -48
  99. package/Old/RoomManagerShellDisplayEditor.cs.meta +11 -11
  100. package/Old/RoomSection.cs +35 -35
  101. package/Old/RoomSection.cs.meta +11 -11
  102. package/Old.meta +8 -8
  103. package/RoomManagerBase.cs +84 -84
  104. package/RoomManagerBase.cs.meta +11 -11
  105. package/RoomManagerEditorBase.cs +86 -86
  106. package/RoomManagerEditorBase.cs.meta +11 -11
  107. package/RoomManagerEditorCoreBase.cs +159 -159
  108. package/RoomManagerEditorCoreBase.cs.meta +11 -11
  109. package/RoomSaveDisplayEditorBase.cs +111 -111
  110. package/RoomSaveDisplayEditorBase.cs.meta +11 -11
  111. package/RoomShellDisplayEditorBase.cs +68 -68
  112. package/RoomShellDisplayEditorBase.cs.meta +11 -11
  113. package/RoomStateBuilder.cs +53 -53
  114. package/RoomStateBuilder.cs.meta +11 -11
  115. package/RoomStateData.cs +58 -58
  116. package/RoomStateData.cs.meta +11 -11
  117. package/RoomStateManager.cs +202 -202
  118. package/RoomStateManager.cs.meta +11 -11
  119. package/RoomStateManagerEditor.cs +392 -392
  120. package/RoomStateManagerEditor.cs.meta +11 -11
  121. package/RoomStateSaveDisplayEditor.cs +175 -175
  122. package/RoomStateSaveDisplayEditor.cs.meta +11 -11
  123. package/RoomStateSection.cs +69 -69
  124. package/RoomStateSection.cs.meta +11 -11
  125. package/RoomStateShellDisplayEditor.cs +108 -108
  126. package/RoomStateShellDisplayEditor.cs.meta +11 -11
  127. package/{Samples → Samples~}/Room_State_Manager.prefab +473 -473
  128. package/{Samples → Samples~}/Room_State_Manager.prefab.meta +7 -7
  129. package/{Samples → Samples~}/Trial_Actor_Manager.prefab +51 -51
  130. package/{Samples → Samples~}/Trial_Actor_Manager.prefab.meta +7 -7
  131. package/package.json +51 -46
  132. package/package.json.meta +7 -7
  133. package/Samples.meta +0 -8
@@ -1,296 +1,296 @@
1
- //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
- using DREditor.Triggers;
3
- using System;
4
- using System.Collections.Generic;
5
- using System.Linq;
6
- using UnityEngine;
7
-
8
- namespace DREditor.RoomBuilding.Implementation
9
- {
10
- /// <summary>
11
- ///
12
- /// </summary>
13
- [ClassHeader(nameof(RoomStateHandlerBase<TriggerStateData, EventTrigger>) +
14
- " for types <" + nameof(TriggerStateData) + ", " + nameof(EventTrigger) + ">" +
15
- "\n\n")]
16
- public class TriggerLoader : RoomStateHandlerBase<TriggerStateData, EventTrigger>
17
- {
18
- /// <inheritdoc/>
19
- public override List<EventTrigger> Save() => SaveData();
20
-
21
- /// <inheritdoc/>
22
- protected override void LoadAssetProcess(List<EventTrigger> baseDatas, List<EventTrigger> instanceDatas = null)
23
- => Load(baseDatas, instanceDatas);
24
-
25
- /// <summary>
26
- ///
27
- /// </summary>
28
- /// <param name="instanceDatas"></param>
29
- /// <returns></returns>
30
- protected virtual List<EventTrigger> GetValidInstanceTriggers(List<EventTrigger> instanceDatas = null)
31
- => instanceDatas?.Where(trigger => trigger.GenericActuator != null).ToList();
32
-
33
- /// <inheritdoc/>
34
- public override void Unload(bool inEditor) => UnloadEvents();
35
-
36
- /// <summary>
37
- ///
38
- /// </summary>
39
- /// <returns></returns>
40
- /// <remarks></remarks>
41
- public static List<EventTrigger> SaveData()
42
- {
43
- List<EventTrigger> triggers = new();
44
-
45
- var actList = FindObjectsByType<MonoBehaviour>().OfType<IActuatorBehaviour>().ToList();
46
-
47
- for (int i = 0; i < actList.Count(); i++)
48
- {
49
- EventTrigger trigger = new();
50
-
51
- trigger.SetActuator((GenericActuator)actList[i].Save());
52
-
53
- ISubsequentBehaviour[] subsequentBehaviours = actList[i].GetSubsequents();
54
-
55
- for (int j = 0; j < subsequentBehaviours.Count(); j++)
56
- trigger.GenericSubsequents.Add((GenericSubsequent)subsequentBehaviours[j].Save());
57
-
58
- triggers.Add(trigger);
59
- }
60
-
61
- return triggers;
62
- }
63
-
64
- /// <summary>
65
- ///
66
- /// </summary>
67
- /// <param name="Triggers"></param>
68
- /// <param name="InstanceTriggers"></param>
69
- public static void Load(List<EventTrigger> Triggers, List<EventTrigger> InstanceTriggers = null)
70
- {
71
- InitializeTriggers(Triggers, InstanceTriggers);
72
-
73
- for (int i = 0; i < Triggers.Count; i++)
74
- {
75
- EventTrigger currentTrigger = Triggers[i];
76
-
77
- CheckInstanceTriggers(i, InstanceTriggers);
78
-
79
- GameObject go = new(currentTrigger.GenericActuator.Type);
80
-
81
- PrepareLoadActuators(go, currentTrigger, i, InstanceTriggers);
82
-
83
- PrepareLoadSubsequents(go, currentTrigger, i, InstanceTriggers);
84
- }
85
- }
86
-
87
- /// <summary>
88
- ///
89
- /// </summary>
90
- /// <param name="Triggers"></param>
91
- /// <param name="InstanceTriggers"></param>
92
- /// <remarks></remarks>
93
- static void InitializeTriggers(List<EventTrigger> Triggers, List<EventTrigger> InstanceTriggers = null)
94
- {
95
- if (InstanceTriggers != null && InstanceTriggers.Count > 0)
96
- {
97
- for (int i = 0; i < Triggers.Count; i++)
98
- {
99
- try
100
- {
101
- EventTrigger baseTrigger = Triggers[i];
102
-
103
- EventTrigger instanceTrigger = InstanceTriggers[i];
104
-
105
- if (baseTrigger.GenericSubsequents.Count != instanceTrigger.GenericSubsequents.Count)
106
- {
107
- UnityEngine.Debug.Log("CALLED REVERSE");
108
-
109
- InstanceTriggers.Reverse();
110
-
111
- break;
112
- }
113
- }
114
- catch (Exception exception)
115
- {
116
- UnityEngine.Debug
117
- .LogWarning("MINOR ERROR: A BASE OR INSTANCE PIECE OF DATA COULDN'T BE FOUND on " + i + "\n" +
118
- exception.ToString());
119
- }
120
- }
121
-
122
- UnityEngine.Debug.Log("INSTANCE Trigger is: " + InstanceTriggers.Count);
123
- }
124
- }
125
-
126
- /// <summary>
127
- ///
128
- /// </summary>
129
- /// <param name="instanceIndex"></param>
130
- /// <param name="InstanceTriggers"></param>
131
- static void CheckInstanceTriggers(int instanceIndex, List<EventTrigger> InstanceTriggers = null)
132
- {
133
- if (InstanceTriggers != null)
134
- {
135
- try
136
- {
137
- UnityEngine.Debug.Log(InstanceTriggers.Count);
138
-
139
- UnityEngine.Debug.Log(InstanceTriggers[instanceIndex].ToString());
140
-
141
- UnityEngine.Debug.Log(InstanceTriggers[instanceIndex].GenericActuator.Triggered);
142
-
143
- UnityEngine.Debug.Log(InstanceTriggers[instanceIndex].GenericSubsequents.Count);
144
- }
145
- catch (Exception ex)
146
- {
147
- UnityEngine.Debug.Log("MINOR NOTICE: Logging Triggers had an error on: " + instanceIndex +
148
- "\nLikely that this instance data is from previous game export's save data." +
149
- "\n\n" + ex.ToString());
150
- }
151
- }
152
- }
153
-
154
- /// <summary>
155
- ///
156
- /// </summary>
157
- /// <param name="go"></param>
158
- /// <param name="currentTrigger"></param>
159
- /// <param name="baseIndex"></param>
160
- /// <param name="InstanceTriggers"></param>
161
- static void PrepareLoadActuators(GameObject go, EventTrigger currentTrigger,
162
- int baseIndex, List<EventTrigger> InstanceTriggers = null)
163
- {
164
- //Type type = Type.GetType(currentTrigger.GenericActuator.Type);
165
-
166
- // This code must eventually remove below code with above code in the rework after the 2025 rework
167
- // To remove the System.Reflection usage. Since regular actuators will be removed and all that will be left are generic.
168
- // Potentially something to at least check and correct the sent type?
169
-
170
- bool hasValidInstanceData = InstanceTriggers != null && InstanceTriggers.Count > 0 && baseIndex < InstanceTriggers.Count;
171
-
172
- bool hasValidInstanceActuator = hasValidInstanceData && InstanceTriggers[baseIndex].GenericActuator != null;
173
-
174
- string summonType = hasValidInstanceActuator ?
175
- InstanceTriggers[baseIndex].GenericActuator.Type.Split('.')[^1]
176
- : currentTrigger.GenericActuator.Type;
177
-
178
- var actuatorType = AppDomain.CurrentDomain.GetAssemblies()
179
- .SelectMany(assembly => assembly.GetTypes())
180
- .FirstOrDefault(type => type.Name == summonType);
181
-
182
- UnityEngine.Debug.Log("REPORT: Actuator Type to load: " + summonType);
183
-
184
- go.AddComponent(actuatorType);
185
-
186
- var actuatorBehaviours = go.GetComponents<MonoBehaviour>().OfType<IActuatorBehaviour>();
187
-
188
- foreach (IActuatorBehaviour actuatorBehaviour in actuatorBehaviours)
189
- if (hasValidInstanceData)
190
- {
191
- if (InstanceTriggers[baseIndex].GenericActuator == null)
192
- {
193
- if (string.IsNullOrEmpty(InstanceTriggers[baseIndex].Actuator.Type))
194
- continue;
195
- //#if UNITY_EDITOR
196
- TriggerConverter.ConvertActuator(InstanceTriggers[baseIndex], InstanceTriggers[baseIndex].Actuator);
197
- //#endif
198
- }
199
-
200
- LoadActuatorInstance(actuatorBehaviour, baseIndex, InstanceTriggers);
201
- }
202
- else
203
- actuatorBehaviour.Load(currentTrigger.GenericActuator.Clone());
204
- }
205
-
206
- /// <summary>
207
- ///
208
- /// </summary>
209
- /// <param name="actuatorBehaviour"></param>
210
- /// <param name="baseIndex"></param>
211
- /// <param name="InstanceTriggers"></param>
212
- static void LoadActuatorInstance(IActuatorBehaviour actuatorBehaviour, int baseIndex, List<EventTrigger> InstanceTriggers = null)
213
- {
214
- if (InstanceTriggers[baseIndex].GenericActuator != null)
215
- actuatorBehaviour.Load(InstanceTriggers[baseIndex].GenericActuator);
216
- else
217
- actuatorBehaviour.Load(InstanceTriggers[baseIndex].Actuator);
218
- }
219
-
220
- /// <summary>
221
- ///
222
- /// </summary>
223
- /// <param name="go"></param>
224
- /// <param name="currentTrigger"></param>
225
- /// <param name="baseIndex"></param>
226
- /// <param name="InstanceTriggers"></param>
227
- static void PrepareLoadSubsequents(GameObject go, EventTrigger currentTrigger,
228
- int baseIndex, List<EventTrigger> InstanceTriggers = null)
229
- {
230
- try
231
- {
232
- LoadSubsequents(go, currentTrigger, baseIndex, InstanceTriggers);
233
- }
234
- catch (Exception exception)
235
- {
236
- UnityEngine.Debug.LogWarning(nameof(TriggerLoader) + ": Failed to load Subsequents");
237
-
238
- UnityEngine.Debug.LogException(exception);
239
- }
240
- }
241
-
242
- /// <summary>
243
- ///
244
- /// </summary>
245
- /// <param name="go"></param>
246
- /// <param name="currentTrigger"></param>
247
- /// <param name="baseIndex"></param>
248
- /// <param name="InstanceTriggers"></param>
249
- static void LoadSubsequents(GameObject go, EventTrigger currentTrigger,
250
- int baseIndex, List<EventTrigger> InstanceTriggers = null)
251
- {
252
- for (int x = 0; x < currentTrigger.GenericSubsequents.Count; x++)
253
- {
254
- GenericSubsequent genericSubsequent = currentTrigger.GenericSubsequents[x];
255
-
256
- //Type type = Type.GetType(genericSubsequent.Type);
257
-
258
- // This code must eventually remove below code with above code in the rework after the 2025 rework
259
- // To remove the System.Reflection usage.
260
- var subsequentType = AppDomain.CurrentDomain.GetAssemblies()
261
- .SelectMany(assembly => assembly.GetTypes())
262
- .FirstOrDefault(type => type.Name == genericSubsequent.Type);
263
-
264
- go.AddComponent(subsequentType);
265
-
266
- var subsequentBehaviours = go.GetComponents<ISubsequentBehaviour>().ToList();
267
-
268
- if (InstanceTriggers != null &&
269
- InstanceTriggers.Count > 0 &&
270
- baseIndex < InstanceTriggers.Count &&
271
- InstanceTriggers[baseIndex].GenericSubsequents.Count != 0)
272
- subsequentBehaviours[x].Load(((GenericSubsequent)genericSubsequent.Clone())
273
- .MergeInstance(InstanceTriggers[baseIndex].GenericSubsequents[x]));
274
- else
275
- subsequentBehaviours[x].Load(genericSubsequent.Clone());
276
- }
277
- }
278
-
279
- /// <summary>
280
- ///
281
- /// </summary>
282
- public static void UnloadEvents()
283
- {
284
- MonoBehaviour[] actuators = FindObjectsByType<MonoBehaviour>()
285
- .Where(behaviour => behaviour is IActuatorBehaviour).ToArray();
286
-
287
- foreach (MonoBehaviour behaviour in actuators)
288
- #if UNITY_EDITOR
289
- if (behaviour.gameObject != null)
290
- DestroyImmediate(behaviour.gameObject);
291
- #else
292
- Destroy(behaviour.gameObject);
293
- #endif
294
- }
295
- }
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.Triggers;
3
+ using System;
4
+ using System.Collections.Generic;
5
+ using System.Linq;
6
+ using UnityEngine;
7
+
8
+ namespace DREditor.RoomBuilding.Implementation
9
+ {
10
+ /// <summary>
11
+ ///
12
+ /// </summary>
13
+ [ClassHeader(nameof(RoomStateHandlerBase<TriggerStateData, EventTrigger>) +
14
+ " for types <" + nameof(TriggerStateData) + ", " + nameof(EventTrigger) + ">" +
15
+ "\n\n")]
16
+ public class TriggerLoader : RoomStateHandlerBase<TriggerStateData, EventTrigger>
17
+ {
18
+ /// <inheritdoc/>
19
+ public override List<EventTrigger> Save() => SaveData();
20
+
21
+ /// <inheritdoc/>
22
+ protected override void LoadAssetProcess(List<EventTrigger> baseDatas, List<EventTrigger> instanceDatas = null)
23
+ => Load(baseDatas, instanceDatas);
24
+
25
+ /// <summary>
26
+ ///
27
+ /// </summary>
28
+ /// <param name="instanceDatas"></param>
29
+ /// <returns></returns>
30
+ protected virtual List<EventTrigger> GetValidInstanceTriggers(List<EventTrigger> instanceDatas = null)
31
+ => instanceDatas?.Where(trigger => trigger.GenericActuator != null).ToList();
32
+
33
+ /// <inheritdoc/>
34
+ public override void Unload(bool inEditor) => UnloadEvents();
35
+
36
+ /// <summary>
37
+ ///
38
+ /// </summary>
39
+ /// <returns></returns>
40
+ /// <remarks></remarks>
41
+ public static List<EventTrigger> SaveData()
42
+ {
43
+ List<EventTrigger> triggers = new();
44
+
45
+ var actList = FindObjectsByType<MonoBehaviour>().OfType<IActuatorBehaviour>().ToList();
46
+
47
+ for (int i = 0; i < actList.Count(); i++)
48
+ {
49
+ EventTrigger trigger = new();
50
+
51
+ trigger.SetActuator((GenericActuator)actList[i].Save());
52
+
53
+ ISubsequentBehaviour[] subsequentBehaviours = actList[i].GetSubsequents();
54
+
55
+ for (int j = 0; j < subsequentBehaviours.Count(); j++)
56
+ trigger.GenericSubsequents.Add((GenericSubsequent)subsequentBehaviours[j].Save());
57
+
58
+ triggers.Add(trigger);
59
+ }
60
+
61
+ return triggers;
62
+ }
63
+
64
+ /// <summary>
65
+ ///
66
+ /// </summary>
67
+ /// <param name="Triggers"></param>
68
+ /// <param name="InstanceTriggers"></param>
69
+ public static void Load(List<EventTrigger> Triggers, List<EventTrigger> InstanceTriggers = null)
70
+ {
71
+ InitializeTriggers(Triggers, InstanceTriggers);
72
+
73
+ for (int i = 0; i < Triggers.Count; i++)
74
+ {
75
+ EventTrigger currentTrigger = Triggers[i];
76
+
77
+ CheckInstanceTriggers(i, InstanceTriggers);
78
+
79
+ GameObject go = new(currentTrigger.GenericActuator.Type);
80
+
81
+ PrepareLoadActuators(go, currentTrigger, i, InstanceTriggers);
82
+
83
+ PrepareLoadSubsequents(go, currentTrigger, i, InstanceTriggers);
84
+ }
85
+ }
86
+
87
+ /// <summary>
88
+ ///
89
+ /// </summary>
90
+ /// <param name="Triggers"></param>
91
+ /// <param name="InstanceTriggers"></param>
92
+ /// <remarks></remarks>
93
+ static void InitializeTriggers(List<EventTrigger> Triggers, List<EventTrigger> InstanceTriggers = null)
94
+ {
95
+ if (InstanceTriggers != null && InstanceTriggers.Count > 0)
96
+ {
97
+ for (int i = 0; i < Triggers.Count; i++)
98
+ {
99
+ try
100
+ {
101
+ EventTrigger baseTrigger = Triggers[i];
102
+
103
+ EventTrigger instanceTrigger = InstanceTriggers[i];
104
+
105
+ if (baseTrigger.GenericSubsequents.Count != instanceTrigger.GenericSubsequents.Count)
106
+ {
107
+ UnityEngine.Debug.Log("CALLED REVERSE");
108
+
109
+ InstanceTriggers.Reverse();
110
+
111
+ break;
112
+ }
113
+ }
114
+ catch (Exception exception)
115
+ {
116
+ UnityEngine.Debug
117
+ .LogWarning("MINOR ERROR: A BASE OR INSTANCE PIECE OF DATA COULDN'T BE FOUND on " + i + "\n" +
118
+ exception.ToString());
119
+ }
120
+ }
121
+
122
+ UnityEngine.Debug.Log("INSTANCE Trigger is: " + InstanceTriggers.Count);
123
+ }
124
+ }
125
+
126
+ /// <summary>
127
+ ///
128
+ /// </summary>
129
+ /// <param name="instanceIndex"></param>
130
+ /// <param name="InstanceTriggers"></param>
131
+ static void CheckInstanceTriggers(int instanceIndex, List<EventTrigger> InstanceTriggers = null)
132
+ {
133
+ if (InstanceTriggers != null)
134
+ {
135
+ try
136
+ {
137
+ UnityEngine.Debug.Log(InstanceTriggers.Count);
138
+
139
+ UnityEngine.Debug.Log(InstanceTriggers[instanceIndex].ToString());
140
+
141
+ UnityEngine.Debug.Log(InstanceTriggers[instanceIndex].GenericActuator.Triggered);
142
+
143
+ UnityEngine.Debug.Log(InstanceTriggers[instanceIndex].GenericSubsequents.Count);
144
+ }
145
+ catch (Exception ex)
146
+ {
147
+ UnityEngine.Debug.Log("MINOR NOTICE: Logging Triggers had an error on: " + instanceIndex +
148
+ "\nLikely that this instance data is from previous game export's save data." +
149
+ "\n\n" + ex.ToString());
150
+ }
151
+ }
152
+ }
153
+
154
+ /// <summary>
155
+ ///
156
+ /// </summary>
157
+ /// <param name="go"></param>
158
+ /// <param name="currentTrigger"></param>
159
+ /// <param name="baseIndex"></param>
160
+ /// <param name="InstanceTriggers"></param>
161
+ static void PrepareLoadActuators(GameObject go, EventTrigger currentTrigger,
162
+ int baseIndex, List<EventTrigger> InstanceTriggers = null)
163
+ {
164
+ //Type type = Type.GetType(currentTrigger.GenericActuator.Type);
165
+
166
+ // This code must eventually remove below code with above code in the rework after the 2025 rework
167
+ // To remove the System.Reflection usage. Since regular actuators will be removed and all that will be left are generic.
168
+ // Potentially something to at least check and correct the sent type?
169
+
170
+ bool hasValidInstanceData = InstanceTriggers != null && InstanceTriggers.Count > 0 && baseIndex < InstanceTriggers.Count;
171
+
172
+ bool hasValidInstanceActuator = hasValidInstanceData && InstanceTriggers[baseIndex].GenericActuator != null;
173
+
174
+ string summonType = hasValidInstanceActuator ?
175
+ InstanceTriggers[baseIndex].GenericActuator.Type.Split('.')[^1]
176
+ : currentTrigger.GenericActuator.Type;
177
+
178
+ var actuatorType = AppDomain.CurrentDomain.GetAssemblies()
179
+ .SelectMany(assembly => assembly.GetTypes())
180
+ .FirstOrDefault(type => type.Name == summonType);
181
+
182
+ UnityEngine.Debug.Log("REPORT: Actuator Type to load: " + summonType);
183
+
184
+ go.AddComponent(actuatorType);
185
+
186
+ var actuatorBehaviours = go.GetComponents<MonoBehaviour>().OfType<IActuatorBehaviour>();
187
+
188
+ foreach (IActuatorBehaviour actuatorBehaviour in actuatorBehaviours)
189
+ if (hasValidInstanceData)
190
+ {
191
+ if (InstanceTriggers[baseIndex].GenericActuator == null)
192
+ {
193
+ if (string.IsNullOrEmpty(InstanceTriggers[baseIndex].Actuator.Type))
194
+ continue;
195
+ //#if UNITY_EDITOR
196
+ TriggerConverter.ConvertActuator(InstanceTriggers[baseIndex], InstanceTriggers[baseIndex].Actuator);
197
+ //#endif
198
+ }
199
+
200
+ LoadActuatorInstance(actuatorBehaviour, baseIndex, InstanceTriggers);
201
+ }
202
+ else
203
+ actuatorBehaviour.Load(currentTrigger.GenericActuator.Clone());
204
+ }
205
+
206
+ /// <summary>
207
+ ///
208
+ /// </summary>
209
+ /// <param name="actuatorBehaviour"></param>
210
+ /// <param name="baseIndex"></param>
211
+ /// <param name="InstanceTriggers"></param>
212
+ static void LoadActuatorInstance(IActuatorBehaviour actuatorBehaviour, int baseIndex, List<EventTrigger> InstanceTriggers = null)
213
+ {
214
+ if (InstanceTriggers[baseIndex].GenericActuator != null)
215
+ actuatorBehaviour.Load(InstanceTriggers[baseIndex].GenericActuator);
216
+ else
217
+ actuatorBehaviour.Load(InstanceTriggers[baseIndex].Actuator);
218
+ }
219
+
220
+ /// <summary>
221
+ ///
222
+ /// </summary>
223
+ /// <param name="go"></param>
224
+ /// <param name="currentTrigger"></param>
225
+ /// <param name="baseIndex"></param>
226
+ /// <param name="InstanceTriggers"></param>
227
+ static void PrepareLoadSubsequents(GameObject go, EventTrigger currentTrigger,
228
+ int baseIndex, List<EventTrigger> InstanceTriggers = null)
229
+ {
230
+ try
231
+ {
232
+ LoadSubsequents(go, currentTrigger, baseIndex, InstanceTriggers);
233
+ }
234
+ catch (Exception exception)
235
+ {
236
+ UnityEngine.Debug.LogWarning(nameof(TriggerLoader) + ": Failed to load Subsequents");
237
+
238
+ UnityEngine.Debug.LogException(exception);
239
+ }
240
+ }
241
+
242
+ /// <summary>
243
+ ///
244
+ /// </summary>
245
+ /// <param name="go"></param>
246
+ /// <param name="currentTrigger"></param>
247
+ /// <param name="baseIndex"></param>
248
+ /// <param name="InstanceTriggers"></param>
249
+ static void LoadSubsequents(GameObject go, EventTrigger currentTrigger,
250
+ int baseIndex, List<EventTrigger> InstanceTriggers = null)
251
+ {
252
+ for (int x = 0; x < currentTrigger.GenericSubsequents.Count; x++)
253
+ {
254
+ GenericSubsequent genericSubsequent = currentTrigger.GenericSubsequents[x];
255
+
256
+ //Type type = Type.GetType(genericSubsequent.Type);
257
+
258
+ // This code must eventually remove below code with above code in the rework after the 2025 rework
259
+ // To remove the System.Reflection usage.
260
+ var subsequentType = AppDomain.CurrentDomain.GetAssemblies()
261
+ .SelectMany(assembly => assembly.GetTypes())
262
+ .FirstOrDefault(type => type.Name == genericSubsequent.Type);
263
+
264
+ go.AddComponent(subsequentType);
265
+
266
+ var subsequentBehaviours = go.GetComponents<ISubsequentBehaviour>().ToList();
267
+
268
+ if (InstanceTriggers != null &&
269
+ InstanceTriggers.Count > 0 &&
270
+ baseIndex < InstanceTriggers.Count &&
271
+ InstanceTriggers[baseIndex].GenericSubsequents.Count != 0)
272
+ subsequentBehaviours[x].Load(((GenericSubsequent)genericSubsequent.Clone())
273
+ .MergeInstance(InstanceTriggers[baseIndex].GenericSubsequents[x]));
274
+ else
275
+ subsequentBehaviours[x].Load(genericSubsequent.Clone());
276
+ }
277
+ }
278
+
279
+ /// <summary>
280
+ ///
281
+ /// </summary>
282
+ public static void UnloadEvents()
283
+ {
284
+ MonoBehaviour[] actuators = FindObjectsByType<MonoBehaviour>()
285
+ .Where(behaviour => behaviour is IActuatorBehaviour).ToArray();
286
+
287
+ foreach (MonoBehaviour behaviour in actuators)
288
+ #if UNITY_EDITOR
289
+ if (behaviour.gameObject != null)
290
+ DestroyImmediate(behaviour.gameObject);
291
+ #else
292
+ Destroy(behaviour.gameObject);
293
+ #endif
294
+ }
295
+ }
296
296
  }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: d4a96593f9e88e9428a387c782e40e4b
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: d4a96593f9e88e9428a387c782e40e4b
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -1,19 +1,19 @@
1
- //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
- using DREditor.Triggers;
3
- using System;
4
- using UnityEngine;
5
-
6
- namespace DREditor.RoomBuilding.Implementation
7
- {
8
- /// <summary>
9
- ///
10
- /// </summary>
11
- [Serializable]
12
- public class TriggerStateData : StateDataAsset<EventTrigger>
13
- {
14
- #if UNITY_EDITOR
15
- [ContextMenu("Convert")]
16
- public void Convert() => TriggerConverter.ConvertTriggerAsset(this);
17
- #endif
18
- }
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.Triggers;
3
+ using System;
4
+ using UnityEngine;
5
+
6
+ namespace DREditor.RoomBuilding.Implementation
7
+ {
8
+ /// <summary>
9
+ ///
10
+ /// </summary>
11
+ [Serializable]
12
+ public class TriggerStateData : StateDataAsset<EventTrigger>
13
+ {
14
+ #if UNITY_EDITOR
15
+ [ContextMenu("Convert")]
16
+ public void Convert() => TriggerConverter.ConvertTriggerAsset(this);
17
+ #endif
18
+ }
19
19
  }