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,260 +1,260 @@
|
|
|
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.Cameras;
|
|
6
|
-
using DREditor.Characters;
|
|
7
|
-
using DREditor.Services;
|
|
8
|
-
using DREditor.Talkables;
|
|
9
|
-
using System.Collections;
|
|
10
|
-
using System.Collections.Generic;
|
|
11
|
-
using UnityEngine;
|
|
12
|
-
using UnityEngine.Serialization;
|
|
13
|
-
|
|
14
|
-
namespace DREditor.Actors.Events
|
|
15
|
-
{
|
|
16
|
-
/// <summary>
|
|
17
|
-
///
|
|
18
|
-
/// </summary>
|
|
19
|
-
/// <remarks></remarks>
|
|
20
|
-
[ClassHeader("")]
|
|
21
|
-
public class BSTrialActorFlash : MonoBehaviour
|
|
22
|
-
{
|
|
23
|
-
/// <summary>
|
|
24
|
-
///
|
|
25
|
-
/// </summary>
|
|
26
|
-
[Tooltip("")]
|
|
27
|
-
[SerializeField] protected CharacterDatabase characterDatabase = null;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/// <summary>
|
|
31
|
-
///
|
|
32
|
-
/// </summary>
|
|
33
|
-
[Header("")]
|
|
34
|
-
[Divider]
|
|
35
|
-
[Tooltip("")]
|
|
36
|
-
[FormerlySerializedAs("mat")]
|
|
37
|
-
[SerializeField] protected Material material = null;
|
|
38
|
-
|
|
39
|
-
/// <summary>
|
|
40
|
-
///
|
|
41
|
-
/// </summary>
|
|
42
|
-
[Tooltip("")]
|
|
43
|
-
[SerializeField] protected string shaderColorID = "outlineColor";
|
|
44
|
-
|
|
45
|
-
/// <summary>
|
|
46
|
-
///
|
|
47
|
-
/// </summary>
|
|
48
|
-
[Tooltip("")]
|
|
49
|
-
[SerializeField] protected float animTime = .125f;
|
|
50
|
-
|
|
51
|
-
/// <summary>
|
|
52
|
-
///
|
|
53
|
-
/// </summary>
|
|
54
|
-
[Tooltip("")]
|
|
55
|
-
[SerializeField] protected float alphaTo = .5f;
|
|
56
|
-
|
|
57
|
-
/// <summary>
|
|
58
|
-
///
|
|
59
|
-
/// </summary>
|
|
60
|
-
[Tooltip("")]
|
|
61
|
-
[SerializeField] protected int loops = 4;
|
|
62
|
-
#if DOTWEEN
|
|
63
|
-
/// <summary>
|
|
64
|
-
///
|
|
65
|
-
/// </summary>
|
|
66
|
-
[Tooltip("")]
|
|
67
|
-
[SerializeField] protected LoopType loopType = LoopType.Yoyo;
|
|
68
|
-
#endif
|
|
69
|
-
/// <summary>
|
|
70
|
-
///
|
|
71
|
-
/// </summary>
|
|
72
|
-
[Tooltip("")]
|
|
73
|
-
[SerializeField] List<Color> colors = new();
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
/// <summary>
|
|
77
|
-
///
|
|
78
|
-
/// </summary>
|
|
79
|
-
protected DRTrialCamera trialCamera = null;
|
|
80
|
-
|
|
81
|
-
/// <summary>
|
|
82
|
-
///
|
|
83
|
-
/// </summary>
|
|
84
|
-
protected int seatPos = 0;
|
|
85
|
-
|
|
86
|
-
/// <summary>
|
|
87
|
-
///
|
|
88
|
-
/// </summary>
|
|
89
|
-
protected Material originalMaterial = null;
|
|
90
|
-
|
|
91
|
-
/// <summary>
|
|
92
|
-
///
|
|
93
|
-
/// </summary>
|
|
94
|
-
protected Color defaultColor;
|
|
95
|
-
|
|
96
|
-
/// <summary>
|
|
97
|
-
///
|
|
98
|
-
/// </summary>
|
|
99
|
-
protected float currentAlpha = 0;
|
|
100
|
-
|
|
101
|
-
/// <summary>
|
|
102
|
-
///
|
|
103
|
-
/// </summary>
|
|
104
|
-
protected bool animating = false;
|
|
105
|
-
|
|
106
|
-
/// <summary>
|
|
107
|
-
///
|
|
108
|
-
/// </summary>
|
|
109
|
-
protected Actor actor;
|
|
110
|
-
|
|
111
|
-
/// <summary>
|
|
112
|
-
///
|
|
113
|
-
/// </summary>
|
|
114
|
-
protected MeshRenderer characterMesh = null;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
/// <summary>
|
|
118
|
-
///
|
|
119
|
-
/// </summary>
|
|
120
|
-
protected virtual void Start() => trialCamera = FindAnyObjectByType<DRTrialCamera>();
|
|
121
|
-
|
|
122
|
-
/// <summary>
|
|
123
|
-
///
|
|
124
|
-
/// </summary>
|
|
125
|
-
/// <remarks></remarks>
|
|
126
|
-
public virtual void Flash()
|
|
127
|
-
{
|
|
128
|
-
Talkable talkable = GetTalkable();
|
|
129
|
-
|
|
130
|
-
if (talkable == null)
|
|
131
|
-
return;
|
|
132
|
-
|
|
133
|
-
actor = talkable as Actor;
|
|
134
|
-
|
|
135
|
-
StartCoroutine(FlashOnCharacter());
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/// <summary>
|
|
139
|
-
///
|
|
140
|
-
/// </summary>
|
|
141
|
-
/// <returns></returns>
|
|
142
|
-
protected virtual Talkable GetTalkable()
|
|
143
|
-
{
|
|
144
|
-
seatPos = Mathf.RoundToInt(trialCamera.SeatFocus);
|
|
145
|
-
|
|
146
|
-
foreach (var character in characterDatabase.Characters)
|
|
147
|
-
if (character.TrialPosition == seatPos)
|
|
148
|
-
return ServiceLocator.GetService<IObjectPooler<Talkable>>().GetObjectByName(character.FirstName);
|
|
149
|
-
|
|
150
|
-
UnityEngine.Debug.LogError($"{ToString()}: Could not find character for seat position {seatPos}");
|
|
151
|
-
|
|
152
|
-
return null;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/// <summary>
|
|
156
|
-
///
|
|
157
|
-
/// </summary>
|
|
158
|
-
protected virtual IEnumerator FlashOnCharacter()
|
|
159
|
-
{
|
|
160
|
-
PrepareAnimation();
|
|
161
|
-
|
|
162
|
-
yield return AnimateFlash();
|
|
163
|
-
|
|
164
|
-
ResolveAnimation();
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/// <summary>
|
|
168
|
-
///
|
|
169
|
-
/// </summary>
|
|
170
|
-
protected virtual void PrepareAnimation()
|
|
171
|
-
{
|
|
172
|
-
PrepareMaterial();
|
|
173
|
-
|
|
174
|
-
SetMaterialColor();
|
|
175
|
-
|
|
176
|
-
animating = true;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/// <summary>
|
|
180
|
-
///
|
|
181
|
-
/// </summary>
|
|
182
|
-
protected virtual void PrepareMaterial()
|
|
183
|
-
{
|
|
184
|
-
characterMesh = actor.GetComponentInChildren<MeshRenderer>();
|
|
185
|
-
|
|
186
|
-
originalMaterial = characterMesh.material;
|
|
187
|
-
|
|
188
|
-
defaultColor = material.GetColor(shaderColorID);
|
|
189
|
-
|
|
190
|
-
material.mainTexture = originalMaterial.mainTexture;
|
|
191
|
-
|
|
192
|
-
characterMesh.material = material;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/// <summary>
|
|
196
|
-
///
|
|
197
|
-
/// </summary>
|
|
198
|
-
protected virtual void SetMaterialColor()
|
|
199
|
-
{
|
|
200
|
-
if (seatPos < colors.Count)
|
|
201
|
-
{
|
|
202
|
-
Color color = colors[seatPos];
|
|
203
|
-
|
|
204
|
-
characterMesh.material.SetColor(shaderColorID, new Color(color.r, color.g, color.b, 0));
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
/// <summary>
|
|
209
|
-
///
|
|
210
|
-
/// </summary>
|
|
211
|
-
protected virtual IEnumerator AnimateFlash()
|
|
212
|
-
{
|
|
213
|
-
StartCoroutine(Setter());
|
|
214
|
-
#if DOTWEEN
|
|
215
|
-
DOTween.To(() => currentAlpha, y => currentAlpha = y, alphaTo, animTime)
|
|
216
|
-
.SetLoops(loops, loopType);
|
|
217
|
-
#endif
|
|
218
|
-
yield return new WaitForSeconds(animTime * loops);
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/// <summary>
|
|
222
|
-
///
|
|
223
|
-
/// </summary>
|
|
224
|
-
protected virtual IEnumerator Setter()
|
|
225
|
-
{
|
|
226
|
-
Color actorColor = characterMesh.material.GetColor(shaderColorID);
|
|
227
|
-
|
|
228
|
-
while (animating)
|
|
229
|
-
{
|
|
230
|
-
Color updated = new(actorColor.r, actorColor.g, actorColor.b, currentAlpha);
|
|
231
|
-
|
|
232
|
-
characterMesh.material.SetColor(shaderColorID, updated);
|
|
233
|
-
|
|
234
|
-
yield return new WaitForSeconds(Time.deltaTime * 2);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
UnityEngine.Debug.Log($"{ToString()}: Setter Finished!");
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/// <summary>
|
|
241
|
-
///
|
|
242
|
-
/// </summary>
|
|
243
|
-
protected virtual void ResolveAnimation()
|
|
244
|
-
{
|
|
245
|
-
characterMesh.material = originalMaterial;
|
|
246
|
-
|
|
247
|
-
material.mainTexture = null;
|
|
248
|
-
|
|
249
|
-
material.SetColor(shaderColorID, defaultColor);
|
|
250
|
-
|
|
251
|
-
animating = false;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/// <summary>
|
|
255
|
-
///
|
|
256
|
-
/// </summary>
|
|
257
|
-
/// <remarks></remarks>
|
|
258
|
-
protected virtual void OnDisable() => animating = false;
|
|
259
|
-
}
|
|
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.Cameras;
|
|
6
|
+
using DREditor.Characters;
|
|
7
|
+
using DREditor.Services;
|
|
8
|
+
using DREditor.Talkables;
|
|
9
|
+
using System.Collections;
|
|
10
|
+
using System.Collections.Generic;
|
|
11
|
+
using UnityEngine;
|
|
12
|
+
using UnityEngine.Serialization;
|
|
13
|
+
|
|
14
|
+
namespace DREditor.Actors.Events
|
|
15
|
+
{
|
|
16
|
+
/// <summary>
|
|
17
|
+
///
|
|
18
|
+
/// </summary>
|
|
19
|
+
/// <remarks></remarks>
|
|
20
|
+
[ClassHeader("")]
|
|
21
|
+
public class BSTrialActorFlash : MonoBehaviour
|
|
22
|
+
{
|
|
23
|
+
/// <summary>
|
|
24
|
+
///
|
|
25
|
+
/// </summary>
|
|
26
|
+
[Tooltip("")]
|
|
27
|
+
[SerializeField] protected CharacterDatabase characterDatabase = null;
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
/// <summary>
|
|
31
|
+
///
|
|
32
|
+
/// </summary>
|
|
33
|
+
[Header("")]
|
|
34
|
+
[Divider]
|
|
35
|
+
[Tooltip("")]
|
|
36
|
+
[FormerlySerializedAs("mat")]
|
|
37
|
+
[SerializeField] protected Material material = null;
|
|
38
|
+
|
|
39
|
+
/// <summary>
|
|
40
|
+
///
|
|
41
|
+
/// </summary>
|
|
42
|
+
[Tooltip("")]
|
|
43
|
+
[SerializeField] protected string shaderColorID = "outlineColor";
|
|
44
|
+
|
|
45
|
+
/// <summary>
|
|
46
|
+
///
|
|
47
|
+
/// </summary>
|
|
48
|
+
[Tooltip("")]
|
|
49
|
+
[SerializeField] protected float animTime = .125f;
|
|
50
|
+
|
|
51
|
+
/// <summary>
|
|
52
|
+
///
|
|
53
|
+
/// </summary>
|
|
54
|
+
[Tooltip("")]
|
|
55
|
+
[SerializeField] protected float alphaTo = .5f;
|
|
56
|
+
|
|
57
|
+
/// <summary>
|
|
58
|
+
///
|
|
59
|
+
/// </summary>
|
|
60
|
+
[Tooltip("")]
|
|
61
|
+
[SerializeField] protected int loops = 4;
|
|
62
|
+
#if DOTWEEN
|
|
63
|
+
/// <summary>
|
|
64
|
+
///
|
|
65
|
+
/// </summary>
|
|
66
|
+
[Tooltip("")]
|
|
67
|
+
[SerializeField] protected LoopType loopType = LoopType.Yoyo;
|
|
68
|
+
#endif
|
|
69
|
+
/// <summary>
|
|
70
|
+
///
|
|
71
|
+
/// </summary>
|
|
72
|
+
[Tooltip("")]
|
|
73
|
+
[SerializeField] List<Color> colors = new();
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
/// <summary>
|
|
77
|
+
///
|
|
78
|
+
/// </summary>
|
|
79
|
+
protected DRTrialCamera trialCamera = null;
|
|
80
|
+
|
|
81
|
+
/// <summary>
|
|
82
|
+
///
|
|
83
|
+
/// </summary>
|
|
84
|
+
protected int seatPos = 0;
|
|
85
|
+
|
|
86
|
+
/// <summary>
|
|
87
|
+
///
|
|
88
|
+
/// </summary>
|
|
89
|
+
protected Material originalMaterial = null;
|
|
90
|
+
|
|
91
|
+
/// <summary>
|
|
92
|
+
///
|
|
93
|
+
/// </summary>
|
|
94
|
+
protected Color defaultColor;
|
|
95
|
+
|
|
96
|
+
/// <summary>
|
|
97
|
+
///
|
|
98
|
+
/// </summary>
|
|
99
|
+
protected float currentAlpha = 0;
|
|
100
|
+
|
|
101
|
+
/// <summary>
|
|
102
|
+
///
|
|
103
|
+
/// </summary>
|
|
104
|
+
protected bool animating = false;
|
|
105
|
+
|
|
106
|
+
/// <summary>
|
|
107
|
+
///
|
|
108
|
+
/// </summary>
|
|
109
|
+
protected Actor actor;
|
|
110
|
+
|
|
111
|
+
/// <summary>
|
|
112
|
+
///
|
|
113
|
+
/// </summary>
|
|
114
|
+
protected MeshRenderer characterMesh = null;
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
/// <summary>
|
|
118
|
+
///
|
|
119
|
+
/// </summary>
|
|
120
|
+
protected virtual void Start() => trialCamera = FindAnyObjectByType<DRTrialCamera>();
|
|
121
|
+
|
|
122
|
+
/// <summary>
|
|
123
|
+
///
|
|
124
|
+
/// </summary>
|
|
125
|
+
/// <remarks></remarks>
|
|
126
|
+
public virtual void Flash()
|
|
127
|
+
{
|
|
128
|
+
Talkable talkable = GetTalkable();
|
|
129
|
+
|
|
130
|
+
if (talkable == null)
|
|
131
|
+
return;
|
|
132
|
+
|
|
133
|
+
actor = talkable as Actor;
|
|
134
|
+
|
|
135
|
+
StartCoroutine(FlashOnCharacter());
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/// <summary>
|
|
139
|
+
///
|
|
140
|
+
/// </summary>
|
|
141
|
+
/// <returns></returns>
|
|
142
|
+
protected virtual Talkable GetTalkable()
|
|
143
|
+
{
|
|
144
|
+
seatPos = Mathf.RoundToInt(trialCamera.SeatFocus);
|
|
145
|
+
|
|
146
|
+
foreach (var character in characterDatabase.Characters)
|
|
147
|
+
if (character.TrialPosition == seatPos)
|
|
148
|
+
return ServiceLocator.GetService<IObjectPooler<Talkable>>().GetObjectByName(character.FirstName);
|
|
149
|
+
|
|
150
|
+
UnityEngine.Debug.LogError($"{ToString()}: Could not find character for seat position {seatPos}");
|
|
151
|
+
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/// <summary>
|
|
156
|
+
///
|
|
157
|
+
/// </summary>
|
|
158
|
+
protected virtual IEnumerator FlashOnCharacter()
|
|
159
|
+
{
|
|
160
|
+
PrepareAnimation();
|
|
161
|
+
|
|
162
|
+
yield return AnimateFlash();
|
|
163
|
+
|
|
164
|
+
ResolveAnimation();
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/// <summary>
|
|
168
|
+
///
|
|
169
|
+
/// </summary>
|
|
170
|
+
protected virtual void PrepareAnimation()
|
|
171
|
+
{
|
|
172
|
+
PrepareMaterial();
|
|
173
|
+
|
|
174
|
+
SetMaterialColor();
|
|
175
|
+
|
|
176
|
+
animating = true;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/// <summary>
|
|
180
|
+
///
|
|
181
|
+
/// </summary>
|
|
182
|
+
protected virtual void PrepareMaterial()
|
|
183
|
+
{
|
|
184
|
+
characterMesh = actor.GetComponentInChildren<MeshRenderer>();
|
|
185
|
+
|
|
186
|
+
originalMaterial = characterMesh.material;
|
|
187
|
+
|
|
188
|
+
defaultColor = material.GetColor(shaderColorID);
|
|
189
|
+
|
|
190
|
+
material.mainTexture = originalMaterial.mainTexture;
|
|
191
|
+
|
|
192
|
+
characterMesh.material = material;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/// <summary>
|
|
196
|
+
///
|
|
197
|
+
/// </summary>
|
|
198
|
+
protected virtual void SetMaterialColor()
|
|
199
|
+
{
|
|
200
|
+
if (seatPos < colors.Count)
|
|
201
|
+
{
|
|
202
|
+
Color color = colors[seatPos];
|
|
203
|
+
|
|
204
|
+
characterMesh.material.SetColor(shaderColorID, new Color(color.r, color.g, color.b, 0));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/// <summary>
|
|
209
|
+
///
|
|
210
|
+
/// </summary>
|
|
211
|
+
protected virtual IEnumerator AnimateFlash()
|
|
212
|
+
{
|
|
213
|
+
StartCoroutine(Setter());
|
|
214
|
+
#if DOTWEEN
|
|
215
|
+
DOTween.To(() => currentAlpha, y => currentAlpha = y, alphaTo, animTime)
|
|
216
|
+
.SetLoops(loops, loopType);
|
|
217
|
+
#endif
|
|
218
|
+
yield return new WaitForSeconds(animTime * loops);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/// <summary>
|
|
222
|
+
///
|
|
223
|
+
/// </summary>
|
|
224
|
+
protected virtual IEnumerator Setter()
|
|
225
|
+
{
|
|
226
|
+
Color actorColor = characterMesh.material.GetColor(shaderColorID);
|
|
227
|
+
|
|
228
|
+
while (animating)
|
|
229
|
+
{
|
|
230
|
+
Color updated = new(actorColor.r, actorColor.g, actorColor.b, currentAlpha);
|
|
231
|
+
|
|
232
|
+
characterMesh.material.SetColor(shaderColorID, updated);
|
|
233
|
+
|
|
234
|
+
yield return new WaitForSeconds(Time.deltaTime * 2);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
UnityEngine.Debug.Log($"{ToString()}: Setter Finished!");
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/// <summary>
|
|
241
|
+
///
|
|
242
|
+
/// </summary>
|
|
243
|
+
protected virtual void ResolveAnimation()
|
|
244
|
+
{
|
|
245
|
+
characterMesh.material = originalMaterial;
|
|
246
|
+
|
|
247
|
+
material.mainTexture = null;
|
|
248
|
+
|
|
249
|
+
material.SetColor(shaderColorID, defaultColor);
|
|
250
|
+
|
|
251
|
+
animating = false;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/// <summary>
|
|
255
|
+
///
|
|
256
|
+
/// </summary>
|
|
257
|
+
/// <remarks></remarks>
|
|
258
|
+
protected virtual void OnDisable() => animating = false;
|
|
259
|
+
}
|
|
260
260
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: fe8c2aaddefd7414d952edb6ec307a28
|
|
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: fe8c2aaddefd7414d952edb6ec307a28
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using DREditor.Characters;
|
|
3
|
-
using DREditor.DialogueEventHandling;
|
|
4
|
-
using DREditor.Dialogues.Events;
|
|
5
|
-
using DREditor.EventObjects;
|
|
6
|
-
using DREditor.Services;
|
|
7
|
-
using DREditor.Talkables;
|
|
8
|
-
using UnityEngine;
|
|
9
|
-
|
|
10
|
-
namespace DREditor.Actors.Events
|
|
11
|
-
{
|
|
12
|
-
/// <summary>
|
|
13
|
-
///
|
|
14
|
-
/// </summary>
|
|
15
|
-
[ClassHeader(nameof(DialogueEventHandler) +
|
|
16
|
-
"\n\n")]
|
|
17
|
-
public class ChangeLastFocusEvent : DialogueEventHandler
|
|
18
|
-
{
|
|
19
|
-
/// <summary>
|
|
20
|
-
///
|
|
21
|
-
/// </summary>
|
|
22
|
-
[Tooltip("")]
|
|
23
|
-
[SerializeField] protected CharacterDatabase characterDatabase = null;
|
|
24
|
-
|
|
25
|
-
/// <summary>
|
|
26
|
-
///
|
|
27
|
-
/// </summary>
|
|
28
|
-
[Tooltip("")]
|
|
29
|
-
[SerializeField] protected BoolWithEvent isLoadingFile = null;
|
|
30
|
-
|
|
31
|
-
/// <summary>
|
|
32
|
-
///
|
|
33
|
-
/// </summary>
|
|
34
|
-
[Tooltip("")]
|
|
35
|
-
[SerializeField] protected FocusHandler focusHandler = null;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
/// <summary>
|
|
39
|
-
///
|
|
40
|
-
/// </summary>
|
|
41
|
-
/// <param name="o"></param>
|
|
42
|
-
protected override void OnDialogueEventTriggered(object o = null)
|
|
43
|
-
{
|
|
44
|
-
LastActorSprite laEvent = (LastActorSprite)o;
|
|
45
|
-
|
|
46
|
-
Character character = characterDatabase.Characters[laEvent.charNum];
|
|
47
|
-
|
|
48
|
-
Actor actor = null;
|
|
49
|
-
|
|
50
|
-
if (character != null)
|
|
51
|
-
actor = ServiceLocator.GetService<IObjectPooler<Talkable>>().GetObjectByName(character.FirstName) as Actor;
|
|
52
|
-
|
|
53
|
-
if (isLoadingFile.Value && actor != null)
|
|
54
|
-
focusHandler.ChangeFocus(actor, null);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/// <summary>
|
|
58
|
-
///
|
|
59
|
-
/// </summary>
|
|
60
|
-
[ContextMenu("Set Default Event")]
|
|
61
|
-
public void SetDefaultEvent() => SetDefaultEventString("ChangeLast");
|
|
62
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using DREditor.Characters;
|
|
3
|
+
using DREditor.DialogueEventHandling;
|
|
4
|
+
using DREditor.Dialogues.Events;
|
|
5
|
+
using DREditor.EventObjects;
|
|
6
|
+
using DREditor.Services;
|
|
7
|
+
using DREditor.Talkables;
|
|
8
|
+
using UnityEngine;
|
|
9
|
+
|
|
10
|
+
namespace DREditor.Actors.Events
|
|
11
|
+
{
|
|
12
|
+
/// <summary>
|
|
13
|
+
///
|
|
14
|
+
/// </summary>
|
|
15
|
+
[ClassHeader(nameof(DialogueEventHandler) +
|
|
16
|
+
"\n\n")]
|
|
17
|
+
public class ChangeLastFocusEvent : DialogueEventHandler
|
|
18
|
+
{
|
|
19
|
+
/// <summary>
|
|
20
|
+
///
|
|
21
|
+
/// </summary>
|
|
22
|
+
[Tooltip("")]
|
|
23
|
+
[SerializeField] protected CharacterDatabase characterDatabase = null;
|
|
24
|
+
|
|
25
|
+
/// <summary>
|
|
26
|
+
///
|
|
27
|
+
/// </summary>
|
|
28
|
+
[Tooltip("")]
|
|
29
|
+
[SerializeField] protected BoolWithEvent isLoadingFile = null;
|
|
30
|
+
|
|
31
|
+
/// <summary>
|
|
32
|
+
///
|
|
33
|
+
/// </summary>
|
|
34
|
+
[Tooltip("")]
|
|
35
|
+
[SerializeField] protected FocusHandler focusHandler = null;
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
/// <summary>
|
|
39
|
+
///
|
|
40
|
+
/// </summary>
|
|
41
|
+
/// <param name="o"></param>
|
|
42
|
+
protected override void OnDialogueEventTriggered(object o = null)
|
|
43
|
+
{
|
|
44
|
+
LastActorSprite laEvent = (LastActorSprite)o;
|
|
45
|
+
|
|
46
|
+
Character character = characterDatabase.Characters[laEvent.charNum];
|
|
47
|
+
|
|
48
|
+
Actor actor = null;
|
|
49
|
+
|
|
50
|
+
if (character != null)
|
|
51
|
+
actor = ServiceLocator.GetService<IObjectPooler<Talkable>>().GetObjectByName(character.FirstName) as Actor;
|
|
52
|
+
|
|
53
|
+
if (isLoadingFile.Value && actor != null)
|
|
54
|
+
focusHandler.ChangeFocus(actor, null);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/// <summary>
|
|
58
|
+
///
|
|
59
|
+
/// </summary>
|
|
60
|
+
[ContextMenu("Set Default Event")]
|
|
61
|
+
public void SetDefaultEvent() => SetDefaultEventString("ChangeLast");
|
|
62
|
+
}
|
|
63
63
|
}
|