net.dreditor.addons 0.0.0-stage → 0.1.6

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/Add-Ons.txt ADDED
@@ -0,0 +1 @@
1
+ This Add-Ons folder is for scripts that use DREditor and it's mechanics but is not a core part of DREditor for the engine to function.
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 14094945d7532e94bbcd7e2c93aaa11f
3
+ TextScriptImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
@@ -0,0 +1,43 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using System.Collections.Generic;
3
+ using UnityEngine;
4
+
5
+ namespace DREditor.AddOns
6
+ {
7
+ /// <summary>
8
+ ///
9
+ /// </summary>
10
+ /// <remarks></remarks>
11
+ [RequireComponent(typeof(Animator))]
12
+ public class AnimatorSetAllBools : MonoBehaviour
13
+ {
14
+ /// <summary>
15
+ ///
16
+ /// </summary>
17
+ [Tooltip("")]
18
+ [SerializeField] protected List<string> boolStrings = new();
19
+
20
+
21
+ /// <summary>
22
+ ///
23
+ /// </summary>
24
+ protected Animator animator = null;
25
+
26
+
27
+ /// <summary>
28
+ ///
29
+ /// </summary>
30
+ protected virtual void Start() => animator = GetComponent<Animator>();
31
+
32
+ /// <summary>
33
+ ///
34
+ /// </summary>
35
+ /// <param name="to"></param>
36
+ /// <remarks></remarks>
37
+ public virtual void SetAll(bool to)
38
+ {
39
+ foreach (string s in boolStrings)
40
+ animator.SetBool(s, to);
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: e5f4cf1ebce17024f80a614e113b9b86
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "DREditor.AddOns",
3
+ "rootNamespace": "",
4
+ "references": [
5
+ "Unity.RenderPipelines.Universal.Runtime",
6
+ "Unity.TextMeshPro",
7
+ "DREditor"
8
+ ],
9
+ "includePlatforms": [],
10
+ "excludePlatforms": [],
11
+ "allowUnsafeCode": false,
12
+ "overrideReferences": false,
13
+ "precompiledReferences": [],
14
+ "autoReferenced": true,
15
+ "defineConstraints": [],
16
+ "versionDefines": [],
17
+ "noEngineReferences": false
18
+ }
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: f6dca99f1982af843bfc95a2d3d83643
3
+ AssemblyDefinitionImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
@@ -0,0 +1,60 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ // Leothedev helped.
3
+ using UnityEngine;
4
+ using UnityEngine.Rendering.Universal;
5
+
6
+ namespace DREditor.AddOns
7
+ {
8
+ /// <summary>
9
+ ///
10
+ /// </summary>
11
+ /// <remarks></remarks>
12
+ public class DisableRendererFeature : MonoBehaviour
13
+ {
14
+ /// <summary>
15
+ ///
16
+ /// </summary>
17
+ [Header("")]
18
+
19
+ [Tooltip("")]
20
+ [SerializeField] protected UniversalRendererData rendererData = null;
21
+
22
+ /// <summary>
23
+ ///
24
+ /// </summary>
25
+ [Tooltip("")]
26
+ [SerializeField] protected string featureName = "SSAO";
27
+
28
+
29
+ /// <summary>
30
+ ///
31
+ /// </summary>
32
+ protected virtual void Start() => ChangeFeature(featureName, false);
33
+
34
+ /// <summary>
35
+ ///
36
+ /// </summary>
37
+ protected virtual void OnDisable() => ChangeFeature(featureName, true);
38
+
39
+ /// <summary>
40
+ ///
41
+ /// </summary>
42
+ /// <param name="featureName"></param>
43
+ /// <param name="enabledState"></param>
44
+ protected virtual void ChangeFeature(string featureName, bool enabledState) => GetFeature(featureName).SetActive(enabledState);
45
+
46
+ /// <summary>
47
+ ///
48
+ /// </summary>
49
+ /// <param name="featureName"></param>
50
+ /// <returns></returns>
51
+ protected virtual ScriptableRendererFeature GetFeature(string featureName)
52
+ {
53
+ foreach (var feature in rendererData.rendererFeatures)
54
+ if (feature != null && feature.name == featureName)
55
+ return feature;
56
+
57
+ return null;
58
+ }
59
+ }
60
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 2da86bbb52651f248abe013924b0d71a
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,34 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using TMPro;
3
+ using UnityEngine;
4
+
5
+ namespace DREditor.AddOns
6
+ {
7
+ /// <summary>
8
+ ///
9
+ /// </summary>
10
+ [ClassHeader("")]
11
+ public class DisplayBuildVersion : MonoBehaviour
12
+ {
13
+ /// <summary>
14
+ ///
15
+ /// </summary>
16
+ [Tooltip("")]
17
+ [SerializeField] protected TextMeshProUGUI versionText;
18
+
19
+ /// <summary>
20
+ ///
21
+ /// </summary>
22
+ [Tooltip("")]
23
+ [SerializeField] protected string prefix = "v";
24
+
25
+
26
+ protected virtual void Start()
27
+ {
28
+ if (versionText != null)
29
+ versionText.text = $"{prefix}{Application.version}";
30
+ else
31
+ UnityEngine.Debug.LogWarning($"ALERT: {nameof(DisplayBuildVersion)}: No TextMeshProUGUI assigned.");
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: c274aeda7cf9058479754009d0b2df12
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,29 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using UnityEngine;
3
+
4
+ namespace DREditor.AddOns
5
+ {
6
+ /// <summary>
7
+ ///
8
+ /// </summary>
9
+ public class EnableCanvasOnStart : MonoBehaviour
10
+ {
11
+ /// <summary>
12
+ ///
13
+ /// </summary>
14
+ [Tooltip("")]
15
+ [SerializeField] protected Canvas canvas = null;
16
+
17
+ /// <summary>
18
+ ///
19
+ /// </summary>
20
+ [Tooltip("")]
21
+ [SerializeField] protected bool enableState = true;
22
+
23
+
24
+ /// <summary>
25
+ ///
26
+ /// </summary>
27
+ protected virtual void Start() => canvas.enabled = enableState;
28
+ }
29
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: a786827709d4a6844854118002778ba0
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
package/EventHolder.cs ADDED
@@ -0,0 +1,28 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using System.Collections.Generic;
3
+ using UnityEngine;
4
+ using UnityEngine.Events;
5
+
6
+ namespace DREditor.AddOns
7
+ {
8
+ /// <summary>
9
+ ///
10
+ /// </summary>
11
+ /// <remarks></remarks>
12
+ [ClassHeader("")]
13
+ public class EventHolder : MonoBehaviour
14
+ {
15
+ /// <summary>
16
+ ///
17
+ /// </summary>
18
+ [Tooltip("")]
19
+ [SerializeField] List<UnityEvent> events = new();
20
+
21
+
22
+ /// <summary>
23
+ ///
24
+ /// </summary>
25
+ /// <param name="index"></param>
26
+ public virtual void InvokeEventAtIndex(int index) => events[index]?.Invoke();
27
+ }
28
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 8613a400dc7e9794c92a4cbaec735d55
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,33 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using UnityEngine;
3
+
4
+ namespace DREditor.AddOns
5
+ {
6
+ /// <summary>
7
+ ///
8
+ /// </summary>
9
+ public class LightMapSwapper : MonoBehaviour
10
+ {
11
+ /// <summary>
12
+ ///
13
+ /// </summary>
14
+ [Tooltip("")]
15
+ [SerializeField] protected Texture2D lightMap = null;
16
+
17
+
18
+ protected virtual void Start() => SetLightMap();
19
+
20
+ /// <summary>
21
+ ///
22
+ /// </summary>
23
+ protected virtual void SetLightMap()
24
+ {
25
+ LightmapData data = new()
26
+ {
27
+ lightmapColor = lightMap
28
+ };
29
+
30
+ LightmapSettings.lightmaps = new LightmapData[] { data };
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 32a93cf6535c18440942b83d8aaf7dbd
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
package/OutOfBounds.cs ADDED
@@ -0,0 +1,73 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using DREditor.FPC;
3
+ using System.Collections;
4
+ using UnityEngine;
5
+
6
+ namespace DREditor.AddOns
7
+ {
8
+ /// <summary>
9
+ ///
10
+ /// </summary>
11
+ public class OutOfBounds : MonoBehaviour
12
+ {
13
+ /// <summary>
14
+ ///
15
+ /// </summary>
16
+ [Header("")]
17
+
18
+ [Tooltip("")]
19
+ [SerializeField] protected Transform safeSpot = null;
20
+
21
+ /// <summary>
22
+ ///
23
+ /// </summary>
24
+ [Tooltip("")]
25
+ [SerializeField] protected float givePlayerControlBufferTime = 0.5f;
26
+
27
+
28
+ /// <summary>
29
+ ///
30
+ /// </summary>
31
+ /// <param name="other"></param>
32
+ protected virtual void OnTriggerEnter(Collider other) => StartCoroutine(OnOutOfBoundsRoutine(other));
33
+
34
+ /// <summary>
35
+ ///
36
+ /// </summary>
37
+ /// <param name="other"></param>
38
+ /// <returns></returns>
39
+ protected virtual IEnumerator OnOutOfBoundsRoutine(Collider other)
40
+ {
41
+ UnityEngine.Debug.LogWarning($"{ToString()}: OBJECT FELL THROUGH FLOOR: " + other.gameObject.name);
42
+
43
+ if (MovePlayerComponentInvalid(other))
44
+ yield break;
45
+
46
+ other.GetComponent<MovePlayer>().enabled = false;
47
+
48
+ other.gameObject.transform.position = safeSpot.position;
49
+
50
+ yield return new WaitForSeconds(givePlayerControlBufferTime);
51
+
52
+ other.GetComponent<MovePlayer>().enabled = true;
53
+
54
+ yield break;
55
+ }
56
+
57
+ /// <summary>
58
+ ///
59
+ /// </summary>
60
+ /// <param name="other"></param>
61
+ /// <returns></returns>
62
+ /// <remarks></remarks>
63
+ private bool MovePlayerComponentInvalid(Collider other)
64
+ {
65
+ bool isInvalid = other.GetComponent<MovePlayer>() == null;
66
+
67
+ if (isInvalid)
68
+ UnityEngine.Debug.LogWarning($"{ToString()}: The fallen game object does not contain a {typeof(MovePlayer)} component.");
69
+
70
+ return isInvalid;
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 84798873b639a484fa61b6b86e235906
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,238 @@
1
+ %YAML 1.1
2
+ %TAG !u! tag:unity3d.com,2011:
3
+ --- !u!1 &8268532550493190310
4
+ GameObject:
5
+ m_ObjectHideFlags: 0
6
+ m_CorrespondingSourceObject: {fileID: 0}
7
+ m_PrefabInstance: {fileID: 0}
8
+ m_PrefabAsset: {fileID: 0}
9
+ serializedVersion: 6
10
+ m_Component:
11
+ - component: {fileID: 8268532550493190305}
12
+ - component: {fileID: 8268532550493190304}
13
+ - component: {fileID: 8268532550493190311}
14
+ m_Layer: 5
15
+ m_Name: Build_Version_Text
16
+ m_TagString: Untagged
17
+ m_Icon: {fileID: 0}
18
+ m_NavMeshLayer: 0
19
+ m_StaticEditorFlags: 0
20
+ m_IsActive: 1
21
+ --- !u!224 &8268532550493190305
22
+ RectTransform:
23
+ m_ObjectHideFlags: 0
24
+ m_CorrespondingSourceObject: {fileID: 0}
25
+ m_PrefabInstance: {fileID: 0}
26
+ m_PrefabAsset: {fileID: 0}
27
+ m_GameObject: {fileID: 8268532550493190310}
28
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
29
+ m_LocalPosition: {x: 0, y: 0, z: 0}
30
+ m_LocalScale: {x: 1, y: 1, z: 1}
31
+ m_ConstrainProportionsScale: 0
32
+ m_Children: []
33
+ m_Father: {fileID: 8268532550837289802}
34
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35
+ m_AnchorMin: {x: 1, y: 0}
36
+ m_AnchorMax: {x: 1, y: 0}
37
+ m_AnchoredPosition: {x: -12.870117, y: 0}
38
+ m_SizeDelta: {x: 455.0706, y: 50}
39
+ m_Pivot: {x: 1, y: 0}
40
+ --- !u!222 &8268532550493190304
41
+ CanvasRenderer:
42
+ m_ObjectHideFlags: 0
43
+ m_CorrespondingSourceObject: {fileID: 0}
44
+ m_PrefabInstance: {fileID: 0}
45
+ m_PrefabAsset: {fileID: 0}
46
+ m_GameObject: {fileID: 8268532550493190310}
47
+ m_CullTransparentMesh: 1
48
+ --- !u!114 &8268532550493190311
49
+ MonoBehaviour:
50
+ m_ObjectHideFlags: 0
51
+ m_CorrespondingSourceObject: {fileID: 0}
52
+ m_PrefabInstance: {fileID: 0}
53
+ m_PrefabAsset: {fileID: 0}
54
+ m_GameObject: {fileID: 8268532550493190310}
55
+ m_Enabled: 1
56
+ m_EditorHideFlags: 0
57
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
58
+ m_Name:
59
+ m_EditorClassIdentifier:
60
+ m_Material: {fileID: 0}
61
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
62
+ m_RaycastTarget: 1
63
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
64
+ m_Maskable: 1
65
+ m_OnCullStateChanged:
66
+ m_PersistentCalls:
67
+ m_Calls: []
68
+ m_text:
69
+ m_isRightToLeft: 0
70
+ m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
71
+ m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
72
+ m_fontSharedMaterials: []
73
+ m_fontMaterial: {fileID: 0}
74
+ m_fontMaterials: []
75
+ m_fontColor32:
76
+ serializedVersion: 2
77
+ rgba: 2600468479
78
+ m_fontColor: {r: 1, g: 1, b: 1, a: 0.6039216}
79
+ m_enableVertexGradient: 0
80
+ m_colorMode: 3
81
+ m_fontColorGradient:
82
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
83
+ topRight: {r: 1, g: 1, b: 1, a: 1}
84
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
85
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
86
+ m_fontColorGradientPreset: {fileID: 0}
87
+ m_spriteAsset: {fileID: 0}
88
+ m_tintAllSprites: 0
89
+ m_StyleSheet: {fileID: 0}
90
+ m_TextStyleHashCode: -1183493901
91
+ m_overrideHtmlColors: 0
92
+ m_faceColor:
93
+ serializedVersion: 2
94
+ rgba: 4294967295
95
+ m_fontSize: 36
96
+ m_fontSizeBase: 36
97
+ m_fontWeight: 400
98
+ m_enableAutoSizing: 0
99
+ m_fontSizeMin: 18
100
+ m_fontSizeMax: 72
101
+ m_fontStyle: 0
102
+ m_HorizontalAlignment: 4
103
+ m_VerticalAlignment: 256
104
+ m_textAlignment: 65535
105
+ m_characterSpacing: 0
106
+ m_characterHorizontalScale: 1
107
+ m_wordSpacing: 0
108
+ m_lineSpacing: 0
109
+ m_lineSpacingMax: 0
110
+ m_paragraphSpacing: 0
111
+ m_charWidthMaxAdj: 0
112
+ m_TextWrappingMode: 1
113
+ m_wordWrappingRatios: 0.4
114
+ m_overflowMode: 0
115
+ m_linkedTextComponent: {fileID: 0}
116
+ parentLinkedComponent: {fileID: 0}
117
+ m_enableKerning: 1
118
+ m_ActiveFontFeatures: 6e72656b
119
+ m_enableExtraPadding: 0
120
+ checkPaddingRequired: 0
121
+ m_isRichText: 1
122
+ m_EmojiFallbackSupport: 1
123
+ m_parseCtrlCharacters: 1
124
+ m_isOrthographic: 1
125
+ m_isCullingEnabled: 0
126
+ m_horizontalMapping: 0
127
+ m_verticalMapping: 0
128
+ m_uvLineOffset: 0
129
+ m_geometrySortingOrder: 0
130
+ m_IsTextObjectScaleStatic: 0
131
+ m_VertexBufferAutoSizeReduction: 0
132
+ m_useMaxVisibleDescender: 1
133
+ m_pageToDisplay: 1
134
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
135
+ m_isUsingLegacyAnimationComponent: 0
136
+ m_isVolumetricText: 0
137
+ m_hasFontAssetChanged: 0
138
+ m_baseMaterial: {fileID: 0}
139
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
140
+ --- !u!1 &8268532550837289806
141
+ GameObject:
142
+ m_ObjectHideFlags: 0
143
+ m_CorrespondingSourceObject: {fileID: 0}
144
+ m_PrefabInstance: {fileID: 0}
145
+ m_PrefabAsset: {fileID: 0}
146
+ serializedVersion: 6
147
+ m_Component:
148
+ - component: {fileID: 8268532550837289802}
149
+ - component: {fileID: 8268532550837289801}
150
+ - component: {fileID: 8268532550837289800}
151
+ - component: {fileID: 8268532550837289807}
152
+ m_Layer: 5
153
+ m_Name: Build_Version_Canvas
154
+ m_TagString: Untagged
155
+ m_Icon: {fileID: 0}
156
+ m_NavMeshLayer: 0
157
+ m_StaticEditorFlags: 0
158
+ m_IsActive: 1
159
+ --- !u!224 &8268532550837289802
160
+ RectTransform:
161
+ m_ObjectHideFlags: 0
162
+ m_CorrespondingSourceObject: {fileID: 0}
163
+ m_PrefabInstance: {fileID: 0}
164
+ m_PrefabAsset: {fileID: 0}
165
+ m_GameObject: {fileID: 8268532550837289806}
166
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
167
+ m_LocalPosition: {x: 0, y: 0, z: 0}
168
+ m_LocalScale: {x: 0, y: 0, z: 0}
169
+ m_ConstrainProportionsScale: 0
170
+ m_Children:
171
+ - {fileID: 8268532550493190305}
172
+ m_Father: {fileID: 0}
173
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
174
+ m_AnchorMin: {x: 0, y: 0}
175
+ m_AnchorMax: {x: 0, y: 0}
176
+ m_AnchoredPosition: {x: 0, y: 0}
177
+ m_SizeDelta: {x: 0, y: 0}
178
+ m_Pivot: {x: 0, y: 0}
179
+ --- !u!223 &8268532550837289801
180
+ Canvas:
181
+ m_ObjectHideFlags: 0
182
+ m_CorrespondingSourceObject: {fileID: 0}
183
+ m_PrefabInstance: {fileID: 0}
184
+ m_PrefabAsset: {fileID: 0}
185
+ m_GameObject: {fileID: 8268532550837289806}
186
+ m_Enabled: 1
187
+ serializedVersion: 3
188
+ m_RenderMode: 0
189
+ m_Camera: {fileID: 0}
190
+ m_PlaneDistance: 100
191
+ m_PixelPerfect: 0
192
+ m_ReceivesEvents: 1
193
+ m_OverrideSorting: 0
194
+ m_OverridePixelPerfect: 0
195
+ m_SortingBucketNormalizedSize: 0
196
+ m_VertexColorAlwaysGammaSpace: 0
197
+ m_AdditionalShaderChannelsFlag: 25
198
+ m_UpdateRectTransformForStandalone: 0
199
+ m_SortingLayerID: 0
200
+ m_SortingOrder: 6
201
+ m_TargetDisplay: 0
202
+ --- !u!114 &8268532550837289800
203
+ MonoBehaviour:
204
+ m_ObjectHideFlags: 0
205
+ m_CorrespondingSourceObject: {fileID: 0}
206
+ m_PrefabInstance: {fileID: 0}
207
+ m_PrefabAsset: {fileID: 0}
208
+ m_GameObject: {fileID: 8268532550837289806}
209
+ m_Enabled: 1
210
+ m_EditorHideFlags: 0
211
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
212
+ m_Name:
213
+ m_EditorClassIdentifier:
214
+ m_UiScaleMode: 1
215
+ m_ReferencePixelsPerUnit: 100
216
+ m_ScaleFactor: 1
217
+ m_ReferenceResolution: {x: 1920, y: 1080}
218
+ m_ScreenMatchMode: 0
219
+ m_MatchWidthOrHeight: 0
220
+ m_PhysicalUnit: 3
221
+ m_FallbackScreenDPI: 96
222
+ m_DefaultSpriteDPI: 96
223
+ m_DynamicPixelsPerUnit: 1
224
+ m_PresetInfoIsWorld: 0
225
+ --- !u!114 &8268532550837289807
226
+ MonoBehaviour:
227
+ m_ObjectHideFlags: 0
228
+ m_CorrespondingSourceObject: {fileID: 0}
229
+ m_PrefabInstance: {fileID: 0}
230
+ m_PrefabAsset: {fileID: 0}
231
+ m_GameObject: {fileID: 8268532550837289806}
232
+ m_Enabled: 1
233
+ m_EditorHideFlags: 0
234
+ m_Script: {fileID: 11500000, guid: c274aeda7cf9058479754009d0b2df12, type: 3}
235
+ m_Name:
236
+ m_EditorClassIdentifier:
237
+ versionText: {fileID: 8268532550493190311}
238
+ prefix: v
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 9d27d7502db37de4da48ef274fed9bd8
3
+ PrefabImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
@@ -0,0 +1,48 @@
1
+ %YAML 1.1
2
+ %TAG !u! tag:unity3d.com,2011:
3
+ --- !u!1 &1447475270847817773
4
+ GameObject:
5
+ m_ObjectHideFlags: 0
6
+ m_CorrespondingSourceObject: {fileID: 0}
7
+ m_PrefabInstance: {fileID: 0}
8
+ m_PrefabAsset: {fileID: 0}
9
+ serializedVersion: 6
10
+ m_Component:
11
+ - component: {fileID: 2356132341465688875}
12
+ - component: {fileID: 4599954098836446390}
13
+ m_Layer: 0
14
+ m_Name: DisableSSAO
15
+ m_TagString: Untagged
16
+ m_Icon: {fileID: 0}
17
+ m_NavMeshLayer: 0
18
+ m_StaticEditorFlags: 0
19
+ m_IsActive: 1
20
+ --- !u!4 &2356132341465688875
21
+ Transform:
22
+ m_ObjectHideFlags: 0
23
+ m_CorrespondingSourceObject: {fileID: 0}
24
+ m_PrefabInstance: {fileID: 0}
25
+ m_PrefabAsset: {fileID: 0}
26
+ m_GameObject: {fileID: 1447475270847817773}
27
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
28
+ m_LocalPosition: {x: 0, y: 0, z: 0}
29
+ m_LocalScale: {x: 1, y: 1, z: 1}
30
+ m_ConstrainProportionsScale: 0
31
+ m_Children: []
32
+ m_Father: {fileID: 0}
33
+ m_RootOrder: 0
34
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35
+ --- !u!114 &4599954098836446390
36
+ MonoBehaviour:
37
+ m_ObjectHideFlags: 0
38
+ m_CorrespondingSourceObject: {fileID: 0}
39
+ m_PrefabInstance: {fileID: 0}
40
+ m_PrefabAsset: {fileID: 0}
41
+ m_GameObject: {fileID: 1447475270847817773}
42
+ m_Enabled: 1
43
+ m_EditorHideFlags: 0
44
+ m_Script: {fileID: 11500000, guid: 2da86bbb52651f248abe013924b0d71a, type: 3}
45
+ m_Name:
46
+ m_EditorClassIdentifier:
47
+ rendererData: {fileID: 11400000, guid: 2fd9deb72a9165242b37b8fcf5f00e49, type: 2}
48
+ featureName: SSAO
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 66e0405f92015514eaf3c94a275ae6a8
3
+ PrefabImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
package/Samples.meta ADDED
@@ -0,0 +1,8 @@
1
+ fileFormatVersion: 2
2
+ guid: 8e436aee5b595fb45bae91497a34499e
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -0,0 +1,233 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Kill/Cure
2
+ using UnityEngine;
3
+ using TMPro;
4
+
5
+ namespace DREditor.AddOns
6
+ {
7
+ [ExecuteInEditMode]
8
+ [RequireComponent(typeof(TMP_Text))]
9
+ public class SimpleCurveTMP : MonoBehaviour
10
+ {
11
+ /// <summary>
12
+ ///
13
+ /// </summary>
14
+ [Header("")]
15
+ [Space]
16
+ [Header("")]
17
+ [Space]
18
+ [Tooltip("")]
19
+ [SerializeField] protected AnimationCurve vertexCurve = new(new Keyframe(0, 0), new Keyframe(0.5f, 1), new Keyframe(1, 0));
20
+
21
+ /// <summary>
22
+ ///
23
+ /// </summary>
24
+ [Tooltip("")]
25
+ [SerializeField] protected float curveScale = 50.0f;
26
+
27
+ /// <summary>
28
+ ///
29
+ /// </summary>
30
+ [Tooltip("")]
31
+ [SerializeField] protected float rotationIntensity = 1.0f;
32
+
33
+
34
+ /// <summary>
35
+ ///
36
+ /// </summary>
37
+ protected TMP_Text textComponent;
38
+
39
+
40
+ /// <summary>
41
+ ///
42
+ /// </summary>
43
+ const float delta = 0.01f;
44
+
45
+ /// <summary>
46
+ ///
47
+ /// </summary>
48
+ const int verticesPerCharacter = 4;
49
+
50
+
51
+ protected virtual void Awake() => textComponent = GetComponent<TMP_Text>();
52
+
53
+ protected virtual void Update() => WarpText();
54
+
55
+ /// <summary>
56
+ ///
57
+ /// </summary>
58
+ protected virtual void WarpText()
59
+ {
60
+ textComponent.ForceMeshUpdate();
61
+
62
+ if (!WarpedCharactersSuccessfully())
63
+ return;
64
+
65
+ textComponent.UpdateVertexData(TMP_VertexDataUpdateFlags.Vertices);
66
+ }
67
+
68
+ /// <summary>
69
+ ///
70
+ /// </summary>
71
+ /// <returns></returns>
72
+ protected virtual bool WarpedCharactersSuccessfully()
73
+ {
74
+ TMP_TextInfo textInfo = textComponent.textInfo;
75
+
76
+ if (HasNoCharacters(textInfo))
77
+ return false;
78
+
79
+ float textWidth = CalculateTextWidth();
80
+
81
+ if (IsWidthInvalid(textWidth))
82
+ return false;
83
+
84
+ WarpTextCharacters(textInfo, textWidth);
85
+
86
+ return true;
87
+ }
88
+
89
+ /// <summary>
90
+ ///
91
+ /// </summary>
92
+ /// <param name="textInfo"></param>
93
+ /// <returns></returns>
94
+ private bool HasNoCharacters(TMP_TextInfo textInfo) => textInfo.characterCount == 0;
95
+
96
+ /// <summary>
97
+ ///
98
+ /// </summary>
99
+ /// <returns></returns>
100
+ private float CalculateTextWidth() => textComponent.bounds.max.x - textComponent.bounds.min.x;
101
+
102
+ /// <summary>
103
+ ///
104
+ /// </summary>
105
+ /// <param name="width"></param>
106
+ /// <returns></returns>
107
+ private bool IsWidthInvalid(float width) => width <= 0;
108
+
109
+ /// <summary>
110
+ ///
111
+ /// </summary>
112
+ /// <param name="textInfo"></param>
113
+ /// <param name="textWidth"></param>
114
+ protected virtual void WarpTextCharacters(TMP_TextInfo textInfo, float textWidth)
115
+ {
116
+ float boundsMinX = textComponent.bounds.min.x;
117
+
118
+ for (int characterIndex = 0; characterIndex < textInfo.characterCount; characterIndex++)
119
+ {
120
+ TMP_CharacterInfo characterInfo = textInfo.characterInfo[characterIndex];
121
+
122
+ if (!characterInfo.isVisible)
123
+ continue;
124
+
125
+ WarpSingleCharacter(characterInfo, textInfo, boundsMinX, textWidth);
126
+ }
127
+ }
128
+
129
+ /// <summary>
130
+ ///
131
+ /// </summary>
132
+ /// <param name="characterInfo"></param>
133
+ /// <param name="textInfo"></param>
134
+ /// <param name="boundsMinX"></param>
135
+ /// <param name="textWidth"></param>
136
+ protected virtual void WarpSingleCharacter(TMP_CharacterInfo characterInfo, TMP_TextInfo textInfo,
137
+ float boundsMinX, float textWidth)
138
+ {
139
+ Vector3[] vertices = textInfo.meshInfo[characterInfo.materialReferenceIndex].vertices;
140
+
141
+ int baseVertexIndex = characterInfo.vertexIndex;
142
+
143
+ float midpointX = GetCharacterMidpointX(vertices, baseVertexIndex);
144
+
145
+ float normalizedX = (midpointX - boundsMinX) / textWidth;
146
+
147
+ float verticalOffset = vertexCurve.Evaluate(normalizedX) * curveScale;
148
+
149
+ float rotationAngle = CalculateSlopeAngle(normalizedX, textWidth);
150
+
151
+ Quaternion rotation = Quaternion.AngleAxis(rotationAngle, Vector3.forward);
152
+
153
+ Vector3 center = CalculateCharacterCenter(vertices, baseVertexIndex, midpointX);
154
+
155
+ ApplyTransformationToVertices(vertices, baseVertexIndex, center, rotation, verticalOffset);
156
+ }
157
+
158
+ /// <summary>
159
+ ///
160
+ /// </summary>
161
+ /// <param name="vertices"></param>
162
+ /// <param name="baseVertexIndex"></param>
163
+ /// <returns></returns>
164
+ private float GetCharacterMidpointX(Vector3[] vertices, int baseVertexIndex)
165
+ => (vertices[baseVertexIndex + 0].x + vertices[baseVertexIndex + 2].x) / 2f;
166
+
167
+ /// <summary>
168
+ ///
169
+ /// </summary>
170
+ /// <param name="normalizedX"></param>
171
+ /// <param name="textWidth"></param>
172
+ /// <returns></returns>
173
+ protected virtual float CalculateSlopeAngle(float normalizedX, float textWidth)
174
+ {
175
+ float lookAheadX = Mathf.Min(normalizedX + delta, 1.0f);
176
+
177
+ float lookBehindX = Mathf.Max(normalizedX - delta, 0.0f);
178
+
179
+ float heightAhead = vertexCurve.Evaluate(lookAheadX) * curveScale;
180
+
181
+ float heightBehind = vertexCurve.Evaluate(lookBehindX) * curveScale;
182
+
183
+ float rise = heightAhead - heightBehind;
184
+
185
+ float run = (lookAheadX - lookBehindX) * textWidth;
186
+
187
+ float calculatedAngle = Mathf.Atan2(rise, run) * Mathf.Rad2Deg;
188
+
189
+ return calculatedAngle * rotationIntensity;
190
+ }
191
+
192
+ /// <summary>
193
+ ///
194
+ /// </summary>
195
+ /// <param name="vertices"></param>
196
+ /// <param name="baseVertexIndex"></param>
197
+ /// <param name="midpointX"></param>
198
+ /// <returns></returns>
199
+ protected virtual Vector3 CalculateCharacterCenter(Vector3[] vertices, int baseVertexIndex, float midpointX)
200
+ {
201
+ float midpointY = (vertices[baseVertexIndex + 0].y + vertices[baseVertexIndex + 2].y) / 2f;
202
+
203
+ return new Vector3(midpointX, midpointY, 0);
204
+ }
205
+
206
+ /// <summary>
207
+ ///
208
+ /// </summary>
209
+ /// <param name="vertices"></param>
210
+ /// <param name="baseVertexIndex"></param>
211
+ /// <param name="center"></param>
212
+ /// <param name="rotation"></param>
213
+ /// <param name="verticalOffset"></param>
214
+ protected virtual void ApplyTransformationToVertices(Vector3[] vertices, int baseVertexIndex,
215
+ Vector3 center, Quaternion rotation, float verticalOffset)
216
+ {
217
+ Vector3 verticalOffsetVector = new(0, verticalOffset, 0);
218
+
219
+ for (int vertexOffset = 0; vertexOffset < verticesPerCharacter; vertexOffset++)
220
+ {
221
+ int currentVertexIndex = baseVertexIndex + vertexOffset;
222
+
223
+ Vector3 originalVertex = vertices[currentVertexIndex];
224
+
225
+ Vector3 localPosition = originalVertex - center;
226
+
227
+ Vector3 rotatedPosition = rotation * localPosition;
228
+
229
+ vertices[currentVertexIndex] = center + rotatedPosition + verticalOffsetVector;
230
+ }
231
+ }
232
+ }
233
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: 282cd6937b47832478cafafd3e66db3b
@@ -0,0 +1,23 @@
1
+ //Author: Benjamin "Sweden" Jillson : Discord: sweden_gaming For Project Eden's Garden
2
+ using UnityEngine;
3
+
4
+ namespace DREditor.AddOns
5
+ {
6
+ /// <summary>
7
+ ///
8
+ /// </summary>
9
+ [ClassHeader("")]
10
+ public class TimeScaleOnStart : MonoBehaviour
11
+ {
12
+ /// <summary>
13
+ ///
14
+ /// </summary>
15
+ [Tooltip("")]
16
+ [SerializeField] protected float time = 1;
17
+
18
+ /// <summary>
19
+ ///
20
+ /// </summary>
21
+ protected virtual void Start() => Time.timeScale = time;
22
+ }
23
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: c658899ac83647b43a6f2269a8f0ed08
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
package/package.json CHANGED
@@ -1,6 +1,36 @@
1
- {
2
- "name": "net.dreditor.addons",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
1
+ {
2
+ "name": "net.dreditor.addons",
3
+ "version": "0.1.6",
4
+ "displayName": "DREditor Add Ons",
5
+ "description": "The beta for DREditor. A tool to create death game style projects without having to code.",
6
+ "unity": "6000.4",
7
+ "dependencies": {
8
+ "com.unity.render-pipelines.universal": "17.4.0",
9
+ "com.unity.ugui": "2.0.0",
10
+ "net.dreditor.core": "0.1.6"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "author": {
16
+ "name": "Benjamin \"Sweden\" Jillson",
17
+ "email": "dreditortool@gmail.com",
18
+ "url": "https://dreditor.net"
19
+ },
20
+ "keywords": [
21
+ "editor",
22
+ "tool",
23
+ "dreditor"
24
+ ],
25
+ "samples": [
26
+ {
27
+ "displayName": "Samples",
28
+ "description": "",
29
+ "path": "Samples~"
30
+ }
31
+ ],
32
+ "documentationUrl": "https://dreditor.net",
33
+ "license": "Apache-2.0",
34
+ "licensesUrl": "https://dreditor.net/docs/LICENSE.html",
35
+ "changelogUrl": "https://dreditor.net/docs/CHANGELOG.html"
36
+ }
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: d3b3bd2d20c16d34aafba4236c40b3ee
3
+ TextScriptImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.