net.dreditor.roomloading 0.0.0-stage → 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/CheckThreeDModeDuringLoad.cs +64 -0
- package/CheckThreeDModeDuringLoad.cs.meta +11 -0
- package/DRERoomTransition.cs +116 -0
- package/DRERoomTransition.cs.meta +11 -0
- package/DREStartAloneScene.cs +179 -0
- package/DREStartAloneScene.cs.meta +11 -0
- package/DREditor.RoomLoading.asmdef +24 -0
- package/DREditor.RoomLoading.asmdef.meta +7 -0
- package/DialogueRoomLoader.cs +188 -0
- package/DialogueRoomLoader.cs.meta +11 -0
- package/FadeOnEndTransitionFromSave.cs +205 -0
- package/FadeOnEndTransitionFromSave.cs.meta +11 -0
- package/FadeOutGeneratePastOnDebugTest.cs +97 -0
- package/FadeOutGeneratePastOnDebugTest.cs.meta +11 -0
- package/FadeOutOnRoomLoad.cs +75 -0
- package/FadeOutOnRoomLoad.cs.meta +11 -0
- package/FreezeColorRoomTransition.cs +186 -0
- package/FreezeColorRoomTransition.cs.meta +11 -0
- package/IPostTransitionRoutine.cs +17 -0
- package/IPostTransitionRoutine.cs.meta +11 -0
- package/IRoomLoadResolver.cs +15 -0
- package/IRoomLoadResolver.cs.meta +11 -0
- package/IRoomLoadRoutine.cs +17 -0
- package/IRoomLoadRoutine.cs.meta +11 -0
- package/IRoomTransition.cs +39 -0
- package/IRoomTransition.cs.meta +11 -0
- package/ITeleporter.cs +24 -0
- package/ITeleporter.cs.meta +11 -0
- package/InstanceManagerBase.cs +131 -0
- package/InstanceManagerBase.cs.meta +11 -0
- package/KeepStateAfterObjective.cs +74 -0
- package/KeepStateAfterObjective.cs.meta +11 -0
- package/MoveEndOnDialogueFinish.cs +131 -0
- package/MoveEndOnDialogueFinish.cs.meta +11 -0
- package/PastPointData.cs +44 -0
- package/PastPointData.cs.meta +11 -0
- package/PrepareTPFDOnLoadingRoom.cs +68 -0
- package/PrepareTPFDOnLoadingRoom.cs.meta +11 -0
- package/ResolveRoomLoadStates.cs +95 -0
- package/ResolveRoomLoadStates.cs.meta +11 -0
- package/RoomChanger.cs +265 -0
- package/RoomChanger.cs.meta +11 -0
- package/RoomChangerBase.cs +85 -0
- package/RoomChangerBase.cs.meta +11 -0
- package/RoomChangerLoader.cs +90 -0
- package/RoomChangerLoader.cs.meta +11 -0
- package/RoomLoadComponent.cs +13 -0
- package/RoomLoadComponent.cs.meta +11 -0
- package/RoomLoadFinisher.cs +81 -0
- package/RoomLoadFinisher.cs.meta +11 -0
- package/RoomLoadOptionsAsset.cs +45 -0
- package/RoomLoadOptionsAsset.cs.meta +11 -0
- package/RoomLoader.cs +265 -0
- package/RoomLoader.cs.meta +11 -0
- package/RoomLoaderBase.cs +87 -0
- package/RoomLoaderBase.cs.meta +11 -0
- package/RoomLoaderDebugger.cs +151 -0
- package/RoomLoaderDebugger.cs.meta +11 -0
- package/RoomLoaderHolder.cs +10 -0
- package/RoomLoaderHolder.cs.meta +11 -0
- package/Samples~/BlackTransitionOnlyOption.asset +18 -0
- package/Samples~/BlackTransitionOnlyOption.asset.meta +8 -0
- package/Samples~/BlackTransitionToInvestigationOption.asset +18 -0
- package/Samples~/BlackTransitionToInvestigationOption.asset.meta +8 -0
- package/Samples~/Check_ThreeD_Mode_During_Load.prefab +49 -0
- package/Samples~/Check_ThreeD_Mode_During_Load.prefab.meta +7 -0
- package/Samples~/DRE_Start_Alone_Scene.prefab +148 -0
- package/Samples~/DRE_Start_Alone_Scene.prefab.meta +7 -0
- package/Samples~/Dialogue_Room_Loader.prefab +55 -0
- package/Samples~/Dialogue_Room_Loader.prefab.meta +7 -0
- package/Samples~/FadeOutBlackTransitionOption.asset +18 -0
- package/Samples~/FadeOutBlackTransitionOption.asset.meta +8 -0
- package/Samples~/Fade_On_End_Transition_From_Save.prefab +145 -0
- package/Samples~/Fade_On_End_Transition_From_Save.prefab.meta +7 -0
- package/Samples~/Fade_Out_Generate_Past_On_Debug_Test.prefab +139 -0
- package/Samples~/Fade_Out_Generate_Past_On_Debug_Test.prefab.meta +7 -0
- package/Samples~/Fade_Out_On_Room_Load.prefab +137 -0
- package/Samples~/Fade_Out_On_Room_Load.prefab.meta +7 -0
- package/Samples~/Freeze_Transition_Canvas.prefab +300 -0
- package/Samples~/Freeze_Transition_Canvas.prefab.meta +7 -0
- package/Samples~/IsLoadingToRoom.asset +19 -0
- package/Samples~/IsLoadingToRoom.asset.meta +8 -0
- package/Samples~/Move_End_On_Dialogue_Finish.prefab +52 -0
- package/Samples~/Move_End_On_Dialogue_Finish.prefab.meta +7 -0
- package/Samples~/OnFadingOutOfLoading.asset +15 -0
- package/Samples~/OnFadingOutOfLoading.asset.meta +8 -0
- package/Samples~/OnFinishedLoadingRoom.asset +14 -0
- package/Samples~/OnFinishedLoadingRoom.asset.meta +8 -0
- package/Samples~/OnLoadingThreeDRoom.asset +14 -0
- package/Samples~/OnLoadingThreeDRoom.asset.meta +8 -0
- package/Samples~/OnLoadingThreeDRoomListener.prefab +51 -0
- package/Samples~/OnLoadingThreeDRoomListener.prefab.meta +7 -0
- package/Samples~/On_Finished_Loading_Room_Listener.prefab +51 -0
- package/Samples~/On_Finished_Loading_Room_Listener.prefab.meta +7 -0
- package/Samples~/On_Finished_Loading_Room_No_Dialogue_Listener.prefab +51 -0
- package/Samples~/On_Finished_Loading_Room_No_Dialogue_Listener.prefab.meta +7 -0
- package/Samples~/On_Finished_Room_Transitions_Listener.prefab +51 -0
- package/Samples~/On_Finished_Room_Transitions_Listener.prefab.meta +7 -0
- package/Samples~/On_Loading_Room_Listener.prefab +51 -0
- package/Samples~/On_Loading_Room_Listener.prefab.meta +7 -0
- package/Samples~/On_Started_Changing_Room_Listener.prefab +51 -0
- package/Samples~/On_Started_Changing_Room_Listener.prefab.meta +7 -0
- package/Samples~/Prepare_TPFD_On_Room_Loading.prefab +142 -0
- package/Samples~/Prepare_TPFD_On_Room_Loading.prefab.meta +7 -0
- package/Samples~/Resolve_Room_Load_States.prefab +54 -0
- package/Samples~/Resolve_Room_Load_States.prefab.meta +7 -0
- package/Samples~/Room_Changer.prefab +143 -0
- package/Samples~/Room_Changer.prefab.meta +7 -0
- package/Samples~/Room_Changer_Loader.prefab +53 -0
- package/Samples~/Room_Changer_Loader.prefab.meta +7 -0
- package/Samples~/Room_Instance_Manager.prefab +78 -0
- package/Samples~/Room_Instance_Manager.prefab.meta +7 -0
- package/Samples~/Room_Load_Finisher.prefab +139 -0
- package/Samples~/Room_Load_Finisher.prefab.meta +7 -0
- package/Samples~/Room_Loader.prefab +584 -0
- package/Samples~/Room_Loader.prefab.meta +7 -0
- package/Samples~/Room_Loader_Event_Listeners.prefab +337 -0
- package/Samples~/Room_Loader_Event_Listeners.prefab.meta +7 -0
- package/Samples~/Room_Loading_System_ETemplate.prefab +398 -0
- package/Samples~/Room_Loading_System_ETemplate.prefab.meta +7 -0
- package/Samples~/SkipActivateControls.asset +19 -0
- package/Samples~/SkipActivateControls.asset.meta +8 -0
- package/Samples~/Skip_Controls_When_Loaded.prefab +156 -0
- package/Samples~/Skip_Controls_When_Loaded.prefab.meta +7 -0
- package/Samples~/TPFD_Room_Loader.prefab +215 -0
- package/Samples~/TPFD_Room_Loader.prefab.meta +7 -0
- package/Samples~/TeleportTransitionOptions.asset +18 -0
- package/Samples~/TeleportTransitionOptions.asset.meta +8 -0
- package/Samples~/Teleport_Room_Manager.prefab +84 -0
- package/Samples~/Teleport_Room_Manager.prefab.meta +7 -0
- package/Samples~/UI_Visibility_On_Scene_Events.prefab +316 -0
- package/Samples~/UI_Visibility_On_Scene_Events.prefab.meta +7 -0
- package/SkipControlsWhenLoaded.cs +66 -0
- package/SkipControlsWhenLoaded.cs.meta +11 -0
- package/TPFDRoomAnimation.cs +84 -0
- package/TPFDRoomAnimation.cs.meta +11 -0
- package/TPFDRoomLoader.cs +93 -0
- package/TPFDRoomLoader.cs.meta +11 -0
- package/TeleportRoomManager.cs +114 -0
- package/TeleportRoomManager.cs.meta +11 -0
- package/package.json +43 -4
- package/package.json.meta +7 -0
- package/README.md +0 -3
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.EventObjects;
|
|
3
|
+
using DREditor.Fading;
|
|
4
|
+
using DREditor.Services;
|
|
5
|
+
using DREditor.UIHandling;
|
|
6
|
+
using System;
|
|
7
|
+
using System.Collections;
|
|
8
|
+
using System.Linq;
|
|
9
|
+
using UnityEngine;
|
|
10
|
+
|
|
11
|
+
namespace DREditor.RoomLoading
|
|
12
|
+
{
|
|
13
|
+
/// <summary>
|
|
14
|
+
///
|
|
15
|
+
/// </summary>
|
|
16
|
+
[ClassHeader(nameof(ISceneEventListener) + ", " + nameof(IToTitleScreen) +
|
|
17
|
+
"\n\n")]
|
|
18
|
+
public class FadeOnEndTransitionFromSave : MonoBehaviour, ISceneEventListener, IToTitleScreen
|
|
19
|
+
{
|
|
20
|
+
/// <summary>
|
|
21
|
+
///
|
|
22
|
+
/// </summary>
|
|
23
|
+
[Tooltip("")]
|
|
24
|
+
[SerializeField] protected SceneEvent onFadeOutComplete = null;
|
|
25
|
+
|
|
26
|
+
/// <summary>
|
|
27
|
+
///
|
|
28
|
+
/// </summary>
|
|
29
|
+
[Tooltip("")]
|
|
30
|
+
[SerializeField] protected SceneEvent onFadingOutOfLoading = null;
|
|
31
|
+
|
|
32
|
+
/// <summary>
|
|
33
|
+
///
|
|
34
|
+
/// </summary>
|
|
35
|
+
[Tooltip("")]
|
|
36
|
+
[SerializeField] protected BoolWithEvent isLoadingFile = null;
|
|
37
|
+
|
|
38
|
+
/// <summary>
|
|
39
|
+
///
|
|
40
|
+
/// </summary>
|
|
41
|
+
[Tooltip("")]
|
|
42
|
+
[SerializeField] protected BoolWithEvent screenIsDark = null;
|
|
43
|
+
|
|
44
|
+
/// <summary>
|
|
45
|
+
///
|
|
46
|
+
/// </summary>
|
|
47
|
+
[Tooltip("")]
|
|
48
|
+
[SerializeField] protected SceneEventListener onFinishedRoomTransitions = null;
|
|
49
|
+
|
|
50
|
+
/// <summary>
|
|
51
|
+
///
|
|
52
|
+
/// </summary>
|
|
53
|
+
[Tooltip("")]
|
|
54
|
+
[SerializeField] protected float loadingFileFadeOutTime = 0.3f;
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
/// <summary>
|
|
58
|
+
///
|
|
59
|
+
/// </summary>
|
|
60
|
+
protected bool subscribed = false;
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
protected virtual void OnEnable() => isLoadingFile.AddListener(OnLoadingFileStateChanged);
|
|
64
|
+
|
|
65
|
+
protected virtual void OnDisable() => isLoadingFile.RemoveListener(OnLoadingFileStateChanged);
|
|
66
|
+
|
|
67
|
+
/// <summary>
|
|
68
|
+
///
|
|
69
|
+
/// </summary>
|
|
70
|
+
/// <param name="loadingFile"></param>
|
|
71
|
+
protected virtual void OnLoadingFileStateChanged(bool loadingFile)
|
|
72
|
+
{
|
|
73
|
+
if (loadingFile)
|
|
74
|
+
SubscribeToEvents();
|
|
75
|
+
else
|
|
76
|
+
UnsubscribeToEvents();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/// <summary>
|
|
80
|
+
///
|
|
81
|
+
/// </summary>
|
|
82
|
+
protected virtual void SubscribeToEvents()
|
|
83
|
+
{
|
|
84
|
+
if (!subscribed)
|
|
85
|
+
{
|
|
86
|
+
onFadeOutComplete.RegisterListener(this);
|
|
87
|
+
|
|
88
|
+
onFinishedRoomTransitions.Response.AddListener(FadeOutOnTransitionsFinished);
|
|
89
|
+
|
|
90
|
+
subscribed = true;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/// <summary>
|
|
95
|
+
///
|
|
96
|
+
/// </summary>
|
|
97
|
+
protected virtual void UnsubscribeToEvents()
|
|
98
|
+
{
|
|
99
|
+
if (subscribed)
|
|
100
|
+
{
|
|
101
|
+
onFadeOutComplete.UnregisterListener(this);
|
|
102
|
+
|
|
103
|
+
onFinishedRoomTransitions.Response.RemoveListener(FadeOutOnTransitionsFinished);
|
|
104
|
+
|
|
105
|
+
StopAllCoroutines();
|
|
106
|
+
|
|
107
|
+
subscribed = false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/// <inheritdoc/>
|
|
112
|
+
public virtual void OnEventRaised() => OnEventInvoke(InvokeFadingOutOfLoading);
|
|
113
|
+
|
|
114
|
+
/// <summary>
|
|
115
|
+
///
|
|
116
|
+
/// </summary>
|
|
117
|
+
/// <param name="action"></param>
|
|
118
|
+
protected virtual void OnEventInvoke(Action action)
|
|
119
|
+
{
|
|
120
|
+
if (isLoadingFile.Value)
|
|
121
|
+
{
|
|
122
|
+
UnsubscribeToEvents();
|
|
123
|
+
|
|
124
|
+
action?.Invoke();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/// <summary>
|
|
129
|
+
///
|
|
130
|
+
/// </summary>
|
|
131
|
+
protected virtual void InvokeFadingOutOfLoading()
|
|
132
|
+
{
|
|
133
|
+
if (onFadingOutOfLoading != null)
|
|
134
|
+
onFadingOutOfLoading.Raise();
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/// <summary>
|
|
138
|
+
///
|
|
139
|
+
/// </summary>
|
|
140
|
+
protected virtual void FadeOutOnTransitionsFinished() => OnEventInvoke(WaitForLoadingToFinish);
|
|
141
|
+
|
|
142
|
+
/// <summary>
|
|
143
|
+
///
|
|
144
|
+
/// </summary>
|
|
145
|
+
protected virtual void WaitForLoadingToFinish() => StartCoroutine(WaitForLoadingToFinishRoutine());
|
|
146
|
+
|
|
147
|
+
/// <summary>
|
|
148
|
+
///
|
|
149
|
+
/// </summary>
|
|
150
|
+
protected virtual IEnumerator WaitForLoadingToFinishRoutine()
|
|
151
|
+
{
|
|
152
|
+
yield return WaitForLoadingOrFadeToFinish();
|
|
153
|
+
|
|
154
|
+
yield return WaitForAnimationsToComplete();
|
|
155
|
+
|
|
156
|
+
InvokeFadingOutOfLoading();
|
|
157
|
+
|
|
158
|
+
FadeOutOfLoading();
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/// <summary>
|
|
162
|
+
///
|
|
163
|
+
/// </summary>
|
|
164
|
+
protected virtual IEnumerator WaitForLoadingOrFadeToFinish()
|
|
165
|
+
{
|
|
166
|
+
while (isLoadingFile.Value && screenIsDark.Value)
|
|
167
|
+
yield return null;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/// <summary>
|
|
171
|
+
///
|
|
172
|
+
/// </summary>
|
|
173
|
+
protected virtual IEnumerator WaitForAnimationsToComplete()
|
|
174
|
+
{
|
|
175
|
+
var waitableAnimations = FindObjectsByType<MonoBehaviour>().OfType<IWaitAnimationCompleteOnLoad>();
|
|
176
|
+
|
|
177
|
+
foreach (var animation in waitableAnimations)
|
|
178
|
+
yield return animation.WaitForAnimationToComplete();
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/// <summary>
|
|
182
|
+
///
|
|
183
|
+
/// </summary>
|
|
184
|
+
protected virtual void FadeOutOfLoading()
|
|
185
|
+
{
|
|
186
|
+
if (!ServiceLocator.HasService<GlobalFade>(out var globalFade) ||
|
|
187
|
+
!ServiceLocator.HasService<UIHandlerBase>(out var uiHandler))
|
|
188
|
+
return;
|
|
189
|
+
|
|
190
|
+
bool fadeOutOptions =
|
|
191
|
+
!ServiceLocator.HasService<RoomChangerBase>(out var roomChanger) ||
|
|
192
|
+
roomChanger.GetOptions() == null ||
|
|
193
|
+
roomChanger.GetOptions().fadeOutOnLoad;
|
|
194
|
+
|
|
195
|
+
if (screenIsDark.Value && !uiHandler.MovingToTitleScreen && fadeOutOptions)
|
|
196
|
+
globalFade.FadeOut(loadingFileFadeOutTime);
|
|
197
|
+
else
|
|
198
|
+
UnityEngine.Debug.Log("REPORT: Didn't Fade out of loading.");
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
/// <inheritdoc/>
|
|
203
|
+
public virtual void ToTitleScreen() => UnsubscribeToEvents();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
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.Fading;
|
|
5
|
+
using DREditor.Services;
|
|
6
|
+
using System.Collections;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
|
|
9
|
+
namespace DREditor.RoomLoading
|
|
10
|
+
{
|
|
11
|
+
/// <summary>
|
|
12
|
+
///
|
|
13
|
+
/// </summary>
|
|
14
|
+
[ClassHeader("")]
|
|
15
|
+
public class FadeOutGeneratePastOnDebugTest : MonoBehaviour
|
|
16
|
+
{
|
|
17
|
+
/// <summary>
|
|
18
|
+
///
|
|
19
|
+
/// </summary>
|
|
20
|
+
[Tooltip("")]
|
|
21
|
+
[SerializeField] protected BoolWithEvent inMenu = null;
|
|
22
|
+
|
|
23
|
+
/// <summary>
|
|
24
|
+
///
|
|
25
|
+
/// </summary>
|
|
26
|
+
[Tooltip("")]
|
|
27
|
+
[SerializeField] protected SceneEvent onGeneratePastData = null;
|
|
28
|
+
|
|
29
|
+
/// <summary>
|
|
30
|
+
///
|
|
31
|
+
/// </summary>
|
|
32
|
+
[Tooltip("")]
|
|
33
|
+
[SerializeField] protected SceneEventListener onFinishedLoadingRoom = null;
|
|
34
|
+
|
|
35
|
+
/// <summary>
|
|
36
|
+
///
|
|
37
|
+
/// </summary>
|
|
38
|
+
[Tooltip("")]
|
|
39
|
+
[SerializeField] protected string debugEventString = "FadeOutGeneratePastOnDebugTest";
|
|
40
|
+
|
|
41
|
+
/// <summary>
|
|
42
|
+
///
|
|
43
|
+
/// </summary>
|
|
44
|
+
[Tooltip("")]
|
|
45
|
+
[SerializeField] protected float fadeOutDuration = 1;
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
/// <summary>
|
|
49
|
+
///
|
|
50
|
+
/// </summary>
|
|
51
|
+
protected virtual void OnEnable() => DialogueEventSystem.StartListening(debugEventString, DebugFadeOutGeneratePast);
|
|
52
|
+
|
|
53
|
+
/// <summary>
|
|
54
|
+
///
|
|
55
|
+
/// </summary>
|
|
56
|
+
protected virtual void OnDisable() => DialogueEventSystem.StopListening(debugEventString, DebugFadeOutGeneratePast);
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
/// <summary>
|
|
60
|
+
///
|
|
61
|
+
/// </summary>
|
|
62
|
+
public virtual void DebugFadeOutGeneratePast(object o = null)
|
|
63
|
+
=> onFinishedLoadingRoom.Response.AddListener(FadeOutGeneratePast);
|
|
64
|
+
|
|
65
|
+
/// <summary>
|
|
66
|
+
///
|
|
67
|
+
/// </summary>
|
|
68
|
+
protected virtual void FadeOutGeneratePast()
|
|
69
|
+
{
|
|
70
|
+
onFinishedLoadingRoom.Response.RemoveListener(FadeOutGeneratePast);
|
|
71
|
+
|
|
72
|
+
UnityEngine.Debug.Log("REPORT: Fading Out of black then Generating Past.");
|
|
73
|
+
|
|
74
|
+
if (ServiceLocator.GetService<GlobalFade>().IsDark)
|
|
75
|
+
ServiceLocator.GetService<GlobalFade>().FadeOut(fadeOutDuration);
|
|
76
|
+
|
|
77
|
+
StartCoroutine(WakeUpMonobehaviourControl());
|
|
78
|
+
|
|
79
|
+
if (onGeneratePastData != null)
|
|
80
|
+
onGeneratePastData.Raise();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/// <summary>
|
|
84
|
+
///
|
|
85
|
+
/// </summary>
|
|
86
|
+
protected virtual IEnumerator WakeUpMonobehaviourControl()
|
|
87
|
+
{
|
|
88
|
+
yield return null;
|
|
89
|
+
|
|
90
|
+
inMenu.Value = true;
|
|
91
|
+
|
|
92
|
+
yield return null;
|
|
93
|
+
|
|
94
|
+
inMenu.Value = false;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
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.Fading;
|
|
5
|
+
using DREditor.Services;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
|
|
8
|
+
namespace DREditor.RoomLoading
|
|
9
|
+
{
|
|
10
|
+
/// <summary>
|
|
11
|
+
///
|
|
12
|
+
/// </summary>
|
|
13
|
+
[ClassHeader("")]
|
|
14
|
+
public class FadeOutOnRoomLoad : MonoBehaviour
|
|
15
|
+
{
|
|
16
|
+
/// <summary>
|
|
17
|
+
///
|
|
18
|
+
/// </summary>
|
|
19
|
+
[Tooltip("")]
|
|
20
|
+
[SerializeField] protected SceneEventListener onFinishedRoomTransitions = null;
|
|
21
|
+
|
|
22
|
+
/// <summary>
|
|
23
|
+
///
|
|
24
|
+
/// </summary>
|
|
25
|
+
[Tooltip("")]
|
|
26
|
+
[SerializeField] protected string fadeOutEventString = "FadeOutOnLoadSubscribe";
|
|
27
|
+
|
|
28
|
+
/// <summary>
|
|
29
|
+
///
|
|
30
|
+
/// </summary>
|
|
31
|
+
[Tooltip("")]
|
|
32
|
+
[SerializeField] protected float fadeOutDuration = 0.5f;
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
/// <summary>
|
|
36
|
+
///
|
|
37
|
+
/// </summary>
|
|
38
|
+
protected virtual void OnEnable() => StartListeningToEvents();
|
|
39
|
+
|
|
40
|
+
/// <summary>
|
|
41
|
+
///
|
|
42
|
+
/// </summary>
|
|
43
|
+
protected virtual void StartListeningToEvents()
|
|
44
|
+
=> DialogueEventSystem.StartListening(fadeOutEventString, SubscribeFadeToOnLoad);
|
|
45
|
+
|
|
46
|
+
/// <summary>
|
|
47
|
+
///
|
|
48
|
+
/// </summary>
|
|
49
|
+
protected virtual void OnDisable() => StopListeningToEvents();
|
|
50
|
+
|
|
51
|
+
/// <summary>
|
|
52
|
+
///
|
|
53
|
+
/// </summary>
|
|
54
|
+
protected virtual void StopListeningToEvents()
|
|
55
|
+
=> DialogueEventSystem.StopListening(fadeOutEventString, SubscribeFadeToOnLoad);
|
|
56
|
+
|
|
57
|
+
/// <summary>
|
|
58
|
+
///
|
|
59
|
+
/// </summary>
|
|
60
|
+
/// <param name="o"></param>
|
|
61
|
+
protected virtual void SubscribeFadeToOnLoad(object o = null)
|
|
62
|
+
=> onFinishedRoomTransitions.Response.AddListener(FadeOnLoad);
|
|
63
|
+
|
|
64
|
+
/// <summary>
|
|
65
|
+
///
|
|
66
|
+
/// </summary>
|
|
67
|
+
protected virtual void FadeOnLoad()
|
|
68
|
+
{
|
|
69
|
+
onFinishedRoomTransitions.Response.RemoveListener(FadeOnLoad);
|
|
70
|
+
|
|
71
|
+
if (ServiceLocator.GetService<GlobalFade>().IsDark)
|
|
72
|
+
ServiceLocator.GetService<GlobalFade>().FadeOut(fadeOutDuration);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
#if DOTWEEN
|
|
3
|
+
using DG.Tweening;
|
|
4
|
+
#endif
|
|
5
|
+
using DREditor.Dialogues.Events;
|
|
6
|
+
using DREditor.Fading;
|
|
7
|
+
using DREditor.Services;
|
|
8
|
+
using System.Collections;
|
|
9
|
+
using UnityEngine;
|
|
10
|
+
using UnityEngine.UI;
|
|
11
|
+
|
|
12
|
+
namespace DREditor.RoomLoading
|
|
13
|
+
{
|
|
14
|
+
/// <summary>
|
|
15
|
+
///
|
|
16
|
+
/// </summary>
|
|
17
|
+
public class FreezeColorRoomTransition : DRERoomTransition
|
|
18
|
+
{
|
|
19
|
+
/// <summary>
|
|
20
|
+
///
|
|
21
|
+
/// </summary>
|
|
22
|
+
[Header("")]
|
|
23
|
+
|
|
24
|
+
[Space]
|
|
25
|
+
|
|
26
|
+
[Header("")]
|
|
27
|
+
|
|
28
|
+
[Tooltip("")]
|
|
29
|
+
[SerializeField] protected Canvas freezeCanvas = null;
|
|
30
|
+
|
|
31
|
+
/// <summary>
|
|
32
|
+
///
|
|
33
|
+
/// </summary>
|
|
34
|
+
[Tooltip("")]
|
|
35
|
+
[SerializeField] protected RawImage freezeImage = null;
|
|
36
|
+
|
|
37
|
+
/// <summary>
|
|
38
|
+
///
|
|
39
|
+
/// </summary>
|
|
40
|
+
[Tooltip("")]
|
|
41
|
+
[SerializeField] protected RawImage freezeBack = null;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
/// <summary>
|
|
45
|
+
///
|
|
46
|
+
/// </summary>
|
|
47
|
+
[Header("")]
|
|
48
|
+
|
|
49
|
+
[Tooltip("")]
|
|
50
|
+
[SerializeField] protected float freezeImageStartDuration = 1f;
|
|
51
|
+
|
|
52
|
+
/// <summary>
|
|
53
|
+
///
|
|
54
|
+
/// </summary>
|
|
55
|
+
[Tooltip("")]
|
|
56
|
+
[SerializeField] protected float freezeBackStartDuration = 2f;
|
|
57
|
+
|
|
58
|
+
/// <summary>
|
|
59
|
+
///
|
|
60
|
+
/// </summary>
|
|
61
|
+
[Tooltip("")]
|
|
62
|
+
[SerializeField] protected float freezeImageEndDuration = 2f;
|
|
63
|
+
|
|
64
|
+
/// <summary>
|
|
65
|
+
///
|
|
66
|
+
/// </summary>
|
|
67
|
+
[Tooltip("")]
|
|
68
|
+
[SerializeField] protected float freezeBackEndDuration = 1f;
|
|
69
|
+
|
|
70
|
+
/// <summary>
|
|
71
|
+
///
|
|
72
|
+
/// </summary>
|
|
73
|
+
[Tooltip("")]
|
|
74
|
+
[SerializeField] protected string captureCameraEventString = "CaptureMainCamera";
|
|
75
|
+
|
|
76
|
+
/// <summary>
|
|
77
|
+
///
|
|
78
|
+
/// </summary>
|
|
79
|
+
[Tooltip("")]
|
|
80
|
+
[SerializeField] protected string enableMainCameraEventString = "EnableMainCamera";
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
/// <summary>
|
|
84
|
+
///
|
|
85
|
+
/// </summary>
|
|
86
|
+
/// <returns></returns>
|
|
87
|
+
protected virtual IEnumerator StartFreezeColorRoutine()
|
|
88
|
+
{
|
|
89
|
+
isTransitioning = true;
|
|
90
|
+
|
|
91
|
+
// NOTE: This code line was added 8/20/2024 to fix ch1 investigation, going to
|
|
92
|
+
// the courtyard to the tree room has the main capture image still be the courtyard.
|
|
93
|
+
// however if this fix ends up causing more problems, a different method to fix this
|
|
94
|
+
// should be used.
|
|
95
|
+
|
|
96
|
+
if (ServiceLocator.GetService<GlobalFade>().IsDark)
|
|
97
|
+
{
|
|
98
|
+
isTransitioning = false;
|
|
99
|
+
|
|
100
|
+
yield break;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
RenderFreeze();
|
|
104
|
+
|
|
105
|
+
yield return null;
|
|
106
|
+
|
|
107
|
+
UnityEngine.Debug.Log($"{ToString()}: Changing color...");
|
|
108
|
+
|
|
109
|
+
Color background = new(
|
|
110
|
+
Random.Range(0f, 1f),
|
|
111
|
+
Random.Range(0f, 1f),
|
|
112
|
+
Random.Range(0f, 1f));
|
|
113
|
+
#if DOTWEEN
|
|
114
|
+
freezeImage.DOColor(background, freezeImageStartDuration);
|
|
115
|
+
|
|
116
|
+
freezeBack.DOColor(background, freezeBackStartDuration);
|
|
117
|
+
#else
|
|
118
|
+
freezeImage.color = background;
|
|
119
|
+
|
|
120
|
+
freezeBack.color = background;
|
|
121
|
+
#endif
|
|
122
|
+
yield return new WaitUntil(() => freezeBack.color == background);
|
|
123
|
+
|
|
124
|
+
isTransitioning = false;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/// <summary>
|
|
128
|
+
///
|
|
129
|
+
/// </summary>
|
|
130
|
+
protected virtual void RenderFreeze()
|
|
131
|
+
{
|
|
132
|
+
UnityEngine.Debug.Log($"{ToString()}: Capturing Screen to freeze.");
|
|
133
|
+
|
|
134
|
+
DialogueEventSystem.TriggerEvent(captureCameraEventString, freezeImage);
|
|
135
|
+
|
|
136
|
+
DialogueEventSystem.TriggerEvent(enableMainCameraEventString);
|
|
137
|
+
|
|
138
|
+
freezeCanvas.enabled = true;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/// <summary>
|
|
142
|
+
///
|
|
143
|
+
/// </summary>
|
|
144
|
+
/// <returns></returns>
|
|
145
|
+
protected virtual IEnumerator EndFreezeColorRoutine()
|
|
146
|
+
{
|
|
147
|
+
isTransitioning = true;
|
|
148
|
+
|
|
149
|
+
if (ServiceLocator.GetService<GlobalFade>().IsDark)
|
|
150
|
+
{
|
|
151
|
+
isTransitioning = false;
|
|
152
|
+
|
|
153
|
+
yield break;
|
|
154
|
+
}
|
|
155
|
+
#if DOTWEEN
|
|
156
|
+
freezeImage.DOFade(0, freezeImageEndDuration);
|
|
157
|
+
|
|
158
|
+
freezeBack.DOFade(0, freezeBackEndDuration);
|
|
159
|
+
#else
|
|
160
|
+
freezeImage.color = new(freezeImage.color.r, freezeImage.color.g, freezeImage.color.b, 0);
|
|
161
|
+
|
|
162
|
+
freezeBack.color = new(freezeBack.color.r, freezeBack.color.g, freezeBack.color.b, 0);
|
|
163
|
+
#endif
|
|
164
|
+
|
|
165
|
+
UnityEngine.Debug.Log($"{ToString()}: Starting Fading out room color");
|
|
166
|
+
|
|
167
|
+
yield return new WaitUntil(() => freezeImage.color.a == 0);
|
|
168
|
+
|
|
169
|
+
UnityEngine.Debug.Log($"{ToString()}: Finished Fading out room color");
|
|
170
|
+
|
|
171
|
+
freezeCanvas.enabled = false;
|
|
172
|
+
|
|
173
|
+
freezeImage.color = new Color(1, 1, 1, 1);
|
|
174
|
+
|
|
175
|
+
isTransitioning = false;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
/// <inheritdoc/>
|
|
180
|
+
public override IEnumerator StartTransitionRoutine() => StartFreezeColorRoutine();
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
/// <inheritdoc/>
|
|
184
|
+
public override IEnumerator EndTransitionRoutine() => EndFreezeColorRoutine();
|
|
185
|
+
}
|
|
186
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using System.Collections;
|
|
3
|
+
|
|
4
|
+
namespace DREditor.RoomLoading
|
|
5
|
+
{
|
|
6
|
+
/// <summary>
|
|
7
|
+
///
|
|
8
|
+
/// </summary>
|
|
9
|
+
public interface IPostTransitionRoutine
|
|
10
|
+
{
|
|
11
|
+
/// <summary>
|
|
12
|
+
///
|
|
13
|
+
/// </summary>
|
|
14
|
+
/// <returns></returns>
|
|
15
|
+
IEnumerator PostTransitionRoutine();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
|
|
3
|
+
namespace DREditor.RoomLoading
|
|
4
|
+
{
|
|
5
|
+
/// <summary>
|
|
6
|
+
///
|
|
7
|
+
/// </summary>
|
|
8
|
+
public interface IRoomLoadResolver
|
|
9
|
+
{
|
|
10
|
+
/// <summary>
|
|
11
|
+
///
|
|
12
|
+
/// </summary>
|
|
13
|
+
public abstract void OnRoomLoadResolve();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using System.Collections;
|
|
3
|
+
|
|
4
|
+
namespace DREditor.RoomLoading
|
|
5
|
+
{
|
|
6
|
+
/// <summary>
|
|
7
|
+
///
|
|
8
|
+
/// </summary>
|
|
9
|
+
public interface IRoomLoadRoutine
|
|
10
|
+
{
|
|
11
|
+
/// <summary>
|
|
12
|
+
///
|
|
13
|
+
/// </summary>
|
|
14
|
+
/// <returns></returns>
|
|
15
|
+
IEnumerator OnRoomLoadRoutine();
|
|
16
|
+
}
|
|
17
|
+
}
|