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
package/Editor/CircleDrawer.cs
CHANGED
|
@@ -1,207 +1,207 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using System;
|
|
3
|
-
using UnityEditor;
|
|
4
|
-
using UnityEngine;
|
|
5
|
-
|
|
6
|
-
namespace DREditor.Actors.Editor
|
|
7
|
-
{
|
|
8
|
-
/// <summary>
|
|
9
|
-
///
|
|
10
|
-
/// </summary>
|
|
11
|
-
[Serializable]
|
|
12
|
-
public class CircleDrawer
|
|
13
|
-
{
|
|
14
|
-
/// <summary>
|
|
15
|
-
///
|
|
16
|
-
/// </summary>
|
|
17
|
-
[Range(0, 360f)]
|
|
18
|
-
[Tooltip("")]
|
|
19
|
-
[SerializeField] protected float totalDegrees = CircleUtility.DegreesInCircle;
|
|
20
|
-
|
|
21
|
-
/// <summary>
|
|
22
|
-
///
|
|
23
|
-
/// </summary>
|
|
24
|
-
[Range(-360f, 360f)]
|
|
25
|
-
[Tooltip("")]
|
|
26
|
-
[SerializeField] protected float startingDegreeOffset = -90f;
|
|
27
|
-
|
|
28
|
-
/// <summary>
|
|
29
|
-
///
|
|
30
|
-
/// </summary>
|
|
31
|
-
[Tooltip("")]
|
|
32
|
-
[SerializeField] protected Color circleColor = new(1f, 1f, 1f, 0.2f);
|
|
33
|
-
|
|
34
|
-
/// <summary>
|
|
35
|
-
///
|
|
36
|
-
/// </summary>
|
|
37
|
-
[Tooltip("")]
|
|
38
|
-
[SerializeField] protected float aroundCircleWidth = 120f;
|
|
39
|
-
|
|
40
|
-
/// <summary>
|
|
41
|
-
///
|
|
42
|
-
/// </summary>
|
|
43
|
-
[Tooltip("")]
|
|
44
|
-
[SerializeField] protected float aroundCircleHeight = 20f;
|
|
45
|
-
|
|
46
|
-
/// <summary>
|
|
47
|
-
///
|
|
48
|
-
/// </summary>
|
|
49
|
-
[Tooltip("")]
|
|
50
|
-
[SerializeField] protected float circleAreaHeight = 600f;
|
|
51
|
-
|
|
52
|
-
/// <summary>
|
|
53
|
-
///
|
|
54
|
-
/// </summary>
|
|
55
|
-
[Tooltip("")]
|
|
56
|
-
[SerializeField] protected float dimensionMultiplier = 0.4f;
|
|
57
|
-
|
|
58
|
-
/// <summary>
|
|
59
|
-
///
|
|
60
|
-
/// </summary>
|
|
61
|
-
[Tooltip("")]
|
|
62
|
-
[SerializeField] protected float aroundXOffset = 113;
|
|
63
|
-
|
|
64
|
-
/// <summary>
|
|
65
|
-
///
|
|
66
|
-
/// </summary>
|
|
67
|
-
[Tooltip("")]
|
|
68
|
-
[SerializeField] protected float aroundYOffset = 40;
|
|
69
|
-
|
|
70
|
-
/// <summary>
|
|
71
|
-
///
|
|
72
|
-
/// </summary>
|
|
73
|
-
[Tooltip("")]
|
|
74
|
-
[SerializeField] protected float addHeight = 0;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
/// <summary>
|
|
78
|
-
///
|
|
79
|
-
/// </summary>
|
|
80
|
-
protected Rect areaRect;
|
|
81
|
-
|
|
82
|
-
/// <summary>
|
|
83
|
-
///
|
|
84
|
-
/// </summary>
|
|
85
|
-
protected Vector2 center;
|
|
86
|
-
|
|
87
|
-
/// <summary>
|
|
88
|
-
///
|
|
89
|
-
/// </summary>
|
|
90
|
-
protected float radius;
|
|
91
|
-
|
|
92
|
-
/// <summary>
|
|
93
|
-
///
|
|
94
|
-
/// </summary>
|
|
95
|
-
private const float CenteringHalf = 0.5f;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
/// <summary>
|
|
99
|
-
///
|
|
100
|
-
/// </summary>
|
|
101
|
-
/// <param name="colored"></param>
|
|
102
|
-
public virtual void Draw(bool colored = true)
|
|
103
|
-
{
|
|
104
|
-
if (colored)
|
|
105
|
-
CircleUtility.DrawColoredCircle(DrawCircle, circleColor);
|
|
106
|
-
else
|
|
107
|
-
DrawCircle();
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/// <summary>
|
|
111
|
-
///
|
|
112
|
-
/// </summary>
|
|
113
|
-
protected virtual void DrawCircle()
|
|
114
|
-
{
|
|
115
|
-
areaRect = CircleUtility.CreateDefaultCircleRect(circleAreaHeight + addHeight);
|
|
116
|
-
|
|
117
|
-
center = areaRect.center;
|
|
118
|
-
|
|
119
|
-
center.y += addHeight;
|
|
120
|
-
|
|
121
|
-
radius = Mathf.Max(0f, MinimumRadius() * dimensionMultiplier);
|
|
122
|
-
|
|
123
|
-
CircleUtility.DrawCircle(center, Vector3.forward, radius);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/// <summary>
|
|
127
|
-
///
|
|
128
|
-
/// </summary>
|
|
129
|
-
/// <returns></returns>
|
|
130
|
-
protected virtual float MinimumRadius() => Mathf.Min(areaRect.width - aroundCircleWidth, areaRect.height - aroundCircleHeight);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
/// <summary>
|
|
134
|
-
///
|
|
135
|
-
/// </summary>
|
|
136
|
-
/// <param name="objectCount"></param>
|
|
137
|
-
/// <param name="drawObject"></param>
|
|
138
|
-
/// <param name="onChanged"></param>
|
|
139
|
-
public virtual void DrawObjectsAround(int objectCount, Action<Rect, int> drawObject, Action onChanged)
|
|
140
|
-
{
|
|
141
|
-
for (int slot = 0; slot < objectCount; slot++)
|
|
142
|
-
DrawObjectAroundAt(objectCount, slot, drawObject, onChanged);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/// <summary>
|
|
146
|
-
///
|
|
147
|
-
/// </summary>
|
|
148
|
-
/// <param name="objectCount"></param>
|
|
149
|
-
/// <param name="slot"></param>
|
|
150
|
-
/// <param name="drawObject"></param>
|
|
151
|
-
/// <param name="onChanged"></param>
|
|
152
|
-
protected virtual void DrawObjectAroundAt(int objectCount, int slot, Action<Rect, int> drawObject, Action onChanged)
|
|
153
|
-
{
|
|
154
|
-
float angle = CalculateAngleStep(objectCount, slot);
|
|
155
|
-
|
|
156
|
-
Vector2 pos = GetPositionAt(angle);
|
|
157
|
-
|
|
158
|
-
float x = CalculateCoordinate(pos.x, aroundCircleWidth);
|
|
159
|
-
|
|
160
|
-
float y = CalculateCoordinate(pos.y, aroundCircleHeight);
|
|
161
|
-
|
|
162
|
-
Rect aroundCircleRect = new(x, y, aroundCircleWidth, aroundCircleHeight);
|
|
163
|
-
|
|
164
|
-
EditorGUI.BeginChangeCheck();
|
|
165
|
-
|
|
166
|
-
drawObject(aroundCircleRect, slot);
|
|
167
|
-
|
|
168
|
-
if (EditorGUI.EndChangeCheck())
|
|
169
|
-
onChanged();
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/// <summary>
|
|
173
|
-
///
|
|
174
|
-
/// </summary>
|
|
175
|
-
/// <param name="objectCount"></param>
|
|
176
|
-
/// <param name="slot"></param>
|
|
177
|
-
/// <returns></returns>
|
|
178
|
-
protected virtual float CalculateAngleStep(int objectCount, int slot) =>
|
|
179
|
-
(startingDegreeOffset + totalDegrees * slot / objectCount) * Mathf.Deg2Rad;
|
|
180
|
-
|
|
181
|
-
/// <summary>
|
|
182
|
-
///
|
|
183
|
-
/// </summary>
|
|
184
|
-
/// <param name="angle"></param>
|
|
185
|
-
/// <returns></returns>
|
|
186
|
-
protected virtual Vector2 GetPositionAt(float angle)
|
|
187
|
-
{
|
|
188
|
-
Vector2 direction = new(Mathf.Cos(angle), Mathf.Sin(angle));
|
|
189
|
-
|
|
190
|
-
Vector2 pos = center + direction * radius;
|
|
191
|
-
|
|
192
|
-
pos.x += direction.x * aroundXOffset;
|
|
193
|
-
|
|
194
|
-
pos.y += direction.y * aroundYOffset;
|
|
195
|
-
|
|
196
|
-
return pos;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/// <summary>
|
|
200
|
-
///
|
|
201
|
-
/// </summary>
|
|
202
|
-
/// <param name="coord"></param>
|
|
203
|
-
/// <param name="subtractedOffset"></param>
|
|
204
|
-
/// <returns></returns>
|
|
205
|
-
protected virtual float CalculateCoordinate(float coord, float subtractedOffset) => coord - subtractedOffset * CenteringHalf;
|
|
206
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using System;
|
|
3
|
+
using UnityEditor;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
|
|
6
|
+
namespace DREditor.Actors.Editor
|
|
7
|
+
{
|
|
8
|
+
/// <summary>
|
|
9
|
+
///
|
|
10
|
+
/// </summary>
|
|
11
|
+
[Serializable]
|
|
12
|
+
public class CircleDrawer
|
|
13
|
+
{
|
|
14
|
+
/// <summary>
|
|
15
|
+
///
|
|
16
|
+
/// </summary>
|
|
17
|
+
[Range(0, 360f)]
|
|
18
|
+
[Tooltip("")]
|
|
19
|
+
[SerializeField] protected float totalDegrees = CircleUtility.DegreesInCircle;
|
|
20
|
+
|
|
21
|
+
/// <summary>
|
|
22
|
+
///
|
|
23
|
+
/// </summary>
|
|
24
|
+
[Range(-360f, 360f)]
|
|
25
|
+
[Tooltip("")]
|
|
26
|
+
[SerializeField] protected float startingDegreeOffset = -90f;
|
|
27
|
+
|
|
28
|
+
/// <summary>
|
|
29
|
+
///
|
|
30
|
+
/// </summary>
|
|
31
|
+
[Tooltip("")]
|
|
32
|
+
[SerializeField] protected Color circleColor = new(1f, 1f, 1f, 0.2f);
|
|
33
|
+
|
|
34
|
+
/// <summary>
|
|
35
|
+
///
|
|
36
|
+
/// </summary>
|
|
37
|
+
[Tooltip("")]
|
|
38
|
+
[SerializeField] protected float aroundCircleWidth = 120f;
|
|
39
|
+
|
|
40
|
+
/// <summary>
|
|
41
|
+
///
|
|
42
|
+
/// </summary>
|
|
43
|
+
[Tooltip("")]
|
|
44
|
+
[SerializeField] protected float aroundCircleHeight = 20f;
|
|
45
|
+
|
|
46
|
+
/// <summary>
|
|
47
|
+
///
|
|
48
|
+
/// </summary>
|
|
49
|
+
[Tooltip("")]
|
|
50
|
+
[SerializeField] protected float circleAreaHeight = 600f;
|
|
51
|
+
|
|
52
|
+
/// <summary>
|
|
53
|
+
///
|
|
54
|
+
/// </summary>
|
|
55
|
+
[Tooltip("")]
|
|
56
|
+
[SerializeField] protected float dimensionMultiplier = 0.4f;
|
|
57
|
+
|
|
58
|
+
/// <summary>
|
|
59
|
+
///
|
|
60
|
+
/// </summary>
|
|
61
|
+
[Tooltip("")]
|
|
62
|
+
[SerializeField] protected float aroundXOffset = 113;
|
|
63
|
+
|
|
64
|
+
/// <summary>
|
|
65
|
+
///
|
|
66
|
+
/// </summary>
|
|
67
|
+
[Tooltip("")]
|
|
68
|
+
[SerializeField] protected float aroundYOffset = 40;
|
|
69
|
+
|
|
70
|
+
/// <summary>
|
|
71
|
+
///
|
|
72
|
+
/// </summary>
|
|
73
|
+
[Tooltip("")]
|
|
74
|
+
[SerializeField] protected float addHeight = 0;
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
/// <summary>
|
|
78
|
+
///
|
|
79
|
+
/// </summary>
|
|
80
|
+
protected Rect areaRect;
|
|
81
|
+
|
|
82
|
+
/// <summary>
|
|
83
|
+
///
|
|
84
|
+
/// </summary>
|
|
85
|
+
protected Vector2 center;
|
|
86
|
+
|
|
87
|
+
/// <summary>
|
|
88
|
+
///
|
|
89
|
+
/// </summary>
|
|
90
|
+
protected float radius;
|
|
91
|
+
|
|
92
|
+
/// <summary>
|
|
93
|
+
///
|
|
94
|
+
/// </summary>
|
|
95
|
+
private const float CenteringHalf = 0.5f;
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
/// <summary>
|
|
99
|
+
///
|
|
100
|
+
/// </summary>
|
|
101
|
+
/// <param name="colored"></param>
|
|
102
|
+
public virtual void Draw(bool colored = true)
|
|
103
|
+
{
|
|
104
|
+
if (colored)
|
|
105
|
+
CircleUtility.DrawColoredCircle(DrawCircle, circleColor);
|
|
106
|
+
else
|
|
107
|
+
DrawCircle();
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/// <summary>
|
|
111
|
+
///
|
|
112
|
+
/// </summary>
|
|
113
|
+
protected virtual void DrawCircle()
|
|
114
|
+
{
|
|
115
|
+
areaRect = CircleUtility.CreateDefaultCircleRect(circleAreaHeight + addHeight);
|
|
116
|
+
|
|
117
|
+
center = areaRect.center;
|
|
118
|
+
|
|
119
|
+
center.y += addHeight;
|
|
120
|
+
|
|
121
|
+
radius = Mathf.Max(0f, MinimumRadius() * dimensionMultiplier);
|
|
122
|
+
|
|
123
|
+
CircleUtility.DrawCircle(center, Vector3.forward, radius);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/// <summary>
|
|
127
|
+
///
|
|
128
|
+
/// </summary>
|
|
129
|
+
/// <returns></returns>
|
|
130
|
+
protected virtual float MinimumRadius() => Mathf.Min(areaRect.width - aroundCircleWidth, areaRect.height - aroundCircleHeight);
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
/// <summary>
|
|
134
|
+
///
|
|
135
|
+
/// </summary>
|
|
136
|
+
/// <param name="objectCount"></param>
|
|
137
|
+
/// <param name="drawObject"></param>
|
|
138
|
+
/// <param name="onChanged"></param>
|
|
139
|
+
public virtual void DrawObjectsAround(int objectCount, Action<Rect, int> drawObject, Action onChanged)
|
|
140
|
+
{
|
|
141
|
+
for (int slot = 0; slot < objectCount; slot++)
|
|
142
|
+
DrawObjectAroundAt(objectCount, slot, drawObject, onChanged);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/// <summary>
|
|
146
|
+
///
|
|
147
|
+
/// </summary>
|
|
148
|
+
/// <param name="objectCount"></param>
|
|
149
|
+
/// <param name="slot"></param>
|
|
150
|
+
/// <param name="drawObject"></param>
|
|
151
|
+
/// <param name="onChanged"></param>
|
|
152
|
+
protected virtual void DrawObjectAroundAt(int objectCount, int slot, Action<Rect, int> drawObject, Action onChanged)
|
|
153
|
+
{
|
|
154
|
+
float angle = CalculateAngleStep(objectCount, slot);
|
|
155
|
+
|
|
156
|
+
Vector2 pos = GetPositionAt(angle);
|
|
157
|
+
|
|
158
|
+
float x = CalculateCoordinate(pos.x, aroundCircleWidth);
|
|
159
|
+
|
|
160
|
+
float y = CalculateCoordinate(pos.y, aroundCircleHeight);
|
|
161
|
+
|
|
162
|
+
Rect aroundCircleRect = new(x, y, aroundCircleWidth, aroundCircleHeight);
|
|
163
|
+
|
|
164
|
+
EditorGUI.BeginChangeCheck();
|
|
165
|
+
|
|
166
|
+
drawObject(aroundCircleRect, slot);
|
|
167
|
+
|
|
168
|
+
if (EditorGUI.EndChangeCheck())
|
|
169
|
+
onChanged();
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/// <summary>
|
|
173
|
+
///
|
|
174
|
+
/// </summary>
|
|
175
|
+
/// <param name="objectCount"></param>
|
|
176
|
+
/// <param name="slot"></param>
|
|
177
|
+
/// <returns></returns>
|
|
178
|
+
protected virtual float CalculateAngleStep(int objectCount, int slot) =>
|
|
179
|
+
(startingDegreeOffset + totalDegrees * slot / objectCount) * Mathf.Deg2Rad;
|
|
180
|
+
|
|
181
|
+
/// <summary>
|
|
182
|
+
///
|
|
183
|
+
/// </summary>
|
|
184
|
+
/// <param name="angle"></param>
|
|
185
|
+
/// <returns></returns>
|
|
186
|
+
protected virtual Vector2 GetPositionAt(float angle)
|
|
187
|
+
{
|
|
188
|
+
Vector2 direction = new(Mathf.Cos(angle), Mathf.Sin(angle));
|
|
189
|
+
|
|
190
|
+
Vector2 pos = center + direction * radius;
|
|
191
|
+
|
|
192
|
+
pos.x += direction.x * aroundXOffset;
|
|
193
|
+
|
|
194
|
+
pos.y += direction.y * aroundYOffset;
|
|
195
|
+
|
|
196
|
+
return pos;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/// <summary>
|
|
200
|
+
///
|
|
201
|
+
/// </summary>
|
|
202
|
+
/// <param name="coord"></param>
|
|
203
|
+
/// <param name="subtractedOffset"></param>
|
|
204
|
+
/// <returns></returns>
|
|
205
|
+
protected virtual float CalculateCoordinate(float coord, float subtractedOffset) => coord - subtractedOffset * CenteringHalf;
|
|
206
|
+
}
|
|
207
207
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
1
|
+
fileFormatVersion: 2
|
|
2
2
|
guid: 1fb524dfe1e85fc489249aaea542c0d8
|
package/Editor/CircleUtility.cs
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
-
using System;
|
|
3
|
-
using UnityEditor;
|
|
4
|
-
using UnityEngine;
|
|
5
|
-
|
|
6
|
-
namespace DREditor.Actors.Editor
|
|
7
|
-
{
|
|
8
|
-
/// <summary>
|
|
9
|
-
///
|
|
10
|
-
/// </summary>
|
|
11
|
-
public static class CircleUtility
|
|
12
|
-
{
|
|
13
|
-
/// <summary>
|
|
14
|
-
///
|
|
15
|
-
/// </summary>
|
|
16
|
-
public static readonly float DegreesInCircle = 360f;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
/// <summary>
|
|
20
|
-
///
|
|
21
|
-
/// </summary>
|
|
22
|
-
/// <param name="drawCircle"></param>
|
|
23
|
-
/// <param name="circleColor"></param>
|
|
24
|
-
public static void DrawColoredCircle(Action drawCircle, Color circleColor)
|
|
25
|
-
{
|
|
26
|
-
Color lastColor = Handles.color;
|
|
27
|
-
|
|
28
|
-
Handles.color = circleColor;
|
|
29
|
-
|
|
30
|
-
drawCircle();
|
|
31
|
-
|
|
32
|
-
Handles.color = lastColor;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/// <summary>
|
|
36
|
-
///
|
|
37
|
-
/// </summary>
|
|
38
|
-
/// <param name="center"></param>
|
|
39
|
-
/// <param name="normal"></param>
|
|
40
|
-
/// <param name="radius"></param>
|
|
41
|
-
public static void DrawCircle(Vector3 center, Vector3 normal, float radius)
|
|
42
|
-
{
|
|
43
|
-
if (Event.current.type == EventType.Repaint)
|
|
44
|
-
Handles.DrawWireDisc(center, normal, radius);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/// <summary>
|
|
48
|
-
///
|
|
49
|
-
/// </summary>
|
|
50
|
-
/// <param name="circleAreaHeight"></param>
|
|
51
|
-
/// <returns></returns>
|
|
52
|
-
public static Rect CreateDefaultCircleRect(float circleAreaHeight) =>
|
|
53
|
-
GUILayoutUtility.GetRect(0f, circleAreaHeight, GUILayout.ExpandWidth(true));
|
|
54
|
-
}
|
|
1
|
+
//Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
|
|
2
|
+
using System;
|
|
3
|
+
using UnityEditor;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
|
|
6
|
+
namespace DREditor.Actors.Editor
|
|
7
|
+
{
|
|
8
|
+
/// <summary>
|
|
9
|
+
///
|
|
10
|
+
/// </summary>
|
|
11
|
+
public static class CircleUtility
|
|
12
|
+
{
|
|
13
|
+
/// <summary>
|
|
14
|
+
///
|
|
15
|
+
/// </summary>
|
|
16
|
+
public static readonly float DegreesInCircle = 360f;
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/// <summary>
|
|
20
|
+
///
|
|
21
|
+
/// </summary>
|
|
22
|
+
/// <param name="drawCircle"></param>
|
|
23
|
+
/// <param name="circleColor"></param>
|
|
24
|
+
public static void DrawColoredCircle(Action drawCircle, Color circleColor)
|
|
25
|
+
{
|
|
26
|
+
Color lastColor = Handles.color;
|
|
27
|
+
|
|
28
|
+
Handles.color = circleColor;
|
|
29
|
+
|
|
30
|
+
drawCircle();
|
|
31
|
+
|
|
32
|
+
Handles.color = lastColor;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/// <summary>
|
|
36
|
+
///
|
|
37
|
+
/// </summary>
|
|
38
|
+
/// <param name="center"></param>
|
|
39
|
+
/// <param name="normal"></param>
|
|
40
|
+
/// <param name="radius"></param>
|
|
41
|
+
public static void DrawCircle(Vector3 center, Vector3 normal, float radius)
|
|
42
|
+
{
|
|
43
|
+
if (Event.current.type == EventType.Repaint)
|
|
44
|
+
Handles.DrawWireDisc(center, normal, radius);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/// <summary>
|
|
48
|
+
///
|
|
49
|
+
/// </summary>
|
|
50
|
+
/// <param name="circleAreaHeight"></param>
|
|
51
|
+
/// <returns></returns>
|
|
52
|
+
public static Rect CreateDefaultCircleRect(float circleAreaHeight) =>
|
|
53
|
+
GUILayoutUtility.GetRect(0f, circleAreaHeight, GUILayout.ExpandWidth(true));
|
|
54
|
+
}
|
|
55
55
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
1
|
+
fileFormatVersion: 2
|
|
2
2
|
guid: db404cb0f1fbc3645822b1c93ec12c15
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "DREditor.Actors.Editor",
|
|
3
|
-
"rootNamespace": "",
|
|
4
|
-
"references": [
|
|
5
|
-
"Unity.RenderPipelines.Universal.Runtime",
|
|
6
|
-
"DREditor",
|
|
7
|
-
"DREditor.Editor",
|
|
8
|
-
"DREditor.Talkables",
|
|
9
|
-
"DREditor.Actors"
|
|
10
|
-
],
|
|
11
|
-
"includePlatforms": [
|
|
12
|
-
"Editor"
|
|
13
|
-
],
|
|
14
|
-
"excludePlatforms": [],
|
|
15
|
-
"allowUnsafeCode": false,
|
|
16
|
-
"overrideReferences": false,
|
|
17
|
-
"precompiledReferences": [],
|
|
18
|
-
"autoReferenced": true,
|
|
19
|
-
"defineConstraints": [],
|
|
20
|
-
"versionDefines": [],
|
|
21
|
-
"noEngineReferences": false
|
|
1
|
+
{
|
|
2
|
+
"name": "DREditor.Actors.Editor",
|
|
3
|
+
"rootNamespace": "",
|
|
4
|
+
"references": [
|
|
5
|
+
"Unity.RenderPipelines.Universal.Runtime",
|
|
6
|
+
"DREditor",
|
|
7
|
+
"DREditor.Editor",
|
|
8
|
+
"DREditor.Talkables",
|
|
9
|
+
"DREditor.Actors"
|
|
10
|
+
],
|
|
11
|
+
"includePlatforms": [
|
|
12
|
+
"Editor"
|
|
13
|
+
],
|
|
14
|
+
"excludePlatforms": [],
|
|
15
|
+
"allowUnsafeCode": false,
|
|
16
|
+
"overrideReferences": false,
|
|
17
|
+
"precompiledReferences": [],
|
|
18
|
+
"autoReferenced": true,
|
|
19
|
+
"defineConstraints": [],
|
|
20
|
+
"versionDefines": [],
|
|
21
|
+
"noEngineReferences": false
|
|
22
22
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 8d8ad884facf5aa48ad074679761a99d
|
|
3
|
-
AssemblyDefinitionImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
userData:
|
|
6
|
-
assetBundleName:
|
|
7
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 8d8ad884facf5aa48ad074679761a99d
|
|
3
|
+
AssemblyDefinitionImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
userData:
|
|
6
|
+
assetBundleName:
|
|
7
|
+
assetBundleVariant:
|