diff --git a/CHANGELOG.md b/CHANGELOG.md
index db34acb2..cf5adb97 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,23 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [2.0.1] - 2021-11-02
+***"Feature Branches"***
+> A lot of experimental work is being now done in _feature_ branches; this should speed up iteration time on releases.
+
+### Added
+- `Trace` configuration matrix available in project settings.
+
+### Changed
+- Internally used `SettingsStyles` has been split into `SettingsStyles` and `SettingsLayoutOptions` accordingly.
+- Moved everything up one folder layer in package to fit with package standards.
+
+### Fixed
+- Optimized referencing of `GDXConfig` in author time operations (now similar to runtime).
+- `IListExtensions.ContainsItem` now uses `Equals()` to resolve literals issues with strings.
+- Categories for Visual Scripting based entries are now correct.
+- Resolved issue with newer Package Manager based lock files having no tag identities.
+
## [2.0.0] - 2021-05-09
***"Fresh Paint"***
> Breaking changes and a new license (BSL-1.0); making GDX even easier to include in projects!
diff --git a/GDX/Editor.meta b/Editor.meta
similarity index 100%
rename from GDX/Editor.meta
rename to Editor.meta
diff --git a/GDX/Editor/AssemblyInfo.cs b/Editor/AssemblyInfo.cs
similarity index 100%
rename from GDX/Editor/AssemblyInfo.cs
rename to Editor/AssemblyInfo.cs
diff --git a/GDX/Editor/AssemblyInfo.cs.meta b/Editor/AssemblyInfo.cs.meta
similarity index 100%
rename from GDX/Editor/AssemblyInfo.cs.meta
rename to Editor/AssemblyInfo.cs.meta
diff --git a/GDX/Editor/AssemblyProvider.cs b/Editor/AssemblyProvider.cs
similarity index 100%
rename from GDX/Editor/AssemblyProvider.cs
rename to Editor/AssemblyProvider.cs
diff --git a/GDX/Editor/AssemblyProvider.cs.meta b/Editor/AssemblyProvider.cs.meta
similarity index 100%
rename from GDX/Editor/AssemblyProvider.cs.meta
rename to Editor/AssemblyProvider.cs.meta
diff --git a/GDX/Editor/Automation.cs b/Editor/Automation.cs
similarity index 100%
rename from GDX/Editor/Automation.cs
rename to Editor/Automation.cs
diff --git a/GDX/Editor/Automation.cs.meta b/Editor/Automation.cs.meta
similarity index 100%
rename from GDX/Editor/Automation.cs.meta
rename to Editor/Automation.cs.meta
diff --git a/GDX/Editor/Build.meta b/Editor/Build.meta
similarity index 100%
rename from GDX/Editor/Build.meta
rename to Editor/Build.meta
diff --git a/GDX/Editor/Build/BuildInfoProvider.cs b/Editor/Build/BuildInfoProvider.cs
similarity index 100%
rename from GDX/Editor/Build/BuildInfoProvider.cs
rename to Editor/Build/BuildInfoProvider.cs
diff --git a/GDX/Editor/Build/BuildInfoProvider.cs.meta b/Editor/Build/BuildInfoProvider.cs.meta
similarity index 100%
rename from GDX/Editor/Build/BuildInfoProvider.cs.meta
rename to Editor/Build/BuildInfoProvider.cs.meta
diff --git a/GDX/Editor/Build/Classic.meta b/Editor/Build/Classic.meta
similarity index 100%
rename from GDX/Editor/Build/Classic.meta
rename to Editor/Build/Classic.meta
diff --git a/GDX/Editor/Build/Classic/BuildInfoBuildCustomizer.cs b/Editor/Build/Classic/BuildInfoBuildCustomizer.cs
similarity index 100%
rename from GDX/Editor/Build/Classic/BuildInfoBuildCustomizer.cs
rename to Editor/Build/Classic/BuildInfoBuildCustomizer.cs
diff --git a/GDX/Editor/Build/Classic/BuildInfoBuildCustomizer.cs.meta b/Editor/Build/Classic/BuildInfoBuildCustomizer.cs.meta
similarity index 100%
rename from GDX/Editor/Build/Classic/BuildInfoBuildCustomizer.cs.meta
rename to Editor/Build/Classic/BuildInfoBuildCustomizer.cs.meta
diff --git a/GDX/Editor/Build/Classic/ScriptingDefinesBuildCustomizer.cs b/Editor/Build/Classic/ScriptingDefinesBuildCustomizer.cs
similarity index 100%
rename from GDX/Editor/Build/Classic/ScriptingDefinesBuildCustomizer.cs
rename to Editor/Build/Classic/ScriptingDefinesBuildCustomizer.cs
diff --git a/GDX/Editor/Build/Classic/ScriptingDefinesBuildCustomizer.cs.meta b/Editor/Build/Classic/ScriptingDefinesBuildCustomizer.cs.meta
similarity index 100%
rename from GDX/Editor/Build/Classic/ScriptingDefinesBuildCustomizer.cs.meta
rename to Editor/Build/Classic/ScriptingDefinesBuildCustomizer.cs.meta
diff --git a/GDX/Editor/Build/Legacy.meta b/Editor/Build/Legacy.meta
similarity index 100%
rename from GDX/Editor/Build/Legacy.meta
rename to Editor/Build/Legacy.meta
diff --git a/GDX/Editor/Build/Legacy/BuildInfoBuildProcessor.cs b/Editor/Build/Legacy/BuildInfoBuildProcessor.cs
similarity index 100%
rename from GDX/Editor/Build/Legacy/BuildInfoBuildProcessor.cs
rename to Editor/Build/Legacy/BuildInfoBuildProcessor.cs
diff --git a/GDX/Editor/Build/Legacy/BuildInfoBuildProcessor.cs.meta b/Editor/Build/Legacy/BuildInfoBuildProcessor.cs.meta
similarity index 100%
rename from GDX/Editor/Build/Legacy/BuildInfoBuildProcessor.cs.meta
rename to Editor/Build/Legacy/BuildInfoBuildProcessor.cs.meta
diff --git a/GDX/Editor/Build/Legacy/ScriptingDefinesBuildProcessor.cs b/Editor/Build/Legacy/ScriptingDefinesBuildProcessor.cs
similarity index 100%
rename from GDX/Editor/Build/Legacy/ScriptingDefinesBuildProcessor.cs
rename to Editor/Build/Legacy/ScriptingDefinesBuildProcessor.cs
diff --git a/GDX/Editor/Build/Legacy/ScriptingDefinesBuildProcessor.cs.meta b/Editor/Build/Legacy/ScriptingDefinesBuildProcessor.cs.meta
similarity index 100%
rename from GDX/Editor/Build/Legacy/ScriptingDefinesBuildProcessor.cs.meta
rename to Editor/Build/Legacy/ScriptingDefinesBuildProcessor.cs.meta
diff --git a/GDX/Editor/DecoratorDrawers.meta b/Editor/DecoratorDrawers.meta
similarity index 100%
rename from GDX/Editor/DecoratorDrawers.meta
rename to Editor/DecoratorDrawers.meta
diff --git a/GDX/Editor/DecoratorDrawers/InspectorMessageBoxAttributeDecoratorDrawer.cs b/Editor/DecoratorDrawers/InspectorMessageBoxAttributeDecoratorDrawer.cs
similarity index 100%
rename from GDX/Editor/DecoratorDrawers/InspectorMessageBoxAttributeDecoratorDrawer.cs
rename to Editor/DecoratorDrawers/InspectorMessageBoxAttributeDecoratorDrawer.cs
diff --git a/GDX/Editor/DecoratorDrawers/InspectorMessageBoxAttributeDecoratorDrawer.cs.meta b/Editor/DecoratorDrawers/InspectorMessageBoxAttributeDecoratorDrawer.cs.meta
similarity index 100%
rename from GDX/Editor/DecoratorDrawers/InspectorMessageBoxAttributeDecoratorDrawer.cs.meta
rename to Editor/DecoratorDrawers/InspectorMessageBoxAttributeDecoratorDrawer.cs.meta
diff --git a/GDX/Editor/GDX.Editor.asmdef b/Editor/GDX.Editor.asmdef
similarity index 100%
rename from GDX/Editor/GDX.Editor.asmdef
rename to Editor/GDX.Editor.asmdef
diff --git a/GDX/Editor/GDX.Editor.asmdef.meta b/Editor/GDX.Editor.asmdef.meta
similarity index 100%
rename from GDX/Editor/GDX.Editor.asmdef.meta
rename to Editor/GDX.Editor.asmdef.meta
diff --git a/GDX/Editor/GDXConfigEditor.cs b/Editor/GDXConfigEditor.cs
similarity index 100%
rename from GDX/Editor/GDXConfigEditor.cs
rename to Editor/GDXConfigEditor.cs
diff --git a/GDX/Editor/GDXConfigEditor.cs.meta b/Editor/GDXConfigEditor.cs.meta
similarity index 100%
rename from GDX/Editor/GDXConfigEditor.cs.meta
rename to Editor/GDXConfigEditor.cs.meta
diff --git a/Editor/ManifestEntry.cs b/Editor/ManifestEntry.cs
new file mode 100644
index 00000000..bc7cc478
--- /dev/null
+++ b/Editor/ManifestEntry.cs
@@ -0,0 +1,67 @@
+// Copyright (c) 2020-2021 dotBunny Inc.
+// dotBunny licenses this file to you under the BSL-1.0 license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using GDX;
+using GDX.Editor;
+using UnityEngine;
+
+namespace GDX.Editor
+{
+ ///
+ /// An object representative of the GDX entry in a manifest lockfile.
+ ///
+ [Serializable]
+ public class ManifestEntry
+ {
+ public string version;
+ public int depth;
+ public string source;
+ public string[] dependencies;
+ public string hash;
+
+ [NonSerialized]
+ public PackageProvider.InstallationType installationType;
+ [NonSerialized]
+ public string tag;
+
+ public static ManifestEntry Get(string json)
+ {
+ ManifestEntry returnObject = JsonUtility.FromJson(json);
+ if (returnObject == null)
+ {
+ return null;
+ }
+
+ // Evaluate for tag
+ string tag = returnObject.version.GetAfterLast("#");
+ if (tag != null)
+ {
+ if (tag.StartsWith("v"))
+ {
+ returnObject.installationType = PackageProvider.InstallationType.UPMTag;
+ returnObject.tag = tag;
+ return returnObject;
+ }
+
+ // Check for what we assume is a commit hash
+ if (tag.Length == 40 && tag.HasLowerCase() && !tag.HasUpperCase())
+ {
+ returnObject.installationType = PackageProvider.InstallationType.GitHubCommit;
+ returnObject.tag = tag;
+ return returnObject;
+ }
+
+ // Left with assuming its a branch?
+ returnObject.installationType = PackageProvider.InstallationType.UPMBranch;
+ returnObject.tag = tag;
+ return returnObject;
+ }
+
+ returnObject.installationType = PackageProvider.InstallationType.UPM;
+ returnObject.tag = "main";
+ return returnObject;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Editor/ManifestEntry.cs.meta b/Editor/ManifestEntry.cs.meta
new file mode 100644
index 00000000..e24df499
--- /dev/null
+++ b/Editor/ManifestEntry.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: e67b602689354e86a19a6347afb34798
+timeCreated: 1630246129
\ No newline at end of file
diff --git a/GDX/Editor/PackageProvider.cs b/Editor/PackageProvider.cs
similarity index 93%
rename from GDX/Editor/PackageProvider.cs
rename to Editor/PackageProvider.cs
index 07cb24ea..3939f6a6 100644
--- a/GDX/Editor/PackageProvider.cs
+++ b/Editor/PackageProvider.cs
@@ -5,8 +5,10 @@
using System;
using System.IO;
using System.Reflection;
+using System.Text;
using UnityEditor;
using UnityEngine;
+using Application = UnityEngine.Application;
// ReSharper disable MemberCanBePrivate.Global
@@ -344,44 +346,29 @@ public static string GetFriendlyName(InstallationType installationType)
// Loop through lockfile for the package to determine further information on how it has been added.
bool insidePackage = false;
+ StringBuilder manifestContent = new StringBuilder();
for (int i = 0; i < lockFileLength; i++)
{
string workingLine = lockFile[i].Trim();
if (workingLine.StartsWith("\"com.dotbunny.gdx\""))
{
insidePackage = true;
+ manifestContent.AppendLine("{");
continue;
}
- // We want to make sure that we are inside the package definition and that we are looking at the version line.
- if (!insidePackage || !workingLine.StartsWith("\"version\""))
+ switch (insidePackage)
{
- continue;
+ case true when workingLine.StartsWith("},"):
+ {
+ manifestContent.AppendLine("}");
+ ManifestEntry manifestEntry = ManifestEntry.Get(manifestContent.ToString());
+ return (manifestEntry.installationType, manifestEntry.tag);
+ }
+ case true:
+ manifestContent.AppendLine(workingLine);
+ break;
}
-
- string versionLine = workingLine.Substring(12, workingLine.Length - (12 + 2));
- string tag = versionLine.GetAfterLast("#");
-
-
- // No actual tag found, so we are a straight UPM but we should consider it main line
- if (tag == versionLine)
- {
- return (InstallationType.UPM, "main");
- }
-
- // All of our release tags start with 'v'
- if (tag.StartsWith("v"))
- {
- return (InstallationType.UPMTag, tag);
- }
-
- // Check for what we assume is a commit hash
- if (tag.Length == 40 && tag.HasLowerCase() && !tag.HasUpperCase())
- {
- return (InstallationType.GitHubCommit, tag);
- }
-
- return (InstallationType.UPMBranch, tag);
}
// Well we at least can say it was UPM bound
diff --git a/GDX/Editor/PackageProvider.cs.meta b/Editor/PackageProvider.cs.meta
similarity index 100%
rename from GDX/Editor/PackageProvider.cs.meta
rename to Editor/PackageProvider.cs.meta
diff --git a/GDX/Editor/ProjectSettings.meta b/Editor/ProjectSettings.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings.meta
rename to Editor/ProjectSettings.meta
diff --git a/GDX/Editor/ProjectSettings/AutomaticUpdatesSettings.cs b/Editor/ProjectSettings/AutomaticUpdatesSettings.cs
similarity index 94%
rename from GDX/Editor/ProjectSettings/AutomaticUpdatesSettings.cs
rename to Editor/ProjectSettings/AutomaticUpdatesSettings.cs
index 765144b8..43db3971 100644
--- a/GDX/Editor/ProjectSettings/AutomaticUpdatesSettings.cs
+++ b/Editor/ProjectSettings/AutomaticUpdatesSettings.cs
@@ -66,14 +66,14 @@ internal static void Draw(SerializedObject settings)
GUILayout.BeginHorizontal();
GUILayout.Label("Local Version:", EditorStyles.boldLabel,
- SettingsStyles.FixedWidth130LayoutOptions);
+ SettingsLayoutOptions.FixedWidth130LayoutOptions);
GUILayout.Label(UpdateProvider.LocalPackage.Definition.version);
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
GUILayout.Label("Installation Method:", EditorStyles.boldLabel,
- SettingsStyles.FixedWidth130LayoutOptions);
+ SettingsLayoutOptions.FixedWidth130LayoutOptions);
GUILayout.Label(PackageProvider.GetFriendlyName(UpdateProvider.LocalPackage.InstallationMethod));
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
@@ -86,7 +86,7 @@ internal static void Draw(SerializedObject settings)
case PackageProvider.InstallationType.GitHub:
GUILayout.BeginHorizontal();
GUILayout.Label("Source Branch:", EditorStyles.boldLabel,
- SettingsStyles.FixedWidth130LayoutOptions);
+ SettingsLayoutOptions.FixedWidth130LayoutOptions);
GUILayout.Label(!string.IsNullOrEmpty(UpdateProvider.LocalPackage.SourceTag)
? UpdateProvider.LocalPackage.SourceTag
: "N/A");
@@ -97,7 +97,7 @@ internal static void Draw(SerializedObject settings)
case PackageProvider.InstallationType.GitHubTag:
GUILayout.BeginHorizontal();
GUILayout.Label("Source Tag:", EditorStyles.boldLabel,
- SettingsStyles.FixedWidth130LayoutOptions);
+ SettingsLayoutOptions.FixedWidth130LayoutOptions);
GUILayout.Label(!string.IsNullOrEmpty(UpdateProvider.LocalPackage.SourceTag)
? UpdateProvider.LocalPackage.SourceTag
: "N/A");
@@ -108,7 +108,7 @@ internal static void Draw(SerializedObject settings)
case PackageProvider.InstallationType.GitHubCommit:
GUILayout.BeginHorizontal();
GUILayout.Label("Source Commit:", EditorStyles.boldLabel,
- SettingsStyles.FixedWidth130LayoutOptions);
+ SettingsLayoutOptions.FixedWidth130LayoutOptions);
GUILayout.Label(!string.IsNullOrEmpty(UpdateProvider.LocalPackage.SourceTag)
? UpdateProvider.LocalPackage.SourceTag
: "N/A");
@@ -122,14 +122,14 @@ internal static void Draw(SerializedObject settings)
{
GUILayout.BeginHorizontal();
GUILayout.Label("Remote Version:", EditorStyles.boldLabel,
- SettingsStyles.FixedWidth130LayoutOptions);
+ SettingsLayoutOptions.FixedWidth130LayoutOptions);
GUILayout.Label(UpdateProvider.UpdatePackageDefinition.version);
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
}
GUILayout.BeginHorizontal();
- GUILayout.Label("Last Checked:", EditorStyles.boldLabel, SettingsStyles.FixedWidth130LayoutOptions);
+ GUILayout.Label("Last Checked:", EditorStyles.boldLabel, SettingsLayoutOptions.FixedWidth130LayoutOptions);
GUILayout.Label(UpdateProvider.GetLastChecked().ToString(Localization.LocalTimestampFormat));
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
diff --git a/GDX/Editor/ProjectSettings/AutomaticUpdatesSettings.cs.meta b/Editor/ProjectSettings/AutomaticUpdatesSettings.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/AutomaticUpdatesSettings.cs.meta
rename to Editor/ProjectSettings/AutomaticUpdatesSettings.cs.meta
diff --git a/GDX/Editor/ProjectSettings/BuildInfoSettings.cs b/Editor/ProjectSettings/BuildInfoSettings.cs
similarity index 100%
rename from GDX/Editor/ProjectSettings/BuildInfoSettings.cs
rename to Editor/ProjectSettings/BuildInfoSettings.cs
diff --git a/GDX/Editor/ProjectSettings/BuildInfoSettings.cs.meta b/Editor/ProjectSettings/BuildInfoSettings.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/BuildInfoSettings.cs.meta
rename to Editor/ProjectSettings/BuildInfoSettings.cs.meta
diff --git a/GDX/Editor/ProjectSettings/CommandLineProcessorSettings.cs b/Editor/ProjectSettings/CommandLineProcessorSettings.cs
similarity index 100%
rename from GDX/Editor/ProjectSettings/CommandLineProcessorSettings.cs
rename to Editor/ProjectSettings/CommandLineProcessorSettings.cs
diff --git a/GDX/Editor/ProjectSettings/CommandLineProcessorSettings.cs.meta b/Editor/ProjectSettings/CommandLineProcessorSettings.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/CommandLineProcessorSettings.cs.meta
rename to Editor/ProjectSettings/CommandLineProcessorSettings.cs.meta
diff --git a/GDX/Editor/ProjectSettings/EnvironmentSettings.cs b/Editor/ProjectSettings/EnvironmentSettings.cs
similarity index 50%
rename from GDX/Editor/ProjectSettings/EnvironmentSettings.cs
rename to Editor/ProjectSettings/EnvironmentSettings.cs
index 205a9aed..fac7bd97 100644
--- a/GDX/Editor/ProjectSettings/EnvironmentSettings.cs
+++ b/Editor/ProjectSettings/EnvironmentSettings.cs
@@ -21,21 +21,35 @@ internal static class EnvironmentSettings
/// Settings content for .
///
private static readonly GUIContent s_debugLevelsContent = new GUIContent(
- "Debug Tracing",
+ "",
"The levels of trace call to be logged in a debug build.");
+ ///
+ /// Settings content for .
+ ///
+ private static readonly GUIContent s_debugConsoleOutput = new GUIContent(
+ "",
+ "Should traces be outputted to Unity's console in debug builds");
+
///
/// Settings content for .
///
private static readonly GUIContent s_developmentLevelsContent = new GUIContent(
- "Development Tracing",
+ "",
"The levels of trace call to be logged in a development/editor build.");
+ ///
+ /// Settings content for .
+ ///
+ private static readonly GUIContent s_developmentConsoleOutput = new GUIContent(
+ "",
+ "Should traces be outputted to Unity's console in development builds.");
+
///
/// Settings content for .
///
private static readonly GUIContent s_releaseLevelsContent = new GUIContent(
- "Release Tracing",
+ "",
"The levels of trace call to be logged in a release build.");
///
@@ -45,6 +59,9 @@ internal static class EnvironmentSettings
"Ensure GDX Symbol",
"Should GDX make sure that there is a GDX scripting define symbol across all viable build target groups.");
+ private static readonly GUIContent s_traceNoticeContent = new GUIContent(
+ "Make sure to disable console output if you have subscribed additional logging systems which may echo back to the console.");
+
internal static void Draw(SerializedObject settings)
{
GUI.enabled = true;
@@ -60,32 +77,66 @@ internal static void Draw(SerializedObject settings)
s_scriptingDefineSymbolContent);
+ GUILayout.Space(10);
+ // Arguments (we're going to make sure they are forced to uppercase).
+ GUILayout.Label("Traces", SettingsStyles.SubSectionHeaderTextStyle);
+
+ GUILayout.BeginHorizontal(SettingsStyles.InfoBoxStyle);
+ GUILayout.Label(SettingsStyles.NoticeIcon, SettingsStyles.NoHorizontalStretchStyle);
+ GUILayout.Label(s_traceNoticeContent, SettingsStyles.WordWrappedLabelStyle);
+ GUILayout.EndHorizontal();
+
+ EditorGUILayout.BeginHorizontal();
+ EditorGUILayout.LabelField(GUIContent.none, SettingsStyles.ColumnHeaderStyle, SettingsLayoutOptions.FixedWidth130LayoutOptions);
+ GUILayout.Space(10);
+ EditorGUILayout.LabelField("Flags", SettingsStyles.ColumnHeaderStyle, SettingsLayoutOptions.FixedWidth150LayoutOptions);
+ GUILayout.Space(10);
+ EditorGUILayout.LabelField("Console Output", SettingsStyles.ColumnHeaderStyle, SettingsLayoutOptions.FixedWidth150LayoutOptions);
+ EditorGUILayout.EndHorizontal();
+
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.Label("Development", SettingsLayoutOptions.FixedWidth130LayoutOptions);
+ GUILayout.Space(10);
SerializedProperty developmentLevelsProperty = settings.FindProperty("traceDevelopmentLevels");
EditorGUI.BeginChangeCheck();
ushort newDevelopmentLevels = (ushort)EditorGUILayout.MaskField(s_developmentLevelsContent, developmentLevelsProperty.intValue,
- developmentLevelsProperty.enumDisplayNames);
+ developmentLevelsProperty.enumDisplayNames, SettingsLayoutOptions.FixedWidth150LayoutOptions);
if (EditorGUI.EndChangeCheck())
{
developmentLevelsProperty.intValue = newDevelopmentLevels;
}
+ GUILayout.Space(10);
+ EditorGUILayout.PropertyField(settings.FindProperty("traceDevelopmentOutputToUnityConsole"), s_developmentConsoleOutput, SettingsLayoutOptions.FixedWidth150LayoutOptions);
+ EditorGUILayout.EndHorizontal();
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.Label("Debug", SettingsLayoutOptions.FixedWidth130LayoutOptions);
+ GUILayout.Space(10);
SerializedProperty debugLevelsProperty = settings.FindProperty("traceDebugLevels");
EditorGUI.BeginChangeCheck();
ushort newDebugLevels = (ushort)EditorGUILayout.MaskField(s_debugLevelsContent, debugLevelsProperty.intValue,
- debugLevelsProperty.enumDisplayNames);
+ debugLevelsProperty.enumDisplayNames, SettingsLayoutOptions.FixedWidth150LayoutOptions);
if (EditorGUI.EndChangeCheck())
{
debugLevelsProperty.intValue = newDebugLevels;
}
+ GUILayout.Space(10);
+ EditorGUILayout.PropertyField(settings.FindProperty("traceDebugOutputToUnityConsole"),
+ s_debugConsoleOutput, SettingsLayoutOptions.FixedWidth150LayoutOptions);
+ EditorGUILayout.EndHorizontal();
+ EditorGUILayout.BeginHorizontal();
+ GUILayout.Label("Release", SettingsLayoutOptions.FixedWidth130LayoutOptions);
+ GUILayout.Space(10);
SerializedProperty releaseLevelsProperty = settings.FindProperty("traceReleaseLevels");
EditorGUI.BeginChangeCheck();
ushort newReleaseLevels = (ushort)EditorGUILayout.MaskField(s_releaseLevelsContent, releaseLevelsProperty.intValue,
- releaseLevelsProperty.enumDisplayNames);
+ releaseLevelsProperty.enumDisplayNames,SettingsLayoutOptions.FixedWidth150LayoutOptions);
if (EditorGUI.EndChangeCheck())
{
releaseLevelsProperty.intValue = newReleaseLevels;
}
+ EditorGUILayout.EndHorizontal();
}
}
}
\ No newline at end of file
diff --git a/GDX/Editor/ProjectSettings/EnvironmentSettings.cs.meta b/Editor/ProjectSettings/EnvironmentSettings.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/EnvironmentSettings.cs.meta
rename to Editor/ProjectSettings/EnvironmentSettings.cs.meta
diff --git a/GDX/Editor/ProjectSettings/LocaleSettings.cs b/Editor/ProjectSettings/LocaleSettings.cs
similarity index 100%
rename from GDX/Editor/ProjectSettings/LocaleSettings.cs
rename to Editor/ProjectSettings/LocaleSettings.cs
diff --git a/GDX/Editor/ProjectSettings/LocaleSettings.cs.meta b/Editor/ProjectSettings/LocaleSettings.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/LocaleSettings.cs.meta
rename to Editor/ProjectSettings/LocaleSettings.cs.meta
diff --git a/GDX/Editor/ProjectSettings/PackageStatusSection.cs b/Editor/ProjectSettings/PackageStatusSection.cs
similarity index 95%
rename from GDX/Editor/ProjectSettings/PackageStatusSection.cs
rename to Editor/ProjectSettings/PackageStatusSection.cs
index 5f09e286..622b156a 100644
--- a/GDX/Editor/ProjectSettings/PackageStatusSection.cs
+++ b/Editor/ProjectSettings/PackageStatusSection.cs
@@ -37,7 +37,7 @@ internal static void Draw()
GUILayout.BeginHorizontal();
- GUILayout.Label("-", SettingsStyles.BulletLayoutOptions);
+ GUILayout.Label("-", SettingsLayoutOptions.BulletLayoutOptions);
#if UNITY_2021_1_OR_NEWER
if (EditorGUILayout.LinkButton("Repository"))
#elif UNITY_2019_1_OR_NEWER
@@ -54,7 +54,7 @@ internal static void Draw()
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
- GUILayout.Label("-", SettingsStyles.BulletLayoutOptions);
+ GUILayout.Label("-", SettingsLayoutOptions.BulletLayoutOptions);
#if UNITY_2021_1_OR_NEWER
if (EditorGUILayout.LinkButton("Documentation"))
#elif UNITY_2019_1_OR_NEWER
@@ -71,7 +71,7 @@ internal static void Draw()
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
- GUILayout.Label("-", SettingsStyles.BulletLayoutOptions);
+ GUILayout.Label("-", SettingsLayoutOptions.BulletLayoutOptions);
#if UNITY_2021_1_OR_NEWER
if (EditorGUILayout.LinkButton("Report an Issue"))
#elif UNITY_2019_1_OR_NEWER
diff --git a/GDX/Editor/ProjectSettings/PackageStatusSection.cs.meta b/Editor/ProjectSettings/PackageStatusSection.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/PackageStatusSection.cs.meta
rename to Editor/ProjectSettings/PackageStatusSection.cs.meta
diff --git a/GDX/Editor/ProjectSettings/SettingsGUIUtility.cs b/Editor/ProjectSettings/SettingsGUIUtility.cs
similarity index 93%
rename from GDX/Editor/ProjectSettings/SettingsGUIUtility.cs
rename to Editor/ProjectSettings/SettingsGUIUtility.cs
index 24dbb966..2938777c 100644
--- a/GDX/Editor/ProjectSettings/SettingsGUIUtility.cs
+++ b/Editor/ProjectSettings/SettingsGUIUtility.cs
@@ -47,7 +47,7 @@ public static bool CreateSettingsSection(string id, bool defaultVisibility, stri
{
// ReSharper disable once InvertIf
if (GUILayout.Button(SettingsStyles.PlusIcon, SettingsStyles.SectionHeaderExpandButtonStyle,
- SettingsStyles.SectionHeaderExpandLayoutOptions))
+ SettingsLayoutOptions.SectionHeaderExpandLayoutOptions))
{
GUIUtility.hotControl = 0;
SetCachedEditorBoolean(id, true);
@@ -57,7 +57,7 @@ public static bool CreateSettingsSection(string id, bool defaultVisibility, stri
{
// ReSharper disable once InvertIf
if (GUILayout.Button(SettingsStyles.MinusIcon, SettingsStyles.SectionHeaderExpandButtonStyle,
- SettingsStyles.SectionHeaderExpandLayoutOptions))
+ SettingsLayoutOptions.SectionHeaderExpandLayoutOptions))
{
GUIUtility.hotControl = 0;
SetCachedEditorBoolean(id, false);
@@ -91,7 +91,7 @@ public static bool CreateSettingsSection(string id, bool defaultVisibility, stri
{
// ReSharper disable once InvertIf
if (GUILayout.Button(SettingsStyles.PlusIcon, SettingsStyles.SectionHeaderExpandButtonStyle,
- SettingsStyles.SectionHeaderExpandLayoutOptions))
+ SettingsLayoutOptions.SectionHeaderExpandLayoutOptions))
{
GUIUtility.hotControl = 0;
SetCachedEditorBoolean(id, true);
@@ -101,7 +101,7 @@ public static bool CreateSettingsSection(string id, bool defaultVisibility, stri
{
// ReSharper disable once InvertIf
if (GUILayout.Button(SettingsStyles.MinusIcon, SettingsStyles.SectionHeaderExpandButtonStyle,
- SettingsStyles.SectionHeaderExpandLayoutOptions))
+ SettingsLayoutOptions.SectionHeaderExpandLayoutOptions))
{
GUIUtility.hotControl = 0;
SetCachedEditorBoolean(id, false);
@@ -120,7 +120,7 @@ public static bool CreateSettingsSection(string id, bool defaultVisibility, stri
GUILayout.FlexibleSpace();
EditorGUILayout.PropertyField(sectionToggleProperty, sectionToggleContent,
- SettingsStyles.SectionHeaderToggleLayoutOptions);
+ SettingsLayoutOptions.SectionHeaderToggleLayoutOptions);
}
else
{
@@ -131,7 +131,7 @@ public static bool CreateSettingsSection(string id, bool defaultVisibility, stri
{
// ReSharper disable once InvertIf
if (GUILayout.Button(SettingsStyles.PlusIcon, SettingsStyles.SectionHeaderExpandButtonStyle,
- SettingsStyles.SectionHeaderExpandLayoutOptions))
+ SettingsLayoutOptions.SectionHeaderExpandLayoutOptions))
{
GUIUtility.hotControl = 0;
SetCachedEditorBoolean(id, true);
@@ -141,7 +141,7 @@ public static bool CreateSettingsSection(string id, bool defaultVisibility, stri
{
// ReSharper disable once InvertIf
if (GUILayout.Button(SettingsStyles.MinusIcon, SettingsStyles.SectionHeaderExpandButtonStyle,
- SettingsStyles.SectionHeaderExpandLayoutOptions))
+ SettingsLayoutOptions.SectionHeaderExpandLayoutOptions))
{
GUIUtility.hotControl = 0;
SetCachedEditorBoolean(id, false);
@@ -161,7 +161,7 @@ public static bool CreateSettingsSection(string id, bool defaultVisibility, stri
GUILayout.FlexibleSpace();
EditorGUILayout.PropertyField(sectionToggleProperty, sectionToggleContent,
- SettingsStyles.SectionHeaderToggleLayoutOptions);
+ SettingsLayoutOptions.SectionHeaderToggleLayoutOptions);
}
GUILayout.EndHorizontal();
diff --git a/GDX/Editor/ProjectSettings/SettingsGUIUtility.cs.meta b/Editor/ProjectSettings/SettingsGUIUtility.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/SettingsGUIUtility.cs.meta
rename to Editor/ProjectSettings/SettingsGUIUtility.cs.meta
diff --git a/Editor/ProjectSettings/SettingsLayoutOptions.cs b/Editor/ProjectSettings/SettingsLayoutOptions.cs
new file mode 100644
index 00000000..1b91f6b5
--- /dev/null
+++ b/Editor/ProjectSettings/SettingsLayoutOptions.cs
@@ -0,0 +1,49 @@
+// Copyright (c) 2020-2021 dotBunny Inc.
+// dotBunny licenses this file to you under the BSL-1.0 license.
+// See the LICENSE file in the project root for more information.
+
+using UnityEditor;
+using UnityEngine;
+
+namespace GDX.Editor.ProjectSettings
+{
+ public class SettingsLayoutOptions
+ {
+ ///
+ /// A collection of layout parameters to use when rendering the expand button on section headers.
+ ///
+ public static readonly GUILayoutOption[] BulletLayoutOptions;
+
+ ///
+ /// A specific max width (130) for layout options to allow for organized width layouts.
+ ///
+ public static readonly GUILayoutOption[] FixedWidth130LayoutOptions;
+
+ ///
+ /// A specific max width (150) for layout options to allow for organized width layouts with a margin on the right.
+ ///
+ public static readonly GUILayoutOption[] FixedWidth150LayoutOptions;
+
+ ///
+ /// A collection of layout parameters to use when rendering the expand button on section headers.
+ ///
+ public static readonly GUILayoutOption[] SectionHeaderExpandLayoutOptions;
+
+ ///
+ /// A collection of layout parameters to use when rendering the toggle option on section headers.
+ ///
+ public static readonly GUILayoutOption[] SectionHeaderToggleLayoutOptions;
+
+ static SettingsLayoutOptions()
+ {
+ BulletLayoutOptions = new[] {GUILayout.Width(10)};
+ SectionHeaderToggleLayoutOptions =
+ new[] {GUILayout.Width(EditorStyles.toggle.CalcSize(GUIContent.none).x)};
+ SectionHeaderExpandLayoutOptions = new[] {GUILayout.Width(25)};
+ FixedWidth130LayoutOptions =
+ new[] {GUILayout.MaxWidth(130), GUILayout.MinWidth(130), GUILayout.Width(130)};
+ FixedWidth150LayoutOptions =
+ new[] {GUILayout.MaxWidth(150), GUILayout.MinWidth(150), GUILayout.Width(150)};
+ }
+ }
+}
\ No newline at end of file
diff --git a/Editor/ProjectSettings/SettingsLayoutOptions.cs.meta b/Editor/ProjectSettings/SettingsLayoutOptions.cs.meta
new file mode 100644
index 00000000..b2467598
--- /dev/null
+++ b/Editor/ProjectSettings/SettingsLayoutOptions.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: a315d7c52f5d46988c8f4eb64ee57df3
+timeCreated: 1630256580
\ No newline at end of file
diff --git a/GDX/Editor/ProjectSettings/SettingsProvider.cs b/Editor/ProjectSettings/SettingsProvider.cs
similarity index 100%
rename from GDX/Editor/ProjectSettings/SettingsProvider.cs
rename to Editor/ProjectSettings/SettingsProvider.cs
diff --git a/GDX/Editor/ProjectSettings/SettingsProvider.cs.meta b/Editor/ProjectSettings/SettingsProvider.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/SettingsProvider.cs.meta
rename to Editor/ProjectSettings/SettingsProvider.cs.meta
diff --git a/GDX/Editor/ProjectSettings/SettingsStyles.cs b/Editor/ProjectSettings/SettingsStyles.cs
similarity index 87%
rename from GDX/Editor/ProjectSettings/SettingsStyles.cs
rename to Editor/ProjectSettings/SettingsStyles.cs
index 5c1454f1..eb7fb61d 100644
--- a/GDX/Editor/ProjectSettings/SettingsStyles.cs
+++ b/Editor/ProjectSettings/SettingsStyles.cs
@@ -13,11 +13,6 @@ namespace GDX.Editor.ProjectSettings
[HideFromDocFX]
public static class SettingsStyles
{
- ///
- /// A collection of layout parameters to use when rendering the expand button on section headers.
- ///
- public static readonly GUILayoutOption[] BulletLayoutOptions;
-
///
/// A " /> representing a button.
///
@@ -65,10 +60,9 @@ public static class SettingsStyles
public static readonly GUIStyle TableRowStyle;
///
- /// A specific max width (130) for layout options to allow for organized width layouts.
+ /// A style for column headers.
///
- public static readonly GUILayoutOption[] FixedWidth130LayoutOptions;
-
+ public static readonly GUIStyle ColumnHeaderStyle;
public static readonly GUIStyle CombinedFoldoutStyle;
@@ -87,16 +81,6 @@ public static class SettingsStyles
///
public static readonly GUIStyle SectionHeaderExpandButtonStyle;
- ///
- /// A collection of layout parameters to use when rendering the expand button on section headers.
- ///
- public static readonly GUILayoutOption[] SectionHeaderExpandLayoutOptions;
-
- ///
- /// A collection of layout parameters to use when rendering the toggle option on section headers.
- ///
- public static readonly GUILayoutOption[] SectionHeaderToggleLayoutOptions;
-
///
/// A representing the header of a sub section definition.
///
@@ -208,6 +192,8 @@ static SettingsStyles()
//padding = { right = 0 }
};
+ ColumnHeaderStyle = new GUIStyle("label") { fontStyle = FontStyle.Italic };
+
// Section Headers
SectionHeaderStyle = new GUIStyle("box") {margin = {left = -20}};
@@ -218,14 +204,8 @@ static SettingsStyles()
SectionHeaderTextDisabledStyle =
new GUIStyle(SectionHeaderTextDefaultStyle) {normal = {textColor = s_whiteBlend25Color}};
- SectionHeaderToggleLayoutOptions =
- new[] {GUILayout.Width(EditorStyles.toggle.CalcSize(GUIContent.none).x)};
-
SectionHeaderExpandButtonStyle = new GUIStyle("button") {fontStyle = FontStyle.Bold};
- SectionHeaderExpandLayoutOptions = new[] {GUILayout.Width(25)};
- BulletLayoutOptions = new[] {GUILayout.Width(10)};
-
SubSectionHeaderTextStyle = new GUIStyle(EditorStyles.largeLabel)
{
fontStyle = FontStyle.Bold, fontSize = EditorStyles.largeLabel.fontSize - 1, margin = {left = 2}
@@ -233,9 +213,6 @@ static SettingsStyles()
WordWrappedLabelStyle = new GUIStyle("label") {wordWrap = true};
HelpButtonStyle = new GUIStyle("IconButton") {margin = {top = 5}};
-
- FixedWidth130LayoutOptions =
- new[] {GUILayout.MaxWidth(130), GUILayout.MinWidth(130), GUILayout.Width(130)};
}
}
}
\ No newline at end of file
diff --git a/GDX/Editor/ProjectSettings/SettingsStyles.cs.meta b/Editor/ProjectSettings/SettingsStyles.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/SettingsStyles.cs.meta
rename to Editor/ProjectSettings/SettingsStyles.cs.meta
diff --git a/GDX/Editor/ProjectSettings/VisualScriptingSettings.cs b/Editor/ProjectSettings/VisualScriptingSettings.cs
similarity index 99%
rename from GDX/Editor/ProjectSettings/VisualScriptingSettings.cs
rename to Editor/ProjectSettings/VisualScriptingSettings.cs
index 0cf89510..2518efab 100644
--- a/GDX/Editor/ProjectSettings/VisualScriptingSettings.cs
+++ b/Editor/ProjectSettings/VisualScriptingSettings.cs
@@ -199,7 +199,7 @@ private static void DrawNodeSection(string category, GUIContent description, Lis
SettingsStyles.CombinedFoldoutStyle);
SettingsGUIUtility.SetCachedEditorBoolean(foldoutID, sectionFoldout);
- GUILayout.Label(category, EditorStyles.boldLabel, SettingsStyles.FixedWidth130LayoutOptions);
+ GUILayout.Label(category, EditorStyles.boldLabel, SettingsLayoutOptions.FixedWidth130LayoutOptions);
GUILayout.BeginVertical();
GUILayout.Label(description, SettingsStyles.WordWrappedLabelStyle);
@@ -243,7 +243,7 @@ private static void DrawNodeSection(string category, GUIContent description, Lis
GUILayout.EndVertical();
bool hasAllTypes = HasAllTypesInConfiguration(types);
- bool changed = GUILayout.Toggle(hasAllTypes, "", SettingsStyles.SectionHeaderToggleLayoutOptions);
+ bool changed = GUILayout.Toggle(hasAllTypes, "", SettingsLayoutOptions.SectionHeaderToggleLayoutOptions);
// A change has occured
if (changed != hasAllTypes)
diff --git a/GDX/Editor/ProjectSettings/VisualScriptingSettings.cs.meta b/Editor/ProjectSettings/VisualScriptingSettings.cs.meta
similarity index 100%
rename from GDX/Editor/ProjectSettings/VisualScriptingSettings.cs.meta
rename to Editor/ProjectSettings/VisualScriptingSettings.cs.meta
diff --git a/GDX/Editor/PropertyDrawers.meta b/Editor/PropertyDrawers.meta
similarity index 100%
rename from GDX/Editor/PropertyDrawers.meta
rename to Editor/PropertyDrawers.meta
diff --git a/GDX/Editor/PropertyDrawers/DisableInInspectorAttributePropertyDrawer.cs b/Editor/PropertyDrawers/DisableInInspectorAttributePropertyDrawer.cs
similarity index 100%
rename from GDX/Editor/PropertyDrawers/DisableInInspectorAttributePropertyDrawer.cs
rename to Editor/PropertyDrawers/DisableInInspectorAttributePropertyDrawer.cs
diff --git a/GDX/Editor/PropertyDrawers/DisableInInspectorAttributePropertyDrawer.cs.meta b/Editor/PropertyDrawers/DisableInInspectorAttributePropertyDrawer.cs.meta
similarity index 100%
rename from GDX/Editor/PropertyDrawers/DisableInInspectorAttributePropertyDrawer.cs.meta
rename to Editor/PropertyDrawers/DisableInInspectorAttributePropertyDrawer.cs.meta
diff --git a/GDX/Editor/PropertyDrawers/SerializedDictionaryPropertyDrawer.cs b/Editor/PropertyDrawers/SerializedDictionaryPropertyDrawer.cs
similarity index 100%
rename from GDX/Editor/PropertyDrawers/SerializedDictionaryPropertyDrawer.cs
rename to Editor/PropertyDrawers/SerializedDictionaryPropertyDrawer.cs
diff --git a/GDX/Editor/PropertyDrawers/SerializedDictionaryPropertyDrawer.cs.meta b/Editor/PropertyDrawers/SerializedDictionaryPropertyDrawer.cs.meta
similarity index 100%
rename from GDX/Editor/PropertyDrawers/SerializedDictionaryPropertyDrawer.cs.meta
rename to Editor/PropertyDrawers/SerializedDictionaryPropertyDrawer.cs.meta
diff --git a/GDX/Editor/UpdateProvider.cs b/Editor/UpdateProvider.cs
similarity index 100%
rename from GDX/Editor/UpdateProvider.cs
rename to Editor/UpdateProvider.cs
diff --git a/GDX/Editor/UpdateProvider.cs.meta b/Editor/UpdateProvider.cs.meta
similarity index 100%
rename from GDX/Editor/UpdateProvider.cs.meta
rename to Editor/UpdateProvider.cs.meta
diff --git a/GDX/Editor/VersionControl.cs b/Editor/VersionControl.cs
similarity index 100%
rename from GDX/Editor/VersionControl.cs
rename to Editor/VersionControl.cs
diff --git a/GDX/Editor/VersionControl.cs.meta b/Editor/VersionControl.cs.meta
similarity index 100%
rename from GDX/Editor/VersionControl.cs.meta
rename to Editor/VersionControl.cs.meta
diff --git a/GDX.meta b/GDX.meta
deleted file mode 100644
index 874fc493..00000000
--- a/GDX.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 0c6949db31860e146921b7dae0f69453
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GDX/Runtime.meta b/Runtime.meta
similarity index 100%
rename from GDX/Runtime.meta
rename to Runtime.meta
diff --git a/GDX/Runtime/AddressablesExtensions.cs b/Runtime/AddressablesExtensions.cs
similarity index 99%
rename from GDX/Runtime/AddressablesExtensions.cs
rename to Runtime/AddressablesExtensions.cs
index 3fbfe5b9..82619247 100644
--- a/GDX/Runtime/AddressablesExtensions.cs
+++ b/Runtime/AddressablesExtensions.cs
@@ -22,7 +22,7 @@ namespace GDX
/// Requires UnityEngine.CoreModule.dll to function correctly.
/// Requires com.unity.addressables Package.
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class AddressablesExtensions
{
///
diff --git a/GDX/Runtime/AddressablesExtensions.cs.meta b/Runtime/AddressablesExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/AddressablesExtensions.cs.meta
rename to Runtime/AddressablesExtensions.cs.meta
diff --git a/Runtime/Array2DExtensions.cs b/Runtime/Array2DExtensions.cs
new file mode 100644
index 00000000..c5c8a5ce
--- /dev/null
+++ b/Runtime/Array2DExtensions.cs
@@ -0,0 +1,62 @@
+// Copyright (c) 2020-2021 dotBunny Inc.
+// dotBunny licenses this file to you under the BSL-1.0 license.
+// See the LICENSE file in the project root for more information.
+
+using GDX.Collections.Generic;
+#if GDX_MATHEMATICS
+using Unity.Mathematics;
+#else
+using UnityEngine;
+#endif
+
+namespace GDX
+{
+ ///
+ /// Array2D Based Extension Methods
+ ///
+ [VisualScriptingCompatible(2)]
+ public static class Array2DExtensions
+ {
+ ///
+ /// Generate an array scaled by bilinear interpolation.
+ ///
+ /// Works with values.
+ /// The existing to scale.
+ /// The multiple to scale by.
+ public static Array2D Scale(this Array2D inputArray, int scaleFactor = 2)
+ {
+ int originalRowsMinusOne = inputArray.RowCount - 1;
+ int originalColsMinusOne = inputArray.ColumnCount - 1;
+
+ int newRows = inputArray.RowCount * scaleFactor;
+ int newCols = inputArray.ColumnCount * scaleFactor;
+
+ Array2D returnArray = new Array2D(inputArray.RowCount * scaleFactor,
+ inputArray.ColumnCount * scaleFactor);
+
+ for (int x = 0; x < newCols; x++)
+ for (int y = 0; y < newRows; y++)
+ {
+ float gx = (float)x / newCols * originalColsMinusOne;
+ float gy = (float)y / newCols * originalRowsMinusOne;
+ int gxi = (int)gx;
+ int gyi = (int)gy;
+
+ float c00 = inputArray[gxi, gyi];
+ float c10 = inputArray[gxi + 1, gyi];
+ float c01 = inputArray[gxi, gyi + 1];
+ float c11 = inputArray[gxi + 1, gyi + 1];
+
+ float tx = gx - gxi;
+ float ty = gy - gyi;
+#if GDX_MATHEMATICS
+ returnArray[x, y] = math.lerp(math.lerp(c00, c10, tx), math.lerp(c01, c11, tx), ty);
+#else
+ returnArray[x, y] = Mathf.Lerp(Mathf.Lerp(c00, c10, tx), Mathf.Lerp(c01, c11, tx), ty);
+#endif
+ }
+
+ return returnArray;
+ }
+ }
+}
\ No newline at end of file
diff --git a/GDX/Runtime/StringExtensions.cs.meta b/Runtime/Array2DExtensions.cs.meta
similarity index 83%
rename from GDX/Runtime/StringExtensions.cs.meta
rename to Runtime/Array2DExtensions.cs.meta
index d103560a..8e8eb3b3 100644
--- a/GDX/Runtime/StringExtensions.cs.meta
+++ b/Runtime/Array2DExtensions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: dbf33f5628829714ea0e13186f773546
+guid: 4af681bb4bac4dd1aacf017420b90dbe
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/GDX/Runtime/ArrayExtensions.cs b/Runtime/ArrayExtensions.cs
similarity index 99%
rename from GDX/Runtime/ArrayExtensions.cs
rename to Runtime/ArrayExtensions.cs
index ab40ba16..cf1427e3 100644
--- a/GDX/Runtime/ArrayExtensions.cs
+++ b/Runtime/ArrayExtensions.cs
@@ -10,7 +10,7 @@ namespace GDX
///
/// Array Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class ArrayExtensions
{
///
diff --git a/GDX/Runtime/ArrayExtensions.cs.meta b/Runtime/ArrayExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/ArrayExtensions.cs.meta
rename to Runtime/ArrayExtensions.cs.meta
diff --git a/GDX/Runtime/AssemblyInfo.cs b/Runtime/AssemblyInfo.cs
similarity index 100%
rename from GDX/Runtime/AssemblyInfo.cs
rename to Runtime/AssemblyInfo.cs
diff --git a/GDX/Runtime/AssemblyInfo.cs.meta b/Runtime/AssemblyInfo.cs.meta
similarity index 100%
rename from GDX/Runtime/AssemblyInfo.cs.meta
rename to Runtime/AssemblyInfo.cs.meta
diff --git a/GDX/Runtime/BoxColliderExtensions.cs b/Runtime/BoxColliderExtensions.cs
similarity index 97%
rename from GDX/Runtime/BoxColliderExtensions.cs
rename to Runtime/BoxColliderExtensions.cs
index 38ef9051..25ec355f 100644
--- a/GDX/Runtime/BoxColliderExtensions.cs
+++ b/Runtime/BoxColliderExtensions.cs
@@ -9,7 +9,7 @@ namespace GDX
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class BoxColliderExtensions
{
///
diff --git a/GDX/Runtime/BoxColliderExtensions.cs.meta b/Runtime/BoxColliderExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/BoxColliderExtensions.cs.meta
rename to Runtime/BoxColliderExtensions.cs.meta
diff --git a/GDX/Runtime/ByteExtensions.cs b/Runtime/ByteExtensions.cs
similarity index 98%
rename from GDX/Runtime/ByteExtensions.cs
rename to Runtime/ByteExtensions.cs
index aecb45c4..64a36fe0 100644
--- a/GDX/Runtime/ByteExtensions.cs
+++ b/Runtime/ByteExtensions.cs
@@ -7,7 +7,7 @@ namespace GDX
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class ByteExtensions
{
///
diff --git a/GDX/Runtime/ByteExtensions.cs.meta b/Runtime/ByteExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/ByteExtensions.cs.meta
rename to Runtime/ByteExtensions.cs.meta
diff --git a/GDX/Runtime/CapsuleColliderExtensions.cs b/Runtime/CapsuleColliderExtensions.cs
similarity index 98%
rename from GDX/Runtime/CapsuleColliderExtensions.cs
rename to Runtime/CapsuleColliderExtensions.cs
index 84b6fe40..add05856 100644
--- a/GDX/Runtime/CapsuleColliderExtensions.cs
+++ b/Runtime/CapsuleColliderExtensions.cs
@@ -10,7 +10,7 @@ namespace GDX
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class CapsuleColliderExtensions
{
///
diff --git a/GDX/Runtime/CapsuleColliderExtensions.cs.meta b/Runtime/CapsuleColliderExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/CapsuleColliderExtensions.cs.meta
rename to Runtime/CapsuleColliderExtensions.cs.meta
diff --git a/GDX/Runtime/Collections.meta b/Runtime/Collections.meta
similarity index 100%
rename from GDX/Runtime/Collections.meta
rename to Runtime/Collections.meta
diff --git a/GDX/Runtime/Collections/BitArray128.cs b/Runtime/Collections/BitArray128.cs
similarity index 100%
rename from GDX/Runtime/Collections/BitArray128.cs
rename to Runtime/Collections/BitArray128.cs
diff --git a/GDX/Runtime/Collections/BitArray128.cs.meta b/Runtime/Collections/BitArray128.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/BitArray128.cs.meta
rename to Runtime/Collections/BitArray128.cs.meta
diff --git a/GDX/Runtime/Collections/BitArray16.cs b/Runtime/Collections/BitArray16.cs
similarity index 100%
rename from GDX/Runtime/Collections/BitArray16.cs
rename to Runtime/Collections/BitArray16.cs
diff --git a/GDX/Runtime/Collections/BitArray16.cs.meta b/Runtime/Collections/BitArray16.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/BitArray16.cs.meta
rename to Runtime/Collections/BitArray16.cs.meta
diff --git a/GDX/Runtime/Collections/BitArray256.cs b/Runtime/Collections/BitArray256.cs
similarity index 100%
rename from GDX/Runtime/Collections/BitArray256.cs
rename to Runtime/Collections/BitArray256.cs
diff --git a/GDX/Runtime/Collections/BitArray256.cs.meta b/Runtime/Collections/BitArray256.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/BitArray256.cs.meta
rename to Runtime/Collections/BitArray256.cs.meta
diff --git a/GDX/Runtime/Collections/BitArray32.cs b/Runtime/Collections/BitArray32.cs
similarity index 100%
rename from GDX/Runtime/Collections/BitArray32.cs
rename to Runtime/Collections/BitArray32.cs
diff --git a/GDX/Runtime/Collections/BitArray32.cs.meta b/Runtime/Collections/BitArray32.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/BitArray32.cs.meta
rename to Runtime/Collections/BitArray32.cs.meta
diff --git a/GDX/Runtime/Collections/BitArray512.cs b/Runtime/Collections/BitArray512.cs
similarity index 100%
rename from GDX/Runtime/Collections/BitArray512.cs
rename to Runtime/Collections/BitArray512.cs
diff --git a/GDX/Runtime/Collections/BitArray512.cs.meta b/Runtime/Collections/BitArray512.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/BitArray512.cs.meta
rename to Runtime/Collections/BitArray512.cs.meta
diff --git a/GDX/Runtime/Collections/BitArray64.cs b/Runtime/Collections/BitArray64.cs
similarity index 100%
rename from GDX/Runtime/Collections/BitArray64.cs
rename to Runtime/Collections/BitArray64.cs
diff --git a/GDX/Runtime/Collections/BitArray64.cs.meta b/Runtime/Collections/BitArray64.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/BitArray64.cs.meta
rename to Runtime/Collections/BitArray64.cs.meta
diff --git a/GDX/Runtime/Collections/BitArray8.cs b/Runtime/Collections/BitArray8.cs
similarity index 100%
rename from GDX/Runtime/Collections/BitArray8.cs
rename to Runtime/Collections/BitArray8.cs
diff --git a/GDX/Runtime/Collections/BitArray8.cs.meta b/Runtime/Collections/BitArray8.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/BitArray8.cs.meta
rename to Runtime/Collections/BitArray8.cs.meta
diff --git a/GDX/Runtime/Collections/FreeList.cs b/Runtime/Collections/FreeList.cs
similarity index 100%
rename from GDX/Runtime/Collections/FreeList.cs
rename to Runtime/Collections/FreeList.cs
diff --git a/GDX/Runtime/Collections/FreeList.cs.meta b/Runtime/Collections/FreeList.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/FreeList.cs.meta
rename to Runtime/Collections/FreeList.cs.meta
diff --git a/GDX/Runtime/Collections/Generic.meta b/Runtime/Collections/Generic.meta
similarity index 100%
rename from GDX/Runtime/Collections/Generic.meta
rename to Runtime/Collections/Generic.meta
diff --git a/GDX/Runtime/Collections/Generic/Array2D.cs b/Runtime/Collections/Generic/Array2D.cs
similarity index 91%
rename from GDX/Runtime/Collections/Generic/Array2D.cs
rename to Runtime/Collections/Generic/Array2D.cs
index 6ac37221..abf1f035 100644
--- a/GDX/Runtime/Collections/Generic/Array2D.cs
+++ b/Runtime/Collections/Generic/Array2D.cs
@@ -108,6 +108,28 @@ public void AddColumns(int numberOfNewColumns)
ColumnCount = newLengthOfArrays;
}
+ ///
+ /// Get the column index of the provided .
+ ///
+ /// A valid index contained within .
+ /// The column index.
+ public int GetColumnIndex(int index)
+ {
+ int leftOvers = index % ColumnCount;
+ return leftOvers;
+ }
+
+ ///
+ /// Get the row index of the provided .
+ ///
+ /// A valid index contained within .
+ /// The row index.
+ public int GetRowIndex(int index)
+ {
+ int leftOvers = index % ColumnCount;
+ return (index - leftOvers) / ColumnCount;
+ }
+
///
/// Reverse the order of the columns in the backing .
///
@@ -218,7 +240,6 @@ public void RotateCounterClockwise()
Array = newArray;
}
-
///
/// Creates a copy of the internal array as a traditional multi-dimensional array.
///
diff --git a/GDX/Runtime/Collections/Generic/Array2D.cs.meta b/Runtime/Collections/Generic/Array2D.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Generic/Array2D.cs.meta
rename to Runtime/Collections/Generic/Array2D.cs.meta
diff --git a/GDX/Runtime/Collections/Generic/CircularBuffer.cs b/Runtime/Collections/Generic/CircularBuffer.cs
similarity index 100%
rename from GDX/Runtime/Collections/Generic/CircularBuffer.cs
rename to Runtime/Collections/Generic/CircularBuffer.cs
diff --git a/GDX/Runtime/Collections/Generic/CircularBuffer.cs.meta b/Runtime/Collections/Generic/CircularBuffer.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Generic/CircularBuffer.cs.meta
rename to Runtime/Collections/Generic/CircularBuffer.cs.meta
diff --git a/GDX/Runtime/Collections/Generic/NativeArray2D.cs b/Runtime/Collections/Generic/NativeArray2D.cs
similarity index 100%
rename from GDX/Runtime/Collections/Generic/NativeArray2D.cs
rename to Runtime/Collections/Generic/NativeArray2D.cs
diff --git a/GDX/Runtime/Collections/Generic/NativeArray2D.cs.meta b/Runtime/Collections/Generic/NativeArray2D.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Generic/NativeArray2D.cs.meta
rename to Runtime/Collections/Generic/NativeArray2D.cs.meta
diff --git a/GDX/Runtime/Collections/Generic/NativeSimpleList.cs b/Runtime/Collections/Generic/NativeSimpleList.cs
similarity index 100%
rename from GDX/Runtime/Collections/Generic/NativeSimpleList.cs
rename to Runtime/Collections/Generic/NativeSimpleList.cs
diff --git a/GDX/Runtime/Collections/Generic/NativeSimpleList.cs.meta b/Runtime/Collections/Generic/NativeSimpleList.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Generic/NativeSimpleList.cs.meta
rename to Runtime/Collections/Generic/NativeSimpleList.cs.meta
diff --git a/GDX/Runtime/Collections/Generic/NativeSimpleQueue.cs b/Runtime/Collections/Generic/NativeSimpleQueue.cs
similarity index 100%
rename from GDX/Runtime/Collections/Generic/NativeSimpleQueue.cs
rename to Runtime/Collections/Generic/NativeSimpleQueue.cs
diff --git a/GDX/Runtime/Collections/Generic/NativeSimpleQueue.cs.meta b/Runtime/Collections/Generic/NativeSimpleQueue.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Generic/NativeSimpleQueue.cs.meta
rename to Runtime/Collections/Generic/NativeSimpleQueue.cs.meta
diff --git a/GDX/Runtime/Collections/Generic/NativeUniformArray3D.cs b/Runtime/Collections/Generic/NativeUniformArray3D.cs
similarity index 100%
rename from GDX/Runtime/Collections/Generic/NativeUniformArray3D.cs
rename to Runtime/Collections/Generic/NativeUniformArray3D.cs
diff --git a/GDX/Runtime/Collections/Generic/NativeUniformArray3D.cs.meta b/Runtime/Collections/Generic/NativeUniformArray3D.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Generic/NativeUniformArray3D.cs.meta
rename to Runtime/Collections/Generic/NativeUniformArray3D.cs.meta
diff --git a/GDX/Runtime/Collections/Generic/SerializableDictionary.cs b/Runtime/Collections/Generic/SerializableDictionary.cs
similarity index 100%
rename from GDX/Runtime/Collections/Generic/SerializableDictionary.cs
rename to Runtime/Collections/Generic/SerializableDictionary.cs
diff --git a/GDX/Runtime/Collections/Generic/SerializableDictionary.cs.meta b/Runtime/Collections/Generic/SerializableDictionary.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Generic/SerializableDictionary.cs.meta
rename to Runtime/Collections/Generic/SerializableDictionary.cs.meta
diff --git a/GDX/Runtime/Collections/Generic/SimpleList.cs b/Runtime/Collections/Generic/SimpleList.cs
similarity index 100%
rename from GDX/Runtime/Collections/Generic/SimpleList.cs
rename to Runtime/Collections/Generic/SimpleList.cs
diff --git a/GDX/Runtime/Collections/Generic/SimpleList.cs.meta b/Runtime/Collections/Generic/SimpleList.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Generic/SimpleList.cs.meta
rename to Runtime/Collections/Generic/SimpleList.cs.meta
diff --git a/GDX/Runtime/Collections/NativeSparseSet.cs b/Runtime/Collections/NativeSparseSet.cs
similarity index 92%
rename from GDX/Runtime/Collections/NativeSparseSet.cs
rename to Runtime/Collections/NativeSparseSet.cs
index b3b34641..f37304fa 100644
--- a/GDX/Runtime/Collections/NativeSparseSet.cs
+++ b/Runtime/Collections/NativeSparseSet.cs
@@ -739,5 +739,62 @@ public void Expand(int extraCapacity, ref NativeArray versionArray, Alloc
SparseArray[i] = i + 1; // Build the free list chain.
}
}
+
+ public void Reserve(int numberToReserve, Allocator allocator, NativeArrayOptions nativeArrayOptions)
+ {
+ int currentCapacity = SparseArray.Length;
+ int currentCount = Count;
+ int newCount = currentCount + numberToReserve;
+
+ if (newCount > currentCapacity)
+ {
+ NativeArray newSparseArray = new NativeArray(newCount, allocator, nativeArrayOptions);
+ NativeSlice newSparseArraySlice = new NativeSlice(newSparseArray, 0, currentCapacity);
+ newSparseArraySlice.CopyFrom(SparseArray);
+ SparseArray = newSparseArray;
+
+ NativeArray newDenseArray = new NativeArray(newCount, allocator, nativeArrayOptions);
+ NativeSlice newDenseArraySlice = new NativeSlice(newDenseArray, 0, currentCapacity);
+ newDenseArraySlice.CopyFrom(DenseArray);
+ DenseArray = newDenseArray;
+
+ for (int i = currentCapacity; i < newCount; i++)
+ {
+ DenseArray[i] = -1; // Set new dense indices as unclaimed.
+ SparseArray[i] = i + 1; // Build the free list chain.
+ }
+ }
+ }
+
+ public void Reserve(int numberToReserve, ref NativeArray versionArray, Allocator allocator, NativeArrayOptions nativeArrayOptions)
+ {
+ int currentCapacity = SparseArray.Length;
+ int currentCount = Count;
+ int newCount = currentCount + numberToReserve;
+
+ if (newCount > currentCapacity)
+ {
+ NativeArray newSparseArray = new NativeArray(newCount, allocator, nativeArrayOptions);
+ NativeSlice newSparseArraySlice = new NativeSlice(newSparseArray, 0, currentCapacity);
+ newSparseArraySlice.CopyFrom(SparseArray);
+ SparseArray = newSparseArray;
+
+ NativeArray newDenseArray = new NativeArray(newCount, allocator, nativeArrayOptions);
+ NativeSlice newDenseArraySlice = new NativeSlice(newDenseArray, 0, currentCapacity);
+ newDenseArraySlice.CopyFrom(DenseArray);
+ DenseArray = newDenseArray;
+
+ NativeArray newVersionArray = new NativeArray(newCount, allocator, nativeArrayOptions);
+ NativeSlice newVersionArraySlice = new NativeSlice(newVersionArray, 0, currentCapacity);
+ newVersionArraySlice.CopyFrom(versionArray);
+ versionArray = newVersionArray;
+
+ for (int i = currentCapacity; i < newCount; i++)
+ {
+ DenseArray[i] = -1; // Set new dense indices as unclaimed.
+ SparseArray[i] = i + 1; // Build the free list chain.
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/GDX/Runtime/Collections/NativeSparseSet.cs.meta b/Runtime/Collections/NativeSparseSet.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/NativeSparseSet.cs.meta
rename to Runtime/Collections/NativeSparseSet.cs.meta
diff --git a/GDX/Runtime/Collections/Pooling.meta b/Runtime/Collections/Pooling.meta
similarity index 100%
rename from GDX/Runtime/Collections/Pooling.meta
rename to Runtime/Collections/Pooling.meta
diff --git a/GDX/Runtime/Collections/Pooling/ArrayPool.cs b/Runtime/Collections/Pooling/ArrayPool.cs
similarity index 95%
rename from GDX/Runtime/Collections/Pooling/ArrayPool.cs
rename to Runtime/Collections/Pooling/ArrayPool.cs
index 70ae8a23..a7859c3b 100644
--- a/GDX/Runtime/Collections/Pooling/ArrayPool.cs
+++ b/Runtime/Collections/Pooling/ArrayPool.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System.Runtime.InteropServices;
+using GDX.Mathematics;
namespace GDX.Collections.Pooling
{
@@ -119,11 +120,4 @@ public void Return(T[] array)
ArrayPools[index] = arrayPool;
}
}
-
- [StructLayout(LayoutKind.Explicit)]
- public struct LongDoubleConversionUnion
- {
- [FieldOffset(0)] public long longValue;
- [FieldOffset(0)] public double doubleValue;
- }
}
\ No newline at end of file
diff --git a/GDX/Runtime/Collections/Pooling/ArrayPool.cs.meta b/Runtime/Collections/Pooling/ArrayPool.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/ArrayPool.cs.meta
rename to Runtime/Collections/Pooling/ArrayPool.cs.meta
diff --git a/GDX/Runtime/Collections/Pooling/GameObjectPool.cs b/Runtime/Collections/Pooling/GameObjectPool.cs
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/GameObjectPool.cs
rename to Runtime/Collections/Pooling/GameObjectPool.cs
diff --git a/GDX/Runtime/Collections/Pooling/GameObjectPool.cs.meta b/Runtime/Collections/Pooling/GameObjectPool.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/GameObjectPool.cs.meta
rename to Runtime/Collections/Pooling/GameObjectPool.cs.meta
diff --git a/GDX/Runtime/Collections/Pooling/IGameObjectPoolItem.cs b/Runtime/Collections/Pooling/IGameObjectPoolItem.cs
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/IGameObjectPoolItem.cs
rename to Runtime/Collections/Pooling/IGameObjectPoolItem.cs
diff --git a/GDX/Runtime/Collections/Pooling/IGameObjectPoolItem.cs.meta b/Runtime/Collections/Pooling/IGameObjectPoolItem.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/IGameObjectPoolItem.cs.meta
rename to Runtime/Collections/Pooling/IGameObjectPoolItem.cs.meta
diff --git a/GDX/Runtime/Collections/Pooling/IManagedPool.cs b/Runtime/Collections/Pooling/IManagedPool.cs
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/IManagedPool.cs
rename to Runtime/Collections/Pooling/IManagedPool.cs
diff --git a/GDX/Runtime/Collections/Pooling/IManagedPool.cs.meta b/Runtime/Collections/Pooling/IManagedPool.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/IManagedPool.cs.meta
rename to Runtime/Collections/Pooling/IManagedPool.cs.meta
diff --git a/GDX/Runtime/Collections/Pooling/JaggedArrayWithCount.cs b/Runtime/Collections/Pooling/JaggedArrayWithCount.cs
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/JaggedArrayWithCount.cs
rename to Runtime/Collections/Pooling/JaggedArrayWithCount.cs
diff --git a/GDX/Runtime/Collections/Pooling/JaggedArrayWithCount.cs.meta b/Runtime/Collections/Pooling/JaggedArrayWithCount.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/JaggedArrayWithCount.cs.meta
rename to Runtime/Collections/Pooling/JaggedArrayWithCount.cs.meta
diff --git a/GDX/Runtime/Collections/Pooling/ListManagedPool.cs b/Runtime/Collections/Pooling/ListManagedPool.cs
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/ListManagedPool.cs
rename to Runtime/Collections/Pooling/ListManagedPool.cs
diff --git a/GDX/Runtime/Collections/Pooling/ListManagedPool.cs.meta b/Runtime/Collections/Pooling/ListManagedPool.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/ListManagedPool.cs.meta
rename to Runtime/Collections/Pooling/ListManagedPool.cs.meta
diff --git a/GDX/Runtime/Collections/Pooling/ManagedPoolBuilder.cs b/Runtime/Collections/Pooling/ManagedPoolBuilder.cs
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/ManagedPoolBuilder.cs
rename to Runtime/Collections/Pooling/ManagedPoolBuilder.cs
diff --git a/GDX/Runtime/Collections/Pooling/ManagedPoolBuilder.cs.meta b/Runtime/Collections/Pooling/ManagedPoolBuilder.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/ManagedPoolBuilder.cs.meta
rename to Runtime/Collections/Pooling/ManagedPoolBuilder.cs.meta
diff --git a/GDX/Runtime/Collections/Pooling/ManagedPools.cs b/Runtime/Collections/Pooling/ManagedPools.cs
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/ManagedPools.cs
rename to Runtime/Collections/Pooling/ManagedPools.cs
diff --git a/GDX/Runtime/Collections/Pooling/ManagedPools.cs.meta b/Runtime/Collections/Pooling/ManagedPools.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/Pooling/ManagedPools.cs.meta
rename to Runtime/Collections/Pooling/ManagedPools.cs.meta
diff --git a/GDX/Runtime/Collections/SparseSet.cs b/Runtime/Collections/SparseSet.cs
similarity index 97%
rename from GDX/Runtime/Collections/SparseSet.cs
rename to Runtime/Collections/SparseSet.cs
index 6d02f85d..e723d049 100644
--- a/GDX/Runtime/Collections/SparseSet.cs
+++ b/Runtime/Collections/SparseSet.cs
@@ -719,6 +719,58 @@ public void Expand(int extraCapacity, ref ulong[] versionArray)
}
}
+ public void Reserve(int numberToReserve)
+ {
+ int currentCapacity = SparseArray.Length;
+ int currentCount = Count;
+ int newCount = currentCount + numberToReserve;
+
+ if (newCount > currentCapacity)
+ {
+ int[] newSparseArray = new int[newCount];
+ Array.Copy(SparseArray, 0, newSparseArray, 0, currentCapacity);
+ SparseArray = newSparseArray;
+
+ int[] newDenseArray = new int[newCount];
+ Array.Copy(DenseArray, 0, newDenseArray, 0, currentCapacity);
+ DenseArray = newDenseArray;
+
+ for (int i = currentCapacity; i < newCount; i++)
+ {
+ DenseArray[i] = -1; // Set new dense indices as unclaimed.
+ SparseArray[i] = i + 1; // Build the free list chain.
+ }
+ }
+ }
+
+ public void Reserve(int numberToReserve, ref ulong[] versionArray)
+ {
+ int currentCapacity = SparseArray.Length;
+ int currentCount = Count;
+ int newCount = currentCount + numberToReserve;
+
+ if (newCount > currentCapacity)
+ {
+ int[] newSparseArray = new int[newCount];
+ Array.Copy(SparseArray, 0, newSparseArray, 0, currentCapacity);
+ SparseArray = newSparseArray;
+
+ int[] newDenseArray = new int[newCount];
+ Array.Copy(DenseArray, 0, newDenseArray, 0, currentCapacity);
+ DenseArray = newDenseArray;
+
+ ulong[] newVersionArray = new ulong[newCount];
+ Array.Copy(versionArray, 0, newVersionArray, 0, currentCapacity);
+ versionArray = newVersionArray;
+
+ for (int i = currentCapacity; i < newCount; i++)
+ {
+ DenseArray[i] = -1; // Set new dense indices as unclaimed.
+ SparseArray[i] = i + 1; // Build the free list chain.
+ }
+ }
+ }
+
#region Parallel array method duplicates
///
diff --git a/GDX/Runtime/Collections/SparseSet.cs.meta b/Runtime/Collections/SparseSet.cs.meta
similarity index 100%
rename from GDX/Runtime/Collections/SparseSet.cs.meta
rename to Runtime/Collections/SparseSet.cs.meta
diff --git a/GDX/Runtime/Developer.meta b/Runtime/Developer.meta
similarity index 100%
rename from GDX/Runtime/Developer.meta
rename to Runtime/Developer.meta
diff --git a/GDX/Runtime/Developer/CommandLineParser.cs b/Runtime/Developer/CommandLineParser.cs
similarity index 100%
rename from GDX/Runtime/Developer/CommandLineParser.cs
rename to Runtime/Developer/CommandLineParser.cs
diff --git a/GDX/Runtime/Developer/CommandLineParser.cs.meta b/Runtime/Developer/CommandLineParser.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/CommandLineParser.cs.meta
rename to Runtime/Developer/CommandLineParser.cs.meta
diff --git a/GDX/Runtime/Developer/Conditionals.cs b/Runtime/Developer/Conditionals.cs
similarity index 100%
rename from GDX/Runtime/Developer/Conditionals.cs
rename to Runtime/Developer/Conditionals.cs
diff --git a/GDX/Runtime/Developer/Conditionals.cs.meta b/Runtime/Developer/Conditionals.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Conditionals.cs.meta
rename to Runtime/Developer/Conditionals.cs.meta
diff --git a/GDX/Runtime/Developer/Reports.meta b/Runtime/Developer/Reports.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports.meta
rename to Runtime/Developer/Reports.meta
diff --git a/GDX/Runtime/Developer/Reports/IntegerDiff.cs b/Runtime/Developer/Reports/IntegerDiff.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/IntegerDiff.cs
rename to Runtime/Developer/Reports/IntegerDiff.cs
diff --git a/GDX/Runtime/Developer/Reports/IntegerDiff.cs.meta b/Runtime/Developer/Reports/IntegerDiff.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/IntegerDiff.cs.meta
rename to Runtime/Developer/Reports/IntegerDiff.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/LongDiff.cs b/Runtime/Developer/Reports/LongDiff.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/LongDiff.cs
rename to Runtime/Developer/Reports/LongDiff.cs
diff --git a/GDX/Runtime/Developer/Reports/LongDiff.cs.meta b/Runtime/Developer/Reports/LongDiff.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/LongDiff.cs.meta
rename to Runtime/Developer/Reports/LongDiff.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Objects.meta b/Runtime/Developer/Reports/Objects.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects.meta
rename to Runtime/Developer/Reports/Objects.meta
diff --git a/GDX/Runtime/Developer/Reports/Objects/AssetBundleObjectInfo.cs b/Runtime/Developer/Reports/Objects/AssetBundleObjectInfo.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/AssetBundleObjectInfo.cs
rename to Runtime/Developer/Reports/Objects/AssetBundleObjectInfo.cs
diff --git a/GDX/Runtime/Developer/Reports/Objects/AssetBundleObjectInfo.cs.meta b/Runtime/Developer/Reports/Objects/AssetBundleObjectInfo.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/AssetBundleObjectInfo.cs.meta
rename to Runtime/Developer/Reports/Objects/AssetBundleObjectInfo.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Objects/MeshObjectInfo.cs b/Runtime/Developer/Reports/Objects/MeshObjectInfo.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/MeshObjectInfo.cs
rename to Runtime/Developer/Reports/Objects/MeshObjectInfo.cs
diff --git a/GDX/Runtime/Developer/Reports/Objects/MeshObjectInfo.cs.meta b/Runtime/Developer/Reports/Objects/MeshObjectInfo.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/MeshObjectInfo.cs.meta
rename to Runtime/Developer/Reports/Objects/MeshObjectInfo.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Objects/ObjectInfo.cs b/Runtime/Developer/Reports/Objects/ObjectInfo.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/ObjectInfo.cs
rename to Runtime/Developer/Reports/Objects/ObjectInfo.cs
diff --git a/GDX/Runtime/Developer/Reports/Objects/ObjectInfo.cs.meta b/Runtime/Developer/Reports/Objects/ObjectInfo.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/ObjectInfo.cs.meta
rename to Runtime/Developer/Reports/Objects/ObjectInfo.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Objects/ObjectInfoFactory.cs b/Runtime/Developer/Reports/Objects/ObjectInfoFactory.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/ObjectInfoFactory.cs
rename to Runtime/Developer/Reports/Objects/ObjectInfoFactory.cs
diff --git a/GDX/Runtime/Developer/Reports/Objects/ObjectInfoFactory.cs.meta b/Runtime/Developer/Reports/Objects/ObjectInfoFactory.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/ObjectInfoFactory.cs.meta
rename to Runtime/Developer/Reports/Objects/ObjectInfoFactory.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Objects/ShaderObjectInfo.cs b/Runtime/Developer/Reports/Objects/ShaderObjectInfo.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/ShaderObjectInfo.cs
rename to Runtime/Developer/Reports/Objects/ShaderObjectInfo.cs
diff --git a/GDX/Runtime/Developer/Reports/Objects/ShaderObjectInfo.cs.meta b/Runtime/Developer/Reports/Objects/ShaderObjectInfo.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/ShaderObjectInfo.cs.meta
rename to Runtime/Developer/Reports/Objects/ShaderObjectInfo.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Objects/TextureObjectInfo.cs b/Runtime/Developer/Reports/Objects/TextureObjectInfo.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/TextureObjectInfo.cs
rename to Runtime/Developer/Reports/Objects/TextureObjectInfo.cs
diff --git a/GDX/Runtime/Developer/Reports/Objects/TextureObjectInfo.cs.meta b/Runtime/Developer/Reports/Objects/TextureObjectInfo.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Objects/TextureObjectInfo.cs.meta
rename to Runtime/Developer/Reports/Objects/TextureObjectInfo.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Report.cs b/Runtime/Developer/Reports/Report.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Report.cs
rename to Runtime/Developer/Reports/Report.cs
diff --git a/GDX/Runtime/Developer/Reports/Report.cs.meta b/Runtime/Developer/Reports/Report.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Report.cs.meta
rename to Runtime/Developer/Reports/Report.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/ReportContext.cs b/Runtime/Developer/Reports/ReportContext.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/ReportContext.cs
rename to Runtime/Developer/Reports/ReportContext.cs
diff --git a/GDX/Runtime/Developer/Reports/ReportContext.cs.meta b/Runtime/Developer/Reports/ReportContext.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/ReportContext.cs.meta
rename to Runtime/Developer/Reports/ReportContext.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/ReportExtensions.cs b/Runtime/Developer/Reports/ReportExtensions.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/ReportExtensions.cs
rename to Runtime/Developer/Reports/ReportExtensions.cs
diff --git a/GDX/Runtime/Developer/Reports/ReportExtensions.cs.meta b/Runtime/Developer/Reports/ReportExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/ReportExtensions.cs.meta
rename to Runtime/Developer/Reports/ReportExtensions.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/ResourcesAudit.cs b/Runtime/Developer/Reports/ResourcesAudit.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/ResourcesAudit.cs
rename to Runtime/Developer/Reports/ResourcesAudit.cs
diff --git a/GDX/Runtime/Developer/Reports/ResourcesAudit.cs.meta b/Runtime/Developer/Reports/ResourcesAudit.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/ResourcesAudit.cs.meta
rename to Runtime/Developer/Reports/ResourcesAudit.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/ResourcesDiff.cs b/Runtime/Developer/Reports/ResourcesDiff.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/ResourcesDiff.cs
rename to Runtime/Developer/Reports/ResourcesDiff.cs
diff --git a/GDX/Runtime/Developer/Reports/ResourcesDiff.cs.meta b/Runtime/Developer/Reports/ResourcesDiff.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/ResourcesDiff.cs.meta
rename to Runtime/Developer/Reports/ResourcesDiff.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Sections.meta b/Runtime/Developer/Reports/Sections.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Sections.meta
rename to Runtime/Developer/Reports/Sections.meta
diff --git a/GDX/Runtime/Developer/Reports/Sections/ApplicationSection.cs b/Runtime/Developer/Reports/Sections/ApplicationSection.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Sections/ApplicationSection.cs
rename to Runtime/Developer/Reports/Sections/ApplicationSection.cs
diff --git a/GDX/Runtime/Developer/Reports/Sections/ApplicationSection.cs.meta b/Runtime/Developer/Reports/Sections/ApplicationSection.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Sections/ApplicationSection.cs.meta
rename to Runtime/Developer/Reports/Sections/ApplicationSection.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Sections/MemoryDiffSection.cs b/Runtime/Developer/Reports/Sections/MemoryDiffSection.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Sections/MemoryDiffSection.cs
rename to Runtime/Developer/Reports/Sections/MemoryDiffSection.cs
diff --git a/GDX/Runtime/Developer/Reports/Sections/MemoryDiffSection.cs.meta b/Runtime/Developer/Reports/Sections/MemoryDiffSection.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Sections/MemoryDiffSection.cs.meta
rename to Runtime/Developer/Reports/Sections/MemoryDiffSection.cs.meta
diff --git a/GDX/Runtime/Developer/Reports/Sections/MemorySection.cs b/Runtime/Developer/Reports/Sections/MemorySection.cs
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Sections/MemorySection.cs
rename to Runtime/Developer/Reports/Sections/MemorySection.cs
diff --git a/GDX/Runtime/Developer/Reports/Sections/MemorySection.cs.meta b/Runtime/Developer/Reports/Sections/MemorySection.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/Reports/Sections/MemorySection.cs.meta
rename to Runtime/Developer/Reports/Sections/MemorySection.cs.meta
diff --git a/GDX/Runtime/Developer/TransientReference.cs b/Runtime/Developer/TransientReference.cs
similarity index 100%
rename from GDX/Runtime/Developer/TransientReference.cs
rename to Runtime/Developer/TransientReference.cs
diff --git a/GDX/Runtime/Developer/TransientReference.cs.meta b/Runtime/Developer/TransientReference.cs.meta
similarity index 100%
rename from GDX/Runtime/Developer/TransientReference.cs.meta
rename to Runtime/Developer/TransientReference.cs.meta
diff --git a/GDX/Runtime/DisableInInspectorAttribute.cs b/Runtime/DisableInInspectorAttribute.cs
similarity index 100%
rename from GDX/Runtime/DisableInInspectorAttribute.cs
rename to Runtime/DisableInInspectorAttribute.cs
diff --git a/GDX/Runtime/DisableInInspectorAttribute.cs.meta b/Runtime/DisableInInspectorAttribute.cs.meta
similarity index 100%
rename from GDX/Runtime/DisableInInspectorAttribute.cs.meta
rename to Runtime/DisableInInspectorAttribute.cs.meta
diff --git a/GDX/Runtime/Display.cs b/Runtime/Display.cs
similarity index 100%
rename from GDX/Runtime/Display.cs
rename to Runtime/Display.cs
diff --git a/GDX/Runtime/Display.cs.meta b/Runtime/Display.cs.meta
similarity index 100%
rename from GDX/Runtime/Display.cs.meta
rename to Runtime/Display.cs.meta
diff --git a/GDX/Runtime/EnumExtensions.cs b/Runtime/EnumExtensions.cs
similarity index 98%
rename from GDX/Runtime/EnumExtensions.cs
rename to Runtime/EnumExtensions.cs
index 322b8d68..e99be190 100644
--- a/GDX/Runtime/EnumExtensions.cs
+++ b/Runtime/EnumExtensions.cs
@@ -10,7 +10,7 @@ namespace GDX
///
/// Enumeration Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class EnumExtensions
{
///
diff --git a/GDX/Runtime/EnumExtensions.cs.meta b/Runtime/EnumExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/EnumExtensions.cs.meta
rename to Runtime/EnumExtensions.cs.meta
diff --git a/GDX/Runtime/GDX.asmdef b/Runtime/GDX.asmdef
similarity index 100%
rename from GDX/Runtime/GDX.asmdef
rename to Runtime/GDX.asmdef
diff --git a/GDX/Runtime/GDX.asmdef.meta b/Runtime/GDX.asmdef.meta
similarity index 100%
rename from GDX/Runtime/GDX.asmdef.meta
rename to Runtime/GDX.asmdef.meta
diff --git a/GDX/Runtime/GDXConfig.cs b/Runtime/GDXConfig.cs
similarity index 89%
rename from GDX/Runtime/GDXConfig.cs
rename to Runtime/GDXConfig.cs
index bd991e8a..ebf3b48a 100644
--- a/GDX/Runtime/GDXConfig.cs
+++ b/Runtime/GDXConfig.cs
@@ -21,9 +21,8 @@ public class GDXConfig : ScriptableObject
///
/// A runtime only instance of .
///
-#pragma warning disable 414
- private static GDXConfig s_runtimeInstance = null;
-#pragma warning restore 414
+ private static GDXConfig s_instance = null;
+
///
/// Should GDX check for updates at editor time?
///
@@ -140,34 +139,36 @@ public class GDXConfig : ScriptableObject
public static GDXConfig Get()
{
#if UNITY_EDITOR
+ if (s_instance != null)
+ {
+ return s_instance;
+ }
- // Attempt to load the settings file from the asset database.
- GDXConfig settings = AssetDatabase.LoadAssetAtPath("Assets/Resources/GDX/GDXConfig.asset");
-
- // If it worked, send it back!
- if (settings != null)
+ // Load from disk
+ s_instance = AssetDatabase.LoadAssetAtPath("Assets/Resources/GDX/GDXConfig.asset");
+ if (s_instance != null)
{
- return settings;
+ return s_instance;
}
// Looks like we need to make one
- settings = CreateInstance();
+ s_instance = CreateInstance();
// Ensure the folder structure is in place before we manually make the asset
Platform.EnsureFileFolderHierarchyExists(
System.IO.Path.Combine(Application.dataPath, "Resources/GDX/GDXConfig.asset"));
// Create and save the asset
- AssetDatabase.CreateAsset(settings, "Assets/Resources/GDX/GDXConfig.asset");
+ AssetDatabase.CreateAsset(s_instance, "Assets/Resources/GDX/GDXConfig.asset");
// Send it back!
- return settings;
+ return s_instance;
#else
- if (s_runtimeInstance == null)
+ if (s_instance == null)
{
- s_runtimeInstance = Resources.Load("GDX/GDXConfig");
+ s_instance = Resources.Load("GDX/GDXConfig");
}
- return s_runtimeInstance;
+ return s_instance;
#endif
}
}
diff --git a/GDX/Runtime/GDXConfig.cs.meta b/Runtime/GDXConfig.cs.meta
similarity index 100%
rename from GDX/Runtime/GDXConfig.cs.meta
rename to Runtime/GDXConfig.cs.meta
diff --git a/GDX/Runtime/GameObjectExtensions.cs b/Runtime/GameObjectExtensions.cs
similarity index 99%
rename from GDX/Runtime/GameObjectExtensions.cs
rename to Runtime/GameObjectExtensions.cs
index 42c7fde2..ccee8393 100644
--- a/GDX/Runtime/GameObjectExtensions.cs
+++ b/Runtime/GameObjectExtensions.cs
@@ -13,7 +13,7 @@ namespace GDX
///
/// Used for MonoBehaviour workflows.
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class GameObjectExtensions
{
///
diff --git a/GDX/Runtime/GameObjectExtensions.cs.meta b/Runtime/GameObjectExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/GameObjectExtensions.cs.meta
rename to Runtime/GameObjectExtensions.cs.meta
diff --git a/GDX/Runtime/HideFromDocFXAttribute.cs b/Runtime/HideFromDocFXAttribute.cs
similarity index 100%
rename from GDX/Runtime/HideFromDocFXAttribute.cs
rename to Runtime/HideFromDocFXAttribute.cs
diff --git a/GDX/Runtime/HideFromDocFXAttribute.cs.meta b/Runtime/HideFromDocFXAttribute.cs.meta
similarity index 100%
rename from GDX/Runtime/HideFromDocFXAttribute.cs.meta
rename to Runtime/HideFromDocFXAttribute.cs.meta
diff --git a/GDX/Runtime/IListExtensions.cs b/Runtime/IListExtensions.cs
similarity index 98%
rename from GDX/Runtime/IListExtensions.cs
rename to Runtime/IListExtensions.cs
index e4db5096..d3ced3ef 100644
--- a/GDX/Runtime/IListExtensions.cs
+++ b/Runtime/IListExtensions.cs
@@ -2,16 +2,17 @@
// dotBunny licenses this file to you under the BSL-1.0 license.
// See the LICENSE file in the project root for more information.
+using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
-using UnityEngine;
+using Random = UnityEngine.Random;
namespace GDX
{
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class IListExtensions
{
///
@@ -48,7 +49,7 @@ public static bool ContainsItem(this IList targetList, T targetItem) where
int length = targetList.Count;
for (int i = 0; i < length; i++)
{
- if (targetList[i] == targetItem)
+ if (targetList[i].Equals(targetItem))
{
return true;
}
diff --git a/GDX/Runtime/IListExtensions.cs.meta b/Runtime/IListExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/IListExtensions.cs.meta
rename to Runtime/IListExtensions.cs.meta
diff --git a/GDX/Runtime/IO.meta b/Runtime/IO.meta
similarity index 100%
rename from GDX/Runtime/IO.meta
rename to Runtime/IO.meta
diff --git a/GDX/Runtime/IO/Compression.meta b/Runtime/IO/Compression.meta
similarity index 100%
rename from GDX/Runtime/IO/Compression.meta
rename to Runtime/IO/Compression.meta
diff --git a/GDX/Runtime/IO/Compression/TarFile.cs b/Runtime/IO/Compression/TarFile.cs
similarity index 100%
rename from GDX/Runtime/IO/Compression/TarFile.cs
rename to Runtime/IO/Compression/TarFile.cs
diff --git a/GDX/Runtime/IO/Compression/TarFile.cs.meta b/Runtime/IO/Compression/TarFile.cs.meta
similarity index 100%
rename from GDX/Runtime/IO/Compression/TarFile.cs.meta
rename to Runtime/IO/Compression/TarFile.cs.meta
diff --git a/GDX/Runtime/InspectorMessageBoxAttribute.cs b/Runtime/InspectorMessageBoxAttribute.cs
similarity index 100%
rename from GDX/Runtime/InspectorMessageBoxAttribute.cs
rename to Runtime/InspectorMessageBoxAttribute.cs
diff --git a/GDX/Runtime/InspectorMessageBoxAttribute.cs.meta b/Runtime/InspectorMessageBoxAttribute.cs.meta
similarity index 100%
rename from GDX/Runtime/InspectorMessageBoxAttribute.cs.meta
rename to Runtime/InspectorMessageBoxAttribute.cs.meta
diff --git a/GDX/Runtime/Jobs.meta b/Runtime/Jobs.meta
similarity index 100%
rename from GDX/Runtime/Jobs.meta
rename to Runtime/Jobs.meta
diff --git a/GDX/Runtime/Jobs/ParallelFor.meta b/Runtime/Jobs/ParallelFor.meta
similarity index 100%
rename from GDX/Runtime/Jobs/ParallelFor.meta
rename to Runtime/Jobs/ParallelFor.meta
diff --git a/GDX/Runtime/Jobs/ParallelFor/IntegerBufferCopyJob.cs b/Runtime/Jobs/ParallelFor/IntegerBufferCopyJob.cs
similarity index 100%
rename from GDX/Runtime/Jobs/ParallelFor/IntegerBufferCopyJob.cs
rename to Runtime/Jobs/ParallelFor/IntegerBufferCopyJob.cs
diff --git a/GDX/Runtime/Jobs/ParallelFor/IntegerBufferCopyJob.cs.meta b/Runtime/Jobs/ParallelFor/IntegerBufferCopyJob.cs.meta
similarity index 100%
rename from GDX/Runtime/Jobs/ParallelFor/IntegerBufferCopyJob.cs.meta
rename to Runtime/Jobs/ParallelFor/IntegerBufferCopyJob.cs.meta
diff --git a/GDX/Runtime/Jobs/ParallelFor/IntegerBufferFillJob.cs b/Runtime/Jobs/ParallelFor/IntegerBufferFillJob.cs
similarity index 100%
rename from GDX/Runtime/Jobs/ParallelFor/IntegerBufferFillJob.cs
rename to Runtime/Jobs/ParallelFor/IntegerBufferFillJob.cs
diff --git a/GDX/Runtime/Jobs/ParallelFor/IntegerBufferFillJob.cs.meta b/Runtime/Jobs/ParallelFor/IntegerBufferFillJob.cs.meta
similarity index 100%
rename from GDX/Runtime/Jobs/ParallelFor/IntegerBufferFillJob.cs.meta
rename to Runtime/Jobs/ParallelFor/IntegerBufferFillJob.cs.meta
diff --git a/GDX/Runtime/Jobs/ParallelFor/IntegerBufferSwapJob.cs b/Runtime/Jobs/ParallelFor/IntegerBufferSwapJob.cs
similarity index 100%
rename from GDX/Runtime/Jobs/ParallelFor/IntegerBufferSwapJob.cs
rename to Runtime/Jobs/ParallelFor/IntegerBufferSwapJob.cs
diff --git a/GDX/Runtime/Jobs/ParallelFor/IntegerBufferSwapJob.cs.meta b/Runtime/Jobs/ParallelFor/IntegerBufferSwapJob.cs.meta
similarity index 100%
rename from GDX/Runtime/Jobs/ParallelFor/IntegerBufferSwapJob.cs.meta
rename to Runtime/Jobs/ParallelFor/IntegerBufferSwapJob.cs.meta
diff --git a/GDX/Runtime/Localization.cs b/Runtime/Localization.cs
similarity index 100%
rename from GDX/Runtime/Localization.cs
rename to Runtime/Localization.cs
diff --git a/GDX/Runtime/Localization.cs.meta b/Runtime/Localization.cs.meta
similarity index 100%
rename from GDX/Runtime/Localization.cs.meta
rename to Runtime/Localization.cs.meta
diff --git a/GDX/Runtime/Mathematics.meta b/Runtime/Mathematics.meta
similarity index 100%
rename from GDX/Runtime/Mathematics.meta
rename to Runtime/Mathematics.meta
diff --git a/GDX/Runtime/Mathematics/Byte2.cs b/Runtime/Mathematics/Byte2.cs
similarity index 100%
rename from GDX/Runtime/Mathematics/Byte2.cs
rename to Runtime/Mathematics/Byte2.cs
diff --git a/GDX/Runtime/Mathematics/Byte2.cs.meta b/Runtime/Mathematics/Byte2.cs.meta
similarity index 100%
rename from GDX/Runtime/Mathematics/Byte2.cs.meta
rename to Runtime/Mathematics/Byte2.cs.meta
diff --git a/Runtime/Mathematics/FibonacciHash.cs b/Runtime/Mathematics/FibonacciHash.cs
new file mode 100644
index 00000000..f9d07e6e
--- /dev/null
+++ b/Runtime/Mathematics/FibonacciHash.cs
@@ -0,0 +1,65 @@
+// Copyright (c) 2020-2021 dotBunny Inc.
+// dotBunny licenses this file to you under the BSL-1.0 license.
+// See the LICENSE file in the project root for more information.
+
+using System.Runtime.CompilerServices;
+
+namespace GDX.Mathematics
+{
+ public static class FibonacciHash
+ {
+ ///
+ /// Takes a 32-bit length equal to a power of two,
+ /// and returns how many spaces another 32-bit int would need to shift in order to be a valid index within an array of that length.
+ ///
+ /// A 32-bit int equal to a power of two.
+ /// How many spaces a 32-bit int would need to shift in order to be a valid index within .
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static byte GetRightShiftFromPow2Length(int pow2Length)
+ {
+ LongDoubleConversionUnion u;
+ u.doubleValue = 0.0;
+ u.longValue = 0x4330000000000000L + pow2Length;
+ u.doubleValue -= 4503599627370496.0;
+ int index = (int)(u.longValue >> 52) - 0x3FF;
+
+ return (byte)(32 - index);
+ }
+
+ ///
+ /// Takes the and multiplies it by 2^32 divided by the golden ratio,
+ /// then right shifts it by to fit within a given power-of-two size.
+ ///
+ /// The key to find an index for.
+ /// How far to right shift in order to fit within a given power-of-two size.
+ /// The index to store the .
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static int GetIndexFromHash(int hash, byte shift)
+ {
+ int fibonacci = unchecked((int)(unchecked((uint)hash) * 2654435769));
+ return fibonacci >> shift;
+ }
+
+ ///
+ /// Takes the and finds an index within the provided range with Fibonacci hashing.
+ ///
+ /// The hash to find an index for.
+ /// The power-of-two array length to find an index within.
+ ///
+ [MethodImpl(MethodImplOptions.AggressiveInlining)]
+ public static int GetIndexFromHash(int hash, int pow2Length)
+ {
+ LongDoubleConversionUnion u;
+ u.doubleValue = 0.0;
+ u.longValue = 0x4330000000000000L + pow2Length;
+ u.doubleValue -= 4503599627370496.0;
+ int index = (int)(u.longValue >> 52) - 0x3FF;
+
+ int shift = 32 - index;
+
+ int fibonacci = unchecked((int)(unchecked((uint)hash) * 2654435769));
+ return fibonacci >> shift;
+ }
+ }
+}
+
diff --git a/Runtime/Mathematics/FibonacciHash.cs.meta b/Runtime/Mathematics/FibonacciHash.cs.meta
new file mode 100644
index 00000000..1fd3da5e
--- /dev/null
+++ b/Runtime/Mathematics/FibonacciHash.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9eab567170a8e6947a47e475a5dd1d8b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Mathematics/LongDoubleConversionUnion.cs b/Runtime/Mathematics/LongDoubleConversionUnion.cs
new file mode 100644
index 00000000..4079437c
--- /dev/null
+++ b/Runtime/Mathematics/LongDoubleConversionUnion.cs
@@ -0,0 +1,15 @@
+// Copyright (c) 2020-2021 dotBunny Inc.
+// dotBunny licenses this file to you under the BSL-1.0 license.
+// See the LICENSE file in the project root for more information.
+
+using System.Runtime.InteropServices;
+
+namespace GDX.Mathematics
+{
+ [StructLayout(LayoutKind.Explicit)]
+ public struct LongDoubleConversionUnion
+ {
+ [FieldOffset(0)] public long longValue;
+ [FieldOffset(0)] public double doubleValue;
+ }
+}
\ No newline at end of file
diff --git a/Runtime/Mathematics/LongDoubleConversionUnion.cs.meta b/Runtime/Mathematics/LongDoubleConversionUnion.cs.meta
new file mode 100644
index 00000000..43be95b4
--- /dev/null
+++ b/Runtime/Mathematics/LongDoubleConversionUnion.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 49532117d1374d87bff44875b4aab16e
+timeCreated: 1635637791
\ No newline at end of file
diff --git a/GDX/Runtime/Mathematics/Random.meta b/Runtime/Mathematics/Random.meta
similarity index 100%
rename from GDX/Runtime/Mathematics/Random.meta
rename to Runtime/Mathematics/Random.meta
diff --git a/GDX/Runtime/Mathematics/Random/IRandomProvider.cs b/Runtime/Mathematics/Random/IRandomProvider.cs
similarity index 100%
rename from GDX/Runtime/Mathematics/Random/IRandomProvider.cs
rename to Runtime/Mathematics/Random/IRandomProvider.cs
diff --git a/GDX/Runtime/Mathematics/Random/IRandomProvider.cs.meta b/Runtime/Mathematics/Random/IRandomProvider.cs.meta
similarity index 100%
rename from GDX/Runtime/Mathematics/Random/IRandomProvider.cs.meta
rename to Runtime/Mathematics/Random/IRandomProvider.cs.meta
diff --git a/GDX/Runtime/Mathematics/Random/RandomAdaptor.cs b/Runtime/Mathematics/Random/RandomAdaptor.cs
similarity index 100%
rename from GDX/Runtime/Mathematics/Random/RandomAdaptor.cs
rename to Runtime/Mathematics/Random/RandomAdaptor.cs
diff --git a/GDX/Runtime/Mathematics/Random/RandomAdaptor.cs.meta b/Runtime/Mathematics/Random/RandomAdaptor.cs.meta
similarity index 100%
rename from GDX/Runtime/Mathematics/Random/RandomAdaptor.cs.meta
rename to Runtime/Mathematics/Random/RandomAdaptor.cs.meta
diff --git a/GDX/Runtime/Mathematics/Random/WELL1024a.cs b/Runtime/Mathematics/Random/WELL1024a.cs
similarity index 100%
rename from GDX/Runtime/Mathematics/Random/WELL1024a.cs
rename to Runtime/Mathematics/Random/WELL1024a.cs
diff --git a/GDX/Runtime/Mathematics/Random/WELL1024a.cs.meta b/Runtime/Mathematics/Random/WELL1024a.cs.meta
similarity index 100%
rename from GDX/Runtime/Mathematics/Random/WELL1024a.cs.meta
rename to Runtime/Mathematics/Random/WELL1024a.cs.meta
diff --git a/GDX/Runtime/Mathematics/Range.cs b/Runtime/Mathematics/Range.cs
similarity index 100%
rename from GDX/Runtime/Mathematics/Range.cs
rename to Runtime/Mathematics/Range.cs
diff --git a/GDX/Runtime/Mathematics/Range.cs.meta b/Runtime/Mathematics/Range.cs.meta
similarity index 100%
rename from GDX/Runtime/Mathematics/Range.cs.meta
rename to Runtime/Mathematics/Range.cs.meta
diff --git a/GDX/Runtime/Mathematics/Rotate.cs b/Runtime/Mathematics/Rotate.cs
similarity index 100%
rename from GDX/Runtime/Mathematics/Rotate.cs
rename to Runtime/Mathematics/Rotate.cs
diff --git a/GDX/Runtime/Mathematics/Rotate.cs.meta b/Runtime/Mathematics/Rotate.cs.meta
similarity index 100%
rename from GDX/Runtime/Mathematics/Rotate.cs.meta
rename to Runtime/Mathematics/Rotate.cs.meta
diff --git a/GDX/Runtime/Mathematics/Smooth.cs b/Runtime/Mathematics/Smooth.cs
similarity index 100%
rename from GDX/Runtime/Mathematics/Smooth.cs
rename to Runtime/Mathematics/Smooth.cs
diff --git a/GDX/Runtime/Mathematics/Smooth.cs.meta b/Runtime/Mathematics/Smooth.cs.meta
similarity index 100%
rename from GDX/Runtime/Mathematics/Smooth.cs.meta
rename to Runtime/Mathematics/Smooth.cs.meta
diff --git a/GDX/Runtime/Memory.cs b/Runtime/Memory.cs
similarity index 100%
rename from GDX/Runtime/Memory.cs
rename to Runtime/Memory.cs
diff --git a/GDX/Runtime/Memory.cs.meta b/Runtime/Memory.cs.meta
similarity index 100%
rename from GDX/Runtime/Memory.cs.meta
rename to Runtime/Memory.cs.meta
diff --git a/GDX/Runtime/MeshExtensions.cs b/Runtime/MeshExtensions.cs
similarity index 97%
rename from GDX/Runtime/MeshExtensions.cs
rename to Runtime/MeshExtensions.cs
index 0fe9daea..ef527be8 100644
--- a/GDX/Runtime/MeshExtensions.cs
+++ b/Runtime/MeshExtensions.cs
@@ -12,7 +12,7 @@ namespace GDX
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class MeshExtensions
{
///
diff --git a/GDX/Runtime/MeshExtensions.cs.meta b/Runtime/MeshExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/MeshExtensions.cs.meta
rename to Runtime/MeshExtensions.cs.meta
diff --git a/GDX/Runtime/MonoBehaviourExtensions.cs b/Runtime/MonoBehaviourExtensions.cs
similarity index 98%
rename from GDX/Runtime/MonoBehaviourExtensions.cs
rename to Runtime/MonoBehaviourExtensions.cs
index 94c92e9c..4d979497 100644
--- a/GDX/Runtime/MonoBehaviourExtensions.cs
+++ b/Runtime/MonoBehaviourExtensions.cs
@@ -13,7 +13,7 @@ namespace GDX
///
/// Used for MonoBehaviour workflows.
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class MonoBehaviourExtensions
{
///
diff --git a/GDX/Runtime/MonoBehaviourExtensions.cs.meta b/Runtime/MonoBehaviourExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/MonoBehaviourExtensions.cs.meta
rename to Runtime/MonoBehaviourExtensions.cs.meta
diff --git a/GDX/Runtime/NavMeshPathExtensions.cs b/Runtime/NavMeshPathExtensions.cs
similarity index 99%
rename from GDX/Runtime/NavMeshPathExtensions.cs
rename to Runtime/NavMeshPathExtensions.cs
index 14609656..e6f594d3 100644
--- a/GDX/Runtime/NavMeshPathExtensions.cs
+++ b/Runtime/NavMeshPathExtensions.cs
@@ -15,7 +15,7 @@ namespace GDX
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class NavMeshPathExtensions
{
///
diff --git a/GDX/Runtime/NavMeshPathExtensions.cs.meta b/Runtime/NavMeshPathExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/NavMeshPathExtensions.cs.meta
rename to Runtime/NavMeshPathExtensions.cs.meta
diff --git a/GDX/Runtime/Platform.cs b/Runtime/Platform.cs
similarity index 100%
rename from GDX/Runtime/Platform.cs
rename to Runtime/Platform.cs
diff --git a/GDX/Runtime/Platform.cs.meta b/Runtime/Platform.cs.meta
similarity index 100%
rename from GDX/Runtime/Platform.cs.meta
rename to Runtime/Platform.cs.meta
diff --git a/GDX/Runtime/RigidbodyExtensions.cs b/Runtime/RigidbodyExtensions.cs
similarity index 97%
rename from GDX/Runtime/RigidbodyExtensions.cs
rename to Runtime/RigidbodyExtensions.cs
index 7161fcd6..cfaa3764 100644
--- a/GDX/Runtime/RigidbodyExtensions.cs
+++ b/Runtime/RigidbodyExtensions.cs
@@ -9,7 +9,7 @@ namespace GDX
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class RigidbodyExtensions
{
///
diff --git a/GDX/Runtime/RigidbodyExtensions.cs.meta b/Runtime/RigidbodyExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/RigidbodyExtensions.cs.meta
rename to Runtime/RigidbodyExtensions.cs.meta
diff --git a/GDX/Runtime/SemanticVersion.cs b/Runtime/SemanticVersion.cs
similarity index 100%
rename from GDX/Runtime/SemanticVersion.cs
rename to Runtime/SemanticVersion.cs
diff --git a/GDX/Runtime/SemanticVersion.cs.meta b/Runtime/SemanticVersion.cs.meta
similarity index 100%
rename from GDX/Runtime/SemanticVersion.cs.meta
rename to Runtime/SemanticVersion.cs.meta
diff --git a/GDX/Runtime/SimpleListExtensions.cs b/Runtime/SimpleListExtensions.cs
similarity index 100%
rename from GDX/Runtime/SimpleListExtensions.cs
rename to Runtime/SimpleListExtensions.cs
diff --git a/GDX/Runtime/SimpleListExtensions.cs.meta b/Runtime/SimpleListExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/SimpleListExtensions.cs.meta
rename to Runtime/SimpleListExtensions.cs.meta
diff --git a/GDX/Runtime/StringExtensions.cs b/Runtime/StringExtensions.cs
similarity index 99%
rename from GDX/Runtime/StringExtensions.cs
rename to Runtime/StringExtensions.cs
index 0e50d14a..2591618a 100644
--- a/GDX/Runtime/StringExtensions.cs
+++ b/Runtime/StringExtensions.cs
@@ -19,7 +19,7 @@ namespace GDX
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class StringExtensions
{
///
@@ -235,7 +235,6 @@ public static string GetBeforeLast(this string targetString, string splitString,
return splitIndex < 0 ? null : targetString.Substring(0, splitIndex);
}
-
///
///
/// Get the stable hash code value of .
diff --git a/Runtime/StringExtensions.cs.meta b/Runtime/StringExtensions.cs.meta
new file mode 100644
index 00000000..5fadca4c
--- /dev/null
+++ b/Runtime/StringExtensions.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: dbf33f5628829714ea0e13186f773546
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {fileID: 2800000, guid: d7eba623e0ad65d49a034aeb2b74b7d4, type: 3}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GDX/Runtime/Trace.cs b/Runtime/Trace.cs
similarity index 78%
rename from GDX/Runtime/Trace.cs
rename to Runtime/Trace.cs
index 1fe774eb..292918ec 100644
--- a/GDX/Runtime/Trace.cs
+++ b/Runtime/Trace.cs
@@ -62,16 +62,21 @@ public enum TraceLevel : ushort
}
///
- /// Log a trace message to the appropriate subscribers and the Unity console where applicable.
+ /// Log a trace message to the appropriate subscribers and the Unity console where applicable with additional context on invoke location.
///
/// The of the particular message.
/// An representing the message to be recorded.
/// An indicating context for the given message.
- public static void Output(TraceLevel level, object traceObject, Object contextObject = null)
+ /// Automatically filled out member name which invoked this method.
+ /// Automatically filled out source code path of the invoking method.
+ /// Automatically filled out line number of the invoking method.
+ public static void Output(TraceLevel level, object traceObject,
+ Object contextObject = null,
+ [System.Runtime.CompilerServices.CallerMemberName] string memberName = "",
+ [System.Runtime.CompilerServices.CallerFilePath] string sourceFilePath = "",
+ [System.Runtime.CompilerServices.CallerLineNumber] int sourceLineNumber = 0)
{
-
// Get a reference to the config
- // TODO: Would it be better to cache this?
GDXConfig config = GDXConfig.Get();
#if UNITY_EDITOR || DEVELOPMENT_BUILD
@@ -91,8 +96,19 @@ public static void Output(TraceLevel level, object traceObject, Object contextOb
}
#endif
+ // Build output content
+ string outputContent;
+ if (traceObject is Exception traceException)
+ {
+ outputContent = $"{traceException.Message}\n{traceException.StackTrace}\n{memberName}\n{sourceFilePath}:{sourceLineNumber.ToString()}";
+ }
+ else
+ {
+ outputContent = $"{traceObject}\n{memberName}\n{sourceFilePath}:{sourceLineNumber.ToString()}";
+ }
+
// This will output to anything internally registered for tracing (IDE consoles for example)
- Debug.WriteLine(traceObject);
+ Debug.WriteLine(outputContent);
// Is outputting to the Unity console enabled?
#if UNITY_EDITOR || DEVELOPMENT_BUILD
@@ -105,6 +121,9 @@ public static void Output(TraceLevel level, object traceObject, Object contextOb
{
return;
}
+#else
+ // NO RELEASE CONSOLE OUTPUT
+ return;
#endif
// Figure out what path to take based on the level
diff --git a/GDX/Runtime/Trace.cs.meta b/Runtime/Trace.cs.meta
similarity index 100%
rename from GDX/Runtime/Trace.cs.meta
rename to Runtime/Trace.cs.meta
diff --git a/GDX/Runtime/TransformExtensions.cs b/Runtime/TransformExtensions.cs
similarity index 99%
rename from GDX/Runtime/TransformExtensions.cs
rename to Runtime/TransformExtensions.cs
index 5fc5f781..1bce311e 100644
--- a/GDX/Runtime/TransformExtensions.cs
+++ b/Runtime/TransformExtensions.cs
@@ -14,7 +14,7 @@ namespace GDX
///
/// Used for MonoBehaviour workflows.
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class TransformExtensions
{
///
diff --git a/GDX/Runtime/TransformExtensions.cs.meta b/Runtime/TransformExtensions.cs.meta
similarity index 100%
rename from GDX/Runtime/TransformExtensions.cs.meta
rename to Runtime/TransformExtensions.cs.meta
diff --git a/GDX/Runtime/Vector2Extensions.cs b/Runtime/Vector2Extensions.cs
similarity index 99%
rename from GDX/Runtime/Vector2Extensions.cs
rename to Runtime/Vector2Extensions.cs
index 6c2c17d3..bd73f954 100644
--- a/GDX/Runtime/Vector2Extensions.cs
+++ b/Runtime/Vector2Extensions.cs
@@ -14,7 +14,7 @@ namespace GDX
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class Vector2Extensions
{
///
diff --git a/GDX/Runtime/Vector2Extensions.cs.meta b/Runtime/Vector2Extensions.cs.meta
similarity index 100%
rename from GDX/Runtime/Vector2Extensions.cs.meta
rename to Runtime/Vector2Extensions.cs.meta
diff --git a/GDX/Runtime/Vector3Extensions.cs b/Runtime/Vector3Extensions.cs
similarity index 93%
rename from GDX/Runtime/Vector3Extensions.cs
rename to Runtime/Vector3Extensions.cs
index bbd02676..84e3185f 100644
--- a/GDX/Runtime/Vector3Extensions.cs
+++ b/Runtime/Vector3Extensions.cs
@@ -14,7 +14,7 @@ namespace GDX
///
/// Based Extension Methods
///
- [VisualScriptingCompatible(12)]
+ [VisualScriptingCompatible(2)]
public static class Vector3Extensions
{
///
@@ -28,27 +28,27 @@ public static class Vector3Extensions
public static bool Approximately(this Vector3 targetVector3, Vector3 otherVector3)
{
float moddedEpsilon = Mathf.Epsilon * 8f;
- const float baseMultiplier = 1E-06f;
+ const float BaseMultiplier = 1E-06f;
#if GDX_MATHEMATICS
return math.abs(otherVector3.x - targetVector3.x) < math.max(
- baseMultiplier * math.max(math.abs(targetVector3.x), math.abs(otherVector3.x)),
+ BaseMultiplier * math.max(math.abs(targetVector3.x), math.abs(otherVector3.x)),
moddedEpsilon) &&
math.abs(otherVector3.y - targetVector3.y) < math.max(
- baseMultiplier * math.max(math.abs(targetVector3.y), math.abs(otherVector3.y)),
+ BaseMultiplier * math.max(math.abs(targetVector3.y), math.abs(otherVector3.y)),
moddedEpsilon) &&
math.abs(otherVector3.z - targetVector3.z) < math.max(
- baseMultiplier * math.max(math.abs(targetVector3.z), math.abs(otherVector3.z)),
+ BaseMultiplier * math.max(math.abs(targetVector3.z), math.abs(otherVector3.z)),
moddedEpsilon);
#else
return Mathf.Abs(otherVector3.x - targetVector3.x) < (double)Mathf.Max(
- baseMultiplier * Mathf.Max(Mathf.Abs(targetVector3.x), Mathf.Abs(otherVector3.x)),
+ BaseMultiplier * Mathf.Max(Mathf.Abs(targetVector3.x), Mathf.Abs(otherVector3.x)),
moddedEpsilon) &&
Mathf.Abs(otherVector3.y - targetVector3.y) < (double)Mathf.Max(
- baseMultiplier * Mathf.Max(Mathf.Abs(targetVector3.y), Mathf.Abs(otherVector3.y)),
+ BaseMultiplier * Mathf.Max(Mathf.Abs(targetVector3.y), Mathf.Abs(otherVector3.y)),
moddedEpsilon) &&
Mathf.Abs(otherVector3.z - targetVector3.z) < (double)Mathf.Max(
- baseMultiplier * Mathf.Max(Mathf.Abs(targetVector3.z), Mathf.Abs(otherVector3.z)),
+ BaseMultiplier * Mathf.Max(Mathf.Abs(targetVector3.z), Mathf.Abs(otherVector3.z)),
moddedEpsilon);
#endif
}
diff --git a/GDX/Runtime/Vector3Extensions.cs.meta b/Runtime/Vector3Extensions.cs.meta
similarity index 100%
rename from GDX/Runtime/Vector3Extensions.cs.meta
rename to Runtime/Vector3Extensions.cs.meta
diff --git a/GDX/Runtime/VisualScriptingCompatibleAttribute.cs b/Runtime/VisualScriptingCompatibleAttribute.cs
similarity index 100%
rename from GDX/Runtime/VisualScriptingCompatibleAttribute.cs
rename to Runtime/VisualScriptingCompatibleAttribute.cs
diff --git a/GDX/Runtime/VisualScriptingCompatibleAttribute.cs.meta b/Runtime/VisualScriptingCompatibleAttribute.cs.meta
similarity index 100%
rename from GDX/Runtime/VisualScriptingCompatibleAttribute.cs.meta
rename to Runtime/VisualScriptingCompatibleAttribute.cs.meta
diff --git a/GDX/Tests.meta b/Tests.meta
similarity index 100%
rename from GDX/Tests.meta
rename to Tests.meta
diff --git a/GDX/Tests/EditMode.meta b/Tests/EditMode.meta
similarity index 100%
rename from GDX/Tests/EditMode.meta
rename to Tests/EditMode.meta
diff --git a/GDX/Tests/EditMode/Editor.meta b/Tests/EditMode/Editor.meta
similarity index 100%
rename from GDX/Tests/EditMode/Editor.meta
rename to Tests/EditMode/Editor.meta
diff --git a/GDX/Tests/EditMode/Editor/Build.meta b/Tests/EditMode/Editor/Build.meta
similarity index 100%
rename from GDX/Tests/EditMode/Editor/Build.meta
rename to Tests/EditMode/Editor/Build.meta
diff --git a/GDX/Tests/EditMode/Editor/Build/BuildInfoProviderTests.cs b/Tests/EditMode/Editor/Build/BuildInfoProviderTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Editor/Build/BuildInfoProviderTests.cs
rename to Tests/EditMode/Editor/Build/BuildInfoProviderTests.cs
diff --git a/GDX/Tests/EditMode/Editor/Build/BuildInfoProviderTests.cs.meta b/Tests/EditMode/Editor/Build/BuildInfoProviderTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Editor/Build/BuildInfoProviderTests.cs.meta
rename to Tests/EditMode/Editor/Build/BuildInfoProviderTests.cs.meta
diff --git a/GDX/Tests/EditMode/GDX.Tests.EditMode.asmdef b/Tests/EditMode/GDX.Tests.EditMode.asmdef
similarity index 100%
rename from GDX/Tests/EditMode/GDX.Tests.EditMode.asmdef
rename to Tests/EditMode/GDX.Tests.EditMode.asmdef
diff --git a/GDX/Tests/EditMode/GDX.Tests.EditMode.asmdef.meta b/Tests/EditMode/GDX.Tests.EditMode.asmdef.meta
similarity index 100%
rename from GDX/Tests/EditMode/GDX.Tests.EditMode.asmdef.meta
rename to Tests/EditMode/GDX.Tests.EditMode.asmdef.meta
diff --git a/GDX/Tests/EditMode/Runtime.meta b/Tests/EditMode/Runtime.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime.meta
rename to Tests/EditMode/Runtime.meta
diff --git a/Tests/EditMode/Runtime/Array2DExtensionsTests.cs b/Tests/EditMode/Runtime/Array2DExtensionsTests.cs
new file mode 100644
index 00000000..86a789bb
--- /dev/null
+++ b/Tests/EditMode/Runtime/Array2DExtensionsTests.cs
@@ -0,0 +1,36 @@
+// Copyright (c) 2020-2021 dotBunny Inc.
+// dotBunny licenses this file to you under the BSL-1.0 license.
+// See the LICENSE file in the project root for more information.
+
+using GDX;
+using GDX.Collections.Generic;
+using NUnit.Framework;
+
+// ReSharper disable HeapView.ObjectAllocation.Evident
+
+namespace Runtime
+{
+ ///
+ /// A collection of unit tests to validate functionality of the .
+ /// class.
+ ///
+ public class Array2DExtensionsTests
+ {
+ [Test]
+ [Category("GDX.Tests")]
+ public void Scale_MockFloatData_ScaledData()
+ {
+ int scaleFactor = 2;
+ Array2D mockArray = new Array2D(2, 2) {[1, 0] = 0f, [1, 1] = 1f};
+ Array2D scaledArray = mockArray.Scale(scaleFactor);
+
+ bool evaluate = scaledArray.RowCount == (mockArray.RowCount * scaleFactor) &&
+ scaledArray.ColumnCount == (mockArray.ColumnCount * scaleFactor) &&
+ scaledArray.Array[15] == 0.5625f &&
+ scaledArray.Array[10] == 0.25f &&
+ scaledArray.Array[6] == 0.125f;
+
+ Assert.IsTrue(evaluate);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tests/EditMode/Runtime/Array2DExtensionsTests.cs.meta b/Tests/EditMode/Runtime/Array2DExtensionsTests.cs.meta
new file mode 100644
index 00000000..06fa997e
--- /dev/null
+++ b/Tests/EditMode/Runtime/Array2DExtensionsTests.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 29b3afede49145c1b633f531963045c1
+timeCreated: 1621089818
\ No newline at end of file
diff --git a/GDX/Tests/EditMode/Runtime/ArrayExtensionsTests.cs b/Tests/EditMode/Runtime/ArrayExtensionsTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/ArrayExtensionsTests.cs
rename to Tests/EditMode/Runtime/ArrayExtensionsTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/ArrayExtensionsTests.cs.meta b/Tests/EditMode/Runtime/ArrayExtensionsTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/ArrayExtensionsTests.cs.meta
rename to Tests/EditMode/Runtime/ArrayExtensionsTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/ByteExtensionsTests.cs b/Tests/EditMode/Runtime/ByteExtensionsTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/ByteExtensionsTests.cs
rename to Tests/EditMode/Runtime/ByteExtensionsTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/ByteExtensionsTests.cs.meta b/Tests/EditMode/Runtime/ByteExtensionsTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/ByteExtensionsTests.cs.meta
rename to Tests/EditMode/Runtime/ByteExtensionsTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Collections.meta b/Tests/EditMode/Runtime/Collections.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections.meta
rename to Tests/EditMode/Runtime/Collections.meta
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Generic.meta b/Tests/EditMode/Runtime/Collections/Generic.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Generic.meta
rename to Tests/EditMode/Runtime/Collections/Generic.meta
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs b/Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs
similarity index 88%
rename from GDX/Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs
rename to Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs
index 88cf2883..4a5ea220 100644
--- a/GDX/Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs
+++ b/Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs
@@ -45,6 +45,32 @@ public void AddRows_MockData_ArrayResized()
Assert.IsTrue(evaluate);
}
+ [Test]
+ [Category("GDX.Tests")]
+ public void GetColumnIndex_MockData_ReturnsIndex()
+ {
+ Array2D mockArray = new Array2D(2, 4) {[1, 0] = 0, [1, 1] = 1, [1, 2] = 2, [1, 3] = 3};
+
+ int columnIndex = mockArray.GetColumnIndex(5);
+
+ bool evaluate = columnIndex == 1;
+
+ Assert.IsTrue(evaluate);
+ }
+
+ [Test]
+ [Category("GDX.Tests")]
+ public void GetRowIndex_MockData_ReturnsIndex()
+ {
+ Array2D mockArray = new Array2D(2, 4) {[1, 0] = 0, [1, 1] = 1, [1, 2] = 2, [1, 3] = 3};
+
+ int rowIndex = mockArray.GetRowIndex(5);
+
+ bool evaluate = rowIndex == 1;
+
+ Assert.IsTrue(evaluate);
+ }
+
[Test]
[Category("GDX.Tests")]
public void ReverseColumns_MockDataEven_ValuesReversed()
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs.meta b/Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs.meta
rename to Tests/EditMode/Runtime/Collections/Generic/Array2DTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Generic/SerializableDictionaryTests.cs b/Tests/EditMode/Runtime/Collections/Generic/SerializableDictionaryTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Generic/SerializableDictionaryTests.cs
rename to Tests/EditMode/Runtime/Collections/Generic/SerializableDictionaryTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Generic/SerializableDictionaryTests.cs.meta b/Tests/EditMode/Runtime/Collections/Generic/SerializableDictionaryTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Generic/SerializableDictionaryTests.cs.meta
rename to Tests/EditMode/Runtime/Collections/Generic/SerializableDictionaryTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Generic/SimpleListTests.cs b/Tests/EditMode/Runtime/Collections/Generic/SimpleListTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Generic/SimpleListTests.cs
rename to Tests/EditMode/Runtime/Collections/Generic/SimpleListTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Generic/SimpleListTests.cs.meta b/Tests/EditMode/Runtime/Collections/Generic/SimpleListTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Generic/SimpleListTests.cs.meta
rename to Tests/EditMode/Runtime/Collections/Generic/SimpleListTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Pooling.meta b/Tests/EditMode/Runtime/Collections/Pooling.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Pooling.meta
rename to Tests/EditMode/Runtime/Collections/Pooling.meta
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Pooling/ArrayPoolTests.cs b/Tests/EditMode/Runtime/Collections/Pooling/ArrayPoolTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Pooling/ArrayPoolTests.cs
rename to Tests/EditMode/Runtime/Collections/Pooling/ArrayPoolTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Pooling/ArrayPoolTests.cs.meta b/Tests/EditMode/Runtime/Collections/Pooling/ArrayPoolTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Pooling/ArrayPoolTests.cs.meta
rename to Tests/EditMode/Runtime/Collections/Pooling/ArrayPoolTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Pooling/GameObjectPoolTests.cs b/Tests/EditMode/Runtime/Collections/Pooling/GameObjectPoolTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Pooling/GameObjectPoolTests.cs
rename to Tests/EditMode/Runtime/Collections/Pooling/GameObjectPoolTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Collections/Pooling/GameObjectPoolTests.cs.meta b/Tests/EditMode/Runtime/Collections/Pooling/GameObjectPoolTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Collections/Pooling/GameObjectPoolTests.cs.meta
rename to Tests/EditMode/Runtime/Collections/Pooling/GameObjectPoolTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Developer.meta b/Tests/EditMode/Runtime/Developer.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer.meta
rename to Tests/EditMode/Runtime/Developer.meta
diff --git a/GDX/Tests/EditMode/Runtime/Developer/CommandLineParserTests.cs b/Tests/EditMode/Runtime/Developer/CommandLineParserTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/CommandLineParserTests.cs
rename to Tests/EditMode/Runtime/Developer/CommandLineParserTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Developer/CommandLineParserTests.cs.meta b/Tests/EditMode/Runtime/Developer/CommandLineParserTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/CommandLineParserTests.cs.meta
rename to Tests/EditMode/Runtime/Developer/CommandLineParserTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Developer/Reports.meta b/Tests/EditMode/Runtime/Developer/Reports.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/Reports.meta
rename to Tests/EditMode/Runtime/Developer/Reports.meta
diff --git a/GDX/Tests/EditMode/Runtime/Developer/Reports/ReportExtensionsTests.cs b/Tests/EditMode/Runtime/Developer/Reports/ReportExtensionsTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/Reports/ReportExtensionsTests.cs
rename to Tests/EditMode/Runtime/Developer/Reports/ReportExtensionsTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Developer/Reports/ReportExtensionsTests.cs.meta b/Tests/EditMode/Runtime/Developer/Reports/ReportExtensionsTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/Reports/ReportExtensionsTests.cs.meta
rename to Tests/EditMode/Runtime/Developer/Reports/ReportExtensionsTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Developer/Reports/ReportTests.cs b/Tests/EditMode/Runtime/Developer/Reports/ReportTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/Reports/ReportTests.cs
rename to Tests/EditMode/Runtime/Developer/Reports/ReportTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Developer/Reports/ReportTests.cs.meta b/Tests/EditMode/Runtime/Developer/Reports/ReportTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/Reports/ReportTests.cs.meta
rename to Tests/EditMode/Runtime/Developer/Reports/ReportTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Developer/Reports/ResourcesAuditTests.cs b/Tests/EditMode/Runtime/Developer/Reports/ResourcesAuditTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/Reports/ResourcesAuditTests.cs
rename to Tests/EditMode/Runtime/Developer/Reports/ResourcesAuditTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Developer/Reports/ResourcesAuditTests.cs.meta b/Tests/EditMode/Runtime/Developer/Reports/ResourcesAuditTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/Reports/ResourcesAuditTests.cs.meta
rename to Tests/EditMode/Runtime/Developer/Reports/ResourcesAuditTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Developer/Reports/ResourcesDiffTests.cs b/Tests/EditMode/Runtime/Developer/Reports/ResourcesDiffTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/Reports/ResourcesDiffTests.cs
rename to Tests/EditMode/Runtime/Developer/Reports/ResourcesDiffTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Developer/Reports/ResourcesDiffTests.cs.meta b/Tests/EditMode/Runtime/Developer/Reports/ResourcesDiffTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Developer/Reports/ResourcesDiffTests.cs.meta
rename to Tests/EditMode/Runtime/Developer/Reports/ResourcesDiffTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/IListExtensionsTests.cs b/Tests/EditMode/Runtime/IListExtensionsTests.cs
similarity index 95%
rename from GDX/Tests/EditMode/Runtime/IListExtensionsTests.cs
rename to Tests/EditMode/Runtime/IListExtensionsTests.cs
index 6831b1d4..ce02e440 100644
--- a/GDX/Tests/EditMode/Runtime/IListExtensionsTests.cs
+++ b/Tests/EditMode/Runtime/IListExtensionsTests.cs
@@ -49,7 +49,7 @@ public void AddUniqueItem_NonUniqueItem_ReturnsFalse()
[Test]
[Category("GDX.Tests")]
- public void ContainsItem_MockData_ReturnsIndex()
+ public void ContainsItem_MockData_FindsItem()
{
CircularBuffer mockObject = new CircularBuffer(5);
List> mockData = new List>
@@ -66,6 +66,16 @@ public void ContainsItem_MockData_ReturnsIndex()
Assert.IsTrue(evaluate);
}
+ [Test]
+ [Category("GDX.Tests")]
+ public void ContainsItem_StringArray_FindsItem()
+ {
+ string[] mockObject = new string[] {"Hello", "Jello", "Mello", "Tello", "Dello"};
+ bool evaluate = mockObject.ContainsItem("Jello");
+
+ Assert.IsTrue(evaluate);
+ }
+
[Test]
[Category("GDX.Tests")]
public void RemoveFirstItem_MockData_RemovedItem()
diff --git a/GDX/Tests/EditMode/Runtime/IListExtensionsTests.cs.meta b/Tests/EditMode/Runtime/IListExtensionsTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/IListExtensionsTests.cs.meta
rename to Tests/EditMode/Runtime/IListExtensionsTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/LocalizationTests.cs b/Tests/EditMode/Runtime/LocalizationTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/LocalizationTests.cs
rename to Tests/EditMode/Runtime/LocalizationTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/LocalizationTests.cs.meta b/Tests/EditMode/Runtime/LocalizationTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/LocalizationTests.cs.meta
rename to Tests/EditMode/Runtime/LocalizationTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Mathematics.meta b/Tests/EditMode/Runtime/Mathematics.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Mathematics.meta
rename to Tests/EditMode/Runtime/Mathematics.meta
diff --git a/GDX/Tests/EditMode/Runtime/Mathematics/Random.meta b/Tests/EditMode/Runtime/Mathematics/Random.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Mathematics/Random.meta
rename to Tests/EditMode/Runtime/Mathematics/Random.meta
diff --git a/GDX/Tests/EditMode/Runtime/Mathematics/Random/RandomAdaptorTests.cs b/Tests/EditMode/Runtime/Mathematics/Random/RandomAdaptorTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Mathematics/Random/RandomAdaptorTests.cs
rename to Tests/EditMode/Runtime/Mathematics/Random/RandomAdaptorTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Mathematics/Random/RandomAdaptorTests.cs.meta b/Tests/EditMode/Runtime/Mathematics/Random/RandomAdaptorTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Mathematics/Random/RandomAdaptorTests.cs.meta
rename to Tests/EditMode/Runtime/Mathematics/Random/RandomAdaptorTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Mathematics/Random/WELL1024aTests.cs b/Tests/EditMode/Runtime/Mathematics/Random/WELL1024aTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Mathematics/Random/WELL1024aTests.cs
rename to Tests/EditMode/Runtime/Mathematics/Random/WELL1024aTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Mathematics/Random/WELL1024aTests.cs.meta b/Tests/EditMode/Runtime/Mathematics/Random/WELL1024aTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Mathematics/Random/WELL1024aTests.cs.meta
rename to Tests/EditMode/Runtime/Mathematics/Random/WELL1024aTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/SimpleListExtensionsTests.cs b/Tests/EditMode/Runtime/SimpleListExtensionsTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/SimpleListExtensionsTests.cs
rename to Tests/EditMode/Runtime/SimpleListExtensionsTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/SimpleListExtensionsTests.cs.meta b/Tests/EditMode/Runtime/SimpleListExtensionsTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/SimpleListExtensionsTests.cs.meta
rename to Tests/EditMode/Runtime/SimpleListExtensionsTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/StringExtensionsPerformance.cs b/Tests/EditMode/Runtime/StringExtensionsPerformance.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/StringExtensionsPerformance.cs
rename to Tests/EditMode/Runtime/StringExtensionsPerformance.cs
diff --git a/GDX/Tests/EditMode/Runtime/StringExtensionsPerformance.cs.meta b/Tests/EditMode/Runtime/StringExtensionsPerformance.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/StringExtensionsPerformance.cs.meta
rename to Tests/EditMode/Runtime/StringExtensionsPerformance.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/StringExtensionsTests.cs b/Tests/EditMode/Runtime/StringExtensionsTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/StringExtensionsTests.cs
rename to Tests/EditMode/Runtime/StringExtensionsTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/StringExtensionsTests.cs.meta b/Tests/EditMode/Runtime/StringExtensionsTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/StringExtensionsTests.cs.meta
rename to Tests/EditMode/Runtime/StringExtensionsTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Vector2ExtensionsTests.cs b/Tests/EditMode/Runtime/Vector2ExtensionsTests.cs
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Vector2ExtensionsTests.cs
rename to Tests/EditMode/Runtime/Vector2ExtensionsTests.cs
diff --git a/GDX/Tests/EditMode/Runtime/Vector2ExtensionsTests.cs.meta b/Tests/EditMode/Runtime/Vector2ExtensionsTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Vector2ExtensionsTests.cs.meta
rename to Tests/EditMode/Runtime/Vector2ExtensionsTests.cs.meta
diff --git a/GDX/Tests/EditMode/Runtime/Vector3ExtensionsTests.cs b/Tests/EditMode/Runtime/Vector3ExtensionsTests.cs
similarity index 84%
rename from GDX/Tests/EditMode/Runtime/Vector3ExtensionsTests.cs
rename to Tests/EditMode/Runtime/Vector3ExtensionsTests.cs
index bbc63757..58d73ad6 100644
--- a/GDX/Tests/EditMode/Runtime/Vector3ExtensionsTests.cs
+++ b/Tests/EditMode/Runtime/Vector3ExtensionsTests.cs
@@ -64,6 +64,23 @@ public void Approximately_Zero_ReturnsTrue()
Assert.IsTrue(evaluate);
}
+ [Test]
+ [Category("GDX.Tests")]
+ public void DistanceSqr_MockData_ReturnsSame()
+ {
+ Vector3 a = new Vector3(0,20.5f, 16.5f);
+ Vector3 b = new Vector3(18,17.5f, 92.5f);
+
+ float originalDistance = Vector3.Distance(a, b);
+ float original = Mathf.Round(originalDistance * originalDistance);
+ float optimized = Mathf.Round(a.DistanceSqr(b));
+
+ bool evaluate = original == optimized;
+
+ Assert.IsTrue(evaluate);
+ }
+
+
[Test]
[Category("GDX.Tests")]
public void Midpoint_ZeroAndOne_ReturnsHalf()
diff --git a/GDX/Tests/EditMode/Runtime/Vector3ExtensionsTests.cs.meta b/Tests/EditMode/Runtime/Vector3ExtensionsTests.cs.meta
similarity index 100%
rename from GDX/Tests/EditMode/Runtime/Vector3ExtensionsTests.cs.meta
rename to Tests/EditMode/Runtime/Vector3ExtensionsTests.cs.meta
diff --git a/package.json b/package.json
index ee0e3c96..fbeb6a19 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "com.dotbunny.gdx",
"displayName": "GDX",
- "version": "2.0.0",
+ "version": "2.0.1",
"unity": "2018.4",
"description": "Game Development Extensions\nA battle-tested library of game-ready high-performance C# code.",
"keywords": [