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.
- package/.attestation.p7m +0 -0
- package/ChapterSceneByLatestObjective.cs +188 -188
- package/ChapterSceneByLatestObjective.cs.meta +1 -1
- package/ChapterSceneHandler.cs +151 -151
- package/ChapterSceneHandler.cs.meta +11 -11
- package/ChapterSectionBase.cs +139 -139
- package/ChapterSectionBase.cs.meta +11 -11
- package/ChapterSelectCollection.cs +48 -48
- package/ChapterSelectCollection.cs.meta +1 -1
- package/ChapterSelectCollectionBase.cs +71 -71
- package/ChapterSelectCollectionBase.cs.meta +1 -1
- package/ChapterSelectData.cs +55 -55
- package/ChapterSelectData.cs.meta +11 -11
- package/ChapterSelectDatabase.cs +28 -28
- package/ChapterSelectDatabase.cs.meta +11 -11
- package/ChapterSelectFallbackEvaluator.cs +24 -24
- package/ChapterSelectFallbackEvaluator.cs.meta +1 -1
- package/ChapterSelectHandler.cs +60 -60
- package/ChapterSelectHandler.cs.meta +11 -11
- package/ChapterSelectHistoryManager.cs +15 -15
- package/ChapterSelectHistoryManager.cs.meta +1 -1
- package/ChapterSelectManager.cs +196 -196
- package/ChapterSelectManager.cs.meta +11 -11
- package/ChapterSelectSaveData.cs +53 -53
- package/ChapterSelectSaveData.cs.meta +1 -1
- package/ChapterSelectUIHandler.cs +136 -136
- package/ChapterSelectUIHandler.cs.meta +11 -11
- package/ChapterSubSectionBase.cs +77 -77
- package/ChapterSubSectionBase.cs.meta +1 -1
- package/DREditor.ChapterSelection.asmdef +19 -19
- package/DREditor.ChapterSelection.asmdef.meta +7 -7
- package/IChapterSelectData.cs +14 -14
- package/IChapterSelectData.cs.meta +1 -1
- package/{Samples → Samples~}/Animations/ChapSelect.controller +191 -191
- package/{Samples → Samples~}/Animations/ChapSelect.controller.meta +8 -8
- package/{Samples → Samples~}/Animations/HideChapterSelect.anim +232 -232
- package/{Samples → Samples~}/Animations/HideChapterSelect.anim.meta +8 -8
- package/{Samples → Samples~}/Animations.meta +8 -8
- package/{Samples → Samples~}/CS_Select_Button_DRE.prefab +305 -305
- package/{Samples → Samples~}/CS_Select_Button_DRE.prefab.meta +7 -7
- package/{Samples → Samples~}/Chapter_Scene_UI_Canvas_Shell.prefab +393 -393
- package/{Samples → Samples~}/Chapter_Scene_UI_Canvas_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Chapter_Scene_UI_Canvas_Template.prefab +771 -771
- package/{Samples → Samples~}/Chapter_Scene_UI_Canvas_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Chapter_Select_Difficulty_UI_Canvas_Template.prefab +226 -226
- package/{Samples → Samples~}/Chapter_Select_Difficulty_UI_Canvas_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Chapter_Select_History_Manager.prefab +98 -98
- package/{Samples → Samples~}/Chapter_Select_History_Manager.prefab.meta +7 -7
- package/{Samples → Samples~}/Chapter_Select_System_Shell.prefab +61 -61
- package/{Samples → Samples~}/Chapter_Select_System_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Chapter_Select_System_Template.prefab +549 -549
- package/{Samples → Samples~}/Chapter_Select_System_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Chapter_Select_UI_Canvas_Shell.prefab +543 -543
- package/{Samples → Samples~}/Chapter_Select_UI_Canvas_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Chapter_Select_UI_Canvas_Template.prefab +1001 -1001
- package/{Samples → Samples~}/Chapter_Select_UI_Canvas_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/StartChapterSelectGame.asset +15 -15
- package/{Samples → Samples~}/StartChapterSelectGame.asset.meta +8 -8
- package/SceneDataProvider.cs +25 -25
- package/SceneDataProvider.cs.meta +11 -11
- package/SceneDataProviderBase.cs +36 -36
- package/SceneDataProviderBase.cs.meta +11 -11
- package/UnlockChapterSelectScene.cs +48 -48
- package/UnlockChapterSelectScene.cs.meta +1 -1
- package/package.json +42 -37
- package/package.json.meta +7 -7
- 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
|
package/ChapterSelectManager.cs
CHANGED
|
@@ -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:
|
package/ChapterSelectSaveData.cs
CHANGED
|
@@ -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
|