net.dreditor.chapterselection 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 (67) hide show
  1. package/.attestation.p7m +0 -0
  2. package/ChapterSceneByLatestObjective.cs +188 -188
  3. package/ChapterSceneByLatestObjective.cs.meta +1 -1
  4. package/ChapterSceneHandler.cs +151 -151
  5. package/ChapterSceneHandler.cs.meta +11 -11
  6. package/ChapterSectionBase.cs +139 -139
  7. package/ChapterSectionBase.cs.meta +11 -11
  8. package/ChapterSelectCollection.cs +48 -48
  9. package/ChapterSelectCollection.cs.meta +1 -1
  10. package/ChapterSelectCollectionBase.cs +71 -71
  11. package/ChapterSelectCollectionBase.cs.meta +1 -1
  12. package/ChapterSelectData.cs +55 -55
  13. package/ChapterSelectData.cs.meta +11 -11
  14. package/ChapterSelectDatabase.cs +28 -28
  15. package/ChapterSelectDatabase.cs.meta +11 -11
  16. package/ChapterSelectFallbackEvaluator.cs +24 -24
  17. package/ChapterSelectFallbackEvaluator.cs.meta +1 -1
  18. package/ChapterSelectHandler.cs +60 -60
  19. package/ChapterSelectHandler.cs.meta +11 -11
  20. package/ChapterSelectHistoryManager.cs +15 -15
  21. package/ChapterSelectHistoryManager.cs.meta +1 -1
  22. package/ChapterSelectManager.cs +196 -196
  23. package/ChapterSelectManager.cs.meta +11 -11
  24. package/ChapterSelectSaveData.cs +53 -53
  25. package/ChapterSelectSaveData.cs.meta +1 -1
  26. package/ChapterSelectUIHandler.cs +136 -136
  27. package/ChapterSelectUIHandler.cs.meta +11 -11
  28. package/ChapterSubSectionBase.cs +77 -77
  29. package/ChapterSubSectionBase.cs.meta +1 -1
  30. package/DREditor.ChapterSelection.asmdef +19 -19
  31. package/DREditor.ChapterSelection.asmdef.meta +7 -7
  32. package/IChapterSelectData.cs +14 -14
  33. package/IChapterSelectData.cs.meta +1 -1
  34. package/{Samples → Samples~}/Animations/ChapSelect.controller +191 -191
  35. package/{Samples → Samples~}/Animations/ChapSelect.controller.meta +8 -8
  36. package/{Samples → Samples~}/Animations/HideChapterSelect.anim +232 -232
  37. package/{Samples → Samples~}/Animations/HideChapterSelect.anim.meta +8 -8
  38. package/{Samples → Samples~}/Animations.meta +8 -8
  39. package/{Samples → Samples~}/CS_Select_Button_DRE.prefab +305 -305
  40. package/{Samples → Samples~}/CS_Select_Button_DRE.prefab.meta +7 -7
  41. package/{Samples → Samples~}/Chapter_Scene_UI_Canvas_Shell.prefab +393 -393
  42. package/{Samples → Samples~}/Chapter_Scene_UI_Canvas_Shell.prefab.meta +7 -7
  43. package/{Samples → Samples~}/Chapter_Scene_UI_Canvas_Template.prefab +771 -771
  44. package/{Samples → Samples~}/Chapter_Scene_UI_Canvas_Template.prefab.meta +7 -7
  45. package/{Samples → Samples~}/Chapter_Select_Difficulty_UI_Canvas_Template.prefab +226 -226
  46. package/{Samples → Samples~}/Chapter_Select_Difficulty_UI_Canvas_Template.prefab.meta +7 -7
  47. package/{Samples → Samples~}/Chapter_Select_History_Manager.prefab +98 -98
  48. package/{Samples → Samples~}/Chapter_Select_History_Manager.prefab.meta +7 -7
  49. package/{Samples → Samples~}/Chapter_Select_System_Shell.prefab +61 -61
  50. package/{Samples → Samples~}/Chapter_Select_System_Shell.prefab.meta +7 -7
  51. package/{Samples → Samples~}/Chapter_Select_System_Template.prefab +549 -549
  52. package/{Samples → Samples~}/Chapter_Select_System_Template.prefab.meta +7 -7
  53. package/{Samples → Samples~}/Chapter_Select_UI_Canvas_Shell.prefab +543 -543
  54. package/{Samples → Samples~}/Chapter_Select_UI_Canvas_Shell.prefab.meta +7 -7
  55. package/{Samples → Samples~}/Chapter_Select_UI_Canvas_Template.prefab +1001 -1001
  56. package/{Samples → Samples~}/Chapter_Select_UI_Canvas_Template.prefab.meta +7 -7
  57. package/{Samples → Samples~}/StartChapterSelectGame.asset +15 -15
  58. package/{Samples → Samples~}/StartChapterSelectGame.asset.meta +8 -8
  59. package/SceneDataProvider.cs +25 -25
  60. package/SceneDataProvider.cs.meta +11 -11
  61. package/SceneDataProviderBase.cs +36 -36
  62. package/SceneDataProviderBase.cs.meta +11 -11
  63. package/UnlockChapterSelectScene.cs +48 -48
  64. package/UnlockChapterSelectScene.cs.meta +1 -1
  65. package/package.json +42 -37
  66. package/package.json.meta +7 -7
  67. package/Samples.meta +0 -8
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: 4be033c20999ed448a947fba1571ac1b
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: 4be033c20999ed448a947fba1571ac1b
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -1,16 +1,16 @@
1
- //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
- using DREditor.Progressing.Handling;
3
- using DREditor.Saving;
4
-
5
- namespace DREditor.ChapterSelection
6
- {
7
- /// <summary>
8
- ///
9
- /// </summary>
10
- [ClassHeader(nameof(HistoricalManagerBase<IChapterSelectData, ChapterSelectHistoryManager>) +
11
- " SERVICE for type: " + nameof(IChapterSelectData) +
12
- "\n" + nameof(IDRESaveable) + ", " + nameof(IDRELoadableManager) + ", " +
13
- nameof(IDRELoadable) + ", " + nameof(ILoadOnChapterSelect) +
14
- "\n\n")]
15
- public class ChapterSelectHistoryManager : HistoricalManagerBase<IChapterSelectData, ChapterSelectHistoryManager> { }
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.Progressing.Handling;
3
+ using DREditor.Saving;
4
+
5
+ namespace DREditor.ChapterSelection
6
+ {
7
+ /// <summary>
8
+ ///
9
+ /// </summary>
10
+ [ClassHeader(nameof(HistoricalManagerBase<IChapterSelectData, ChapterSelectHistoryManager>) +
11
+ " SERVICE for type: " + nameof(IChapterSelectData) +
12
+ "\n" + nameof(IDRESaveable) + ", " + nameof(IDRELoadableManager) + ", " +
13
+ nameof(IDRELoadable) + ", " + nameof(ILoadOnChapterSelect) +
14
+ "\n\n")]
15
+ public class ChapterSelectHistoryManager : HistoricalManagerBase<IChapterSelectData, ChapterSelectHistoryManager> { }
16
16
  }
@@ -1,2 +1,2 @@
1
- fileFormatVersion: 2
1
+ fileFormatVersion: 2
2
2
  guid: 83e24f8e3cd433a4b815bb21733e3901
@@ -1,197 +1,197 @@
1
- //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
- using DREditor.Dialogues.Events;
3
- using DREditor.EventObjects;
4
- using DREditor.Progressing;
5
- using DREditor.Saving;
6
- using DREditor.UI;
7
- using System;
8
- using System.Collections.Generic;
9
- using System.Linq;
10
- using UnityEngine;
11
- using UnityEngine.UI;
12
-
13
- namespace DREditor.ChapterSelection
14
- {
15
- /// <summary>
16
- ///
17
- /// </summary>
18
- [ClassHeader(nameof(SceneEventListener) +
19
- "\n\n")]
20
- public class ChapterSelectManager : SceneEventListener
21
- {
22
- /// <summary>
23
- ///
24
- /// </summary>
25
- [Tooltip("")]
26
- [SerializeField] protected ChapterSelectDatabase chapterSelectDatabase = null;
27
-
28
- /// <summary>
29
- ///
30
- /// </summary>
31
- [Tooltip("")]
32
- [SerializeField] protected Button chapSelectButton = null;
33
-
34
- /// <summary>
35
- ///
36
- /// </summary>
37
- [Tooltip("")]
38
- [SerializeField] protected ProgressionDatabase progressionDatabase = null;
39
-
40
- /// <summary>
41
- ///
42
- /// </summary>
43
- [Tooltip("")]
44
- [SerializeField] protected List<ChapterSectionBase> chapterSections = new();
45
-
46
- /// <summary>
47
- ///
48
- /// </summary>
49
- [Tooltip("")]
50
- [SerializeField] protected BoolWithEvent hasLoadedSaveData = null;
51
-
52
- /// <summary>
53
- ///
54
- /// </summary>
55
- [Tooltip("")]
56
- [SerializeField] protected MenuGroupBase backGroup = null;
57
-
58
- /// <summary>
59
- ///
60
- /// </summary>
61
- [Tooltip("")]
62
- [SerializeField] protected string loadGameEventString = "LoadGameFromData";
63
-
64
-
65
- /// <summary>
66
- ///
67
- /// </summary>
68
- protected override void OnEnable()
69
- {
70
- base.OnEnable();
71
-
72
- backGroup.BeforeStart.AddListener(SetChapterSelectButtonInteractibility);
73
-
74
- chapSelectButton.onClick.AddListener(EvaluateAvailableChapterSelection);
75
-
76
- Response?.AddListener(StartChapterSelectGame);
77
- }
78
-
79
- /// <summary>
80
- ///
81
- /// </summary>
82
- protected override void OnDisable()
83
- {
84
- base.OnDisable();
85
-
86
- backGroup.BeforeStart.RemoveListener(SetChapterSelectButtonInteractibility);
87
-
88
- chapSelectButton.onClick.RemoveListener(EvaluateAvailableChapterSelection);
89
-
90
- Response?.RemoveListener(StartChapterSelectGame);
91
- }
92
-
93
- /// <summary>
94
- ///
95
- /// </summary>
96
- protected virtual void SetChapterSelectButtonInteractibility()
97
- => chapSelectButton.interactable = PlayerCanUseChapterSelect();
98
-
99
- /// <summary>
100
- ///
101
- /// </summary>
102
- /// <returns></returns>
103
- protected virtual bool PlayerCanUseChapterSelect() =>
104
- DatabaseIsValid() && (HandlersAllowChapterSelect() || PlayerHasLoadedSaveData());
105
-
106
- /// <summary>
107
- ///
108
- /// </summary>
109
- /// <returns></returns>
110
- protected virtual bool DatabaseIsValid() => chapterSelectDatabase != null && !chapterSelectDatabase.IsEmpty();
111
-
112
- /// <summary>
113
- ///
114
- /// </summary>
115
- /// <returns></returns>
116
- protected virtual bool HandlersAllowChapterSelect()
117
- {
118
- foreach (ChapterSectionBase section in chapterSections)
119
- if (!section.AllowsChapterSelect())
120
- return false;
121
-
122
- return true;
123
- }
124
-
125
- /// <summary>
126
- ///
127
- /// </summary>
128
- /// <returns></returns>
129
- protected virtual bool PlayerHasLoadedSaveData() => hasLoadedSaveData.Value;
130
-
131
-
132
- /// <summary>
133
- ///
134
- /// </summary>
135
- /// <remarks></remarks>
136
- public virtual void EvaluateAvailableChapterSelection()
137
- {
138
- foreach (ChapterSectionBase section in chapterSections)
139
- section.OnParentSubmittedIndex(0);
140
-
141
- if (hasLoadedSaveData.Value)
142
- LoadedSaveChapterSelect();
143
- else
144
- DefaultChapterSelect();
145
- }
146
-
147
- /// <summary>
148
- ///
149
- /// </summary>
150
- protected virtual void LoadedSaveChapterSelect()
151
- {
152
- UnityEngine.Debug.Log("Chapter Select: Used Load File Evaluation.");
153
-
154
- foreach (ChapterSectionBase section in chapterSections)
155
- section.InitializeLoaded();
156
- }
157
-
158
- /// <summary>
159
- ///
160
- /// </summary>
161
- protected virtual void DefaultChapterSelect()
162
- {
163
- UnityEngine.Debug.Log("Chapter Select: Used Default Max Settings");
164
-
165
- foreach (ChapterSectionBase section in chapterSections)
166
- section.InitializeDefault();
167
- }
168
-
169
-
170
- // Investigate whether this code is to be used.
171
-
172
- /// <summary>
173
- ///
174
- /// </summary>
175
- /// <remarks>
176
- ///
177
- /// </remarks>
178
- public virtual void StartChapterSelectGame()
179
- {
180
- Queue<int> queue = new(chapterSections.Select(section => section.GetSelectedSection()));
181
-
182
- SceneDataProviderBase data = (SceneDataProviderBase)chapterSelectDatabase.GetChapterSelectData(queue);
183
-
184
- try
185
- {
186
- DialogueEventSystem.TriggerEvent(loadGameEventString, (SerializableDictionary)data.GetData());
187
- }
188
- catch (Exception exception)
189
- {
190
- UnityEngine.Debug.LogError("Couldn't set Chapter select data: Selection order: " + string.Join(", ", queue) +
191
- " \n " + exception.ToString());
192
-
193
- UnityEngine.Debug.LogException(exception);
194
- }
195
- }
196
- }
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.Dialogues.Events;
3
+ using DREditor.EventObjects;
4
+ using DREditor.Progressing;
5
+ using DREditor.Saving;
6
+ using DREditor.UI;
7
+ using System;
8
+ using System.Collections.Generic;
9
+ using System.Linq;
10
+ using UnityEngine;
11
+ using UnityEngine.UI;
12
+
13
+ namespace DREditor.ChapterSelection
14
+ {
15
+ /// <summary>
16
+ ///
17
+ /// </summary>
18
+ [ClassHeader(nameof(SceneEventListener) +
19
+ "\n\n")]
20
+ public class ChapterSelectManager : SceneEventListener
21
+ {
22
+ /// <summary>
23
+ ///
24
+ /// </summary>
25
+ [Tooltip("")]
26
+ [SerializeField] protected ChapterSelectDatabase chapterSelectDatabase = null;
27
+
28
+ /// <summary>
29
+ ///
30
+ /// </summary>
31
+ [Tooltip("")]
32
+ [SerializeField] protected Button chapSelectButton = null;
33
+
34
+ /// <summary>
35
+ ///
36
+ /// </summary>
37
+ [Tooltip("")]
38
+ [SerializeField] protected ProgressionDatabase progressionDatabase = null;
39
+
40
+ /// <summary>
41
+ ///
42
+ /// </summary>
43
+ [Tooltip("")]
44
+ [SerializeField] protected List<ChapterSectionBase> chapterSections = new();
45
+
46
+ /// <summary>
47
+ ///
48
+ /// </summary>
49
+ [Tooltip("")]
50
+ [SerializeField] protected BoolWithEvent hasLoadedSaveData = null;
51
+
52
+ /// <summary>
53
+ ///
54
+ /// </summary>
55
+ [Tooltip("")]
56
+ [SerializeField] protected MenuGroupBase backGroup = null;
57
+
58
+ /// <summary>
59
+ ///
60
+ /// </summary>
61
+ [Tooltip("")]
62
+ [SerializeField] protected string loadGameEventString = "LoadGameFromData";
63
+
64
+
65
+ /// <summary>
66
+ ///
67
+ /// </summary>
68
+ protected override void OnEnable()
69
+ {
70
+ base.OnEnable();
71
+
72
+ backGroup.BeforeStart.AddListener(SetChapterSelectButtonInteractibility);
73
+
74
+ chapSelectButton.onClick.AddListener(EvaluateAvailableChapterSelection);
75
+
76
+ Response?.AddListener(StartChapterSelectGame);
77
+ }
78
+
79
+ /// <summary>
80
+ ///
81
+ /// </summary>
82
+ protected override void OnDisable()
83
+ {
84
+ base.OnDisable();
85
+
86
+ backGroup.BeforeStart.RemoveListener(SetChapterSelectButtonInteractibility);
87
+
88
+ chapSelectButton.onClick.RemoveListener(EvaluateAvailableChapterSelection);
89
+
90
+ Response?.RemoveListener(StartChapterSelectGame);
91
+ }
92
+
93
+ /// <summary>
94
+ ///
95
+ /// </summary>
96
+ protected virtual void SetChapterSelectButtonInteractibility()
97
+ => chapSelectButton.interactable = PlayerCanUseChapterSelect();
98
+
99
+ /// <summary>
100
+ ///
101
+ /// </summary>
102
+ /// <returns></returns>
103
+ protected virtual bool PlayerCanUseChapterSelect() =>
104
+ DatabaseIsValid() && (HandlersAllowChapterSelect() || PlayerHasLoadedSaveData());
105
+
106
+ /// <summary>
107
+ ///
108
+ /// </summary>
109
+ /// <returns></returns>
110
+ protected virtual bool DatabaseIsValid() => chapterSelectDatabase != null && !chapterSelectDatabase.IsEmpty();
111
+
112
+ /// <summary>
113
+ ///
114
+ /// </summary>
115
+ /// <returns></returns>
116
+ protected virtual bool HandlersAllowChapterSelect()
117
+ {
118
+ foreach (ChapterSectionBase section in chapterSections)
119
+ if (!section.AllowsChapterSelect())
120
+ return false;
121
+
122
+ return true;
123
+ }
124
+
125
+ /// <summary>
126
+ ///
127
+ /// </summary>
128
+ /// <returns></returns>
129
+ protected virtual bool PlayerHasLoadedSaveData() => hasLoadedSaveData.Value;
130
+
131
+
132
+ /// <summary>
133
+ ///
134
+ /// </summary>
135
+ /// <remarks></remarks>
136
+ public virtual void EvaluateAvailableChapterSelection()
137
+ {
138
+ foreach (ChapterSectionBase section in chapterSections)
139
+ section.OnParentSubmittedIndex(0);
140
+
141
+ if (hasLoadedSaveData.Value)
142
+ LoadedSaveChapterSelect();
143
+ else
144
+ DefaultChapterSelect();
145
+ }
146
+
147
+ /// <summary>
148
+ ///
149
+ /// </summary>
150
+ protected virtual void LoadedSaveChapterSelect()
151
+ {
152
+ UnityEngine.Debug.Log("Chapter Select: Used Load File Evaluation.");
153
+
154
+ foreach (ChapterSectionBase section in chapterSections)
155
+ section.InitializeLoaded();
156
+ }
157
+
158
+ /// <summary>
159
+ ///
160
+ /// </summary>
161
+ protected virtual void DefaultChapterSelect()
162
+ {
163
+ UnityEngine.Debug.Log("Chapter Select: Used Default Max Settings");
164
+
165
+ foreach (ChapterSectionBase section in chapterSections)
166
+ section.InitializeDefault();
167
+ }
168
+
169
+
170
+ // Investigate whether this code is to be used.
171
+
172
+ /// <summary>
173
+ ///
174
+ /// </summary>
175
+ /// <remarks>
176
+ ///
177
+ /// </remarks>
178
+ public virtual void StartChapterSelectGame()
179
+ {
180
+ Queue<int> queue = new(chapterSections.Select(section => section.GetSelectedSection()));
181
+
182
+ SceneDataProviderBase data = (SceneDataProviderBase)chapterSelectDatabase.GetChapterSelectData(queue);
183
+
184
+ try
185
+ {
186
+ DialogueEventSystem.TriggerEvent(loadGameEventString, (SerializableDictionary)data.GetData());
187
+ }
188
+ catch (Exception exception)
189
+ {
190
+ UnityEngine.Debug.LogError("Couldn't set Chapter select data: Selection order: " + string.Join(", ", queue) +
191
+ " \n " + exception.ToString());
192
+
193
+ UnityEngine.Debug.LogException(exception);
194
+ }
195
+ }
196
+ }
197
197
  }
@@ -1,11 +1,11 @@
1
- fileFormatVersion: 2
2
- guid: 9b8228a552a3d4748afa8844f4a338ff
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: 9b8228a552a3d4748afa8844f4a338ff
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -1,54 +1,54 @@
1
- //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
- using DREditor.Processables;
3
- using DREditor.Progressing;
4
- using DREditor.Saving;
5
- using System;
6
- using System.Collections.Generic;
7
-
8
- namespace DREditor.ChapterSelection
9
- {
10
- /// <summary>
11
- ///
12
- /// </summary>
13
- [Serializable]
14
- public class ChapterSelectSaveData : IChapterSelectData, IIdentifiableValidator, IPersistentData, IClearableOnNewGameSelected
15
- {
16
- public List<int> unlockedScenes = new();
17
-
18
- public ChapterSelectSaveData() { }
19
-
20
-
21
- /// <inheritdoc/>
22
- public virtual void Add(object obj)
23
- {
24
- if (obj is int ID)
25
- UnlockSceneID(ID);
26
- else
27
- OnUnexpectedTypeAdded(obj);
28
- }
29
-
30
- protected virtual void OnUnexpectedTypeAdded(object obj) =>
31
- UnityEngine.Debug.LogWarning($"ALERT: ");
32
-
33
- protected virtual void UnlockSceneID(int ID)
34
- {
35
- if (!IDValid(ID))
36
- unlockedScenes.Add(ID);
37
- }
38
-
39
- /// <inheritdoc/>
40
- public virtual bool IDValid(int ID) => unlockedScenes.Contains(ID);
41
-
42
- /// <inheritdoc/>
43
- public virtual void CarryOver(IPersistentData persistentData)
44
- {
45
- if (persistentData is ChapterSelectSaveData oldData)
46
- unlockedScenes = oldData.unlockedScenes;
47
- else
48
- UnityEngine.Debug.LogWarning("ALERT: TRIED TO SET CHAPTER SELECT DATA OF A DIFFERENT TYPE!");
49
- }
50
-
51
- /// <inheritdoc/>
52
- public virtual void Clear() => unlockedScenes.Clear();
53
- }
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.Processables;
3
+ using DREditor.Progressing;
4
+ using DREditor.Saving;
5
+ using System;
6
+ using System.Collections.Generic;
7
+
8
+ namespace DREditor.ChapterSelection
9
+ {
10
+ /// <summary>
11
+ ///
12
+ /// </summary>
13
+ [Serializable]
14
+ public class ChapterSelectSaveData : IChapterSelectData, IIdentifiableValidator, IPersistentData, IClearableOnNewGameSelected
15
+ {
16
+ public List<int> unlockedScenes = new();
17
+
18
+ public ChapterSelectSaveData() { }
19
+
20
+
21
+ /// <inheritdoc/>
22
+ public virtual void Add(object obj)
23
+ {
24
+ if (obj is int ID)
25
+ UnlockSceneID(ID);
26
+ else
27
+ OnUnexpectedTypeAdded(obj);
28
+ }
29
+
30
+ protected virtual void OnUnexpectedTypeAdded(object obj) =>
31
+ UnityEngine.Debug.LogWarning($"ALERT: ");
32
+
33
+ protected virtual void UnlockSceneID(int ID)
34
+ {
35
+ if (!IDValid(ID))
36
+ unlockedScenes.Add(ID);
37
+ }
38
+
39
+ /// <inheritdoc/>
40
+ public virtual bool IDValid(int ID) => unlockedScenes.Contains(ID);
41
+
42
+ /// <inheritdoc/>
43
+ public virtual void CarryOver(IPersistentData persistentData)
44
+ {
45
+ if (persistentData is ChapterSelectSaveData oldData)
46
+ unlockedScenes = oldData.unlockedScenes;
47
+ else
48
+ UnityEngine.Debug.LogWarning("ALERT: TRIED TO SET CHAPTER SELECT DATA OF A DIFFERENT TYPE!");
49
+ }
50
+
51
+ /// <inheritdoc/>
52
+ public virtual void Clear() => unlockedScenes.Clear();
53
+ }
54
54
  }
@@ -1,2 +1,2 @@
1
- fileFormatVersion: 2
1
+ fileFormatVersion: 2
2
2
  guid: 51ffd7f1d92128a46acf521d8937185f