net.dreditor.actors 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/Actor.cs +74 -74
- package/Actor.cs.meta +11 -11
- package/ActorBodyDebugger.cs +117 -117
- package/ActorBodyDebugger.cs.meta +13 -13
- package/ActorManager.cs +149 -149
- package/ActorManager.cs.meta +11 -11
- package/ActorOrganizer.cs +93 -93
- package/ActorOrganizer.cs.meta +11 -11
- package/BasicExpressionChanger.cs +157 -157
- package/BasicExpressionChanger.cs.meta +11 -11
- package/BasicLayerHandler.cs +108 -108
- package/BasicLayerHandler.cs.meta +11 -11
- package/DREditor.Actors.asmdef +20 -20
- package/DREditor.Actors.asmdef.meta +7 -7
- package/Editor/AssignmentStyleGUIEditor.cs +171 -171
- package/Editor/AssignmentStyleGUIEditor.cs.meta +1 -1
- package/Editor/AutoCreateCharacterWizard.cs +475 -475
- package/Editor/AutoCreateCharacterWizard.cs.meta +11 -11
- package/Editor/AutoCreateTrialCharacterWizard.cs +426 -426
- package/Editor/AutoCreateTrialCharacterWizard.cs.meta +1 -1
- package/Editor/CharacterUtility.cs +119 -119
- package/Editor/CharacterUtility.cs.meta +11 -11
- package/Editor/CircleDrawer.cs +206 -206
- package/Editor/CircleDrawer.cs.meta +1 -1
- package/Editor/CircleUtility.cs +54 -54
- package/Editor/CircleUtility.cs.meta +1 -1
- package/Editor/DREditor.Actors.Editor.asmdef +21 -21
- package/Editor/DREditor.Actors.Editor.asmdef.meta +7 -7
- package/Editor/GenerateCharacterIntroDialogues.cs +234 -234
- package/Editor/GenerateCharacterIntroDialogues.cs.meta +11 -11
- package/Editor/IItemImporter.cs +19 -19
- package/Editor/IItemImporter.cs.meta +1 -1
- package/Editor/ItemImporter.cs +170 -170
- package/Editor/ItemImporter.cs.meta +1 -1
- package/Editor/ItemUtility.cs +85 -85
- package/Editor/ItemUtility.cs.meta +11 -11
- package/Editor/ItemWizard.cs +41 -41
- package/Editor/ItemWizard.cs.meta +11 -11
- package/Editor.meta +8 -8
- package/Events/ActorCheckFocusEvent.cs +49 -49
- package/Events/ActorCheckFocusEvent.cs.meta +11 -11
- package/Events/ActorFadeEvent.cs +19 -19
- package/Events/ActorFadeEvent.cs.meta +11 -11
- package/Events/ActorFadeHandler.cs +53 -53
- package/Events/ActorFadeHandler.cs.meta +11 -11
- package/Events/ActorFaintEvent.cs +282 -282
- package/Events/ActorFaintEvent.cs.meta +11 -11
- package/Events/ActorFaintEventRenderQ.cs +65 -65
- package/Events/ActorFaintEventRenderQ.cs.meta +11 -11
- package/Events/ActorLeaveHandler.cs +238 -238
- package/Events/ActorLeaveHandler.cs.meta +11 -11
- package/Events/ActorSpriteFader.cs +190 -190
- package/Events/ActorSpriteFader.cs.meta +11 -11
- package/Events/ActorSpriteFaderRenderQ.cs +49 -49
- package/Events/ActorSpriteFaderRenderQ.cs.meta +11 -11
- package/Events/BSTrialActorFlash.cs +259 -259
- package/Events/BSTrialActorFlash.cs.meta +11 -11
- package/Events/ChangeLastFocusEvent.cs +62 -62
- package/Events/ChangeLastFocusEvent.cs.meta +11 -11
- package/Events/MoveCharacterEvent.cs +141 -141
- package/Events/MoveCharacterEvent.cs.meta +11 -11
- package/Events.meta +8 -8
- package/ExpressionChanger.cs +25 -25
- package/ExpressionChanger.cs.meta +11 -11
- package/FocusHandler.cs +96 -96
- package/FocusHandler.cs.meta +11 -11
- package/Implementation/ActorFocusHandler.cs +195 -195
- package/Implementation/ActorFocusHandler.cs.meta +11 -11
- package/Implementation/ActorFocusLoadEnd.cs +108 -108
- package/Implementation/ActorFocusLoadEnd.cs.meta +11 -11
- package/Implementation/ActorFocusPrepare.cs +102 -102
- package/Implementation/ActorFocusPrepare.cs.meta +11 -11
- package/Implementation/ActorFocusResolve.cs +67 -67
- package/Implementation/ActorFocusResolve.cs.meta +11 -11
- package/Implementation/ActorSpriteChanger.cs +129 -129
- package/Implementation/ActorSpriteChanger.cs.meta +11 -11
- package/Implementation/ActorTrialSpriteChanger.cs +46 -46
- package/Implementation/ActorTrialSpriteChanger.cs.meta +11 -11
- package/Implementation/ChangeLastSpriteEvent.cs +92 -92
- package/Implementation/ChangeLastSpriteEvent.cs.meta +11 -11
- package/Implementation/WorldSpriteChanger.cs +207 -207
- package/Implementation/WorldSpriteChanger.cs.meta +11 -11
- package/Implementation.meta +8 -8
- package/LayerHandler.cs +30 -30
- package/LayerHandler.cs.meta +11 -11
- package/{Samples → Samples~}/Actor.prefab +581 -581
- package/{Samples → Samples~}/Actor.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Body_Debugger.prefab +68 -68
- package/{Samples → Samples~}/Actor_Body_Debugger.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Check_Focus_Event.prefab +47 -47
- package/{Samples → Samples~}/Actor_Check_Focus_Event.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Event_Handlers.prefab +668 -668
- package/{Samples → Samples~}/Actor_Event_Handlers.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Fade_Handler.prefab +137 -137
- package/{Samples → Samples~}/Actor_Fade_Handler.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Fade_Handler_Render_Q.prefab +137 -137
- package/{Samples → Samples~}/Actor_Fade_Handler_Render_Q.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Faint_Event.prefab +71 -71
- package/{Samples → Samples~}/Actor_Faint_Event.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Faint_Event_Render_Q.prefab +73 -73
- package/{Samples → Samples~}/Actor_Faint_Event_Render_Q.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Focus_Handler.prefab +168 -168
- package/{Samples → Samples~}/Actor_Focus_Handler.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Focus_Handler_Shell.prefab +56 -56
- package/{Samples → Samples~}/Actor_Focus_Handler_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Focus_Load_End.prefab +66 -66
- package/{Samples → Samples~}/Actor_Focus_Load_End.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Focus_Prepare.prefab +49 -49
- package/{Samples → Samples~}/Actor_Focus_Prepare.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Focus_Resolve.prefab +48 -48
- package/{Samples → Samples~}/Actor_Focus_Resolve.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Leave_Handler.prefab +141 -141
- package/{Samples → Samples~}/Actor_Leave_Handler.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Leave_Handler_Render_Q.prefab +141 -141
- package/{Samples → Samples~}/Actor_Leave_Handler_Render_Q.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Organizer.prefab +49 -49
- package/{Samples → Samples~}/Actor_Organizer.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Sprite_Changer.prefab +163 -163
- package/{Samples → Samples~}/Actor_Sprite_Changer.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Sprite_Changer_Shell.prefab +51 -51
- package/{Samples → Samples~}/Actor_Sprite_Changer_Shell.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Sprite_Fader.prefab +52 -52
- package/{Samples → Samples~}/Actor_Sprite_Fader.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Sprite_Fader_Render_Q.prefab +54 -54
- package/{Samples → Samples~}/Actor_Sprite_Fader_Render_Q.prefab.meta +7 -7
- package/{Samples → Samples~}/Actor_Trial_Sprite_Changer.prefab +47 -47
- package/{Samples → Samples~}/Actor_Trial_Sprite_Changer.prefab.meta +7 -7
- package/{Samples → Samples~}/Change_Last_Focus_Event.prefab +66 -66
- package/{Samples → Samples~}/Change_Last_Focus_Event.prefab.meta +7 -7
- package/{Samples → Samples~}/Change_Last_Sprite_Event.prefab +49 -49
- package/{Samples → Samples~}/Change_Last_Sprite_Event.prefab.meta +7 -7
- package/{Samples → Samples~}/Change_Last_World_Sprite_Event.prefab +186 -186
- package/{Samples → Samples~}/Change_Last_World_Sprite_Event.prefab.meta +7 -7
- package/{Samples → Samples~}/Focus_Handler.prefab +49 -49
- package/{Samples → Samples~}/Focus_Handler.prefab.meta +7 -7
- package/{Samples → Samples~}/Move_Character_Event.prefab +51 -51
- package/{Samples → Samples~}/Move_Character_Event.prefab.meta +7 -7
- package/{Samples → Samples~}/World_Sprite_Changer.prefab +51 -51
- package/{Samples → Samples~}/World_Sprite_Changer.prefab.meta +7 -7
- package/package.json +43 -38
- package/package.json.meta +7 -7
- package/Samples.meta +0 -8
|
@@ -1,196 +1,196 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.Dialogues;
|
|
3
|
-
using DREditor.Dialogues.Events;
|
|
4
|
-
using DREditor.Dialogues.LineReading;
|
|
5
|
-
using DREditor.EventObjects;
|
|
6
|
-
using DREditor.Services;
|
|
7
|
-
using DREditor.Talkables;
|
|
8
|
-
using System.Collections;
|
|
9
|
-
using System.Linq;
|
|
10
|
-
using UnityEngine;
|
|
11
|
-
|
|
12
|
-
namespace DREditor.Actors.Implementation
|
|
13
|
-
{
|
|
14
|
-
/// <summary>
|
|
15
|
-
///
|
|
16
|
-
/// </summary>
|
|
17
|
-
/// <remarks>
|
|
18
|
-
///
|
|
19
|
-
/// </remarks>
|
|
20
|
-
[ClassHeader(nameof(DialogueComponent) + ", " + nameof(ILineProcessorRoutine) +
|
|
21
|
-
"\n\n")]
|
|
22
|
-
public class ActorFocusHandler : DialogueComponent, ILineProcessorRoutine
|
|
23
|
-
{
|
|
24
|
-
/// <summary>
|
|
25
|
-
///
|
|
26
|
-
/// </summary>
|
|
27
|
-
[Header("")]
|
|
28
|
-
[Divider]
|
|
29
|
-
[Tooltip("")]
|
|
30
|
-
[SerializeField] protected BoolWithEvent inFastForwardMode = null;
|
|
31
|
-
|
|
32
|
-
/// <summary>
|
|
33
|
-
///
|
|
34
|
-
/// </summary>
|
|
35
|
-
[Tooltip("")]
|
|
36
|
-
[SerializeField] protected BoolWithEvent isProtagSpeaking = null;
|
|
37
|
-
|
|
38
|
-
/// <summary>
|
|
39
|
-
///
|
|
40
|
-
/// </summary>
|
|
41
|
-
[Tooltip("")]
|
|
42
|
-
[SerializeField] protected BoolWithEvent isLoadingFile = null;
|
|
43
|
-
|
|
44
|
-
/// <summary>
|
|
45
|
-
///
|
|
46
|
-
/// </summary>
|
|
47
|
-
[Tooltip("")]
|
|
48
|
-
[SerializeField] protected BoolWithEvent inCGMode = null;
|
|
49
|
-
|
|
50
|
-
/// <summary>
|
|
51
|
-
///
|
|
52
|
-
/// </summary>
|
|
53
|
-
[Tooltip("")]
|
|
54
|
-
[SerializeField] protected SelectableObjectWithEvent currentActor = null;
|
|
55
|
-
|
|
56
|
-
/// <summary>
|
|
57
|
-
///
|
|
58
|
-
/// </summary>
|
|
59
|
-
[Tooltip("")]
|
|
60
|
-
[SerializeField] protected SelectableObjectWithEvent lastActor = null;
|
|
61
|
-
|
|
62
|
-
/// <summary>
|
|
63
|
-
///
|
|
64
|
-
/// </summary>
|
|
65
|
-
[Tooltip("")]
|
|
66
|
-
[SerializeField] protected BoolWithEvent inVideoMode = null;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
/// <summary>
|
|
70
|
-
///
|
|
71
|
-
/// </summary>
|
|
72
|
-
[Header("")]
|
|
73
|
-
[Divider]
|
|
74
|
-
[Tooltip("")]
|
|
75
|
-
[SerializeField] protected float characterPanWaitTime = 0.3f;
|
|
76
|
-
|
|
77
|
-
/// <summary>
|
|
78
|
-
///
|
|
79
|
-
/// </summary>
|
|
80
|
-
[Tooltip("")]
|
|
81
|
-
[SerializeField] protected int fastForwardBufferedFrames = 5;
|
|
82
|
-
|
|
83
|
-
/// <summary>
|
|
84
|
-
///
|
|
85
|
-
/// </summary>
|
|
86
|
-
[Tooltip("")]
|
|
87
|
-
[SerializeField] protected FocusHandler focusHandler = null;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
/// <inheritdoc/>
|
|
91
|
-
public virtual bool ShouldProcess(Line currentLine)
|
|
92
|
-
=> currentLine.ContainsEventType<ShakeObject>() || currentLine.PanToChar || ShouldUsePanBufferTime(currentLine);
|
|
93
|
-
|
|
94
|
-
/// <inheritdoc/>
|
|
95
|
-
public virtual IEnumerator LineProcessRoutine(Line currentLine) => EvaluateCameraMovement(currentLine);
|
|
96
|
-
|
|
97
|
-
/// <summary>
|
|
98
|
-
///
|
|
99
|
-
/// </summary>
|
|
100
|
-
/// <param name="currentLine"></param>
|
|
101
|
-
protected virtual IEnumerator EvaluateCameraMovement(Line currentLine)
|
|
102
|
-
{
|
|
103
|
-
if (currentLine.PanToChar)
|
|
104
|
-
yield return PanToCharacterEvent(currentLine);
|
|
105
|
-
else if (ShouldUsePanBufferTime(currentLine))
|
|
106
|
-
yield return FocusCharacter();
|
|
107
|
-
|
|
108
|
-
yield return InvokeCameraDialogueEvent<ShakeObject>(currentLine);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/// <summary>
|
|
112
|
-
///
|
|
113
|
-
/// </summary>
|
|
114
|
-
/// <param name="currentLine"></param>
|
|
115
|
-
protected virtual IEnumerator PanToCharacterEvent(Line currentLine)
|
|
116
|
-
{
|
|
117
|
-
Actor actorPan = (Actor)ServiceLocator.GetService<IObjectPooler<Talkable>>()
|
|
118
|
-
.GetObjectByName(currentLine.CharToPan.FirstName);
|
|
119
|
-
|
|
120
|
-
if (!actorPan)
|
|
121
|
-
UnityEngine.Debug.LogWarning(ToString() + ": ALERT: PAN TO CHARACTER ACTOR WAS NOT FOUND IN THE SCENE");
|
|
122
|
-
|
|
123
|
-
focusHandler.ChangeFocus(actorPan, (Actor)lastActor.Value);
|
|
124
|
-
|
|
125
|
-
lastActor.SetValue(actorPan);
|
|
126
|
-
|
|
127
|
-
yield return new WaitForSeconds(characterPanWaitTime);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/// <summary>
|
|
131
|
-
///
|
|
132
|
-
/// </summary>
|
|
133
|
-
/// <param name="currentLine"></param>
|
|
134
|
-
/// <returns></returns>
|
|
135
|
-
protected virtual bool ShouldUsePanBufferTime(Line currentLine)
|
|
136
|
-
{
|
|
137
|
-
bool notInCGState = !inVideoMode.Value && !inCGMode.Value;
|
|
138
|
-
|
|
139
|
-
bool currentActorIsValid = (Actor)currentActor.Value != null;
|
|
140
|
-
|
|
141
|
-
bool lastActorIsntCurrent = (Actor)lastActor.Value != (Actor)currentActor.Value;
|
|
142
|
-
|
|
143
|
-
bool protagIsntSpeaking = !isProtagSpeaking.Value;
|
|
144
|
-
|
|
145
|
-
//bool actorIsntLeaving = !currentLine.Leave; Leave is removed so needs testing.
|
|
146
|
-
|
|
147
|
-
bool validActorStates = currentActorIsValid && lastActorIsntCurrent;
|
|
148
|
-
|
|
149
|
-
bool validStates = validActorStates && notInCGState && protagIsntSpeaking;// && actorIsntLeaving;
|
|
150
|
-
|
|
151
|
-
bool lineValidStates = !currentLine.PanToChar && !currentLine.DontPan;
|
|
152
|
-
|
|
153
|
-
return lineValidStates && validStates;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/// <summary>
|
|
157
|
-
///
|
|
158
|
-
/// </summary>
|
|
159
|
-
protected virtual IEnumerator FocusCharacter()
|
|
160
|
-
{
|
|
161
|
-
if (isLoadingFile.Value)
|
|
162
|
-
yield return new WaitForSeconds(Time.unscaledDeltaTime);
|
|
163
|
-
|
|
164
|
-
/* The Above had to be added because for some reason loading on the line to kai before the
|
|
165
|
-
* tree room shakes : it'd put the camera on the wrong angle
|
|
166
|
-
* D_Ch0_Inv_ToTrial_AfterStatue Line before tree vid
|
|
167
|
-
*/
|
|
168
|
-
|
|
169
|
-
focusHandler.ChangeFocus((Actor)currentActor.Value, (Actor)lastActor.Value);
|
|
170
|
-
|
|
171
|
-
yield return new WaitForSeconds(Time.unscaledDeltaTime);
|
|
172
|
-
|
|
173
|
-
if (inFastForwardMode.Value)
|
|
174
|
-
yield return new WaitForSeconds(Time.unscaledDeltaTime * fastForwardBufferedFrames);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/// <summary>
|
|
178
|
-
///
|
|
179
|
-
/// </summary>
|
|
180
|
-
/// <typeparam name="T"></typeparam>
|
|
181
|
-
/// <param name="currentLine"></param>
|
|
182
|
-
protected virtual IEnumerator InvokeCameraDialogueEvent<T>(Line currentLine)
|
|
183
|
-
{
|
|
184
|
-
var cameraEvents = currentLine.DiaEvents.Where(dialogueEvent => dialogueEvent.GetType() == typeof(T));
|
|
185
|
-
|
|
186
|
-
if (cameraEvents.Count() > 0 && !inFastForwardMode.Value)
|
|
187
|
-
{
|
|
188
|
-
if (ShouldUsePanBufferTime(currentLine))
|
|
189
|
-
yield return new WaitForSeconds(characterPanWaitTime);
|
|
190
|
-
|
|
191
|
-
foreach (IDialogueEvent cameraEvent in cameraEvents)
|
|
192
|
-
cameraEvent.TriggerDialogueEvent();
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Dialogues;
|
|
3
|
+
using DREditor.Dialogues.Events;
|
|
4
|
+
using DREditor.Dialogues.LineReading;
|
|
5
|
+
using DREditor.EventObjects;
|
|
6
|
+
using DREditor.Services;
|
|
7
|
+
using DREditor.Talkables;
|
|
8
|
+
using System.Collections;
|
|
9
|
+
using System.Linq;
|
|
10
|
+
using UnityEngine;
|
|
11
|
+
|
|
12
|
+
namespace DREditor.Actors.Implementation
|
|
13
|
+
{
|
|
14
|
+
/// <summary>
|
|
15
|
+
///
|
|
16
|
+
/// </summary>
|
|
17
|
+
/// <remarks>
|
|
18
|
+
///
|
|
19
|
+
/// </remarks>
|
|
20
|
+
[ClassHeader(nameof(DialogueComponent) + ", " + nameof(ILineProcessorRoutine) +
|
|
21
|
+
"\n\n")]
|
|
22
|
+
public class ActorFocusHandler : DialogueComponent, ILineProcessorRoutine
|
|
23
|
+
{
|
|
24
|
+
/// <summary>
|
|
25
|
+
///
|
|
26
|
+
/// </summary>
|
|
27
|
+
[Header("")]
|
|
28
|
+
[Divider]
|
|
29
|
+
[Tooltip("")]
|
|
30
|
+
[SerializeField] protected BoolWithEvent inFastForwardMode = null;
|
|
31
|
+
|
|
32
|
+
/// <summary>
|
|
33
|
+
///
|
|
34
|
+
/// </summary>
|
|
35
|
+
[Tooltip("")]
|
|
36
|
+
[SerializeField] protected BoolWithEvent isProtagSpeaking = null;
|
|
37
|
+
|
|
38
|
+
/// <summary>
|
|
39
|
+
///
|
|
40
|
+
/// </summary>
|
|
41
|
+
[Tooltip("")]
|
|
42
|
+
[SerializeField] protected BoolWithEvent isLoadingFile = null;
|
|
43
|
+
|
|
44
|
+
/// <summary>
|
|
45
|
+
///
|
|
46
|
+
/// </summary>
|
|
47
|
+
[Tooltip("")]
|
|
48
|
+
[SerializeField] protected BoolWithEvent inCGMode = null;
|
|
49
|
+
|
|
50
|
+
/// <summary>
|
|
51
|
+
///
|
|
52
|
+
/// </summary>
|
|
53
|
+
[Tooltip("")]
|
|
54
|
+
[SerializeField] protected SelectableObjectWithEvent currentActor = null;
|
|
55
|
+
|
|
56
|
+
/// <summary>
|
|
57
|
+
///
|
|
58
|
+
/// </summary>
|
|
59
|
+
[Tooltip("")]
|
|
60
|
+
[SerializeField] protected SelectableObjectWithEvent lastActor = null;
|
|
61
|
+
|
|
62
|
+
/// <summary>
|
|
63
|
+
///
|
|
64
|
+
/// </summary>
|
|
65
|
+
[Tooltip("")]
|
|
66
|
+
[SerializeField] protected BoolWithEvent inVideoMode = null;
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
/// <summary>
|
|
70
|
+
///
|
|
71
|
+
/// </summary>
|
|
72
|
+
[Header("")]
|
|
73
|
+
[Divider]
|
|
74
|
+
[Tooltip("")]
|
|
75
|
+
[SerializeField] protected float characterPanWaitTime = 0.3f;
|
|
76
|
+
|
|
77
|
+
/// <summary>
|
|
78
|
+
///
|
|
79
|
+
/// </summary>
|
|
80
|
+
[Tooltip("")]
|
|
81
|
+
[SerializeField] protected int fastForwardBufferedFrames = 5;
|
|
82
|
+
|
|
83
|
+
/// <summary>
|
|
84
|
+
///
|
|
85
|
+
/// </summary>
|
|
86
|
+
[Tooltip("")]
|
|
87
|
+
[SerializeField] protected FocusHandler focusHandler = null;
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
/// <inheritdoc/>
|
|
91
|
+
public virtual bool ShouldProcess(Line currentLine)
|
|
92
|
+
=> currentLine.ContainsEventType<ShakeObject>() || currentLine.PanToChar || ShouldUsePanBufferTime(currentLine);
|
|
93
|
+
|
|
94
|
+
/// <inheritdoc/>
|
|
95
|
+
public virtual IEnumerator LineProcessRoutine(Line currentLine) => EvaluateCameraMovement(currentLine);
|
|
96
|
+
|
|
97
|
+
/// <summary>
|
|
98
|
+
///
|
|
99
|
+
/// </summary>
|
|
100
|
+
/// <param name="currentLine"></param>
|
|
101
|
+
protected virtual IEnumerator EvaluateCameraMovement(Line currentLine)
|
|
102
|
+
{
|
|
103
|
+
if (currentLine.PanToChar)
|
|
104
|
+
yield return PanToCharacterEvent(currentLine);
|
|
105
|
+
else if (ShouldUsePanBufferTime(currentLine))
|
|
106
|
+
yield return FocusCharacter();
|
|
107
|
+
|
|
108
|
+
yield return InvokeCameraDialogueEvent<ShakeObject>(currentLine);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/// <summary>
|
|
112
|
+
///
|
|
113
|
+
/// </summary>
|
|
114
|
+
/// <param name="currentLine"></param>
|
|
115
|
+
protected virtual IEnumerator PanToCharacterEvent(Line currentLine)
|
|
116
|
+
{
|
|
117
|
+
Actor actorPan = (Actor)ServiceLocator.GetService<IObjectPooler<Talkable>>()
|
|
118
|
+
.GetObjectByName(currentLine.CharToPan.FirstName);
|
|
119
|
+
|
|
120
|
+
if (!actorPan)
|
|
121
|
+
UnityEngine.Debug.LogWarning(ToString() + ": ALERT: PAN TO CHARACTER ACTOR WAS NOT FOUND IN THE SCENE");
|
|
122
|
+
|
|
123
|
+
focusHandler.ChangeFocus(actorPan, (Actor)lastActor.Value);
|
|
124
|
+
|
|
125
|
+
lastActor.SetValue(actorPan);
|
|
126
|
+
|
|
127
|
+
yield return new WaitForSeconds(characterPanWaitTime);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/// <summary>
|
|
131
|
+
///
|
|
132
|
+
/// </summary>
|
|
133
|
+
/// <param name="currentLine"></param>
|
|
134
|
+
/// <returns></returns>
|
|
135
|
+
protected virtual bool ShouldUsePanBufferTime(Line currentLine)
|
|
136
|
+
{
|
|
137
|
+
bool notInCGState = !inVideoMode.Value && !inCGMode.Value;
|
|
138
|
+
|
|
139
|
+
bool currentActorIsValid = (Actor)currentActor.Value != null;
|
|
140
|
+
|
|
141
|
+
bool lastActorIsntCurrent = (Actor)lastActor.Value != (Actor)currentActor.Value;
|
|
142
|
+
|
|
143
|
+
bool protagIsntSpeaking = !isProtagSpeaking.Value;
|
|
144
|
+
|
|
145
|
+
//bool actorIsntLeaving = !currentLine.Leave; Leave is removed so needs testing.
|
|
146
|
+
|
|
147
|
+
bool validActorStates = currentActorIsValid && lastActorIsntCurrent;
|
|
148
|
+
|
|
149
|
+
bool validStates = validActorStates && notInCGState && protagIsntSpeaking;// && actorIsntLeaving;
|
|
150
|
+
|
|
151
|
+
bool lineValidStates = !currentLine.PanToChar && !currentLine.DontPan;
|
|
152
|
+
|
|
153
|
+
return lineValidStates && validStates;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/// <summary>
|
|
157
|
+
///
|
|
158
|
+
/// </summary>
|
|
159
|
+
protected virtual IEnumerator FocusCharacter()
|
|
160
|
+
{
|
|
161
|
+
if (isLoadingFile.Value)
|
|
162
|
+
yield return new WaitForSeconds(Time.unscaledDeltaTime);
|
|
163
|
+
|
|
164
|
+
/* The Above had to be added because for some reason loading on the line to kai before the
|
|
165
|
+
* tree room shakes : it'd put the camera on the wrong angle
|
|
166
|
+
* D_Ch0_Inv_ToTrial_AfterStatue Line before tree vid
|
|
167
|
+
*/
|
|
168
|
+
|
|
169
|
+
focusHandler.ChangeFocus((Actor)currentActor.Value, (Actor)lastActor.Value);
|
|
170
|
+
|
|
171
|
+
yield return new WaitForSeconds(Time.unscaledDeltaTime);
|
|
172
|
+
|
|
173
|
+
if (inFastForwardMode.Value)
|
|
174
|
+
yield return new WaitForSeconds(Time.unscaledDeltaTime * fastForwardBufferedFrames);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/// <summary>
|
|
178
|
+
///
|
|
179
|
+
/// </summary>
|
|
180
|
+
/// <typeparam name="T"></typeparam>
|
|
181
|
+
/// <param name="currentLine"></param>
|
|
182
|
+
protected virtual IEnumerator InvokeCameraDialogueEvent<T>(Line currentLine)
|
|
183
|
+
{
|
|
184
|
+
var cameraEvents = currentLine.DiaEvents.Where(dialogueEvent => dialogueEvent.GetType() == typeof(T));
|
|
185
|
+
|
|
186
|
+
if (cameraEvents.Count() > 0 && !inFastForwardMode.Value)
|
|
187
|
+
{
|
|
188
|
+
if (ShouldUsePanBufferTime(currentLine))
|
|
189
|
+
yield return new WaitForSeconds(characterPanWaitTime);
|
|
190
|
+
|
|
191
|
+
foreach (IDialogueEvent cameraEvent in cameraEvents)
|
|
192
|
+
cameraEvent.TriggerDialogueEvent();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
196
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 0d63c1751a42fea47898c229d54f2598
|
|
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: 0d63c1751a42fea47898c229d54f2598
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.Dialogues;
|
|
3
|
-
using DREditor.Dialogues.Loading;
|
|
4
|
-
using DREditor.EventObjects;
|
|
5
|
-
using DREditor.Services;
|
|
6
|
-
using DREditor.Talkables;
|
|
7
|
-
using UnityEngine;
|
|
8
|
-
|
|
9
|
-
namespace DREditor.Actors.Implementation
|
|
10
|
-
{
|
|
11
|
-
/// <summary>
|
|
12
|
-
///
|
|
13
|
-
/// </summary>
|
|
14
|
-
[ClassHeader(nameof(DialogueComponent) + ", " + nameof(ILoadToLineEnd) +
|
|
15
|
-
"\n\n")]
|
|
16
|
-
public class ActorFocusLoadEnd : DialogueComponent, ILoadToLineEnd
|
|
17
|
-
{
|
|
18
|
-
/// <summary>
|
|
19
|
-
///
|
|
20
|
-
/// </summary>
|
|
21
|
-
[Tooltip("")]
|
|
22
|
-
[SerializeField] protected BoolWithEvent loadingToLine = null;
|
|
23
|
-
|
|
24
|
-
/// <summary>
|
|
25
|
-
///
|
|
26
|
-
/// </summary>
|
|
27
|
-
[Tooltip("")]
|
|
28
|
-
[SerializeField] protected SelectableObjectWithEvent currentActor = null;
|
|
29
|
-
|
|
30
|
-
/// <summary>
|
|
31
|
-
///
|
|
32
|
-
/// </summary>
|
|
33
|
-
[Tooltip("")]
|
|
34
|
-
[SerializeField] protected SelectableObjectWithEvent lastActor = null;
|
|
35
|
-
|
|
36
|
-
/// <summary>
|
|
37
|
-
///
|
|
38
|
-
/// </summary>
|
|
39
|
-
[Tooltip("")]
|
|
40
|
-
[SerializeField] protected FocusHandler FocusHandler = null;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/// <summary>
|
|
44
|
-
///
|
|
45
|
-
/// </summary>
|
|
46
|
-
protected Line currentLine;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
/// <inheritdoc/>
|
|
50
|
-
public virtual void OnLoadToLineEnd(Line currentLine) => InitializeActorFocus(currentLine);
|
|
51
|
-
|
|
52
|
-
/// <summary>
|
|
53
|
-
///
|
|
54
|
-
/// </summary>
|
|
55
|
-
/// <param name="currentLine"></param>
|
|
56
|
-
protected virtual void InitializeActorFocus(Line currentLine)
|
|
57
|
-
{
|
|
58
|
-
this.currentLine = currentLine;
|
|
59
|
-
|
|
60
|
-
EvaluateActorFocus();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/// <summary>
|
|
64
|
-
///
|
|
65
|
-
/// </summary>
|
|
66
|
-
protected virtual void EvaluateActorFocus()
|
|
67
|
-
{
|
|
68
|
-
if (LinePansToCharacter())
|
|
69
|
-
FocusPanToCharacterProcess();
|
|
70
|
-
else if (NotSkippingPanning())
|
|
71
|
-
FocusCurrentActor();
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/// <summary>
|
|
75
|
-
///
|
|
76
|
-
/// </summary>
|
|
77
|
-
/// <returns></returns>
|
|
78
|
-
protected virtual bool LinePansToCharacter() => currentLine.PanToChar;
|
|
79
|
-
|
|
80
|
-
/// <summary>
|
|
81
|
-
///
|
|
82
|
-
/// </summary>
|
|
83
|
-
protected virtual void FocusPanToCharacterProcess()
|
|
84
|
-
{
|
|
85
|
-
Actor actorPan = null;
|
|
86
|
-
|
|
87
|
-
if (currentLine.CharToPan != null)
|
|
88
|
-
actorPan = (Actor)ServiceLocator.GetService<IObjectPooler<Talkable>>()
|
|
89
|
-
.GetObjectByName(currentLine.CharToPan.FirstName);
|
|
90
|
-
|
|
91
|
-
if (actorPan != null)
|
|
92
|
-
FocusHandler.ChangeFocus(actorPan, (Actor)lastActor.Value);
|
|
93
|
-
|
|
94
|
-
lastActor.SetValue(actorPan);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/// <summary>
|
|
98
|
-
///
|
|
99
|
-
/// </summary>
|
|
100
|
-
/// <returns></returns>
|
|
101
|
-
protected virtual bool NotSkippingPanning() => currentActor.Value != null && !currentLine.DontPan &&
|
|
102
|
-
(!loadingToLine.Value || lastActor.Value != currentActor.Value);
|
|
103
|
-
|
|
104
|
-
/// <summary>
|
|
105
|
-
///
|
|
106
|
-
/// </summary>
|
|
107
|
-
protected virtual void FocusCurrentActor() => FocusHandler.ChangeFocus((Actor)currentActor.Value, (Actor)lastActor.Value);
|
|
108
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Dialogues;
|
|
3
|
+
using DREditor.Dialogues.Loading;
|
|
4
|
+
using DREditor.EventObjects;
|
|
5
|
+
using DREditor.Services;
|
|
6
|
+
using DREditor.Talkables;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
|
|
9
|
+
namespace DREditor.Actors.Implementation
|
|
10
|
+
{
|
|
11
|
+
/// <summary>
|
|
12
|
+
///
|
|
13
|
+
/// </summary>
|
|
14
|
+
[ClassHeader(nameof(DialogueComponent) + ", " + nameof(ILoadToLineEnd) +
|
|
15
|
+
"\n\n")]
|
|
16
|
+
public class ActorFocusLoadEnd : DialogueComponent, ILoadToLineEnd
|
|
17
|
+
{
|
|
18
|
+
/// <summary>
|
|
19
|
+
///
|
|
20
|
+
/// </summary>
|
|
21
|
+
[Tooltip("")]
|
|
22
|
+
[SerializeField] protected BoolWithEvent loadingToLine = null;
|
|
23
|
+
|
|
24
|
+
/// <summary>
|
|
25
|
+
///
|
|
26
|
+
/// </summary>
|
|
27
|
+
[Tooltip("")]
|
|
28
|
+
[SerializeField] protected SelectableObjectWithEvent currentActor = null;
|
|
29
|
+
|
|
30
|
+
/// <summary>
|
|
31
|
+
///
|
|
32
|
+
/// </summary>
|
|
33
|
+
[Tooltip("")]
|
|
34
|
+
[SerializeField] protected SelectableObjectWithEvent lastActor = null;
|
|
35
|
+
|
|
36
|
+
/// <summary>
|
|
37
|
+
///
|
|
38
|
+
/// </summary>
|
|
39
|
+
[Tooltip("")]
|
|
40
|
+
[SerializeField] protected FocusHandler FocusHandler = null;
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
/// <summary>
|
|
44
|
+
///
|
|
45
|
+
/// </summary>
|
|
46
|
+
protected Line currentLine;
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
/// <inheritdoc/>
|
|
50
|
+
public virtual void OnLoadToLineEnd(Line currentLine) => InitializeActorFocus(currentLine);
|
|
51
|
+
|
|
52
|
+
/// <summary>
|
|
53
|
+
///
|
|
54
|
+
/// </summary>
|
|
55
|
+
/// <param name="currentLine"></param>
|
|
56
|
+
protected virtual void InitializeActorFocus(Line currentLine)
|
|
57
|
+
{
|
|
58
|
+
this.currentLine = currentLine;
|
|
59
|
+
|
|
60
|
+
EvaluateActorFocus();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/// <summary>
|
|
64
|
+
///
|
|
65
|
+
/// </summary>
|
|
66
|
+
protected virtual void EvaluateActorFocus()
|
|
67
|
+
{
|
|
68
|
+
if (LinePansToCharacter())
|
|
69
|
+
FocusPanToCharacterProcess();
|
|
70
|
+
else if (NotSkippingPanning())
|
|
71
|
+
FocusCurrentActor();
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/// <summary>
|
|
75
|
+
///
|
|
76
|
+
/// </summary>
|
|
77
|
+
/// <returns></returns>
|
|
78
|
+
protected virtual bool LinePansToCharacter() => currentLine.PanToChar;
|
|
79
|
+
|
|
80
|
+
/// <summary>
|
|
81
|
+
///
|
|
82
|
+
/// </summary>
|
|
83
|
+
protected virtual void FocusPanToCharacterProcess()
|
|
84
|
+
{
|
|
85
|
+
Actor actorPan = null;
|
|
86
|
+
|
|
87
|
+
if (currentLine.CharToPan != null)
|
|
88
|
+
actorPan = (Actor)ServiceLocator.GetService<IObjectPooler<Talkable>>()
|
|
89
|
+
.GetObjectByName(currentLine.CharToPan.FirstName);
|
|
90
|
+
|
|
91
|
+
if (actorPan != null)
|
|
92
|
+
FocusHandler.ChangeFocus(actorPan, (Actor)lastActor.Value);
|
|
93
|
+
|
|
94
|
+
lastActor.SetValue(actorPan);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/// <summary>
|
|
98
|
+
///
|
|
99
|
+
/// </summary>
|
|
100
|
+
/// <returns></returns>
|
|
101
|
+
protected virtual bool NotSkippingPanning() => currentActor.Value != null && !currentLine.DontPan &&
|
|
102
|
+
(!loadingToLine.Value || lastActor.Value != currentActor.Value);
|
|
103
|
+
|
|
104
|
+
/// <summary>
|
|
105
|
+
///
|
|
106
|
+
/// </summary>
|
|
107
|
+
protected virtual void FocusCurrentActor() => FocusHandler.ChangeFocus((Actor)currentActor.Value, (Actor)lastActor.Value);
|
|
108
|
+
}
|
|
109
109
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: ac36e60798fe58447ae22f4420faaeb4
|
|
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: ac36e60798fe58447ae22f4420faaeb4
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|