net.dreditor.dialogues.implementation 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.attestation.p7m +0 -0
- package/DREditor.Dialogues.Implementation.asmdef +15 -15
- package/DREditor.Dialogues.Implementation.asmdef.meta +7 -7
- package/DialogueAssetDataClearer.cs +49 -49
- package/DialogueAssetDataClearer.cs.meta +11 -11
- package/DialogueAssetEndEventHandler.cs +57 -57
- package/DialogueAssetEndEventHandler.cs.meta +11 -11
- package/DialogueAssetEnder.cs +239 -239
- package/DialogueAssetEnder.cs.meta +11 -11
- package/DialogueAssetFinisher.cs +89 -89
- package/DialogueAssetFinisher.cs.meta +11 -11
- package/DialogueAssetFinisherBase.cs +82 -82
- package/DialogueAssetFinisherBase.cs.meta +11 -11
- package/DialogueAssetManager.cs +65 -65
- package/DialogueAssetManager.cs.meta +11 -11
- package/DialogueAssetReader.cs +377 -377
- package/DialogueAssetReader.cs.meta +11 -11
- package/DialogueAssetStarter.cs +254 -254
- package/DialogueAssetStarter.cs.meta +11 -11
- package/DialogueAssetStarterDebugger.cs +40 -40
- package/DialogueAssetStarterDebugger.cs.meta +11 -11
- package/DialogueAssetWaiter.cs +93 -93
- package/DialogueAssetWaiter.cs.meta +11 -11
- package/DialogueLineReader.cs +391 -391
- package/DialogueLineReader.cs.meta +11 -11
- package/DialogueManager.cs +83 -83
- package/DialogueManager.cs.meta +11 -11
- package/DialogueNameSaver.cs +45 -45
- package/DialogueNameSaver.cs.meta +11 -11
- package/FastForwardToLine.cs +102 -102
- package/FastForwardToLine.cs.meta +11 -11
- package/InstantDialogueEnder.cs +91 -91
- package/InstantDialogueEnder.cs.meta +11 -11
- package/InstantDialogueFinisher.cs +132 -132
- package/InstantDialogueFinisher.cs.meta +11 -11
- package/InstantDialogueStarter.cs +82 -82
- package/InstantDialogueStarter.cs.meta +11 -11
- package/NotLeavingOnDialogueFinish.cs +44 -44
- package/NotLeavingOnDialogueFinish.cs.meta +11 -11
- package/PreparableDialogueStarter.cs +88 -88
- package/PreparableDialogueStarter.cs.meta +11 -11
- package/{Samples → Samples~}/Dialogue_Asset_End_Event_Handler.prefab +685 -685
- package/{Samples → Samples~}/Dialogue_Asset_End_Event_Handler.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Asset_Ender.prefab +858 -858
- package/{Samples → Samples~}/Dialogue_Asset_Ender.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Asset_Finisher.prefab +301 -301
- package/{Samples → Samples~}/Dialogue_Asset_Finisher.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Asset_Load_Identifier.prefab +48 -48
- package/{Samples → Samples~}/Dialogue_Asset_Load_Identifier.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Asset_Loader.prefab +231 -231
- package/{Samples → Samples~}/Dialogue_Asset_Loader.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Asset_Reader_DRE.prefab +511 -511
- package/{Samples → Samples~}/Dialogue_Asset_Reader_DRE.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Asset_Reader_Shell.prefab +252 -252
- package/{Samples → Samples~}/Dialogue_Asset_Reader_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Asset_Reader_Template.prefab +193 -193
- package/{Samples → Samples~}/Dialogue_Asset_Reader_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Asset_Starter.prefab +613 -613
- package/{Samples → Samples~}/Dialogue_Asset_Starter.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Asset_Waiter.prefab +50 -50
- package/{Samples → Samples~}/Dialogue_Asset_Waiter.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Events_Shell.prefab +458 -458
- package/{Samples → Samples~}/Dialogue_Events_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Events_Template.prefab +302 -302
- package/{Samples → Samples~}/Dialogue_Events_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Line_Loader.prefab +1282 -1282
- package/{Samples → Samples~}/Dialogue_Line_Loader.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Line_Reader.prefab +3688 -3688
- package/{Samples → Samples~}/Dialogue_Line_Reader.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_Name_Saver.prefab +48 -48
- package/{Samples → Samples~}/Dialogue_Name_Saver.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_System_Shell.prefab +325 -325
- package/{Samples → Samples~}/Dialogue_System_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Dialogue_System_Template.prefab +1138 -1138
- package/{Samples → Samples~}/Dialogue_System_Template.prefab.meta +7 -7
- package/{Samples → Samples~}/Fast_Forward_To_Line_Tool.prefab +53 -53
- package/{Samples → Samples~}/Fast_Forward_To_Line_Tool.prefab.meta +7 -7
- package/{Samples → Samples~}/Instant_Dialogue_Ender.prefab +141 -141
- package/{Samples → Samples~}/Instant_Dialogue_Ender.prefab.meta +7 -7
- package/{Samples → Samples~}/Instant_Dialogue_Finisher.prefab +172 -172
- package/{Samples → Samples~}/Instant_Dialogue_Finisher.prefab.meta +7 -7
- package/{Samples → Samples~}/Instant_Dialogue_Starter.prefab +55 -55
- package/{Samples → Samples~}/Instant_Dialogue_Starter.prefab.meta +7 -7
- package/{Samples → Samples~}/On_Loading_Through_Scene_Transition.prefab +48 -48
- package/{Samples → Samples~}/On_Loading_Through_Scene_Transition.prefab.meta +7 -7
- package/{Samples → Samples~}/Scene_Event_On_Text_Display.prefab +47 -47
- package/{Samples → Samples~}/Scene_Event_On_Text_Display.prefab.meta +7 -7
- package/{Samples → Samples~}/Trial_Dialogue_Asset_Reader.prefab +561 -561
- package/{Samples → Samples~}/Trial_Dialogue_Asset_Reader.prefab.meta +7 -7
- package/{Samples → Samples~}/Trial_Dialogue_Asset_Starter.prefab +239 -239
- package/{Samples → Samples~}/Trial_Dialogue_Asset_Starter.prefab.meta +7 -7
- package/{Samples → Samples~}/Trial_Dialogue_Line_Loader.prefab +941 -941
- package/{Samples → Samples~}/Trial_Dialogue_Line_Loader.prefab.meta +7 -7
- package/{Samples → Samples~}/Trial_Dialogue_Loader.prefab +232 -232
- package/{Samples → Samples~}/Trial_Dialogue_Loader.prefab.meta +7 -7
- package/{Samples → Samples~}/Tween_Waiter_Handler.prefab +46 -46
- package/{Samples → Samples~}/Tween_Waiter_Handler.prefab.meta +7 -7
- package/package.json +39 -34
- package/package.json.meta +7 -7
- package/Samples.meta +0 -8
package/DialogueAssetEnder.cs
CHANGED
|
@@ -1,240 +1,240 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.Dialogues.Ending;
|
|
3
|
-
using DREditor.Dialogues.Finishing;
|
|
4
|
-
using DREditor.EventObjects;
|
|
5
|
-
using DREditor.Services;
|
|
6
|
-
using System;
|
|
7
|
-
using System.Collections;
|
|
8
|
-
using System.Collections.Generic;
|
|
9
|
-
using System.Linq;
|
|
10
|
-
using UnityEngine;
|
|
11
|
-
using UnityEngine.Serialization;
|
|
12
|
-
|
|
13
|
-
namespace DREditor.Dialogues.Implementation
|
|
14
|
-
{
|
|
15
|
-
/// <summary>
|
|
16
|
-
///
|
|
17
|
-
/// </summary>
|
|
18
|
-
[ClassHeader(nameof(DialogueEnder) + ", " + nameof(IToTitleScreen) +
|
|
19
|
-
"\n\n")]
|
|
20
|
-
public class DialogueAssetEnder : DialogueEnder, IToTitleScreen
|
|
21
|
-
{
|
|
22
|
-
/// <summary>
|
|
23
|
-
///
|
|
24
|
-
/// </summary>
|
|
25
|
-
[Header("")]
|
|
26
|
-
[Divider]
|
|
27
|
-
[Tooltip("")]
|
|
28
|
-
[SerializeField] protected BoolWithEvent isWaiting = null;
|
|
29
|
-
|
|
30
|
-
/// <summary>
|
|
31
|
-
///
|
|
32
|
-
/// </summary>
|
|
33
|
-
[Tooltip("")]
|
|
34
|
-
[SerializeField] protected BoolWithEvent isGoingToMainMenu = null;
|
|
35
|
-
|
|
36
|
-
/// <summary>
|
|
37
|
-
///
|
|
38
|
-
/// </summary>
|
|
39
|
-
[Tooltip("")]
|
|
40
|
-
[SerializeField] protected BoolWithEvent inDialogue = null;
|
|
41
|
-
|
|
42
|
-
/// <summary>
|
|
43
|
-
///
|
|
44
|
-
/// </summary>
|
|
45
|
-
[Tooltip("")]
|
|
46
|
-
[SerializeField] protected BoolWithEvent inInstant = null;
|
|
47
|
-
|
|
48
|
-
/// <summary>
|
|
49
|
-
///
|
|
50
|
-
/// </summary>
|
|
51
|
-
[Tooltip("")]
|
|
52
|
-
[SerializeField] protected BoolWithEvent inTrialMode = null;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
/// <summary>
|
|
56
|
-
///
|
|
57
|
-
/// </summary>
|
|
58
|
-
[Header("")]
|
|
59
|
-
[Divider]
|
|
60
|
-
[Tooltip("")]
|
|
61
|
-
[SerializeField] protected DialogueEnder InstantDialogueEnder = null;
|
|
62
|
-
|
|
63
|
-
/// <summary>
|
|
64
|
-
///
|
|
65
|
-
/// </summary>
|
|
66
|
-
[Tooltip("")]
|
|
67
|
-
[SerializeField] protected DialogueFinisher DialogueFinisher = null;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
/// <summary>
|
|
71
|
-
///
|
|
72
|
-
/// </summary>
|
|
73
|
-
[Header("")]
|
|
74
|
-
[Divider]
|
|
75
|
-
[Tooltip("")]
|
|
76
|
-
[SerializeField] protected List<DialogueComponent> EarlyResolvableComponents = new();
|
|
77
|
-
|
|
78
|
-
/// <summary>
|
|
79
|
-
///
|
|
80
|
-
/// </summary>
|
|
81
|
-
[Tooltip("")]
|
|
82
|
-
[SerializeField] protected int collectionID = 1;
|
|
83
|
-
|
|
84
|
-
/// <summary>
|
|
85
|
-
///
|
|
86
|
-
/// </summary>
|
|
87
|
-
[Tooltip("")]
|
|
88
|
-
[SerializeField] protected string orderFieldName = "resolveOrder";
|
|
89
|
-
|
|
90
|
-
/// <summary>
|
|
91
|
-
///
|
|
92
|
-
/// </summary>
|
|
93
|
-
[Tooltip("")]
|
|
94
|
-
[SerializeField] protected DialogueComponentCollection<IResolvableDialogueComponent> resolvableCollection = new();
|
|
95
|
-
|
|
96
|
-
/// <summary>
|
|
97
|
-
///
|
|
98
|
-
/// </summary>
|
|
99
|
-
[FormerlySerializedAs("ResolvableComponents")]
|
|
100
|
-
[Tooltip("")]
|
|
101
|
-
[SerializeField] protected List<DialogueComponent> overrideComponents = new();
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
protected virtual void Awake() => resolvableCollection.Initialize(transform, orderFieldName, collectionID);
|
|
105
|
-
|
|
106
|
-
protected virtual void OnValidate() => resolvableCollection.Initialize(transform, orderFieldName, collectionID);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
/// <inheritdoc/>
|
|
110
|
-
public override void StopDialogue() => StartCoroutine(EndDialogue());
|
|
111
|
-
|
|
112
|
-
/// <inheritdoc/>
|
|
113
|
-
public override IEnumerator EndDialogue(bool useDialogueFinisher = true)
|
|
114
|
-
{
|
|
115
|
-
UnityEngine.Debug.Log($"REPORT: {nameof(DialogueAssetEnder)}: Ending Dialogue process started.");
|
|
116
|
-
|
|
117
|
-
yield return ResolveDialogueComponentsEarly();
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
bool stopEarly = false;
|
|
121
|
-
|
|
122
|
-
yield return CheckStopProcessEarly(useDialogueFinisher, () => { stopEarly = true; });
|
|
123
|
-
|
|
124
|
-
if (stopEarly)
|
|
125
|
-
yield break;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
yield return ResolveDialogueComponents();
|
|
129
|
-
|
|
130
|
-
ResolveDialogueEventHandler();
|
|
131
|
-
|
|
132
|
-
if (useDialogueFinisher)
|
|
133
|
-
FinishDialogue();
|
|
134
|
-
|
|
135
|
-
yield break;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/// <summary>
|
|
139
|
-
///
|
|
140
|
-
/// </summary>
|
|
141
|
-
/// <returns></returns>
|
|
142
|
-
protected virtual IEnumerator ResolveDialogueComponentsEarly()
|
|
143
|
-
{
|
|
144
|
-
foreach (var component in EarlyResolvableComponents)
|
|
145
|
-
if (component != null && component is IEarlyResolvableDialogueComponent resolvable)
|
|
146
|
-
yield return resolvable.ResolveEarly();
|
|
147
|
-
|
|
148
|
-
yield break;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/// <summary>
|
|
152
|
-
///
|
|
153
|
-
/// </summary>
|
|
154
|
-
/// <param name="finishDialogue"></param>
|
|
155
|
-
/// <param name="stopEarlyCallback"></param>
|
|
156
|
-
/// <returns></returns>
|
|
157
|
-
/// <remarks></remarks>
|
|
158
|
-
protected virtual IEnumerator CheckStopProcessEarly(bool finishDialogue = true, Action stopEarlyCallback = null)
|
|
159
|
-
{
|
|
160
|
-
if (isWaiting.Value)
|
|
161
|
-
{
|
|
162
|
-
isWaiting.Value = false;
|
|
163
|
-
|
|
164
|
-
stopEarlyCallback?.Invoke();
|
|
165
|
-
|
|
166
|
-
yield break;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
if (inInstant.Value)
|
|
170
|
-
{
|
|
171
|
-
if (InstantDialogueEnder != null && InstantDialogueEnder != this)
|
|
172
|
-
{
|
|
173
|
-
yield return InstantDialogueEnder.EndDialogue(finishDialogue);
|
|
174
|
-
|
|
175
|
-
stopEarlyCallback?.Invoke();
|
|
176
|
-
|
|
177
|
-
yield break;
|
|
178
|
-
}
|
|
179
|
-
else
|
|
180
|
-
{
|
|
181
|
-
UnityEngine.Debug.LogWarning($"ALERT: {nameof(DialogueAssetEnder)}: The alternate Dialogue Ender" +
|
|
182
|
-
" was either null or recursively implemented. Using Default.");
|
|
183
|
-
|
|
184
|
-
inInstant.Value = false;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
yield break;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/// <summary>
|
|
192
|
-
///
|
|
193
|
-
/// </summary>
|
|
194
|
-
protected virtual IEnumerator ResolveDialogueComponents()
|
|
195
|
-
{
|
|
196
|
-
IEnumerable componentList = overrideComponents.Count > 0 ? overrideComponents :
|
|
197
|
-
resolvableCollection.components.OrderBy(com => com.Order);
|
|
198
|
-
|
|
199
|
-
foreach (var component in componentList)
|
|
200
|
-
if (component != null && component is IResolvableDialogueComponent resolvable)
|
|
201
|
-
if (resolvable.UseRoutineToResolve())
|
|
202
|
-
yield return resolvable.ResolveRoutine();
|
|
203
|
-
else
|
|
204
|
-
resolvable.Resolve();
|
|
205
|
-
|
|
206
|
-
yield break;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
/// <inheritdoc/>
|
|
210
|
-
public override void FinishDialogue() => DialogueFinisher.FinishDialogue();
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
/// <inheritdoc/>
|
|
214
|
-
public virtual void ToTitleScreen() => ResetDialogueIfNotInTrial();
|
|
215
|
-
|
|
216
|
-
/// <summary>
|
|
217
|
-
///
|
|
218
|
-
/// </summary>
|
|
219
|
-
protected virtual void ResetDialogueIfNotInTrial()
|
|
220
|
-
{
|
|
221
|
-
if (inDialogue.Value && !inTrialMode.Value)
|
|
222
|
-
{
|
|
223
|
-
UnityEngine.Debug.Log($"REPORT: {nameof(DialogueAssetEnder)}: " +
|
|
224
|
-
$"Stopping dialogue to reset the system.");
|
|
225
|
-
|
|
226
|
-
SetGoingToMainMenuModeOn();
|
|
227
|
-
|
|
228
|
-
StopDialogue();
|
|
229
|
-
}
|
|
230
|
-
else
|
|
231
|
-
UnityEngine.Debug.Log($"REPORT: {nameof(DialogueAssetEnder)}: " +
|
|
232
|
-
$"Gameplay wasn't in dialogue so not resetting when going to title screen");
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/// <summary>
|
|
236
|
-
///
|
|
237
|
-
/// </summary>
|
|
238
|
-
protected virtual void SetGoingToMainMenuModeOn() => isGoingToMainMenu.SetValue(true);
|
|
239
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Dialogues.Ending;
|
|
3
|
+
using DREditor.Dialogues.Finishing;
|
|
4
|
+
using DREditor.EventObjects;
|
|
5
|
+
using DREditor.Services;
|
|
6
|
+
using System;
|
|
7
|
+
using System.Collections;
|
|
8
|
+
using System.Collections.Generic;
|
|
9
|
+
using System.Linq;
|
|
10
|
+
using UnityEngine;
|
|
11
|
+
using UnityEngine.Serialization;
|
|
12
|
+
|
|
13
|
+
namespace DREditor.Dialogues.Implementation
|
|
14
|
+
{
|
|
15
|
+
/// <summary>
|
|
16
|
+
///
|
|
17
|
+
/// </summary>
|
|
18
|
+
[ClassHeader(nameof(DialogueEnder) + ", " + nameof(IToTitleScreen) +
|
|
19
|
+
"\n\n")]
|
|
20
|
+
public class DialogueAssetEnder : DialogueEnder, IToTitleScreen
|
|
21
|
+
{
|
|
22
|
+
/// <summary>
|
|
23
|
+
///
|
|
24
|
+
/// </summary>
|
|
25
|
+
[Header("")]
|
|
26
|
+
[Divider]
|
|
27
|
+
[Tooltip("")]
|
|
28
|
+
[SerializeField] protected BoolWithEvent isWaiting = null;
|
|
29
|
+
|
|
30
|
+
/// <summary>
|
|
31
|
+
///
|
|
32
|
+
/// </summary>
|
|
33
|
+
[Tooltip("")]
|
|
34
|
+
[SerializeField] protected BoolWithEvent isGoingToMainMenu = null;
|
|
35
|
+
|
|
36
|
+
/// <summary>
|
|
37
|
+
///
|
|
38
|
+
/// </summary>
|
|
39
|
+
[Tooltip("")]
|
|
40
|
+
[SerializeField] protected BoolWithEvent inDialogue = null;
|
|
41
|
+
|
|
42
|
+
/// <summary>
|
|
43
|
+
///
|
|
44
|
+
/// </summary>
|
|
45
|
+
[Tooltip("")]
|
|
46
|
+
[SerializeField] protected BoolWithEvent inInstant = null;
|
|
47
|
+
|
|
48
|
+
/// <summary>
|
|
49
|
+
///
|
|
50
|
+
/// </summary>
|
|
51
|
+
[Tooltip("")]
|
|
52
|
+
[SerializeField] protected BoolWithEvent inTrialMode = null;
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
/// <summary>
|
|
56
|
+
///
|
|
57
|
+
/// </summary>
|
|
58
|
+
[Header("")]
|
|
59
|
+
[Divider]
|
|
60
|
+
[Tooltip("")]
|
|
61
|
+
[SerializeField] protected DialogueEnder InstantDialogueEnder = null;
|
|
62
|
+
|
|
63
|
+
/// <summary>
|
|
64
|
+
///
|
|
65
|
+
/// </summary>
|
|
66
|
+
[Tooltip("")]
|
|
67
|
+
[SerializeField] protected DialogueFinisher DialogueFinisher = null;
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
/// <summary>
|
|
71
|
+
///
|
|
72
|
+
/// </summary>
|
|
73
|
+
[Header("")]
|
|
74
|
+
[Divider]
|
|
75
|
+
[Tooltip("")]
|
|
76
|
+
[SerializeField] protected List<DialogueComponent> EarlyResolvableComponents = new();
|
|
77
|
+
|
|
78
|
+
/// <summary>
|
|
79
|
+
///
|
|
80
|
+
/// </summary>
|
|
81
|
+
[Tooltip("")]
|
|
82
|
+
[SerializeField] protected int collectionID = 1;
|
|
83
|
+
|
|
84
|
+
/// <summary>
|
|
85
|
+
///
|
|
86
|
+
/// </summary>
|
|
87
|
+
[Tooltip("")]
|
|
88
|
+
[SerializeField] protected string orderFieldName = "resolveOrder";
|
|
89
|
+
|
|
90
|
+
/// <summary>
|
|
91
|
+
///
|
|
92
|
+
/// </summary>
|
|
93
|
+
[Tooltip("")]
|
|
94
|
+
[SerializeField] protected DialogueComponentCollection<IResolvableDialogueComponent> resolvableCollection = new();
|
|
95
|
+
|
|
96
|
+
/// <summary>
|
|
97
|
+
///
|
|
98
|
+
/// </summary>
|
|
99
|
+
[FormerlySerializedAs("ResolvableComponents")]
|
|
100
|
+
[Tooltip("")]
|
|
101
|
+
[SerializeField] protected List<DialogueComponent> overrideComponents = new();
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
protected virtual void Awake() => resolvableCollection.Initialize(transform, orderFieldName, collectionID);
|
|
105
|
+
|
|
106
|
+
protected virtual void OnValidate() => resolvableCollection.Initialize(transform, orderFieldName, collectionID);
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
/// <inheritdoc/>
|
|
110
|
+
public override void StopDialogue() => StartCoroutine(EndDialogue());
|
|
111
|
+
|
|
112
|
+
/// <inheritdoc/>
|
|
113
|
+
public override IEnumerator EndDialogue(bool useDialogueFinisher = true)
|
|
114
|
+
{
|
|
115
|
+
UnityEngine.Debug.Log($"REPORT: {nameof(DialogueAssetEnder)}: Ending Dialogue process started.");
|
|
116
|
+
|
|
117
|
+
yield return ResolveDialogueComponentsEarly();
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
bool stopEarly = false;
|
|
121
|
+
|
|
122
|
+
yield return CheckStopProcessEarly(useDialogueFinisher, () => { stopEarly = true; });
|
|
123
|
+
|
|
124
|
+
if (stopEarly)
|
|
125
|
+
yield break;
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
yield return ResolveDialogueComponents();
|
|
129
|
+
|
|
130
|
+
ResolveDialogueEventHandler();
|
|
131
|
+
|
|
132
|
+
if (useDialogueFinisher)
|
|
133
|
+
FinishDialogue();
|
|
134
|
+
|
|
135
|
+
yield break;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/// <summary>
|
|
139
|
+
///
|
|
140
|
+
/// </summary>
|
|
141
|
+
/// <returns></returns>
|
|
142
|
+
protected virtual IEnumerator ResolveDialogueComponentsEarly()
|
|
143
|
+
{
|
|
144
|
+
foreach (var component in EarlyResolvableComponents)
|
|
145
|
+
if (component != null && component is IEarlyResolvableDialogueComponent resolvable)
|
|
146
|
+
yield return resolvable.ResolveEarly();
|
|
147
|
+
|
|
148
|
+
yield break;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/// <summary>
|
|
152
|
+
///
|
|
153
|
+
/// </summary>
|
|
154
|
+
/// <param name="finishDialogue"></param>
|
|
155
|
+
/// <param name="stopEarlyCallback"></param>
|
|
156
|
+
/// <returns></returns>
|
|
157
|
+
/// <remarks></remarks>
|
|
158
|
+
protected virtual IEnumerator CheckStopProcessEarly(bool finishDialogue = true, Action stopEarlyCallback = null)
|
|
159
|
+
{
|
|
160
|
+
if (isWaiting.Value)
|
|
161
|
+
{
|
|
162
|
+
isWaiting.Value = false;
|
|
163
|
+
|
|
164
|
+
stopEarlyCallback?.Invoke();
|
|
165
|
+
|
|
166
|
+
yield break;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (inInstant.Value)
|
|
170
|
+
{
|
|
171
|
+
if (InstantDialogueEnder != null && InstantDialogueEnder != this)
|
|
172
|
+
{
|
|
173
|
+
yield return InstantDialogueEnder.EndDialogue(finishDialogue);
|
|
174
|
+
|
|
175
|
+
stopEarlyCallback?.Invoke();
|
|
176
|
+
|
|
177
|
+
yield break;
|
|
178
|
+
}
|
|
179
|
+
else
|
|
180
|
+
{
|
|
181
|
+
UnityEngine.Debug.LogWarning($"ALERT: {nameof(DialogueAssetEnder)}: The alternate Dialogue Ender" +
|
|
182
|
+
" was either null or recursively implemented. Using Default.");
|
|
183
|
+
|
|
184
|
+
inInstant.Value = false;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
yield break;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/// <summary>
|
|
192
|
+
///
|
|
193
|
+
/// </summary>
|
|
194
|
+
protected virtual IEnumerator ResolveDialogueComponents()
|
|
195
|
+
{
|
|
196
|
+
IEnumerable componentList = overrideComponents.Count > 0 ? overrideComponents :
|
|
197
|
+
resolvableCollection.components.OrderBy(com => com.Order);
|
|
198
|
+
|
|
199
|
+
foreach (var component in componentList)
|
|
200
|
+
if (component != null && component is IResolvableDialogueComponent resolvable)
|
|
201
|
+
if (resolvable.UseRoutineToResolve())
|
|
202
|
+
yield return resolvable.ResolveRoutine();
|
|
203
|
+
else
|
|
204
|
+
resolvable.Resolve();
|
|
205
|
+
|
|
206
|
+
yield break;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/// <inheritdoc/>
|
|
210
|
+
public override void FinishDialogue() => DialogueFinisher.FinishDialogue();
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
/// <inheritdoc/>
|
|
214
|
+
public virtual void ToTitleScreen() => ResetDialogueIfNotInTrial();
|
|
215
|
+
|
|
216
|
+
/// <summary>
|
|
217
|
+
///
|
|
218
|
+
/// </summary>
|
|
219
|
+
protected virtual void ResetDialogueIfNotInTrial()
|
|
220
|
+
{
|
|
221
|
+
if (inDialogue.Value && !inTrialMode.Value)
|
|
222
|
+
{
|
|
223
|
+
UnityEngine.Debug.Log($"REPORT: {nameof(DialogueAssetEnder)}: " +
|
|
224
|
+
$"Stopping dialogue to reset the system.");
|
|
225
|
+
|
|
226
|
+
SetGoingToMainMenuModeOn();
|
|
227
|
+
|
|
228
|
+
StopDialogue();
|
|
229
|
+
}
|
|
230
|
+
else
|
|
231
|
+
UnityEngine.Debug.Log($"REPORT: {nameof(DialogueAssetEnder)}: " +
|
|
232
|
+
$"Gameplay wasn't in dialogue so not resetting when going to title screen");
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/// <summary>
|
|
236
|
+
///
|
|
237
|
+
/// </summary>
|
|
238
|
+
protected virtual void SetGoingToMainMenuModeOn() => isGoingToMainMenu.SetValue(true);
|
|
239
|
+
}
|
|
240
240
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 2baeef8e8d6ed7449b113718cb9c3c85
|
|
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: 2baeef8e8d6ed7449b113718cb9c3c85
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|