diff --git a/Common/TimerWrapper.cs b/Common/TimerWrapper.cs deleted file mode 100644 index c7aaf74..0000000 --- a/Common/TimerWrapper.cs +++ /dev/null @@ -1,44 +0,0 @@ -using UnityEngine; -using UnityEngine.Events; - -namespace Common -{ - public class TimerWrapper : MonoBehaviour - { - public UnityAction OnTimerOver; - - [SerializeField, Min(0)] private float startTime; - [SerializeField] private bool countDown = true; - [SerializeField] private bool startOnAwake; - [SerializeField] private bool startOnStart; - - private Timer timer; - - public bool IsRunning => timer.IsRunning; - public float CurrentTime => timer.CurrentTime; - - private void Awake() - { - timer = new Timer(startTime, countDown); - timer.OnTimeOver += OnTimeOver; - if (startOnAwake) timer.Start(); - } - - private void Start() - { - if (startOnStart) timer.Start(); - } - - private void Update() - { - timer.Tick(Time.deltaTime); - } - - public void StartTimer() => timer.Start(); - public void PauseTimer() => timer.Pause(); - public void StopTimer() => timer.Stop(); - public void ResetTimer() => timer.Reset(); - - private void OnTimeOver() => OnTimerOver?.Invoke(); - } -} \ No newline at end of file diff --git a/Editor/SceneAutoLoader.cs b/Editor/SceneAutoLoader.cs deleted file mode 100644 index 0eb40fc..0000000 --- a/Editor/SceneAutoLoader.cs +++ /dev/null @@ -1,133 +0,0 @@ -using UnityEngine; -using UnityEditor; -using UnityEditor.SceneManagement; -using UnityEngine.SceneManagement; - -/// -/// Scene auto loader. -/// -/// -/// This class adds a File > Scene Autoload menu containing options to select -/// a "master scene" enable it to be auto-loaded when the user presses play -/// in the editor. When enabled, the selected scene will be loaded on play, -/// then the original scene will be reloaded on stop. -/// -/// Based on an idea on this thread: -/// http://forum.unity3d.com/threads/157502-Executing-first-scene-in-build-settings-when-pressing-play-button-in-editor -/// -[InitializeOnLoad] -public static class SceneAutoLoader -{ - // Static constructor binds a playmode-changed callback. - // [InitializeOnLoad] above makes sure this gets executed. - static SceneAutoLoader() - { - EditorApplication.playModeStateChanged += OnPlayModeChanged; - } - - // Menu items to select the "master" scene and control whether or not to load it. - [MenuItem("File/Scene Autoload/Select Master Scene...")] - private static void SelectMasterScene() - { - string masterScene = EditorUtility.OpenFilePanel("Select Master Scene", Application.dataPath, "unity"); - masterScene = masterScene.Replace(Application.dataPath, "Assets"); //project relative instead of absolute path - if (!string.IsNullOrEmpty(masterScene)) - { - MasterScene = masterScene; - LoadMasterOnPlay = true; - } - } - - [MenuItem("File/Scene Autoload/Load Master On Play", true)] - private static bool ShowLoadMasterOnPlay() - { - return !LoadMasterOnPlay; - } - - [MenuItem("File/Scene Autoload/Load Master On Play")] - private static void EnableLoadMasterOnPlay() - { - LoadMasterOnPlay = true; - } - - [MenuItem("File/Scene Autoload/Don't Load Master On Play", true)] - private static bool ShowDontLoadMasterOnPlay() - { - return LoadMasterOnPlay; - } - - [MenuItem("File/Scene Autoload/Don't Load Master On Play")] - private static void DisableLoadMasterOnPlay() - { - LoadMasterOnPlay = false; - } - - // Play mode change callback handles the scene load/reload. - private static void OnPlayModeChanged(PlayModeStateChange state) - { - if (!LoadMasterOnPlay) - { - return; - } - - if (!EditorApplication.isPlaying && EditorApplication.isPlayingOrWillChangePlaymode) - { - // User pressed play -- autoload master scene. - PreviousScene = SceneManager.GetActiveScene().path; - if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) - { - try - { - EditorSceneManager.OpenScene(MasterScene); - } - catch - { - Debug.LogError($"error: scene not found: {MasterScene}"); - EditorApplication.isPlaying = false; - } - } - else - { - // User cancelled the save operation -- cancel play as well. - EditorApplication.isPlaying = false; - } - } - - // isPlaying check required because cannot OpenScene while playing - if (!EditorApplication.isPlaying && !EditorApplication.isPlayingOrWillChangePlaymode) - { - // User pressed stop -- reload previous scene. - try - { - EditorSceneManager.OpenScene(PreviousScene); - } - catch - { - Debug.LogError($"error: scene not found: {PreviousScene}"); - } - } - } - - // Properties are remembered as editor preferences. - private const string EDITOR_PREF_LOAD_MASTER_ON_PLAY = "SceneAutoLoader.LoadMasterOnPlay"; - private const string EDITOR_PREF_MASTER_SCENE = "SceneAutoLoader.MasterScene"; - private const string EDITOR_PREF_PREVIOUS_SCENE = "SceneAutoLoader.PreviousScene"; - - private static bool LoadMasterOnPlay - { - get => EditorPrefs.GetBool(EDITOR_PREF_LOAD_MASTER_ON_PLAY, false); - set => EditorPrefs.SetBool(EDITOR_PREF_LOAD_MASTER_ON_PLAY, value); - } - - private static string MasterScene - { - get => EditorPrefs.GetString(EDITOR_PREF_MASTER_SCENE, "Master.unity"); - set => EditorPrefs.SetString(EDITOR_PREF_MASTER_SCENE, value); - } - - private static string PreviousScene - { - get => EditorPrefs.GetString(EDITOR_PREF_PREVIOUS_SCENE, SceneManager.GetActiveScene().path); - set => EditorPrefs.SetString(EDITOR_PREF_PREVIOUS_SCENE, value); - } -} \ No newline at end of file diff --git a/JohnsonUtils/Attributes.meta b/JohnsonUtils/Attributes.meta new file mode 100644 index 0000000..1621c6d --- /dev/null +++ b/JohnsonUtils/Attributes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8bcf92219d69926459de23970607d69e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Attributes/Editor.meta b/JohnsonUtils/Attributes/Editor.meta new file mode 100644 index 0000000..b836fff --- /dev/null +++ b/JohnsonUtils/Attributes/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 23f202c345849144b9aa12e1b7bd7c6c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Attributes/Editor/PropertyDrawers.meta b/JohnsonUtils/Attributes/Editor/PropertyDrawers.meta new file mode 100644 index 0000000..b4e755e --- /dev/null +++ b/JohnsonUtils/Attributes/Editor/PropertyDrawers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f02c11902918fdc4495c07de5f6cb328 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PropertyDrawers/RangedFloatDrawer.cs b/JohnsonUtils/Attributes/Editor/PropertyDrawers/RangedFloatDrawer.cs similarity index 98% rename from Editor/PropertyDrawers/RangedFloatDrawer.cs rename to JohnsonUtils/Attributes/Editor/PropertyDrawers/RangedFloatDrawer.cs index c770012..89e16da 100644 --- a/Editor/PropertyDrawers/RangedFloatDrawer.cs +++ b/JohnsonUtils/Attributes/Editor/PropertyDrawers/RangedFloatDrawer.cs @@ -1,7 +1,7 @@ using UnityEditor; using UnityEngine; -namespace RangedValue +namespace JohnsonUtils.Attributes { [CustomPropertyDrawer(typeof(RangedFloat), true)] public class RangedFloatDrawer : PropertyDrawer diff --git a/JohnsonUtils/Attributes/Editor/PropertyDrawers/RangedFloatDrawer.cs.meta b/JohnsonUtils/Attributes/Editor/PropertyDrawers/RangedFloatDrawer.cs.meta new file mode 100644 index 0000000..a6f98b5 --- /dev/null +++ b/JohnsonUtils/Attributes/Editor/PropertyDrawers/RangedFloatDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ecba4d36f1be9fb4b9549aef53914004 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/RangedFloat/MinMaxRangeAttribute.cs b/JohnsonUtils/Attributes/MinMaxRangeAttribute.cs similarity index 88% rename from RangedFloat/MinMaxRangeAttribute.cs rename to JohnsonUtils/Attributes/MinMaxRangeAttribute.cs index cbed5b6..9bb7d86 100644 --- a/RangedFloat/MinMaxRangeAttribute.cs +++ b/JohnsonUtils/Attributes/MinMaxRangeAttribute.cs @@ -1,6 +1,6 @@ using System; -namespace RangedValue +namespace JohnsonUtils.Attributes { public class MinMaxRangeAttribute : Attribute { diff --git a/JohnsonUtils/Attributes/MinMaxRangeAttribute.cs.meta b/JohnsonUtils/Attributes/MinMaxRangeAttribute.cs.meta new file mode 100644 index 0000000..fb38e79 --- /dev/null +++ b/JohnsonUtils/Attributes/MinMaxRangeAttribute.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f5c78e6a4385cd048a2515d2c310d89a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/RangedFloat/RangedFloat.cs b/JohnsonUtils/Attributes/RangedFloat.cs similarity index 92% rename from RangedFloat/RangedFloat.cs rename to JohnsonUtils/Attributes/RangedFloat.cs index 1b30925..715847d 100644 --- a/RangedFloat/RangedFloat.cs +++ b/JohnsonUtils/Attributes/RangedFloat.cs @@ -1,6 +1,6 @@ using System; -namespace RangedValue +namespace JohnsonUtils.Attributes { [Serializable] public struct RangedFloat diff --git a/JohnsonUtils/Attributes/RangedFloat.cs.meta b/JohnsonUtils/Attributes/RangedFloat.cs.meta new file mode 100644 index 0000000..d2462d5 --- /dev/null +++ b/JohnsonUtils/Attributes/RangedFloat.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 689ad0d6f7f50b54aa91d1cf2464f254 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Audio.meta b/JohnsonUtils/Audio.meta new file mode 100644 index 0000000..3bb9807 --- /dev/null +++ b/JohnsonUtils/Audio.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ccc532b9cdd14d6ea2f4027e8d4a9952 +timeCreated: 1679072656 \ No newline at end of file diff --git a/JohnsonUtils/Audio/AudioEvent.meta b/JohnsonUtils/Audio/AudioEvent.meta new file mode 100644 index 0000000..7d40821 --- /dev/null +++ b/JohnsonUtils/Audio/AudioEvent.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9a966376e35785a4c922cad29ccdae3e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AudioEvent/AudioEvent.cs b/JohnsonUtils/Audio/AudioEvent/AudioEvent.cs similarity index 55% rename from AudioEvent/AudioEvent.cs rename to JohnsonUtils/Audio/AudioEvent/AudioEvent.cs index 0ec07f2..ff66bbe 100644 --- a/AudioEvent/AudioEvent.cs +++ b/JohnsonUtils/Audio/AudioEvent/AudioEvent.cs @@ -1,9 +1,11 @@ -using UnityEngine; +using JetBrains.Annotations; +using UnityEngine; -namespace AudioEvent +namespace JohnsonUtils.Audio { public abstract class AudioEvent : ScriptableObject { + [PublicAPI] public abstract void Play(AudioSource source); } } \ No newline at end of file diff --git a/JohnsonUtils/Audio/AudioEvent/AudioEvent.cs.meta b/JohnsonUtils/Audio/AudioEvent/AudioEvent.cs.meta new file mode 100644 index 0000000..1d5f334 --- /dev/null +++ b/JohnsonUtils/Audio/AudioEvent/AudioEvent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a4d29285acc5dc94a96eea002ef6a3a2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Audio/AudioEvent/Editor.meta b/JohnsonUtils/Audio/AudioEvent/Editor.meta new file mode 100644 index 0000000..bbfacd2 --- /dev/null +++ b/JohnsonUtils/Audio/AudioEvent/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3d0932566c8043a4b937245e2b36f64c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/CustomInspectors/AudioEventInspector.cs b/JohnsonUtils/Audio/AudioEvent/Editor/AudioEventInspector.cs similarity index 70% rename from Editor/CustomInspectors/AudioEventInspector.cs rename to JohnsonUtils/Audio/AudioEvent/Editor/AudioEventInspector.cs index 4d0e7a9..2653ebb 100644 --- a/Editor/CustomInspectors/AudioEventInspector.cs +++ b/JohnsonUtils/Audio/AudioEvent/Editor/AudioEventInspector.cs @@ -1,23 +1,23 @@ using UnityEditor; using UnityEngine; -namespace AudioEvent +namespace JohnsonUtils.Audio { [CustomEditor(typeof(AudioEvent), true)] - public class AudioEventInspector : Editor + public class AudioEventInspector : UnityEditor.Editor { - [SerializeField] private AudioSource _audioSource; + [SerializeField] private AudioSource audioSource; private void OnEnable() { - _audioSource = + audioSource = EditorUtility.CreateGameObjectWithHideFlags("Audio preview", HideFlags.HideAndDontSave, typeof(AudioSource)).GetComponent(); } private void OnDisable() { - DestroyImmediate(_audioSource.gameObject); + DestroyImmediate(audioSource.gameObject); } @@ -28,7 +28,7 @@ namespace AudioEvent EditorGUI.BeginDisabledGroup(serializedObject.isEditingMultipleObjects); if (GUILayout.Button("Preview")) { - ((AudioEvent) target).Play(_audioSource); + ((AudioEvent) target).Play(audioSource); } EditorGUI.EndDisabledGroup(); diff --git a/JohnsonUtils/Audio/AudioEvent/Editor/AudioEventInspector.cs.meta b/JohnsonUtils/Audio/AudioEvent/Editor/AudioEventInspector.cs.meta new file mode 100644 index 0000000..b04c2b9 --- /dev/null +++ b/JohnsonUtils/Audio/AudioEvent/Editor/AudioEventInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 80d27edc2350afc4aa26e2b0f21c804e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AudioEvent/SimpleAudioEvent.cs b/JohnsonUtils/Audio/AudioEvent/SimpleAudioEvent.cs similarity index 74% rename from AudioEvent/SimpleAudioEvent.cs rename to JohnsonUtils/Audio/AudioEvent/SimpleAudioEvent.cs index 7291bca..2556354 100644 --- a/AudioEvent/SimpleAudioEvent.cs +++ b/JohnsonUtils/Audio/AudioEvent/SimpleAudioEvent.cs @@ -1,15 +1,15 @@ -using RangedValue; +using JohnsonUtils.Attributes; using UnityEngine; -namespace AudioEvent +namespace JohnsonUtils.Audio { [CreateAssetMenu(menuName = "ScriptableObject/SimpleAudioEvent")] public class SimpleAudioEvent : AudioEvent { public AudioClip[] Clips; - public RangedFloat Volume = new RangedFloat(0.9f,1f); + public RangedFloat Volume = new (0.9f,1f); - [MinMaxRange(0, 2)] public RangedFloat Pitch = new RangedFloat(0.95f,1.05f); + [MinMaxRange(0, 2)] public RangedFloat Pitch = new (0.95f,1.05f); public override void Play(AudioSource source) { diff --git a/JohnsonUtils/Audio/AudioEvent/SimpleAudioEvent.cs.meta b/JohnsonUtils/Audio/AudioEvent/SimpleAudioEvent.cs.meta new file mode 100644 index 0000000..4e06dc5 --- /dev/null +++ b/JohnsonUtils/Audio/AudioEvent/SimpleAudioEvent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 812a0d40f751a99469384da85b231dc0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Canvases.meta b/JohnsonUtils/Canvases.meta new file mode 100644 index 0000000..f0c9cdd --- /dev/null +++ b/JohnsonUtils/Canvases.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6c5f62191df2e694db21497847d5649f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Canvases/Components.meta b/JohnsonUtils/Canvases/Components.meta new file mode 100644 index 0000000..ff3e10d --- /dev/null +++ b/JohnsonUtils/Canvases/Components.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06c5c26b1b4379a45a83ca062577134e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Components/ButtonUIComponent.cs b/JohnsonUtils/Canvases/Components/ButtonUIComponent.cs similarity index 77% rename from Canvases/Components/ButtonUIComponent.cs rename to JohnsonUtils/Canvases/Components/ButtonUIComponent.cs index d9afcdb..ceec864 100644 --- a/Canvases/Components/ButtonUIComponent.cs +++ b/JohnsonUtils/Canvases/Components/ButtonUIComponent.cs @@ -1,24 +1,30 @@ using System; +using JetBrains.Annotations; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.UI; +#if ODIN_INSPECTOR +#endif -namespace Canvases.Components +namespace JohnsonUtils.Canvases { public class ButtonUIComponent : UISelectableComponentBase { public event Action OnClick; - [Header("Association"), SerializeField, Required] +#if ODIN_INSPECTOR + [Required] +#endif + [Header("Association"), SerializeField] private Button button; - [Header("Configuration"), SerializeField] + [Header("Configuration"), SerializeField, UsedImplicitly] private ButtonNavigationType buttonNavigationType; - + private enum ButtonNavigationType { - Forward, - Backward + [UsedImplicitly] Forward, + [UsedImplicitly] Backward } public Color Color @@ -26,11 +32,13 @@ namespace Canvases.Components set => button.image.color = value; } + [PublicAPI] public bool Enabled { set => button.interactable = value; } + [PublicAPI] public void Select() => button.Select(); protected override void SetSelectableGameObject() => Selectable = button; @@ -49,7 +57,6 @@ namespace Canvases.Components private void OnButtonClicked() { - // PlayClickedSound(); OnClick?.Invoke(); } diff --git a/JohnsonUtils/Canvases/Components/ButtonUIComponent.cs.meta b/JohnsonUtils/Canvases/Components/ButtonUIComponent.cs.meta new file mode 100644 index 0000000..9b00e3a --- /dev/null +++ b/JohnsonUtils/Canvases/Components/ButtonUIComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4f8583985379cfa409fa5463af6f62ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Components/ImageUIComponent.cs b/JohnsonUtils/Canvases/Components/ImageUIComponent.cs similarity index 63% rename from Canvases/Components/ImageUIComponent.cs rename to JohnsonUtils/Canvases/Components/ImageUIComponent.cs index f980cfa..bfc9192 100644 --- a/Canvases/Components/ImageUIComponent.cs +++ b/JohnsonUtils/Canvases/Components/ImageUIComponent.cs @@ -1,22 +1,25 @@ -using Sirenix.OdinInspector; + +using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.UI; -namespace Canvases.Components +namespace JohnsonUtils.Canvases { - // ReSharper disable once InconsistentNaming Reason: UI should be capitalized public class ImageUIComponent : UIComponentBase { - [Header("Association")][Required] + [Header("Association")] +#if ODIN_INSPECTOR + [Required] +#endif [SerializeField] private Image image; - private Color initialColor; + private Color _initialColor; - private void Awake() => initialColor = image.color; + private void Awake() => _initialColor = image.color; private void Start() => Debug.Assert(image, $"A {nameof(image)} must be assigned to a {nameof(ImageUIComponent)}"); - public void ResetColor() => image.color = initialColor; + public void ResetColor() => image.color = _initialColor; public Sprite Sprite { diff --git a/JohnsonUtils/Canvases/Components/ImageUIComponent.cs.meta b/JohnsonUtils/Canvases/Components/ImageUIComponent.cs.meta new file mode 100644 index 0000000..a5e71e7 --- /dev/null +++ b/JohnsonUtils/Canvases/Components/ImageUIComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9d0ab7cb6305cee4ea667a7cedab0cc9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Components/SliderUIComponent.cs b/JohnsonUtils/Canvases/Components/SliderUIComponent.cs similarity index 67% rename from Canvases/Components/SliderUIComponent.cs rename to JohnsonUtils/Canvases/Components/SliderUIComponent.cs index 82b4c87..29fc5b3 100644 --- a/Canvases/Components/SliderUIComponent.cs +++ b/JohnsonUtils/Canvases/Components/SliderUIComponent.cs @@ -1,17 +1,22 @@ using System; using System.Collections; +using JetBrains.Annotations; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.UI; +#if ODIN_INSPECTOR +#endif -namespace Canvases.Components +namespace JohnsonUtils.Canvases { - // ReSharper disable once InconsistentNaming Reason: UI should be capitalized public class SliderUIComponent : UISelectableComponentBase { - public event Action OnValueChanged; + [UsedImplicitly] public event Action OnValueChanged; - [Header("Association"), SerializeField, Required] +#if ODIN_INSPECTOR + [Required] +#endif + [Header("Association"), SerializeField] private Slider slider; [SerializeField] private Image backgroundImage; @@ -23,36 +28,39 @@ namespace Canvases.Components [SerializeField] private Color valueIncreaseColor = Color.green; [SerializeField] private Color valueDecreaseColor = Color.red; - private float targetValue; - private float currentValue; + private float _targetValue; + private float _currentValue; - private Coroutine animationRoutine; - private Color initialColor = Color.black; + private Coroutine _animationRoutine; + private Color _initialColor = Color.black; + [UsedImplicitly] public float Value { - get => currentValue; + get => _currentValue; set { if (isChangeValueAnimated) { - targetValue = value; + _targetValue = value; StartAnimation(); } else { - currentValue = value; + _currentValue = value; slider.value = value; } } } - + + [UsedImplicitly] public float MaxValue { get => slider.maxValue; set => slider.maxValue = value; } - + + [UsedImplicitly] public Color BackgroundColor { set @@ -64,18 +72,20 @@ namespace Canvases.Components } } + [UsedImplicitly] public Color FillColor { set { if (fillImage != null) { - initialColor = value; - fillImage.color = initialColor; + _initialColor = value; + fillImage.color = _initialColor; } } } + [UsedImplicitly] public Color FrameColor { set @@ -104,10 +114,10 @@ namespace Canvases.Components private void StartAnimation() { - if (animationRoutine != null) - StopCoroutine(animationRoutine); + if (_animationRoutine != null) + StopCoroutine(_animationRoutine); - animationRoutine = StartCoroutine(AnimateValueChange(targetValue > currentValue)); + _animationRoutine = StartCoroutine(AnimateValueChange(_targetValue > _currentValue)); } private IEnumerator AnimateValueChange(bool isValueChangePositive) @@ -116,10 +126,10 @@ namespace Canvases.Components { fillImage.color = valueIncreaseColor; - while (currentValue < targetValue) + while (_currentValue < _targetValue) { - currentValue += animationSpeed * Time.deltaTime; - slider.value = currentValue; + _currentValue += animationSpeed * Time.deltaTime; + slider.value = _currentValue; yield return null; } } @@ -127,17 +137,17 @@ namespace Canvases.Components { fillImage.color = valueDecreaseColor; - while (currentValue > targetValue) + while (_currentValue > _targetValue) { - currentValue -= animationSpeed * Time.deltaTime; - slider.value = currentValue; + _currentValue -= animationSpeed * Time.deltaTime; + slider.value = _currentValue; yield return null; } } - currentValue = targetValue; - slider.value = currentValue; - fillImage.color = initialColor; + _currentValue = _targetValue; + slider.value = _currentValue; + fillImage.color = _initialColor; } private void OnSliderChanged(float value) => OnValueChanged?.Invoke(value); diff --git a/JohnsonUtils/Canvases/Components/SliderUIComponent.cs.meta b/JohnsonUtils/Canvases/Components/SliderUIComponent.cs.meta new file mode 100644 index 0000000..914bdfd --- /dev/null +++ b/JohnsonUtils/Canvases/Components/SliderUIComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 876f9760c3e58b248a8c3028ee11c049 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Components/TextUIComponent.cs b/JohnsonUtils/Canvases/Components/TextUIComponent.cs similarity index 65% rename from Canvases/Components/TextUIComponent.cs rename to JohnsonUtils/Canvases/Components/TextUIComponent.cs index ba4b6ee..f3c4adb 100644 --- a/Canvases/Components/TextUIComponent.cs +++ b/JohnsonUtils/Canvases/Components/TextUIComponent.cs @@ -1,16 +1,20 @@ -using Sirenix.OdinInspector; + +using JetBrains.Annotations; +using Sirenix.OdinInspector; using TMPro; using UnityEngine; -namespace Canvases.Components +namespace JohnsonUtils.Canvases { - // ReSharper disable once InconsistentNaming Reason: UI should be capitalized public class TextUIComponent : UIComponentBase { - [Header("Association"), Required, SerializeField] +#if ODIN_INSPECTOR + [Required] +#endif + [Header("Association"), SerializeField] private TMP_Text text; - private string initialText; + private string _initialText; public string Text { @@ -18,20 +22,23 @@ namespace Canvases.Components set => text.text = string.IsNullOrEmpty(value) ? string.Empty : value; } + [UsedImplicitly] public Color Color { get => text.color; set => text.color = value; } - private void Awake() => initialText = text.text; + private void Awake() => _initialText = text.text; private void Start() => Debug.Assert(text, $"A {nameof(text)} must be assigned to a {nameof(TMP_Text)}"); - - public void ResetText() => text.text = initialText; + public void ResetText() => text.text = _initialText; + + [PublicAPI] public void AddText(string textToAdd) => text.text += textToAdd; + [PublicAPI] public void EraseText() => text.text = string.Empty; private void OnValidate() diff --git a/JohnsonUtils/Canvases/Components/TextUIComponent.cs.meta b/JohnsonUtils/Canvases/Components/TextUIComponent.cs.meta new file mode 100644 index 0000000..61ef510 --- /dev/null +++ b/JohnsonUtils/Canvases/Components/TextUIComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6abb350662ec32f4382b6053030a04e8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Components/ToggleUIComponent.cs b/JohnsonUtils/Canvases/Components/ToggleUIComponent.cs similarity index 77% rename from Canvases/Components/ToggleUIComponent.cs rename to JohnsonUtils/Canvases/Components/ToggleUIComponent.cs index 1e863b9..951d2e8 100644 --- a/Canvases/Components/ToggleUIComponent.cs +++ b/JohnsonUtils/Canvases/Components/ToggleUIComponent.cs @@ -1,18 +1,24 @@ using System; +using JetBrains.Annotations; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.UI; +#if ODIN_INSPECTOR +#endif -namespace Canvases.Components +namespace JohnsonUtils.Canvases { - // ReSharper disable once InconsistentNaming Reason: UI should be capitalized public class ToggleUIComponent : UISelectableComponentBase { - public event Action OnValueChanged; + [UsedImplicitly] public event Action OnValueChanged; - [Header("Association"), Required, SerializeField] +#if ODIN_INSPECTOR + [Required] +#endif + [Header("Association"), SerializeField] private Toggle toggle; + [PublicAPI] public bool IsOn => toggle.isOn; private void Start() @@ -29,6 +35,7 @@ namespace Canvases.Components protected override void SetSelectableGameObject() => Selectable = toggle; + [PublicAPI] public void Invert() => toggle.isOn = !toggle.isOn; private void OnToggleChanged(bool value) => OnValueChanged?.Invoke(value); diff --git a/JohnsonUtils/Canvases/Components/ToggleUIComponent.cs.meta b/JohnsonUtils/Canvases/Components/ToggleUIComponent.cs.meta new file mode 100644 index 0000000..8c1e101 --- /dev/null +++ b/JohnsonUtils/Canvases/Components/ToggleUIComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8bbf0d600bb435648859a6613e816656 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Components/UIComponentBase.cs b/JohnsonUtils/Canvases/Components/UIComponentBase.cs similarity index 67% rename from Canvases/Components/UIComponentBase.cs rename to JohnsonUtils/Canvases/Components/UIComponentBase.cs index 729d9a6..12a7623 100644 --- a/Canvases/Components/UIComponentBase.cs +++ b/JohnsonUtils/Canvases/Components/UIComponentBase.cs @@ -1,15 +1,16 @@ -using UnityEngine; -using Utilities.Extensions; +using JetBrains.Annotations; +using JohnsonUtils.Utilities; +using UnityEngine; -namespace Canvases.Components +namespace JohnsonUtils.Canvases { - // ReSharper disable once InconsistentNaming Reason: UI should be capitalized public abstract class UIComponentBase : MonoBehaviour { public void Show() => gameObject.Show(); public void Hide() => gameObject.Hide(); + [PublicAPI] public void ToggleDisplay() => gameObject.SetActive(!gameObject.activeInHierarchy); public void SetActive(bool active) => gameObject.SetActive(active); diff --git a/JohnsonUtils/Canvases/Components/UIComponentBase.cs.meta b/JohnsonUtils/Canvases/Components/UIComponentBase.cs.meta new file mode 100644 index 0000000..4bcb9af --- /dev/null +++ b/JohnsonUtils/Canvases/Components/UIComponentBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ce11554684acbfa458b1e1aac7d6f738 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Components/UISelectableComponentBase.cs b/JohnsonUtils/Canvases/Components/UISelectableComponentBase.cs similarity index 54% rename from Canvases/Components/UISelectableComponentBase.cs rename to JohnsonUtils/Canvases/Components/UISelectableComponentBase.cs index 03d0e52..fbffbaa 100644 --- a/Canvases/Components/UISelectableComponentBase.cs +++ b/JohnsonUtils/Canvases/Components/UISelectableComponentBase.cs @@ -1,25 +1,26 @@ using System; +using JetBrains.Annotations; +using JohnsonUtils.Utilities; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; -using Utilities.Extensions; -namespace Canvases.Components +namespace JohnsonUtils.Canvases { public abstract class UISelectableComponentBase : UIComponentBase { - public event Action OnSelected; + [UsedImplicitly] public event Action OnSelected; protected Selectable Selectable = null; - private EventTrigger.Entry selectEventTriggerEntry; - private CanvasGroup parentCanvasGroup; + private EventTrigger.Entry _selectEventTriggerEntry; + private CanvasGroup _parentCanvasGroup; private void Awake() { SetSelectableGameObject(); AddSelectEventTrigger(); - parentCanvasGroup = gameObject.GetComponentInParents(); + _parentCanvasGroup = gameObject.GetComponentInParents(); } protected abstract void SetSelectableGameObject(); @@ -27,26 +28,25 @@ namespace Canvases.Components private void AddSelectEventTrigger() { EventTrigger eventTrigger = Selectable.gameObject.GetOrAddComponent(); - selectEventTriggerEntry = new EventTrigger.Entry + _selectEventTriggerEntry = new EventTrigger.Entry { eventID = EventTriggerType.Select }; - selectEventTriggerEntry.callback.AddListener(OnSelectableSelected); - eventTrigger.triggers.Add(selectEventTriggerEntry); + _selectEventTriggerEntry.callback.AddListener(OnSelectableSelected); + eventTrigger.triggers.Add(_selectEventTriggerEntry); } private void OnSelectableSelected(BaseEventData data) { - if (!Selectable.interactable || parentCanvasGroup != null && !parentCanvasGroup.interactable) + if (!Selectable.interactable || _parentCanvasGroup != null && !_parentCanvasGroup.interactable) return; - - // Play select sound + OnSelected?.Invoke(); } protected virtual void OnDestroy() { - selectEventTriggerEntry?.callback.RemoveListener(OnSelectableSelected); + _selectEventTriggerEntry?.callback.RemoveListener(OnSelectableSelected); } } } \ No newline at end of file diff --git a/JohnsonUtils/Canvases/Components/UISelectableComponentBase.cs.meta b/JohnsonUtils/Canvases/Components/UISelectableComponentBase.cs.meta new file mode 100644 index 0000000..7bd9ae4 --- /dev/null +++ b/JohnsonUtils/Canvases/Components/UISelectableComponentBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c7554ebd4dc164f4e8bb12a69c5e3388 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Canvases/Menu.meta b/JohnsonUtils/Canvases/Menu.meta new file mode 100644 index 0000000..6c2418b --- /dev/null +++ b/JohnsonUtils/Canvases/Menu.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e3085bb90bae8d647bcf799a94ba0f9c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Canvases/Menu/Rebind.meta b/JohnsonUtils/Canvases/Menu/Rebind.meta new file mode 100644 index 0000000..353d7e9 --- /dev/null +++ b/JohnsonUtils/Canvases/Menu/Rebind.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cf6a9d522618ee54cb581eb4942a7062 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Menu/Rebind/RebindActionUI.cs b/JohnsonUtils/Canvases/Menu/Rebind/RebindActionUI.cs similarity index 67% rename from Canvases/Menu/Rebind/RebindActionUI.cs rename to JohnsonUtils/Canvases/Menu/Rebind/RebindActionUI.cs index 8954e66..393dd42 100644 --- a/Canvases/Menu/Rebind/RebindActionUI.cs +++ b/JohnsonUtils/Canvases/Menu/Rebind/RebindActionUI.cs @@ -1,11 +1,11 @@ using System; -using Canvases.Components; +using JetBrains.Annotations; +using JohnsonUtils.Utilities; +using JohnsonUtils.Utilities.Icons; using UnityEngine; using UnityEngine.InputSystem; -using Utilities; -using Utilities.Extensions; -namespace Canvases.Menu.Rebind +namespace JohnsonUtils.Canvases { public class RebindActionUI : MonoBehaviour { @@ -15,68 +15,69 @@ namespace Canvases.Menu.Rebind [SerializeField] private RebindReferences mainBindingReferences; [SerializeField] private RebindReferences altBindingReferences; - private TextUIComponent rebindOverlay; - private InputAction action; - private InputActionRebindingExtensions.RebindingOperation rebindOperation; + private TextUIComponent _rebindOverlay; + private InputAction _action; + private InputActionRebindingExtensions.RebindingOperation _rebindOperation; + [PublicAPI] public void ResetToDefault() { - action.actionMap.Disable(); - action.RemoveBindingOverride(mainBindingReferences.Index); - action.RemoveBindingOverride(altBindingReferences.Index); + _action.actionMap.Disable(); + _action.RemoveBindingOverride(mainBindingReferences.Index); + _action.RemoveBindingOverride(altBindingReferences.Index); UpdateBindingDisplay(); - action.actionMap.Enable(); + _action.actionMap.Enable(); } private void StartInteractiveRebind(int index) { - action.actionMap.Disable(); + _action.actionMap.Disable(); PerformInteractiveRebind(index); - action.actionMap.Enable(); + _action.actionMap.Enable(); } private void PerformInteractiveRebind(int bindingIndex) { - rebindOperation?.Cancel(); // Will null out rebindOperation. + _rebindOperation?.Cancel(); // Will null out rebindOperation. void CleanUp(InputActionRebindingExtensions.RebindingOperation rebindingOperation) { - if (rebindOverlay != null) + if (_rebindOverlay != null) { - rebindOverlay.SetActive(false); + _rebindOverlay.SetActive(false); } UpdateBindingDisplay(); - rebindOperation?.Dispose(); - rebindOperation = null; + _rebindOperation?.Dispose(); + _rebindOperation = null; } // Configure the rebind. - rebindOperation = action.PerformInteractiveRebinding(bindingIndex) + _rebindOperation = _action.PerformInteractiveRebinding(bindingIndex) .OnCancel(CleanUp) .OnComplete(CleanUp); // If it's a part binding, show the name of the part in the UI. string partName = string.Empty; - if (action.bindings[bindingIndex].isPartOfComposite) - partName = $"Binding '{action.bindings[bindingIndex].name}'. "; + if (_action.bindings[bindingIndex].isPartOfComposite) + partName = $"Binding '{_action.bindings[bindingIndex].name}'. "; // Bring up rebind overlay, if we have one. - if (rebindOverlay != null) + if (_rebindOverlay != null) { - rebindOverlay.Show(); - string text = !string.IsNullOrEmpty(rebindOperation.expectedControlType) - ? $"{partName}Waiting for {rebindOperation.expectedControlType} input..." + _rebindOverlay.Show(); + string text = !string.IsNullOrEmpty(_rebindOperation.expectedControlType) + ? $"{partName}Waiting for {_rebindOperation.expectedControlType} input..." : $"{partName}Waiting for input..."; - rebindOverlay.Text =text; + _rebindOverlay.Text =text; } // If we have no rebind overlay and no callback but we have a binding text label, // temporarily set the binding text label to "". - if (rebindOverlay == null && mainBindingReferences.Text != null) + if (_rebindOverlay == null && mainBindingReferences.Text != null) mainBindingReferences.Text.Text = ""; - rebindOperation.Start(); + _rebindOperation.Start(); } protected void OnEnable() @@ -87,17 +88,17 @@ namespace Canvases.Menu.Rebind protected void OnDisable() { - rebindOperation?.Dispose(); - rebindOperation = null; + _rebindOperation?.Dispose(); + _rebindOperation = null; } private void UpdateActionLabel() { if (actionLabel == null) return; - string actionLabelText = action.bindings[mainBindingReferences.Index].isPartOfComposite - ? action.bindings[mainBindingReferences.Index].name.Capitalize() - : action.name; + string actionLabelText = _action.bindings[mainBindingReferences.Index].isPartOfComposite + ? _action.bindings[mainBindingReferences.Index].name.Capitalize() + : _action.name; if (actionLabelText.Equals("Dash")) actionLabelText = "Tackle"; actionLabel.Text = actionLabelText; @@ -111,14 +112,14 @@ namespace Canvases.Menu.Rebind string mainControlPath = string.Empty; string altControlPath = string.Empty; - if (action != null) + if (_action != null) { if (mainBindingReferences.Index != -1) - mainDisplayString = action.GetBindingDisplayString(mainBindingReferences.Index, + mainDisplayString = _action.GetBindingDisplayString(mainBindingReferences.Index, out deviceLayoutName, out mainControlPath); if (altBindingReferences.Index != -1) - altDisplayString = action.GetBindingDisplayString(altBindingReferences.Index, out _, + altDisplayString = _action.GetBindingDisplayString(altBindingReferences.Index, out _, out altControlPath); } @@ -162,25 +163,25 @@ namespace Canvases.Menu.Rebind private bool CheckDuplicateBindings(int bindingIndex) { - if (action == null) return false; + if (_action == null) return false; - InputBinding newBinding = action.bindings[bindingIndex]; + InputBinding newBinding = _action.bindings[bindingIndex]; if (newBinding.effectivePath.IsNullOrEmpty()) return false; - foreach (InputBinding binding in action.actionMap.bindings) + foreach (InputBinding binding in _action.actionMap.bindings) { if (binding.action == newBinding.action) continue; if (binding.effectivePath == newBinding.effectivePath) return true; } - if (!action.bindings[0].isComposite) return false; + if (!_action.bindings[0].isComposite) return false; - for (int i = 1; i < action.bindings.Count; i++) + for (int i = 1; i < _action.bindings.Count; i++) { if (i == bindingIndex) continue; - if (action.bindings[i].effectivePath == newBinding.effectivePath) + if (_action.bindings[i].effectivePath == newBinding.effectivePath) { return true; } @@ -194,8 +195,8 @@ namespace Canvases.Menu.Rebind { mainBindingReferences.Index = bindingIndex; altBindingReferences.Index = bindingIndex + 1; - action = inputAction; - rebindOverlay = overlay; + _action = inputAction; + _rebindOverlay = overlay; UpdateBindingUIEvent += onUpdateBindingUIEvent; UpdateActionLabel(); UpdateBindingDisplay(); diff --git a/JohnsonUtils/Canvases/Menu/Rebind/RebindActionUI.cs.meta b/JohnsonUtils/Canvases/Menu/Rebind/RebindActionUI.cs.meta new file mode 100644 index 0000000..a1153bd --- /dev/null +++ b/JohnsonUtils/Canvases/Menu/Rebind/RebindActionUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64b55bf76536f164aaab1dd531664de6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Menu/Rebind/RebindReferences.cs b/JohnsonUtils/Canvases/Menu/Rebind/RebindReferences.cs similarity index 82% rename from Canvases/Menu/Rebind/RebindReferences.cs rename to JohnsonUtils/Canvases/Menu/Rebind/RebindReferences.cs index c4030ce..4e25880 100644 --- a/Canvases/Menu/Rebind/RebindReferences.cs +++ b/JohnsonUtils/Canvases/Menu/Rebind/RebindReferences.cs @@ -1,8 +1,7 @@ using System; -using Canvases.Components; using UnityEngine; -namespace Canvases.Menu.Rebind +namespace JohnsonUtils.Canvases { [Serializable] public class RebindReferences diff --git a/JohnsonUtils/Canvases/Menu/Rebind/RebindReferences.cs.meta b/JohnsonUtils/Canvases/Menu/Rebind/RebindReferences.cs.meta new file mode 100644 index 0000000..a40a12c --- /dev/null +++ b/JohnsonUtils/Canvases/Menu/Rebind/RebindReferences.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2dcf8a5a568340a44885781e6143f5d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Canvases/Menu/Rebind/RebindUI.cs b/JohnsonUtils/Canvases/Menu/Rebind/RebindUI.cs similarity index 55% rename from Canvases/Menu/Rebind/RebindUI.cs rename to JohnsonUtils/Canvases/Menu/Rebind/RebindUI.cs index 6dba986..49020e5 100644 --- a/Canvases/Menu/Rebind/RebindUI.cs +++ b/JohnsonUtils/Canvases/Menu/Rebind/RebindUI.cs @@ -1,34 +1,37 @@ using System.Collections.Generic; -using Canvases.Components; +using JetBrains.Annotations; +using JohnsonUtils.Utilities; +using JohnsonUtils.Utilities.Icons; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Utilities; -using Utilities; -using Utilities.Extensions; -namespace Canvases.Menu.Rebind +namespace JohnsonUtils.Canvases { public class RebindUI : MonoBehaviour { - [SerializeField] private ImageUIComponent background; - [SerializeField] private GameObject rebindMenuContent; - [SerializeField] private TextUIComponent currentControlScheme; - [SerializeField] private ButtonUIComponent resetAllButton; - [SerializeField] private RectTransform scrollRectContent; - [SerializeField] private TextUIComponent rebindOverlayText; - [SerializeField] private RebindActionUI rebindPrefab; - [SerializeField] private ButtonUIComponent applyButton; + + [SerializeField, UsedImplicitly] private ImageUIComponent background; + [SerializeField, UsedImplicitly] private GameObject rebindMenuContent; + [SerializeField, UsedImplicitly] private TextUIComponent currentControlScheme; + [SerializeField, UsedImplicitly] private ButtonUIComponent resetAllButton; + [SerializeField, UsedImplicitly] private RectTransform scrollRectContent; + [SerializeField, UsedImplicitly] private TextUIComponent rebindOverlayText; + [SerializeField, UsedImplicitly] private RebindActionUI rebindPrefab; + [SerializeField, UsedImplicitly] private ButtonUIComponent applyButton; - private PlayerInputAction playerInputActionRef; + //TODO ProjectInit replace this by your action map + private IInputActionCollection2 _playerInputActionRef; - private RebindActionUI firstButton; + [UsedImplicitly] private RebindActionUI _firstButton; - private readonly List rebindUIs = new List(); - private bool isInitialized; + private readonly List _rebindUIs = new(); + private bool _isInitialized; private void Start() { - // Bind to OnInputDeviceChanged + //TODO ProjectInit Bind to OnInputDeviceChanged + Debug.LogWarning($"Didn't init Start method on {GetType()} on {name} "); } private void OnEnable() @@ -43,7 +46,8 @@ namespace Canvases.Menu.Rebind private void OnDestroy() { - // Unbind to OnInputDeviceChanged + //TODO ProjectInit Unbind to OnInputDeviceChanged + Debug.LogWarning($"Didn't init OnDestroy method on {GetType()} on {name} "); } private void OnApplyPressed() @@ -52,10 +56,10 @@ namespace Canvases.Menu.Rebind // Hide } - + [UsedImplicitly] private void OnResetAll() { - playerInputActionRef.RemoveAllBindingOverrides(); + _playerInputActionRef.RemoveAllBindingOverrides(); UpdateAllRebindUI(); // UpdateBindings } @@ -63,7 +67,7 @@ namespace Canvases.Menu.Rebind private void AddBindingsButton(string deviceName) { currentControlScheme.Text = $"< {deviceName.ToUpper()} >"; - ReadOnlyArray inputActions = playerInputActionRef.Player.Get().actions; + ReadOnlyArray inputActions = new (); //TODO ProjectInit Get the actions from the Action map bool first = true; foreach (var inputAction in inputActions) { @@ -78,12 +82,12 @@ namespace Canvases.Menu.Rebind private void SpawnButton(InputAction inputAction, int mainBindingIndex, bool first) { RebindActionUI actionButton = Instantiate(rebindPrefab, scrollRectContent); - rebindUIs.Add(actionButton); + _rebindUIs.Add(actionButton); actionButton.name = $"Rebind UI for {inputAction.name}"; actionButton.Initialize(mainBindingIndex, inputAction, rebindOverlayText, OnUpdateBindingUIEvent); if (first) { - firstButton = actionButton; + _firstButton = actionButton; } } @@ -95,15 +99,16 @@ namespace Canvases.Menu.Rebind private void UpdateAllRebindUI() { - foreach (RebindActionUI rebindActionUI in rebindUIs) + foreach (RebindActionUI rebindActionUI in _rebindUIs) { rebindActionUI.UpdateBindingDisplay(false); } } + [UsedImplicitly] private void OnInputDeviceChanged(string newDevice) { - rebindUIs.Clear(); + _rebindUIs.Clear(); scrollRectContent.DestroyChildren(); AddBindingsButton(newDevice); } diff --git a/JohnsonUtils/Canvases/Menu/Rebind/RebindUI.cs.meta b/JohnsonUtils/Canvases/Menu/Rebind/RebindUI.cs.meta new file mode 100644 index 0000000..652f22d --- /dev/null +++ b/JohnsonUtils/Canvases/Menu/Rebind/RebindUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8dad699e20297a040b2b80c77a5b1bca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Common.meta b/JohnsonUtils/Common.meta new file mode 100644 index 0000000..6c4bd35 --- /dev/null +++ b/JohnsonUtils/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5d0141492d11e22478d4b5486f51fbd0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Common/Settings.meta b/JohnsonUtils/Common/Settings.meta new file mode 100644 index 0000000..9827b03 --- /dev/null +++ b/JohnsonUtils/Common/Settings.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 683fe2cb49ca4070b175e6045de4e470 +timeCreated: 1679073047 \ No newline at end of file diff --git a/JohnsonUtils/Common/Settings/GameSettings.cs b/JohnsonUtils/Common/Settings/GameSettings.cs new file mode 100644 index 0000000..e2cf23d --- /dev/null +++ b/JohnsonUtils/Common/Settings/GameSettings.cs @@ -0,0 +1,11 @@ +using Sirenix.OdinInspector; +using UnityEngine; + +namespace JohnsonUtils.Common +{ + [CreateAssetMenu(menuName = "Settings/Game Settings")] + public class GameSettings : ScriptableObject + { + + } +} \ No newline at end of file diff --git a/JohnsonUtils/Common/Settings/GameSettings.cs.meta b/JohnsonUtils/Common/Settings/GameSettings.cs.meta new file mode 100644 index 0000000..ffbe3c0 --- /dev/null +++ b/JohnsonUtils/Common/Settings/GameSettings.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6663ab9aa38d41ada29802c63e8d1fa2 +timeCreated: 1647204922 \ No newline at end of file diff --git a/Common/Settings.cs b/JohnsonUtils/Common/Settings/Settings.cs similarity index 83% rename from Common/Settings.cs rename to JohnsonUtils/Common/Settings/Settings.cs index 654360d..1a98675 100644 --- a/Common/Settings.cs +++ b/JohnsonUtils/Common/Settings/Settings.cs @@ -1,24 +1,27 @@ using System.Linq; +using JetBrains.Annotations; using UnityEngine; -namespace Common +namespace JohnsonUtils.Common { public class SettingsSystem : PersistentSingleton { private const string SETTINGS_FOLDER_PATH = "Settings"; + [PublicAPI] public static GameSettings GameSettings => Instance.GameSetting; - private GameSettings gameSetting; - private GameSettings GameSetting => gameSetting; + private GameSettings _gameSetting; + private GameSettings GameSetting => _gameSetting; protected override void Awake() { base.Awake(); - LoadSettings(out gameSetting); + LoadSettings(out _gameSetting); } + [PublicAPI] private void LoadSettings(out T memberToInitialize) where T : ScriptableObject { T[] loadedSettingsList = Resources.LoadAll(SETTINGS_FOLDER_PATH); @@ -32,6 +35,7 @@ namespace Common memberToInitialize = loadedSettingsList.First(); } + [PublicAPI] private void LoadAllSettings(out T[] memberToInitialize) where T : ScriptableObject { T[] loadedSettingsList = Resources.LoadAll(SETTINGS_FOLDER_PATH); diff --git a/JohnsonUtils/Common/Settings/Settings.cs.meta b/JohnsonUtils/Common/Settings/Settings.cs.meta new file mode 100644 index 0000000..e985254 --- /dev/null +++ b/JohnsonUtils/Common/Settings/Settings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ac33069eef60cbf41bcf2290969baaf6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Common/Singleton.cs b/JohnsonUtils/Common/Singleton.cs similarity index 95% rename from Common/Singleton.cs rename to JohnsonUtils/Common/Singleton.cs index bb043b3..394257f 100644 --- a/Common/Singleton.cs +++ b/JohnsonUtils/Common/Singleton.cs @@ -1,13 +1,15 @@ using System; +using JetBrains.Annotations; +using JohnsonUtils.Utilities; using UnityEngine; -using Utilities.Extensions; -namespace Common +namespace JohnsonUtils.Common { public abstract class AbstractSingleton : MonoBehaviour where T : AbstractSingleton { protected static T SharedInstance; + [PublicAPI] public static bool HasInstance => SharedInstance != null; protected virtual void Awake() @@ -62,7 +64,7 @@ namespace Common { Debug.LogWarning($"New instance of type {typeof(T).Name} detected. " + "This new instance is becoming the default instance."); - SharedInstance = (T) Convert.ChangeType(this, typeof(T));; + SharedInstance = (T) Convert.ChangeType(this, typeof(T)); return; } @@ -83,6 +85,7 @@ namespace Common /// public abstract class PersistentSingleton : AbstractSingleton where T : PersistentSingleton { + [PublicAPI] public static T Instance { get @@ -92,6 +95,7 @@ namespace Common } } + [PublicAPI] public static void CreateIfDoesNotExist() { if (!HasInstance && Application.isPlaying) diff --git a/JohnsonUtils/Common/Singleton.cs.meta b/JohnsonUtils/Common/Singleton.cs.meta new file mode 100644 index 0000000..7ef9786 --- /dev/null +++ b/JohnsonUtils/Common/Singleton.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9604fea7e06f5b049a9284f29fed926a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Common/Timer.cs b/JohnsonUtils/Common/Timer.cs similarity index 61% rename from Common/Timer.cs rename to JohnsonUtils/Common/Timer.cs index 0821637..a8456fa 100644 --- a/Common/Timer.cs +++ b/JohnsonUtils/Common/Timer.cs @@ -1,6 +1,6 @@ using System; -namespace Common +namespace JohnsonUtils.Common { public class Timer { @@ -10,43 +10,43 @@ namespace Common public float CurrentTime { get; private set; } - private readonly float startingTime; - private readonly bool isCountDown; - private bool isEnabled; + private readonly float _startingTime; + private readonly bool _isCountDown; + private bool _isEnabled; public Timer(float startTime, bool countDown = true) { IsRunning = false; - isEnabled = true; - startingTime = startTime; - isCountDown = countDown; + _isEnabled = true; + _startingTime = startTime; + _isCountDown = countDown; Init(); } private void Init() { - CurrentTime = startingTime; + CurrentTime = _startingTime; } public void Tick(float dt) { - if (!IsRunning || !isEnabled) return; + if (!IsRunning || !_isEnabled) return; - CurrentTime += isCountDown ? -dt : dt; + CurrentTime += _isCountDown ? -dt : dt; if (CurrentTime < 0) { CurrentTime = 0; IsRunning = false; - isEnabled = false; + _isEnabled = false; OnTimeOver?.Invoke(); } } public void Reset() { - isEnabled = true; - CurrentTime = isCountDown ? startingTime : 0; + _isEnabled = true; + CurrentTime = _isCountDown ? _startingTime : 0; } public void Start() => IsRunning = true; @@ -54,7 +54,7 @@ namespace Common public void Stop() { IsRunning = false; - isEnabled = false; + _isEnabled = false; CurrentTime = 0; } } diff --git a/JohnsonUtils/Common/Timer.cs.meta b/JohnsonUtils/Common/Timer.cs.meta new file mode 100644 index 0000000..19ad2d7 --- /dev/null +++ b/JohnsonUtils/Common/Timer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0a63bf39f5084f244a0d173ffaa33830 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Common/TimerWrapper.cs b/JohnsonUtils/Common/TimerWrapper.cs new file mode 100644 index 0000000..d0be03f --- /dev/null +++ b/JohnsonUtils/Common/TimerWrapper.cs @@ -0,0 +1,45 @@ +using JetBrains.Annotations; +using UnityEngine; +using UnityEngine.Events; + +namespace JohnsonUtils.Common +{ + public class TimerWrapper : MonoBehaviour + { + [PublicAPI] public UnityAction OnTimerOver; + + [SerializeField, Min(0)] private float startTime; + [SerializeField] private bool countDown = true; + [SerializeField] private bool startOnAwake; + [SerializeField] private bool startOnStart; + + private Timer _timer; + + [PublicAPI] public bool IsRunning => _timer.IsRunning; + [PublicAPI] public float CurrentTime => _timer.CurrentTime; + + private void Awake() + { + _timer = new Timer(startTime, countDown); + _timer.OnTimeOver += OnTimeOver; + if (startOnAwake) _timer.Start(); + } + + private void Start() + { + if (startOnStart) _timer.Start(); + } + + private void Update() + { + _timer.Tick(Time.deltaTime); + } + + [PublicAPI] public void StartTimer() => _timer.Start(); + [PublicAPI] public void PauseTimer() => _timer.Pause(); + [PublicAPI] public void StopTimer() => _timer.Stop(); + [PublicAPI] public void ResetTimer() => _timer.Reset(); + + private void OnTimeOver() => OnTimerOver?.Invoke(); + } +} \ No newline at end of file diff --git a/JohnsonUtils/Common/TimerWrapper.cs.meta b/JohnsonUtils/Common/TimerWrapper.cs.meta new file mode 100644 index 0000000..7514c23 --- /dev/null +++ b/JohnsonUtils/Common/TimerWrapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bd620e23d11c4614686cb5f542a4a465 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/SaveSystem.meta b/JohnsonUtils/SaveSystem.meta new file mode 100644 index 0000000..c9dd2bf --- /dev/null +++ b/JohnsonUtils/SaveSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c62f54d128b1614995abe5cb166e69f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/SaveSystem/Editor.meta b/JohnsonUtils/SaveSystem/Editor.meta new file mode 100644 index 0000000..22dce3a --- /dev/null +++ b/JohnsonUtils/SaveSystem/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b166f29acfae6f249968b2471f1bbbd7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/CustomInspectors/SaveManagerInspector.cs b/JohnsonUtils/SaveSystem/Editor/SaveManagerInspector.cs similarity index 92% rename from Editor/CustomInspectors/SaveManagerInspector.cs rename to JohnsonUtils/SaveSystem/Editor/SaveManagerInspector.cs index 8fcf9ab..6b136b4 100644 --- a/Editor/CustomInspectors/SaveManagerInspector.cs +++ b/JohnsonUtils/SaveSystem/Editor/SaveManagerInspector.cs @@ -3,10 +3,10 @@ using System.IO; using UnityEditor; using UnityEngine; -namespace SaveSystem +namespace JohnsonUtils.SaveSystem { [CustomEditor(typeof(SaveManager), true)] - public class SaveManagerInspector : Editor + public class SaveManagerInspector : UnityEditor.Editor { public override void OnInspectorGUI() { diff --git a/JohnsonUtils/SaveSystem/Editor/SaveManagerInspector.cs.meta b/JohnsonUtils/SaveSystem/Editor/SaveManagerInspector.cs.meta new file mode 100644 index 0000000..9cd97f9 --- /dev/null +++ b/JohnsonUtils/SaveSystem/Editor/SaveManagerInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8ae65abf022e1be4292f3e2dabfce042 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SaveSystem/GameData.cs b/JohnsonUtils/SaveSystem/GameData.cs similarity index 83% rename from SaveSystem/GameData.cs rename to JohnsonUtils/SaveSystem/GameData.cs index c2c031a..ff7e347 100644 --- a/SaveSystem/GameData.cs +++ b/JohnsonUtils/SaveSystem/GameData.cs @@ -1,6 +1,6 @@ using System; -namespace SaveSystem +namespace JohnsonUtils.SaveSystem { [Serializable] public class GameData diff --git a/JohnsonUtils/SaveSystem/GameData.cs.meta b/JohnsonUtils/SaveSystem/GameData.cs.meta new file mode 100644 index 0000000..33760e0 --- /dev/null +++ b/JohnsonUtils/SaveSystem/GameData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57b18c872a3211e40b79bb602e00f99b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SaveSystem/ISaveData.cs b/JohnsonUtils/SaveSystem/ISaveData.cs similarity index 79% rename from SaveSystem/ISaveData.cs rename to JohnsonUtils/SaveSystem/ISaveData.cs index 8de4f48..3f7ede3 100644 --- a/SaveSystem/ISaveData.cs +++ b/JohnsonUtils/SaveSystem/ISaveData.cs @@ -1,4 +1,4 @@ -namespace SaveSystem +namespace JohnsonUtils.SaveSystem { public interface ISaveData { diff --git a/JohnsonUtils/SaveSystem/ISaveData.cs.meta b/JohnsonUtils/SaveSystem/ISaveData.cs.meta new file mode 100644 index 0000000..e4a9865 --- /dev/null +++ b/JohnsonUtils/SaveSystem/ISaveData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bf2bda9e88708e14eb87e377f412381b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/SaveSystem/SaveManager.cs b/JohnsonUtils/SaveSystem/SaveManager.cs similarity index 87% rename from SaveSystem/SaveManager.cs rename to JohnsonUtils/SaveSystem/SaveManager.cs index 9b61038..0da80c5 100644 --- a/SaveSystem/SaveManager.cs +++ b/JohnsonUtils/SaveSystem/SaveManager.cs @@ -1,17 +1,19 @@ using System; using System.Collections.Generic; using System.IO; -using Core; +using JetBrains.Annotations; +using JohnsonUtils.Common; using UnityEngine; using UnityEngine.Events; -namespace SaveSystem +namespace JohnsonUtils.SaveSystem { public class SaveManager : Singleton { + [UsedImplicitly] public static UnityAction OnLoadCompleted; - private static readonly List SaveDataList = new List(); + private static readonly List SaveDataList = new (); private GameData _saveGame; private int _loadedGameNumber = -1; @@ -34,7 +36,7 @@ namespace SaveSystem string json = JsonUtility.ToJson(_saveGame); byte[] plainTextBytes = System.Text.Encoding.UTF8.GetBytes(json); string b64 = Convert.ToBase64String(plainTextBytes); - using StreamWriter sw = new StreamWriter($"saveData{saveNumber:00}.sgd"); + using StreamWriter sw = new ($"saveData{saveNumber:00}.sgd"); sw.Write(b64); _loadedGameNumber = -1; } @@ -46,7 +48,7 @@ namespace SaveSystem saveData.Save(ref _saveGame); } string json = JsonUtility.ToJson(_saveGame); - using StreamWriter sw = new StreamWriter($"saveData01.json"); + using StreamWriter sw = new ($"saveData01.json"); sw.Write(json); } @@ -56,7 +58,7 @@ namespace SaveSystem { try { - using StreamReader sr = new StreamReader($"saveData{saveNumber:00}.sgd"); + using StreamReader sr = new ($"saveData{saveNumber:00}.sgd"); string b64 = sr.ReadToEnd(); byte[] plainTextBytes = Convert.FromBase64String(b64); string json = System.Text.Encoding.UTF8.GetString(plainTextBytes); @@ -77,6 +79,7 @@ namespace SaveSystem OnLoadCompleted?.Invoke(_saveGame); } + [PublicAPI] public static void Register(ISaveData saveData) { if (!SaveDataList.Contains(saveData)) @@ -84,7 +87,8 @@ namespace SaveSystem SaveDataList.Add(saveData); } } - + + [PublicAPI] public static void Unregister(ISaveData saveData) { SaveDataList.Remove(saveData); diff --git a/JohnsonUtils/SaveSystem/SaveManager.cs.meta b/JohnsonUtils/SaveSystem/SaveManager.cs.meta new file mode 100644 index 0000000..f3cc4ae --- /dev/null +++ b/JohnsonUtils/SaveSystem/SaveManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a7057bb52fdff64086ec05f1083489f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Utilities.meta b/JohnsonUtils/Utilities.meta new file mode 100644 index 0000000..6efb10c --- /dev/null +++ b/JohnsonUtils/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fc748c629d04cd4498473f0ebd5fd372 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/DontDestroyOnLoadUtils.cs b/JohnsonUtils/Utilities/DontDestroyOnLoadUtils.cs similarity index 89% rename from Utilities/DontDestroyOnLoadUtils.cs rename to JohnsonUtils/Utilities/DontDestroyOnLoadUtils.cs index 63fcc46..f68b810 100644 --- a/Utilities/DontDestroyOnLoadUtils.cs +++ b/JohnsonUtils/Utilities/DontDestroyOnLoadUtils.cs @@ -1,14 +1,15 @@ using System; using System.Collections.Generic; using System.Linq; +using JetBrains.Annotations; using UnityEngine; using Object = UnityEngine.Object; -namespace Utilities +namespace JohnsonUtils.Utilities { public static class DontDestroyOnLoadUtils { - private static readonly List ManagedObjects = new List(); + private static readonly List ManagedObjects = new (); public static void Add(GameObject gameObject) { @@ -16,6 +17,7 @@ namespace Utilities Object.DontDestroyOnLoad(gameObject); } + [PublicAPI] public static void DestroyAll(Func filter = null) { foreach (GameObject managedObject in ManagedObjects.ToList()) diff --git a/JohnsonUtils/Utilities/DontDestroyOnLoadUtils.cs.meta b/JohnsonUtils/Utilities/DontDestroyOnLoadUtils.cs.meta new file mode 100644 index 0000000..b9be96f --- /dev/null +++ b/JohnsonUtils/Utilities/DontDestroyOnLoadUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8ea9ccf7d1dd3d445abb63da703379be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Utilities/Editor.meta b/JohnsonUtils/Utilities/Editor.meta new file mode 100644 index 0000000..a53d12f --- /dev/null +++ b/JohnsonUtils/Utilities/Editor.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 135a3c76938248c884cb0ce9c18de68c +timeCreated: 1679109633 \ No newline at end of file diff --git a/JohnsonUtils/Utilities/Editor/SceneAutoLoader.cs b/JohnsonUtils/Utilities/Editor/SceneAutoLoader.cs new file mode 100644 index 0000000..283f53e --- /dev/null +++ b/JohnsonUtils/Utilities/Editor/SceneAutoLoader.cs @@ -0,0 +1,136 @@ +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace JohnsonUtils.Utilities +{ + /// + /// Scene auto loader. + /// + /// + /// This class adds a File > Scene Autoload menu containing options to select + /// a "master scene" enable it to be auto-loaded when the user presses play + /// in the editor. When enabled, the selected scene will be loaded on play, + /// then the original scene will be reloaded on stop. + /// + /// Based on an idea on this thread: + /// http://forum.unity3d.com/threads/157502-Executing-first-scene-in-build-settings-when-pressing-play-button-in-editor + /// + [InitializeOnLoad] + public static class SceneAutoLoader + { + // Static constructor binds a playmode-changed callback. + // [InitializeOnLoad] above makes sure this gets executed. + static SceneAutoLoader() + { + EditorApplication.playModeStateChanged += OnPlayModeChanged; + } + + // Menu items to select the "master" scene and control whether or not to load it. + [MenuItem("File/Scene Autoload/Select Master Scene...")] + private static void SelectMasterScene() + { + string masterScene = EditorUtility.OpenFilePanel("Select Master Scene", Application.dataPath, "unity"); + masterScene = masterScene.Replace(Application.dataPath, "Assets"); //project relative instead of absolute path + if (!string.IsNullOrEmpty(masterScene)) + { + MasterScene = masterScene; + LoadMasterOnPlay = true; + } + } + + [MenuItem("File/Scene Autoload/Load Master On Play", true)] + private static bool ShowLoadMasterOnPlay() + { + return !LoadMasterOnPlay; + } + + [MenuItem("File/Scene Autoload/Load Master On Play")] + private static void EnableLoadMasterOnPlay() + { + LoadMasterOnPlay = true; + } + + [MenuItem("File/Scene Autoload/Don't Load Master On Play", true)] + private static bool ShowDontLoadMasterOnPlay() + { + return LoadMasterOnPlay; + } + + [MenuItem("File/Scene Autoload/Don't Load Master On Play")] + private static void DisableLoadMasterOnPlay() + { + LoadMasterOnPlay = false; + } + + // Play mode change callback handles the scene load/reload. + private static void OnPlayModeChanged(PlayModeStateChange state) + { + if (!LoadMasterOnPlay) + { + return; + } + + if (!EditorApplication.isPlaying && EditorApplication.isPlayingOrWillChangePlaymode) + { + // User pressed play -- autoload master scene. + PreviousScene = SceneManager.GetActiveScene().path; + if (EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) + { + try + { + EditorSceneManager.OpenScene(MasterScene); + } + catch + { + Debug.LogError($"error: scene not found: {MasterScene}"); + EditorApplication.isPlaying = false; + } + } + else + { + // User cancelled the save operation -- cancel play as well. + EditorApplication.isPlaying = false; + } + } + + // isPlaying check required because cannot OpenScene while playing + if (!EditorApplication.isPlaying && !EditorApplication.isPlayingOrWillChangePlaymode) + { + // User pressed stop -- reload previous scene. + try + { + EditorSceneManager.OpenScene(PreviousScene); + } + catch + { + Debug.LogError($"error: scene not found: {PreviousScene}"); + } + } + } + + // Properties are remembered as editor preferences. + private const string EDITOR_PREF_LOAD_MASTER_ON_PLAY = "SceneAutoLoader.LoadMasterOnPlay"; + private const string EDITOR_PREF_MASTER_SCENE = "SceneAutoLoader.MasterScene"; + private const string EDITOR_PREF_PREVIOUS_SCENE = "SceneAutoLoader.PreviousScene"; + + private static bool LoadMasterOnPlay + { + get => EditorPrefs.GetBool(EDITOR_PREF_LOAD_MASTER_ON_PLAY, false); + set => EditorPrefs.SetBool(EDITOR_PREF_LOAD_MASTER_ON_PLAY, value); + } + + private static string MasterScene + { + get => EditorPrefs.GetString(EDITOR_PREF_MASTER_SCENE, "Master.unity"); + set => EditorPrefs.SetString(EDITOR_PREF_MASTER_SCENE, value); + } + + private static string PreviousScene + { + get => EditorPrefs.GetString(EDITOR_PREF_PREVIOUS_SCENE, SceneManager.GetActiveScene().path); + set => EditorPrefs.SetString(EDITOR_PREF_PREVIOUS_SCENE, value); + } + } +} \ No newline at end of file diff --git a/JohnsonUtils/Utilities/Editor/SceneAutoLoader.cs.meta b/JohnsonUtils/Utilities/Editor/SceneAutoLoader.cs.meta new file mode 100644 index 0000000..5257ae0 --- /dev/null +++ b/JohnsonUtils/Utilities/Editor/SceneAutoLoader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 33bc754a27011cb4dbcbb8ca2806c681 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Utilities/Extensions.meta b/JohnsonUtils/Utilities/Extensions.meta new file mode 100644 index 0000000..1bf5974 --- /dev/null +++ b/JohnsonUtils/Utilities/Extensions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bd5040a05d81fbe4d91cb7e4ca276a3d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/Extensions/CollectionExtensions.cs b/JohnsonUtils/Utilities/Extensions/CollectionExtensions.cs similarity index 96% rename from Utilities/Extensions/CollectionExtensions.cs rename to JohnsonUtils/Utilities/Extensions/CollectionExtensions.cs index 6b2610f..fad5156 100644 --- a/Utilities/Extensions/CollectionExtensions.cs +++ b/JohnsonUtils/Utilities/Extensions/CollectionExtensions.cs @@ -2,7 +2,7 @@ using System.Linq; using UnityEngine; -namespace Utilities.Extensions +namespace JohnsonUtils.Utilities { public static class CollectionExtensions { diff --git a/JohnsonUtils/Utilities/Extensions/CollectionExtensions.cs.meta b/JohnsonUtils/Utilities/Extensions/CollectionExtensions.cs.meta new file mode 100644 index 0000000..14fec31 --- /dev/null +++ b/JohnsonUtils/Utilities/Extensions/CollectionExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b5fb94e75a817a546ae336e4f83bc091 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/Extensions/GameObjectExtensions.cs b/JohnsonUtils/Utilities/Extensions/GameObjectExtensions.cs similarity index 99% rename from Utilities/Extensions/GameObjectExtensions.cs rename to JohnsonUtils/Utilities/Extensions/GameObjectExtensions.cs index fc22702..5625504 100644 --- a/Utilities/Extensions/GameObjectExtensions.cs +++ b/JohnsonUtils/Utilities/Extensions/GameObjectExtensions.cs @@ -3,7 +3,7 @@ using Fusion; #endif using UnityEngine; -namespace Utilities.Extensions +namespace JohnsonUtils.Utilities { public static class GameObjectExtensions { diff --git a/JohnsonUtils/Utilities/Extensions/GameObjectExtensions.cs.meta b/JohnsonUtils/Utilities/Extensions/GameObjectExtensions.cs.meta new file mode 100644 index 0000000..4f61f15 --- /dev/null +++ b/JohnsonUtils/Utilities/Extensions/GameObjectExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 11c2e39b23f8fe0438c1c428ff35d31a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/Extensions/InputActionExtensions.cs b/JohnsonUtils/Utilities/Extensions/InputActionExtensions.cs similarity index 92% rename from Utilities/Extensions/InputActionExtensions.cs rename to JohnsonUtils/Utilities/Extensions/InputActionExtensions.cs index b08e4eb..93ca4bd 100644 --- a/Utilities/Extensions/InputActionExtensions.cs +++ b/JohnsonUtils/Utilities/Extensions/InputActionExtensions.cs @@ -1,7 +1,7 @@ using UnityEngine; using UnityEngine.InputSystem; -namespace Utilities.Extensions +namespace JohnsonUtils.Utilities { public static class InputActionExtensions { diff --git a/JohnsonUtils/Utilities/Extensions/InputActionExtensions.cs.meta b/JohnsonUtils/Utilities/Extensions/InputActionExtensions.cs.meta new file mode 100644 index 0000000..0411444 --- /dev/null +++ b/JohnsonUtils/Utilities/Extensions/InputActionExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8242e3fda713f7d4e9221e2dc0c19f3c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/Extensions/StringExtensions.cs b/JohnsonUtils/Utilities/Extensions/StringExtensions.cs similarity index 91% rename from Utilities/Extensions/StringExtensions.cs rename to JohnsonUtils/Utilities/Extensions/StringExtensions.cs index 3b52aa1..87bd841 100644 --- a/Utilities/Extensions/StringExtensions.cs +++ b/JohnsonUtils/Utilities/Extensions/StringExtensions.cs @@ -1,4 +1,4 @@ -namespace Utilities.Extensions +namespace JohnsonUtils.Utilities { public static class StringExtensions { diff --git a/JohnsonUtils/Utilities/Extensions/StringExtensions.cs.meta b/JohnsonUtils/Utilities/Extensions/StringExtensions.cs.meta new file mode 100644 index 0000000..0c7c6b2 --- /dev/null +++ b/JohnsonUtils/Utilities/Extensions/StringExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5add9befbd2881544901a6f360eff0e3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/Extensions/TransformExtensions.cs b/JohnsonUtils/Utilities/Extensions/TransformExtensions.cs similarity index 89% rename from Utilities/Extensions/TransformExtensions.cs rename to JohnsonUtils/Utilities/Extensions/TransformExtensions.cs index f133224..8abb7c7 100644 --- a/Utilities/Extensions/TransformExtensions.cs +++ b/JohnsonUtils/Utilities/Extensions/TransformExtensions.cs @@ -1,6 +1,6 @@ using UnityEngine; -namespace Utilities.Extensions +namespace JohnsonUtils.Utilities { public static class TransformExtensions { diff --git a/JohnsonUtils/Utilities/Extensions/TransformExtensions.cs.meta b/JohnsonUtils/Utilities/Extensions/TransformExtensions.cs.meta new file mode 100644 index 0000000..80a2d73 --- /dev/null +++ b/JohnsonUtils/Utilities/Extensions/TransformExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a9990d71fe137014da6d88ccc7f3fd79 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/Extensions/VectorExtensions.cs b/JohnsonUtils/Utilities/Extensions/VectorExtensions.cs similarity index 98% rename from Utilities/Extensions/VectorExtensions.cs rename to JohnsonUtils/Utilities/Extensions/VectorExtensions.cs index 67745f0..f2b3442 100644 --- a/Utilities/Extensions/VectorExtensions.cs +++ b/JohnsonUtils/Utilities/Extensions/VectorExtensions.cs @@ -1,6 +1,6 @@ using UnityEngine; -namespace Utilities.Extensions +namespace JohnsonUtils.Utilities { public static class VectorExtensions { diff --git a/JohnsonUtils/Utilities/Extensions/VectorExtensions.cs.meta b/JohnsonUtils/Utilities/Extensions/VectorExtensions.cs.meta new file mode 100644 index 0000000..a89d024 --- /dev/null +++ b/JohnsonUtils/Utilities/Extensions/VectorExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bd30f74b9d046c343b219f71af36214e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/Helpers.cs b/JohnsonUtils/Utilities/Helpers.cs similarity index 79% rename from Utilities/Helpers.cs rename to JohnsonUtils/Utilities/Helpers.cs index 49b19a0..dce2df3 100644 --- a/Utilities/Helpers.cs +++ b/JohnsonUtils/Utilities/Helpers.cs @@ -1,13 +1,14 @@ using System.Collections.Generic; +using JetBrains.Annotations; using UnityEngine; -namespace Utilities +namespace JohnsonUtils.Utilities { public static class Helpers { - private static readonly Dictionary WaitDictionary = - new Dictionary(); + private static readonly Dictionary WaitDictionary = new(); + [PublicAPI] public static WaitForSeconds GetWait(float time) { if (WaitDictionary.TryGetValue(time, out var wait)) return wait; diff --git a/JohnsonUtils/Utilities/Helpers.cs.meta b/JohnsonUtils/Utilities/Helpers.cs.meta new file mode 100644 index 0000000..b1e1b0e --- /dev/null +++ b/JohnsonUtils/Utilities/Helpers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63f4821a0b83c2946a1030f57ca89855 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Utilities/Icons.meta b/JohnsonUtils/Utilities/Icons.meta new file mode 100644 index 0000000..28889b8 --- /dev/null +++ b/JohnsonUtils/Utilities/Icons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a61e6af0b88652a43b607e4e5c97eb91 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/BindingsIconsUtil.cs b/JohnsonUtils/Utilities/Icons/BindingsIconsUtil.cs similarity index 97% rename from Utilities/BindingsIconsUtil.cs rename to JohnsonUtils/Utilities/Icons/BindingsIconsUtil.cs index 6a1850c..88d3f09 100644 --- a/Utilities/BindingsIconsUtil.cs +++ b/JohnsonUtils/Utilities/Icons/BindingsIconsUtil.cs @@ -1,11 +1,10 @@ using System.Collections.Generic; using System.Linq; -using Scriptables; using UnityEngine; using UnityEngine.InputSystem; using static UnityEngine.InputSystem.InputSystem; -namespace Utilities +namespace JohnsonUtils.Utilities.Icons { public static class BindingsIconsUtil { @@ -15,8 +14,8 @@ namespace Utilities private static void Init() { - xbox = Resources.Load("InputSystem/GamePadIcons_Xbox"); - ps4 = Resources.Load("InputSystem/GamePadIcons_PS"); + xbox = Resources.Load("InputSystem/GamepadIcons_Xbox"); + ps4 = Resources.Load("InputSystem/GamepadIcons_PS"); mouseKeyboard = Resources.Load("InputSystem/MouseKeyboardIcons"); } diff --git a/JohnsonUtils/Utilities/Icons/BindingsIconsUtil.cs.meta b/JohnsonUtils/Utilities/Icons/BindingsIconsUtil.cs.meta new file mode 100644 index 0000000..96a98ff --- /dev/null +++ b/JohnsonUtils/Utilities/Icons/BindingsIconsUtil.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f226afe07acb8a748a642771fd14b4c0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Utilities/Icons/GamepadIcons.cs b/JohnsonUtils/Utilities/Icons/GamepadIcons.cs new file mode 100644 index 0000000..36a28ce --- /dev/null +++ b/JohnsonUtils/Utilities/Icons/GamepadIcons.cs @@ -0,0 +1,57 @@ +using UnityEngine; + +namespace JohnsonUtils.Utilities.Icons +{ + [CreateAssetMenu(fileName = "GamepadIcons_", menuName = "AssetPack/GamePad Icons", order = 0)] + public class GamepadIcons : ScriptableObject + { + public Sprite ButtonEast; + public Sprite ButtonNorth; + public Sprite ButtonSouth; + public Sprite ButtonWest; + public Sprite Dpad; + public Sprite DpadUp; + public Sprite DpadDown; + public Sprite DpadLeft; + public Sprite DpadRight; + public Sprite LeftShoulder; + public Sprite LeftStick; + public Sprite LeftTrigger; + public Sprite RightShoulder; + public Sprite RightStick; + public Sprite RightTrigger; + public Sprite SelectButton; + public Sprite StartButton; + public Sprite LeftStickPress; + public Sprite RightStickPress; + + public Sprite GetSprite(string controlPath) + { + // From the input system, we get the path of the control on device. So we can just + // map from that to the sprites we have for gamepads. + return controlPath switch + { + "buttonSouth" => ButtonSouth, + "buttonNorth" => ButtonNorth, + "buttonEast" => ButtonEast, + "buttonWest" => ButtonWest, + "start" => StartButton, + "select" => SelectButton, + "leftTrigger" => LeftTrigger, + "rightTrigger" => RightTrigger, + "leftShoulder" => LeftShoulder, + "rightShoulder" => RightShoulder, + "dpad" => Dpad, + "dpad/up" => DpadUp, + "dpad/down" => DpadDown, + "dpad/left" => DpadLeft, + "dpad/right" => DpadRight, + "leftStick" => LeftStick, + "rightStick" => RightStick, + "leftStickPress" => LeftStickPress, + "rightStickPress" => RightStickPress, + _ => null + }; + } + } +} \ No newline at end of file diff --git a/JohnsonUtils/Utilities/Icons/GamepadIcons.cs.meta b/JohnsonUtils/Utilities/Icons/GamepadIcons.cs.meta new file mode 100644 index 0000000..630d97d --- /dev/null +++ b/JohnsonUtils/Utilities/Icons/GamepadIcons.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 05c8d9a76dc13a34db3c143d9f20b866 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JohnsonUtils/Utilities/Icons/MouseKeyboardIcons.cs b/JohnsonUtils/Utilities/Icons/MouseKeyboardIcons.cs new file mode 100644 index 0000000..75d2416 --- /dev/null +++ b/JohnsonUtils/Utilities/Icons/MouseKeyboardIcons.cs @@ -0,0 +1,186 @@ +using UnityEngine; + +namespace JohnsonUtils.Utilities.Icons +{ + [CreateAssetMenu(fileName = "MouseKeyboardIcons_", menuName = "AssetPack/MouseKeyboard Icons", order = 0)] + public class MouseKeyboardIcons : ScriptableObject + { + public Sprite Zero; + public Sprite One; + public Sprite Two; + public Sprite Three; + public Sprite Four; + public Sprite Five; + public Sprite Six; + public Sprite Seven; + public Sprite Eight; + public Sprite Nine; + public Sprite Alt; + public Sprite ArrowDown; + public Sprite ArrowLeft; + public Sprite ArrowRight; + public Sprite ArrowUp; + public Sprite Asterisk; + public Sprite Backspace; + public Sprite Ctrl; + public Sprite Delete; + public Sprite End; + public Sprite Enter; + public Sprite Escape; + public Sprite F1; + public Sprite F2; + public Sprite F3; + public Sprite F4; + public Sprite F5; + public Sprite F6; + public Sprite F7; + public Sprite F8; + public Sprite F9; + public Sprite F10; + public Sprite F11; + public Sprite F12; + public Sprite Home; + public Sprite LetterA; + public Sprite LetterB; + public Sprite LetterC; + public Sprite LetterD; + public Sprite LetterE; + public Sprite LetterF; + public Sprite LetterG; + public Sprite LetterH; + public Sprite LetterI; + public Sprite LetterJ; + public Sprite LetterK; + public Sprite LetterL; + public Sprite LetterM; + public Sprite LetterN; + public Sprite LetterO; + public Sprite LetterP; + public Sprite LetterQ; + public Sprite LetterR; + public Sprite LetterS; + public Sprite LetterT; + public Sprite LetterU; + public Sprite LetterV; + public Sprite LetterW; + public Sprite LetterX; + public Sprite LetterY; + public Sprite LetterZ; + public Sprite MarkLeft; + public Sprite MarkRight; + public Sprite Minus; + public Sprite Plus; + public Sprite MouseLeft; + public Sprite MouseMiddle; + public Sprite MouseRight; + public Sprite MouseNone; + public Sprite PageDown; + public Sprite PageUp; + public Sprite QuestionMark; + public Sprite Quote; + public Sprite Semicolon; + public Sprite Shift; + public Sprite Slash; + public Sprite Space; + public Sprite Tab; + public Sprite Tilda; + + public Sprite GetSprite(string controlPath) + { + // From the input system, we get the path of the control on device. So we can just + // map from that to the sprites we have for gamepads. + return controlPath.ToLower() switch + { + "0" => Zero, + "1" => One, + "2" => Two, + "3" => Three, + "4" => Four, + "5" => Five, + "6" => Six, + "7" => Seven, + "8" => Eight, + "9" => Nine, + "alt" => Alt, + "leftalt" => Alt, + "rightalt" => Alt, + "downarrow" => ArrowDown, + "leftarrow" => ArrowLeft, + "rightarrow" => ArrowRight, + "uparrow" => ArrowUp, + "*" => Asterisk, + "backspace" => Backspace, + "ctrl" => Ctrl, + "leftctrl" => Ctrl, + "rightctrl" => Ctrl, + "delete" => Delete, + "end" => End, + "enter" => Enter, + "escape" => Escape, + "f1" => F1, + "f2" => F2, + "f3" => F3, + "f4" => F4, + "f5" => F5, + "f6" => F6, + "f7" => F7, + "f8" => F8, + "f9" => F9, + "f10" => F10, + "f11" => F11, + "f12" => F12, + "home" => Home, + "a" => LetterA, + "b" => LetterB, + "c" => LetterC, + "d" => LetterD, + "e" => LetterE, + "f" => LetterF, + "g" => LetterG, + "h" => LetterH, + "i" => LetterI, + "j" => LetterJ, + "k" => LetterK, + "l" => LetterL, + "m" => LetterM, + "n" => LetterN, + "o" => LetterO, + "p" => LetterP, + "q" => LetterQ, + "r" => LetterR, + "s" => LetterS, + "t" => LetterT, + "u" => LetterU, + "v" => LetterV, + "w" => LetterW, + "x" => LetterX, + "y" => LetterY, + "z" => LetterZ, + "[" => MarkLeft, + "]" => MarkRight, + "-" => Minus, + "+" => Plus, + "leftmouse" => MouseLeft, + "middlemouse" => MouseMiddle, + "rightmouse" => MouseRight, + "leftbutton" => MouseLeft, + "middlebutton" => MouseMiddle, + "rightbutton" => MouseRight, + "press" => MouseNone, + "pagedown" => PageDown, + "pageup" => PageUp, + "?" => QuestionMark, + "\"" => Quote, + ";" => Semicolon, + "shift" => Shift, + "leftshift" => Shift, + "rightshift" => Shift, + "/" => Slash, + "space" => Space, + "tab" => Tab, + "~" => Tilda, + _ => null + }; + } + } +} \ No newline at end of file diff --git a/JohnsonUtils/Utilities/Icons/MouseKeyboardIcons.cs.meta b/JohnsonUtils/Utilities/Icons/MouseKeyboardIcons.cs.meta new file mode 100644 index 0000000..9a09ace --- /dev/null +++ b/JohnsonUtils/Utilities/Icons/MouseKeyboardIcons.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 230adb9d1f61b4342af8190654725fa7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Utilities/SerializableDictionary.cs b/JohnsonUtils/Utilities/SerializableDictionary.cs similarity index 54% rename from Utilities/SerializableDictionary.cs rename to JohnsonUtils/Utilities/SerializableDictionary.cs index d20494a..bbdbf1b 100644 --- a/Utilities/SerializableDictionary.cs +++ b/JohnsonUtils/Utilities/SerializableDictionary.cs @@ -2,23 +2,23 @@ using System.Collections.Generic; using UnityEngine; -namespace Util +namespace JohnsonUtils.Utilities { [Serializable] public class SerializableDictionary : Dictionary, ISerializationCallbackReceiver { - [SerializeField] private List _keys = new List(); - [SerializeField] private List _values = new List(); + [SerializeField] private List keys = new (); + [SerializeField] private List values = new (); public void OnBeforeSerialize() { - _keys.Clear(); - _values.Clear(); + keys.Clear(); + values.Clear(); foreach (KeyValuePair pair in this) { - _keys.Add(pair.Key); - _values.Add(pair.Value); + keys.Add(pair.Key); + values.Add(pair.Value); } } @@ -26,16 +26,16 @@ namespace Util { Clear(); - if (_keys.Count != _values.Count) + if (keys.Count != values.Count) { throw new Exception( - $"There are {_keys.Count} keys and {_values.Count} values after deserialization." + + $"There are {keys.Count} keys and {values.Count} values after deserialization." + " Make sure that both key and value types are serializable."); } - for (int i = 0; i < _keys.Count; ++i) + for (int i = 0; i < keys.Count; ++i) { - Add(_keys[i], _values[i]); + Add(keys[i], values[i]); } } } diff --git a/JohnsonUtils/Utilities/SerializableDictionary.cs.meta b/JohnsonUtils/Utilities/SerializableDictionary.cs.meta new file mode 100644 index 0000000..06bea87 --- /dev/null +++ b/JohnsonUtils/Utilities/SerializableDictionary.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: de5e88e7664d4b04fa189a30e345f404 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/PROJECTSOLUTION.sln.DotSettings b/PROJECTSOLUTION.sln.DotSettings new file mode 100644 index 0000000..2cb0a02 --- /dev/null +++ b/PROJECTSOLUTION.sln.DotSettings @@ -0,0 +1,150 @@ + + <Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns" + xmlns:unity="urn:schemas-jetbrains-com:member-reordering-patterns-unity"> + + <!-- Pattern to match classes used by Unity that contain serialised fields and event + function methods. Based on the standard "Default Pattern", this will also order + event functions before normal methods, and does not reorder serialised fields, + as this order is reflected in the Unity editor's Inspector --> + <TypePattern DisplayName="Unity classes" Priority="100"> + <TypePattern.Match> + <unity:SerializableClass /> + </TypePattern.Match> + + <Entry DisplayName="Public Delegates" Priority="100"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Delegate" /> + </And> + </Entry.Match> + + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + + <Entry DisplayName="Public Enums" Priority="100"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Enum" /> + </And> + </Entry.Match> + + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + + <Entry DisplayName="Static Fields and Constants"> + <Entry.Match> + <Or> + <Kind Is="Constant" /> + <And> + <Kind Is="Field" /> + <Static /> + </And> + </Or> + </Entry.Match> + + <Entry.SortBy> + <Kind> + <Kind.Order> + <DeclarationKind>Constant</DeclarationKind> + <DeclarationKind>Field</DeclarationKind> + </Kind.Order> + </Kind> + </Entry.SortBy> + </Entry> + + <Entry DisplayName="Serialized Fields"> + <Entry.Match> + <unity:SerializedField /> + </Entry.Match> + + <!-- No sorting --> + </Entry> + + <Entry DisplayName="Non-serialised Fields"> + <Entry.Match> + <And> + <Kind Is="Field" /> + <Not> + <unity:SerializedField /> + </Not> + </And> + </Entry.Match> + + <Entry.SortBy> + <Readonly /> + <Name /> + </Entry.SortBy> + </Entry> + + <Entry DisplayName="Constructors"> + <Entry.Match> + <Kind Is="Constructor" /> + </Entry.Match> + + <Entry.SortBy> + <Static/> + </Entry.SortBy> + </Entry> + + <Entry DisplayName="Properties, Indexers"> + <Entry.Match> + <Or> + <Kind Is="Property" /> + <Kind Is="Indexer" /> + </Or> + </Entry.Match> + </Entry> + + <Entry DisplayName="Event Functions"> + <Entry.Match> + <unity:EventFunction /> + </Entry.Match> + + <Entry.SortBy> + <!-- Prioritises common event functions. For alphabetical, replace with <Name /> --> + <unity:EventFunctionName /> + </Entry.SortBy> + </Entry> + + <Entry DisplayName="Interface Implementations" Priority="100"> + <Entry.Match> + <And> + <Kind Is="Member" /> + <ImplementsInterface /> + </And> + </Entry.Match> + + <Entry.SortBy> + <ImplementsInterface Immediate="true" /> + </Entry.SortBy> + </Entry> + + <Entry DisplayName="All other members" /> + + <Entry DisplayName="Nested Types"> + <Entry.Match> + <Kind Is="Type" /> + </Entry.Match> + </Entry> + </TypePattern> +</Patterns> + + <Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /> +<Policy><Descriptor Staticness="Instance" AccessRightKinds="Public" Description="Unity serialized field"><ElementKinds><Kind Name="UNITY_SERIALISED_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /></Policy> + <Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Unity serialized field"><ElementKinds><Kind Name="UNITY_SERIALISED_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></Policy> + True + True + True + True + True + True + True + True + True + \ No newline at end of file diff --git a/Plugins/Sirenix.meta b/Plugins/Sirenix.meta new file mode 100644 index 0000000..8817fea --- /dev/null +++ b/Plugins/Sirenix.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6383ca44913a0d345a222149fef5d148 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies.meta b/Plugins/Sirenix/Assemblies.meta new file mode 100644 index 0000000..ceb9756 --- /dev/null +++ b/Plugins/Sirenix/Assemblies.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c30fee7fb69eba342846aaf23d0c168a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll b/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll deleted file mode 100644 index c5f7bde..0000000 Binary files a/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Serialization.dll and /dev/null differ diff --git a/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll b/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll deleted file mode 100644 index f992e6e..0000000 Binary files a/Plugins/Sirenix/Assemblies/NoEditor/Sirenix.Utilities.dll and /dev/null differ diff --git a/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll b/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll deleted file mode 100644 index ae58ea7..0000000 Binary files a/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Serialization.dll and /dev/null differ diff --git a/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll b/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll deleted file mode 100644 index 7d6e59d..0000000 Binary files a/Plugins/Sirenix/Assemblies/NoEmitAndNoEditor/Sirenix.Utilities.dll and /dev/null differ diff --git a/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll.meta b/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll.meta new file mode 100644 index 0000000..c4f2caf --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 615b45ca414282a44880ec620de01335 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml.meta b/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml.meta new file mode 100644 index 0000000..1c0e39b --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Attributes.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e66a92ac4ee3e1e40b930970e1b7090c +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll.meta b/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll.meta new file mode 100644 index 0000000..a8d3697 --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: a4865f1ab4504ed8a368670db22f409c +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml.meta b/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml.meta new file mode 100644 index 0000000..68ba40f --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.OdinInspector.Editor.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 594d28601a0f6d04fb47fcd8e549aa46 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll.meta b/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll.meta new file mode 100644 index 0000000..40ce0ad --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 74721b9f0af448f5ae2e91102a1a5edd +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml.meta b/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml.meta new file mode 100644 index 0000000..80877e2 --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.Serialization.Config.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a92083c68f6a53547a67898ad8a424ae +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll.meta b/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll.meta new file mode 100644 index 0000000..7539b1a --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.Serialization.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 1d9fa6fbd07f851478ade4aca87fb875 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml.meta b/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml.meta new file mode 100644 index 0000000..aac23c9 --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.Serialization.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d5a97db10bfa91240a788be1e36ff3f4 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll.meta b/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll.meta new file mode 100644 index 0000000..a33630f --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 5c65184932ff4fd48a343e2360256baf +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml.meta b/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml.meta new file mode 100644 index 0000000..970803a --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.Utilities.Editor.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3c4dfb8730b42e04c9e69f51d7a37c73 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll.meta b/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll.meta new file mode 100644 index 0000000..73c88c8 --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.Utilities.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 786977ff98851d9469b70e1cc2d99473 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml.meta b/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml.meta new file mode 100644 index 0000000..b96c11a --- /dev/null +++ b/Plugins/Sirenix/Assemblies/Sirenix.Utilities.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 61b7c8f0a8eaf524c81ae142f0a5ce3d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Assemblies/link.xml.meta b/Plugins/Sirenix/Assemblies/link.xml.meta new file mode 100644 index 0000000..6c7a38d --- /dev/null +++ b/Plugins/Sirenix/Assemblies/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c391199c8c1012346829658412aac38a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector.meta b/Plugins/Sirenix/Odin Inspector.meta new file mode 100644 index 0000000..b782a9f --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c1b5909cb4de7734f80954bdf0bcd95d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Assets.meta b/Plugins/Sirenix/Odin Inspector/Assets.meta new file mode 100644 index 0000000..6fc0d6c --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dcc61112d82d48a4aae8dfa2161ec44b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Assets/Editor.meta b/Plugins/Sirenix/Odin Inspector/Assets/Editor.meta new file mode 100644 index 0000000..439e8a0 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d2f24da72e46894a970211965b54883 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes.meta b/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes.meta new file mode 100644 index 0000000..a4e3722 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Assets/Editor/ConfigData.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 211245ccb50d4764ebdf026d22febed9 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Assets/Editor/Odin Inspector Logo.png.meta b/Plugins/Sirenix/Odin Inspector/Assets/Editor/Odin Inspector Logo.png.meta new file mode 100644 index 0000000..db5dd84 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Assets/Editor/Odin Inspector Logo.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 9caa89c81fa70c4488639bce6318c917 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset.meta b/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset.meta new file mode 100644 index 0000000..c60d1e5 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Assets/Editor/OdinPathLookup.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4e16c44dda3291640b290ec37fc78bed +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config.meta b/Plugins/Sirenix/Odin Inspector/Config.meta new file mode 100644 index 0000000..e1524d9 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 32bd4670b801c4746a01e9690eba6fea +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Editor.meta b/Plugins/Sirenix/Odin Inspector/Config/Editor.meta new file mode 100644 index 0000000..809aa63 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1fcc42c985c71c849a932754432ab1aa +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset.meta b/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset.meta new file mode 100644 index 0000000..306dd15 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Editor/AOTGenerationConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e8fb450f4176ce7449cfff19d4ab4a23 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset.meta b/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset.meta new file mode 100644 index 0000000..72fe975 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Editor/ColorPaletteManager.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 282b4380a620517458491295eadecfe9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset.meta b/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset.meta new file mode 100644 index 0000000..82461f4 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Editor/GeneralDrawerConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f1c8b898066fc5a41a63c1aa73387c06 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset.meta b/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset.meta new file mode 100644 index 0000000..9facd0d --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Editor/ImportSettingsConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b56005339acc4a498bbb0d8f02ebb1d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset.meta b/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset.meta new file mode 100644 index 0000000..98f7152 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Editor/InspectorConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ceab62aa381a1a4d909760883ad7c02 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset b/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset index 45676c6..40135aa 100644 --- a/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset +++ b/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset @@ -12,8 +12,6 @@ MonoBehaviour: m_Script: {fileID: -228747253, guid: a4865f1ab4504ed8a368670db22f409c, type: 3} m_Name: OdinModuleConfig m_EditorClassIdentifier: - configurations: - - ID: Unity.Mathematics - ActivationSettings: 0 + configurations: [] ModuleTogglingSettings: 0 ModuleUpdateSettings: 0 diff --git a/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset.meta b/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset.meta new file mode 100644 index 0000000..b17e195 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Editor/OdinModuleConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44e669b21bb1ef446b5e93d62049c090 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Resources.meta b/Plugins/Sirenix/Odin Inspector/Config/Resources.meta new file mode 100644 index 0000000..52a4a87 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab94f63e326065645bc5eae9873effbb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix.meta b/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix.meta new file mode 100644 index 0000000..b3130c0 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e36594608acf3d4d8feecd7d2ad2c8e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset.meta b/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset.meta new file mode 100644 index 0000000..6f4871f --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Config/Resources/Sirenix/GlobalSerializationConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 740ddd1b9ed9b7a44ad35954b38c11f8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Modules.meta b/Plugins/Sirenix/Odin Inspector/Modules.meta new file mode 100644 index 0000000..6268b40 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7a3140548cc37594e8c7f4e5aabd40a5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data.meta b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data.meta new file mode 100644 index 0000000..9581653 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Entities.data.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 51851c50d7782984fa1b104195a0f58e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data.meta b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data.meta new file mode 100644 index 0000000..16aee9d --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Localization.data.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 63a46077d14c5fa43ac7da0ffebd0025 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data.meta b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data.meta new file mode 100644 index 0000000..454626a --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.data.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f5779ae61f7e4b24ab51c3eb58c021b8 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.meta b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.meta new file mode 100644 index 0000000..ca18c01 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c4fea0df11fe5b14c915a5882b6652ef +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/MathematicsDrawers.cs b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/MathematicsDrawers.cs index 47a1db4..ccd7768 100644 --- a/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/MathematicsDrawers.cs +++ b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/MathematicsDrawers.cs @@ -4,19 +4,20 @@ // //----------------------------------------------------------------------- -namespace Sirenix.OdinInspector.Modules.UnityMathematics.Editor +using System; +using System.Collections.Generic; +using System.Reflection; +using Sirenix.OdinInspector; +using Sirenix.OdinInspector.Editor; +using Sirenix.Utilities; +using Sirenix.Utilities.Editor; +using Unity.Mathematics; +using UnityEditor; +using UnityEngine; + +namespace JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Modules.Unity.Mathematics { #if UNITY_EDITOR - using System; - using System.Collections.Generic; - using System.Reflection; - using Sirenix.OdinInspector.Editor; - using Sirenix.Utilities; - using Sirenix.Utilities.Editor; - using Unity.Mathematics; - using UnityEditor; - using UnityEngine; - public sealed class MatrixFloat2x2Processor : MatrixProcessor { } public sealed class MatrixFloat3x2Processor : MatrixProcessor { } public sealed class MatrixFloat4x2Processor : MatrixProcessor { } diff --git a/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/MathematicsDrawers.cs.meta b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/MathematicsDrawers.cs.meta new file mode 100644 index 0000000..9194743 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/MathematicsDrawers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5627f4b3b10a632488188d222aa967b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/Sirenix.OdinInspector.Modules.UnityMathematics.asmdef.meta b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/Sirenix.OdinInspector.Modules.UnityMathematics.asmdef.meta new file mode 100644 index 0000000..227bbbf --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/Sirenix.OdinInspector.Modules.UnityMathematics.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2cfce3422402b604d9252ccb42d47a1e +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/manifest.txt.meta b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/manifest.txt.meta new file mode 100644 index 0000000..4df4bcf --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Modules/Unity.Mathematics/manifest.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 42079391b36140d4cbf3a838dcb666e9 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts.meta b/Plugins/Sirenix/Odin Inspector/Scripts.meta new file mode 100644 index 0000000..2a3b23e --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c2aeeb6768ca13748a20cb471e7d5b1b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor.meta new file mode 100644 index 0000000..c8dcfca --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b3e0a5066d059b46a813b23f70b9888 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/AssemblyImportSettingsAutomation.cs b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/AssemblyImportSettingsAutomation.cs index 0a40989..d59776d 100644 --- a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/AssemblyImportSettingsAutomation.cs +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/AssemblyImportSettingsAutomation.cs @@ -4,17 +4,18 @@ // //----------------------------------------------------------------------- +using System.Collections.Generic; +using System.IO; +using Sirenix.OdinInspector.Editor; +using Sirenix.Serialization.Utilities.Editor; +using Sirenix.Utilities; +using UnityEditor; +using UnityEditor.Build; + #if UNITY_EDITOR && UNITY_5_6_OR_NEWER -namespace Sirenix.OdinInspector.Editor +namespace JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Scripts.Editor { - using System.IO; - using System.Collections.Generic; - using Sirenix.Serialization.Utilities.Editor; - using Sirenix.Utilities; - using UnityEditor; - using UnityEditor.Build; - #if UNITY_2018_1_OR_NEWER using UnityEditor.Build.Reporting; #endif diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/AssemblyImportSettingsAutomation.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/AssemblyImportSettingsAutomation.cs.meta new file mode 100644 index 0000000..326ff1a --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/AssemblyImportSettingsAutomation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c6ef86461fd02041843464f1c587f78 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs index 88b438b..2649cdd 100644 --- a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs @@ -4,16 +4,15 @@ // //----------------------------------------------------------------------- +using System.IO; +using Sirenix.Serialization; +using UnityEditor; +using UnityEditor.Build; + #if UNITY_EDITOR && UNITY_5_6_OR_NEWER -namespace Sirenix.Serialization.Internal +namespace JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Scripts.Editor { - using Sirenix.Serialization; - using UnityEditor; - using UnityEditor.Build; - using System.IO; - using System; - #if UNITY_2018_1_OR_NEWER using UnityEditor.Build.Reporting; diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs.meta new file mode 100644 index 0000000..0646c87 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/BuildAOTAutomation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 434050653439dbe48a6881175340899b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/EnsureOdinInspectorDefine.cs b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/EnsureOdinInspectorDefine.cs index bb77c1c..153aa53 100644 --- a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/EnsureOdinInspectorDefine.cs +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/EnsureOdinInspectorDefine.cs @@ -4,14 +4,14 @@ // //----------------------------------------------------------------------- +using System; +using System.Linq; +using UnityEditor; + #if UNITY_EDITOR -namespace Sirenix.Utilities +namespace JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Scripts.Editor { - using System; - using System.Linq; - using UnityEditor; - /// /// Defines the ODIN_INSPECTOR symbol. /// diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/EnsureOdinInspectorDefine.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/EnsureOdinInspectorDefine.cs.meta new file mode 100644 index 0000000..0eef028 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/EnsureOdinInspectorDefine.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 847f8ad314b49f74b96be0cc24727405 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/FixBrokenUnityObjectWrapperDrawer.cs b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/FixBrokenUnityObjectWrapperDrawer.cs index cf30f7d..f1ed46b 100644 --- a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/FixBrokenUnityObjectWrapperDrawer.cs +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/FixBrokenUnityObjectWrapperDrawer.cs @@ -4,19 +4,19 @@ // //----------------------------------------------------------------------- +using System.Linq; +using Sirenix.OdinInspector; +using Sirenix.OdinInspector.Editor; +using Sirenix.Utilities; +using Sirenix.Utilities.Editor; +using UnityEditor; +using UnityEngine; + #if UNITY_EDITOR && UNITY_2018_3_OR_NEWER #pragma warning disable -namespace Sirenix.OdinInspector.Editor.Drawers +namespace JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Scripts.Editor { - using Sirenix.OdinInspector; - using Sirenix.OdinInspector.Editor; - using Sirenix.Utilities; - using Sirenix.Utilities.Editor; - using System.Linq; - using UnityEditor; - using UnityEngine; - [DrawerPriority(0.001, 0, 0)] public class FixBrokenUnityObjectWrapperDrawer : OdinValueDrawer, IDefinesGenericMenuItems where T : UnityEngine.Component diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/FixBrokenUnityObjectWrapperDrawer.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/FixBrokenUnityObjectWrapperDrawer.cs.meta new file mode 100644 index 0000000..a5d5c5c --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/FixBrokenUnityObjectWrapperDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d6175871d49eae2469bf275c047dae53 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Sirenix.OdinInspector.CompatibilityLayer.Editor.asmdef.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Sirenix.OdinInspector.CompatibilityLayer.Editor.asmdef.meta new file mode 100644 index 0000000..45202e1 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Sirenix.OdinInspector.CompatibilityLayer.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9af41c63eb85222418c0a5bca25b03ca +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/SyncListDrawer.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/SyncListDrawer.cs.meta new file mode 100644 index 0000000..179ea07 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/SyncListDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: febe3e58e12c20748a4f11d265a75670 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/SyncVarAttributeDrawer.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/SyncVarAttributeDrawer.cs.meta new file mode 100644 index 0000000..d4309bd --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/SyncVarAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91c689cbd49e25849b14379c7093f8b1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Vector2IntMinMaxAttributeDrawer.cs b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Vector2IntMinMaxAttributeDrawer.cs index 089f90d..c41b2a1 100644 --- a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Vector2IntMinMaxAttributeDrawer.cs +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Vector2IntMinMaxAttributeDrawer.cs @@ -4,19 +4,17 @@ // //----------------------------------------------------------------------- +using Sirenix.OdinInspector; +using Sirenix.OdinInspector.Editor; +using Sirenix.OdinInspector.Editor.ValueResolvers; +using Sirenix.Utilities.Editor; +using UnityEditor; +using UnityEngine; + #if UNITY_EDITOR && UNITY_2017_2_OR_NEWER -namespace Sirenix.OdinInspector.Editor.Drawers +namespace JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Scripts.Editor { - using Sirenix.OdinInspector; - using Sirenix.OdinInspector.Editor; - using Sirenix.OdinInspector.Editor.ValueResolvers; - using Sirenix.Utilities; - using Sirenix.Utilities.Editor; - using System.Reflection; - using UnityEditor; - using UnityEngine; - /// /// Draws Vector2Int properties marked with . /// diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Vector2IntMinMaxAttributeDrawer.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Vector2IntMinMaxAttributeDrawer.cs.meta new file mode 100644 index 0000000..615950b --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/Vector2IntMinMaxAttributeDrawer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c593f552026d354caa4e2d34ffca51b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntDrawers.cs b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntDrawers.cs index 795bf89..dba65ff 100644 --- a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntDrawers.cs +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntDrawers.cs @@ -4,14 +4,15 @@ // //----------------------------------------------------------------------- +using Sirenix.OdinInspector.Editor; +using Sirenix.Utilities.Editor; +using UnityEditor; +using UnityEngine; + #if UNITY_EDITOR && UNITY_2017_2_OR_NEWER -namespace Sirenix.OdinInspector.Editor.Drawers +namespace JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Scripts.Editor { - using Utilities.Editor; - using UnityEditor; - using UnityEngine; - /// /// Vector2Int proprety drawer. /// diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntDrawers.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntDrawers.cs.meta new file mode 100644 index 0000000..f8754de --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntDrawers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d584ef008aeadb34d8884461dac5dea0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntPropertyResolvers.cs b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntPropertyResolvers.cs index c62f2e5..4b7eb7c 100644 --- a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntPropertyResolvers.cs +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntPropertyResolvers.cs @@ -4,12 +4,13 @@ // //----------------------------------------------------------------------- +using Sirenix.OdinInspector.Editor; +using UnityEngine; + #if UNITY_EDITOR && UNITY_2017_2_OR_NEWER -namespace Sirenix.OdinInspector.Editor.Drawers +namespace JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Scripts.Editor { - using UnityEngine; - public sealed class Vector2IntResolver : BaseMemberPropertyResolver { protected override InspectorPropertyInfo[] GetPropertyInfos() diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntPropertyResolvers.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntPropertyResolvers.cs.meta new file mode 100644 index 0000000..dc7135d --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Editor/VectorIntPropertyResolvers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5b944ad010970b14396d8e873794ba7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs.meta new file mode 100644 index 0000000..90a189d --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/SerializedNetworkBehaviour.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2f2ade86751cc55478e743c3564ed6c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/Sirenix.OdinInspector.CompatibilityLayer.asmdef.meta b/Plugins/Sirenix/Odin Inspector/Scripts/Sirenix.OdinInspector.CompatibilityLayer.asmdef.meta new file mode 100644 index 0000000..8ddd481 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/Sirenix.OdinInspector.CompatibilityLayer.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: adbdf46b2cc43d94dabe0bb5cb1275c0 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/VectorIntFormatters.cs b/Plugins/Sirenix/Odin Inspector/Scripts/VectorIntFormatters.cs index 65c1036..669932d 100644 --- a/Plugins/Sirenix/Odin Inspector/Scripts/VectorIntFormatters.cs +++ b/Plugins/Sirenix/Odin Inspector/Scripts/VectorIntFormatters.cs @@ -1,4 +1,8 @@ -#if UNITY_2017_2_OR_NEWER +using JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Scripts; +using Sirenix.Serialization; +using UnityEngine; + +#if UNITY_2017_2_OR_NEWER //----------------------------------------------------------------------- // @@ -6,19 +10,17 @@ // //----------------------------------------------------------------------- -[assembly: Sirenix.Serialization.RegisterFormatter(typeof(Sirenix.Serialization.Vector2IntFormatter))] -[assembly: Sirenix.Serialization.RegisterFormatter(typeof(Sirenix.Serialization.Vector3IntFormatter))] -namespace Sirenix.Serialization +[assembly: Sirenix.Serialization.RegisterFormatter(typeof(Vector2IntFormatter))] +[assembly: Sirenix.Serialization.RegisterFormatter(typeof(Vector3IntFormatter))] +namespace JohnsonUtils.Plugins.Sirenix.Odin_Inspector.Scripts { - using UnityEngine; - /// /// Custom formatter for the type. /// /// public class Vector2IntFormatter : MinimalBaseFormatter { - private static readonly Serializer Serializer = Serialization.Serializer.Get(); + private static readonly Serializer Serializer = global::Sirenix.Serialization.Serializer.Get(); /// /// Reads into the specified value using the specified reader. @@ -49,7 +51,7 @@ namespace Sirenix.Serialization /// public class Vector3IntFormatter : MinimalBaseFormatter { - private static readonly Serializer Serializer = Serialization.Serializer.Get(); + private static readonly Serializer Serializer = global::Sirenix.Serialization.Serializer.Get(); /// /// Reads into the specified value using the specified reader. diff --git a/Plugins/Sirenix/Odin Inspector/Scripts/VectorIntFormatters.cs.meta b/Plugins/Sirenix/Odin Inspector/Scripts/VectorIntFormatters.cs.meta new file mode 100644 index 0000000..6483147 --- /dev/null +++ b/Plugins/Sirenix/Odin Inspector/Scripts/VectorIntFormatters.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4efa239b85b22f8478d21b6f8711ad36 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Sirenix/Readme.txt.meta b/Plugins/Sirenix/Readme.txt.meta new file mode 100644 index 0000000..37a526c --- /dev/null +++ b/Plugins/Sirenix/Readme.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f8c0fc5f9ef6a274f88dd255cc863422 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Resources/InputSystem.meta b/Resources/InputSystem.meta new file mode 100644 index 0000000..bfc1dfb --- /dev/null +++ b/Resources/InputSystem.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e5632faa9facba4a954c6aea9dd4df3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Resources/InputSystem/GamepadIcons_PS.asset b/Resources/InputSystem/GamepadIcons_PS.asset new file mode 100644 index 0000000..a53a39b --- /dev/null +++ b/Resources/InputSystem/GamepadIcons_PS.asset @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 05c8d9a76dc13a34db3c143d9f20b866, type: 3} + m_Name: GamepadIcons_PS + m_EditorClassIdentifier: + ButtonEast: {fileID: 0} + ButtonNorth: {fileID: 0} + ButtonSouth: {fileID: 0} + ButtonWest: {fileID: 0} + Dpad: {fileID: 0} + DpadUp: {fileID: 0} + DpadDown: {fileID: 0} + DpadLeft: {fileID: 0} + DpadRight: {fileID: 0} + LeftShoulder: {fileID: 0} + LeftStick: {fileID: 0} + LeftTrigger: {fileID: 0} + RightShoulder: {fileID: 0} + RightStick: {fileID: 0} + RightTrigger: {fileID: 0} + SelectButton: {fileID: 0} + StartButton: {fileID: 0} + LeftStickPress: {fileID: 0} + RightStickPress: {fileID: 0} diff --git a/Resources/InputSystem/GamepadIcons_PS.asset.meta b/Resources/InputSystem/GamepadIcons_PS.asset.meta new file mode 100644 index 0000000..2658deb --- /dev/null +++ b/Resources/InputSystem/GamepadIcons_PS.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 28cf59ababaab2c4aa188524d1763173 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Resources/InputSystem/GamepadIcons_Xbox.asset b/Resources/InputSystem/GamepadIcons_Xbox.asset new file mode 100644 index 0000000..0aeb133 --- /dev/null +++ b/Resources/InputSystem/GamepadIcons_Xbox.asset @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 05c8d9a76dc13a34db3c143d9f20b866, type: 3} + m_Name: GamepadIcons_Xbox + m_EditorClassIdentifier: + ButtonEast: {fileID: 0} + ButtonNorth: {fileID: 0} + ButtonSouth: {fileID: 0} + ButtonWest: {fileID: 0} + Dpad: {fileID: 0} + DpadUp: {fileID: 0} + DpadDown: {fileID: 0} + DpadLeft: {fileID: 0} + DpadRight: {fileID: 0} + LeftShoulder: {fileID: 0} + LeftStick: {fileID: 0} + LeftTrigger: {fileID: 0} + RightShoulder: {fileID: 0} + RightStick: {fileID: 0} + RightTrigger: {fileID: 0} + SelectButton: {fileID: 0} + StartButton: {fileID: 0} + LeftStickPress: {fileID: 0} + RightStickPress: {fileID: 0} diff --git a/Resources/InputSystem/GamepadIcons_Xbox.asset.meta b/Resources/InputSystem/GamepadIcons_Xbox.asset.meta new file mode 100644 index 0000000..19444f8 --- /dev/null +++ b/Resources/InputSystem/GamepadIcons_Xbox.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 74a7b5c704521b545842483baa8d84d1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Resources/InputSystem/MouseKeyboardIcons.asset b/Resources/InputSystem/MouseKeyboardIcons.asset new file mode 100644 index 0000000..98c4fe8 --- /dev/null +++ b/Resources/InputSystem/MouseKeyboardIcons.asset @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 230adb9d1f61b4342af8190654725fa7, type: 3} + m_Name: MouseKeyboardIcons + m_EditorClassIdentifier: + Zero: {fileID: 0} + One: {fileID: 0} + Two: {fileID: 0} + Three: {fileID: 0} + Four: {fileID: 0} + Five: {fileID: 0} + Six: {fileID: 0} + Seven: {fileID: 0} + Eight: {fileID: 0} + Nine: {fileID: 0} + Alt: {fileID: 0} + ArrowDown: {fileID: 0} + ArrowLeft: {fileID: 0} + ArrowRight: {fileID: 0} + ArrowUp: {fileID: 0} + Asterisk: {fileID: 0} + Backspace: {fileID: 0} + Ctrl: {fileID: 0} + Delete: {fileID: 0} + End: {fileID: 0} + Enter: {fileID: 0} + Escape: {fileID: 0} + F1: {fileID: 0} + F2: {fileID: 0} + F3: {fileID: 0} + F4: {fileID: 0} + F5: {fileID: 0} + F6: {fileID: 0} + F7: {fileID: 0} + F8: {fileID: 0} + F9: {fileID: 0} + F10: {fileID: 0} + F11: {fileID: 0} + F12: {fileID: 0} + Home: {fileID: 0} + LetterA: {fileID: 0} + LetterB: {fileID: 0} + LetterC: {fileID: 0} + LetterD: {fileID: 0} + LetterE: {fileID: 0} + LetterF: {fileID: 0} + LetterG: {fileID: 0} + LetterH: {fileID: 0} + LetterI: {fileID: 0} + LetterJ: {fileID: 0} + LetterK: {fileID: 0} + LetterL: {fileID: 0} + LetterM: {fileID: 0} + LetterN: {fileID: 0} + LetterO: {fileID: 0} + LetterP: {fileID: 0} + LetterQ: {fileID: 0} + LetterR: {fileID: 0} + LetterS: {fileID: 0} + LetterT: {fileID: 0} + LetterU: {fileID: 0} + LetterV: {fileID: 0} + LetterW: {fileID: 0} + LetterX: {fileID: 0} + LetterY: {fileID: 0} + LetterZ: {fileID: 0} + MarkLeft: {fileID: 0} + MarkRight: {fileID: 0} + Minus: {fileID: 0} + Plus: {fileID: 0} + MouseLeft: {fileID: 0} + MouseMiddle: {fileID: 0} + MouseRight: {fileID: 0} + MouseNone: {fileID: 0} + PageDown: {fileID: 0} + PageUp: {fileID: 0} + QuestionMark: {fileID: 0} + Quote: {fileID: 0} + Semicolon: {fileID: 0} + Shift: {fileID: 0} + Slash: {fileID: 0} + Space: {fileID: 0} + Tab: {fileID: 0} + Tilda: {fileID: 0} diff --git a/Resources/InputSystem/MouseKeyboardIcons.asset.meta b/Resources/InputSystem/MouseKeyboardIcons.asset.meta new file mode 100644 index 0000000..b4c0792 --- /dev/null +++ b/Resources/InputSystem/MouseKeyboardIcons.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d8e144260ae21d2419c62f1003ce3610 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: