From ab8544089d11de78af6b921e2724b5908fd57d38 Mon Sep 17 00:00:00 2001 From: Seraph Date: Thu, 28 Apr 2022 18:06:56 +0300 Subject: [PATCH] =?UTF-8?q?-=20=D0=94=D0=BE=D1=80=D0=BE=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BF=D1=80=D0=BE=D1=82=D0=BE=D1=82=D0=B8=D0=BF?= =?UTF-8?q?=D0=B0=20-=20=D0=86=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B8:=20=D0=9F=D1=83=D0=BB=D0=BB=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D1=82=D1=96=D0=BA=D0=BB=D1=96=D0=B2,=20=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D0=BF=D1=82=D0=B5=D1=80=D0=B8=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B0=D1=81=D0=BF=D0=B5=D0=BA=D1=82=D1=96=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assembly-CSharp.csproj | 6 - Assets/Prototype/Core/Core.dll | Bin 37376 -> 41984 bytes Assets/Prototype/Core/Core.dll.meta | 59 +- Assets/Prototype/Core/CoreEditor.dll | Bin 22016 -> 25600 bytes Assets/Prototype/Core/CoreEditor.dll.meta | 4 +- .../Prototype/Custumization/Scenes/Test.unity | 4888 ++++++++++++++++- Assets_DLL/Core/Core.csproj | 4 + Assets_DLL/Core/CoreInitializer.cs | 2 +- Assets_DLL/Core/IAP/PurchaseManager.cs | 10 +- .../Core/Localization/LocalizationManager.cs | 34 +- .../Core/SceneManagement/SceneLoader.cs | 34 +- .../CameraVerticalStretchingAdapter.cs | 44 + .../AspectAdapters/CanvasAspectAdapter.cs | 41 + .../Core/Tools/Pool/Particles/Particle.cs | 42 + .../Tools/Pool/Particles/ParticleSpawner.cs | 19 + .../Tools/Pool/Particles/ParticlesPool.cs | 55 + .../Core.csproj.AssemblyReference.cache | Bin 6265 -> 7418 bytes .../Core.csproj.CoreCompileInputs.cache | 2 +- .../Core/obj/Debug/netstandard2.0/Core.dll | Bin 37376 -> 41984 bytes Assets_DLL/CoreEditor/CoreGUILayout.cs | 8 +- .../CoreEditor/IAP/PurchaseButtonEditor.cs | 12 +- .../Localization/TextLocalizatorEditor.cs | 8 +- .../SceneManagement/LoadSceneButtonEditor.cs | 2 +- .../Settings/CoreSettingsDataEditor.cs | 2 +- .../CoreEditor/Settings/CoreSettingsWindow.cs | 23 +- .../CameraVerticalStretchingAdapterEditor.cs | 36 + .../CanvasAspectAdapterEditor.cs | 27 + Assets_DLL/CoreEditor/Tools/KeystoreLoader.cs | 2 +- .../Pool/Particles/ParticleSpawnerEditor.cs | 51 + .../Pool/Particles/ParticlesPoolEditor.cs | 64 + .../CoreEditor/Tools/UnusedAssetsMarker.cs | 2 +- .../CoreEditor.csproj.AssemblyReference.cache | Bin 993 -> 1083 bytes .../CoreEditor.csproj.CoreCompileInputs.cache | 2 +- .../obj/Debug/netstandard2.0/CoreEditor.dll | Bin 22016 -> 25600 bytes ProjectSettings/ProjectSettings.asset | 8 +- 35 files changed, 5435 insertions(+), 56 deletions(-) create mode 100644 Assets_DLL/Core/Tools/AspectAdapters/CameraVerticalStretchingAdapter.cs create mode 100644 Assets_DLL/Core/Tools/AspectAdapters/CanvasAspectAdapter.cs create mode 100644 Assets_DLL/Core/Tools/Pool/Particles/Particle.cs create mode 100644 Assets_DLL/Core/Tools/Pool/Particles/ParticleSpawner.cs create mode 100644 Assets_DLL/Core/Tools/Pool/Particles/ParticlesPool.cs create mode 100644 Assets_DLL/CoreEditor/Tools/AspectHelpers/CameraVerticalStretchingAdapterEditor.cs create mode 100644 Assets_DLL/CoreEditor/Tools/AspectHelpers/CanvasAspectAdapterEditor.cs create mode 100644 Assets_DLL/CoreEditor/Tools/Pool/Particles/ParticleSpawnerEditor.cs create mode 100644 Assets_DLL/CoreEditor/Tools/Pool/Particles/ParticlesPoolEditor.cs diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj index 899389e..9d3fe58 100644 --- a/Assembly-CSharp.csproj +++ b/Assembly-CSharp.csproj @@ -248,12 +248,6 @@ C:\Program Files\Unity\Hub\Editor\2019.4.28f1\Editor\Data\Managed\UnityEditor.dll - - Assets\Prototype\Core\Core.dll - - - Assets\Prototype\Core\CoreEditor.dll - Assets\Prototype\DOTween\DOTween.dll diff --git a/Assets/Prototype/Core/Core.dll b/Assets/Prototype/Core/Core.dll index 9b489daa3eaa44def69ab5e216170e6a6184b09f..b8e9e6b37e8879c62bc1c550cd02d9dda075418a 100644 GIT binary patch literal 41984 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

E)iz2@#d+jJKD#b${;N%96P16G}s~Q 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 NH*Nms^Z%X&{yz?O;m!a6 literal 37376 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 C@`vpJ literal 22016 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 + + + + diff --git a/Assets_DLL/Core/CoreInitializer.cs b/Assets_DLL/Core/CoreInitializer.cs index 9ace792..fa64592 100644 --- a/Assets_DLL/Core/CoreInitializer.cs +++ b/Assets_DLL/Core/CoreInitializer.cs @@ -9,7 +9,7 @@ namespace Core { internal sealed class CoreInitializer { - [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)] + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)] private static void Init() { PurchaseManager.Init(); diff --git a/Assets_DLL/Core/IAP/PurchaseManager.cs b/Assets_DLL/Core/IAP/PurchaseManager.cs index 1ffd82b..de58aec 100644 --- a/Assets_DLL/Core/IAP/PurchaseManager.cs +++ b/Assets_DLL/Core/IAP/PurchaseManager.cs @@ -6,7 +6,7 @@ namespace Core.IAP { public sealed class PurchaseManager : MonoBehaviour { - private static PurchaseManager _instance = null; + private static PurchaseManager _current = null; private static PurchaseManagerBase _purchaseManager = null; public static event Action OnPurchaseSuccess = null; @@ -14,10 +14,10 @@ namespace Core.IAP internal static void Init() { - GameObject gameObject = new GameObject("[SceneLoader]"); - _instance = gameObject.AddComponent(); + GameObject gameObject = new GameObject("[PurchaseManager]"); + _current = gameObject.AddComponent(); - DontDestroyOnLoad(_instance); + DontDestroyOnLoad(_current); _purchaseManager = new PurchaseManagerBase(); _purchaseManager.InitializePurchasing(); @@ -35,7 +35,7 @@ namespace Core.IAP public static void Buy(string productId) { if (Application.isEditor) - _instance.TryPurchaseInEditor(productId); + _current.TryPurchaseInEditor(productId); else _purchaseManager.BuyProduct(productId); } diff --git a/Assets_DLL/Core/Localization/LocalizationManager.cs b/Assets_DLL/Core/Localization/LocalizationManager.cs index ca61b56..1f4b88c 100644 --- a/Assets_DLL/Core/Localization/LocalizationManager.cs +++ b/Assets_DLL/Core/Localization/LocalizationManager.cs @@ -34,20 +34,42 @@ namespace Core.Localization if (CoreSettings.data.localizationTable != null) { - if (_table == null) - { - _table = new CSVDataTable(); - _table.ReadFromTextAsset(CoreSettings.data.localizationTable); - } + _table = new CSVDataTable(); + _table.ReadFromTextAsset(CoreSettings.data.localizationTable); for (int i = 0; i < _table.RowCount; i++) { List senteces = _table.GetRow(i); keys.Add(senteces[0]); } + + return keys; } + else + throw new ArgumentNullException("CSV is null"); + } + } - return keys; + public static IReadOnlyList Languages + { + get + { + List languages = new List(); + + if (CoreSettings.data.localizationTable != null) + { + _table = new CSVDataTable(); + _table.ReadFromTextAsset(CoreSettings.data.localizationTable); + + IReadOnlyList languagesString = _table.Header; + + for (int i = 1; i < languagesString.Count; i++) + languages.Add((SystemLanguage)Enum.Parse(typeof(SystemLanguage), languagesString[i])); + + return languages; + } + else + throw new ArgumentNullException("CSV is null"); } } diff --git a/Assets_DLL/Core/SceneManagement/SceneLoader.cs b/Assets_DLL/Core/SceneManagement/SceneLoader.cs index 36f2b54..0993297 100644 --- a/Assets_DLL/Core/SceneManagement/SceneLoader.cs +++ b/Assets_DLL/Core/SceneManagement/SceneLoader.cs @@ -10,7 +10,7 @@ namespace Core.SceneManagement { public sealed class SceneLoader : MonoBehaviour { - private static SceneLoader _instance = null; + private static SceneLoader _current = null; public static event Action OnLoadedStart; public static event Action OnLoadedComplete; @@ -26,18 +26,28 @@ namespace Core.SceneManagement internal static void Init() { GameObject gameObject = new GameObject("[SceneLoader]"); - _instance = gameObject.AddComponent(); + _current = gameObject.AddComponent(); - DontDestroyOnLoad(_instance); + DontDestroyOnLoad(_current); - if (SceneManager.GetActiveScene().name == "Init") + _currentScene = SceneManager.GetActiveScene().name; + + if (_currentScene == "Init") { - _currentLoadingScreen = Instantiate(CoreSettings.data.mainLoadingScreen, _instance.transform); + _currentLoadingScreen = Instantiate(CoreSettings.data.mainLoadingScreen, _current.transform); _currentLoadingScreen.Fade.alpha = 0f; _currentLoadingScreen.MainPanel.SetActive(false); LoadScene(CoreSettings.data.firstScene); } + else + { + if (CoreSettings.data.needBanner) + { + if (CoreSettings.data.bannerSettings.Where(s => s.scene == CurrentScene).Count() > 0) + AdsManager.ShowBanner(CoreSettings.data.bannerSettings.Where(s => s.scene == CurrentScene).FirstOrDefault().positions); + } + } } public static void LoadScene(string scene) @@ -47,7 +57,7 @@ namespace Core.SceneManagement OnLoadedStart?.Invoke(scene); - _instance.StartCoroutine(StartLoad(scene)); + _current.StartCoroutine(StartLoad(scene)); } private static IEnumerator StartLoad(string scene) @@ -60,15 +70,15 @@ namespace Core.SceneManagement if (_currentLoadingScreen == null) { if (CoreSettings.data.loadingScreenForRandom.Count != 0) - _currentLoadingScreen = Instantiate(CoreSettings.data.loadingScreenForRandom[UnityEngine.Random.Range(0, CoreSettings.data.loadingScreenForRandom.Count)], _instance.transform); + _currentLoadingScreen = Instantiate(CoreSettings.data.loadingScreenForRandom[UnityEngine.Random.Range(0, CoreSettings.data.loadingScreenForRandom.Count)], _current.transform); else - _currentLoadingScreen = Instantiate(CoreSettings.data.mainLoadingScreen, _instance.transform); + _currentLoadingScreen = Instantiate(CoreSettings.data.mainLoadingScreen, _current.transform); _currentLoadingScreen.Fade.alpha = 0f; _currentLoadingScreen.MainPanel.SetActive(false); } - yield return _instance.StartCoroutine(FadeLoadingScreen(1, CoreSettings.data.fadeDuration)); + yield return _current.StartCoroutine(FadeLoadingScreen(1, CoreSettings.data.fadeDuration)); string fromScene = _currentScene; @@ -87,7 +97,7 @@ namespace Core.SceneManagement _currentLoadingScreen.MainPanel.SetActive(true); - yield return _instance.StartCoroutine(FadeLoadingScreen(0, CoreSettings.data.fadeDuration)); + yield return _current.StartCoroutine(FadeLoadingScreen(0, CoreSettings.data.fadeDuration)); OnFadeScreenVisibleChanged?.Invoke(true); @@ -106,11 +116,11 @@ namespace Core.SceneManagement yield return null; } - yield return _instance.StartCoroutine(FadeLoadingScreen(1, CoreSettings.data.fadeDuration)); + yield return _current.StartCoroutine(FadeLoadingScreen(1, CoreSettings.data.fadeDuration)); _currentLoadingScreen.MainPanel.SetActive(false); - yield return _instance.StartCoroutine(FadeLoadingScreen(0, CoreSettings.data.fadeDuration)); + yield return _current.StartCoroutine(FadeLoadingScreen(0, CoreSettings.data.fadeDuration)); OnFadeScreenVisibleChanged?.Invoke(false); diff --git a/Assets_DLL/Core/Tools/AspectAdapters/CameraVerticalStretchingAdapter.cs b/Assets_DLL/Core/Tools/AspectAdapters/CameraVerticalStretchingAdapter.cs new file mode 100644 index 0000000..52bed19 --- /dev/null +++ b/Assets_DLL/Core/Tools/AspectAdapters/CameraVerticalStretchingAdapter.cs @@ -0,0 +1,44 @@ +using UnityEngine; + +namespace Core.Tools.AspectAdapters +{ + [ExecuteInEditMode] + [RequireComponent(typeof(Camera))] + public class CameraVerticalStretchingAdapter : MonoBehaviour + { + [SerializeField] private float _standartCameraSize = 11.75f; + [SerializeField] private float _standartCameraAngle = 60f; + + [SerializeField] private Camera _camera = null; + + private void Reset() => + _camera = GetComponent(); + + private void Awake() => + SetCameraSize(); + + private void Update() + { + if (Application.isEditor) + SetCameraSize(); + } + + private void SetCameraSize() + { + if (_camera.orthographic) + { + float newSize = _standartCameraSize / _camera.aspect; + + if (_camera.orthographicSize != newSize) + _camera.orthographicSize = newSize; + } + else + { + float newAngle = _standartCameraAngle / _camera.aspect; + + if (_camera.fieldOfView != newAngle) + _camera.fieldOfView = newAngle; + } + } + } +} \ No newline at end of file diff --git a/Assets_DLL/Core/Tools/AspectAdapters/CanvasAspectAdapter.cs b/Assets_DLL/Core/Tools/AspectAdapters/CanvasAspectAdapter.cs new file mode 100644 index 0000000..19167e5 --- /dev/null +++ b/Assets_DLL/Core/Tools/AspectAdapters/CanvasAspectAdapter.cs @@ -0,0 +1,41 @@ +using UnityEngine; +using UnityEngine.UI; +using System; + +namespace Core.Tools.AspectAdapters +{ + [ExecuteInEditMode] + [RequireComponent(typeof(CanvasScaler))] + public sealed class CanvasAspectAdapter : MonoBehaviour + { + [SerializeField] private CanvasScaler _canvasScaler = null; + + private void Reset() => + _canvasScaler = GetComponent(); + + private void Awake() + { + _canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; + _canvasScaler.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight; + + SetCanvasAspect(); + } + + private void Update() + { + if (Application.isEditor) + SetCanvasAspect(); + } + + private void SetCanvasAspect() + { + if (Camera.main == null) + throw new ArgumentNullException("MainCamera not found"); + + if (Camera.main.aspect < (_canvasScaler.referenceResolution.x / _canvasScaler.referenceResolution.y)) + _canvasScaler.matchWidthOrHeight = 0f; + else + _canvasScaler.matchWidthOrHeight = 1f; + } + } +} \ No newline at end of file diff --git a/Assets_DLL/Core/Tools/Pool/Particles/Particle.cs b/Assets_DLL/Core/Tools/Pool/Particles/Particle.cs new file mode 100644 index 0000000..ce3e090 --- /dev/null +++ b/Assets_DLL/Core/Tools/Pool/Particles/Particle.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace Core.Tools.Pool.Particles +{ + [Serializable] + public sealed class Particle + { + [SerializeField] private string _id = "particle"; + [SerializeField] private ParticleSystem _prefab = null; + [SerializeField] private int _startCount = 1; + + private List _pool = new List(); + + private Transform _summonParent = null; + + public string ID => _id; + + public void Init(Transform summonParent) + { + _summonParent = summonParent; + + for (int i = 0; i < _startCount; i++) + _pool.Add(GameObject.Instantiate(_prefab, _summonParent)); + } + + public ParticleSystem GetParticleFromPool() + { + ParticleSystem particle = _pool.Where(p => p != null && !p.isPlaying).FirstOrDefault(); + + if (particle == null) + { + particle = GameObject.Instantiate(_prefab, _summonParent); + _pool.Add(particle); + } + + return particle; + } + } +} \ No newline at end of file diff --git a/Assets_DLL/Core/Tools/Pool/Particles/ParticleSpawner.cs b/Assets_DLL/Core/Tools/Pool/Particles/ParticleSpawner.cs new file mode 100644 index 0000000..c29b4d1 --- /dev/null +++ b/Assets_DLL/Core/Tools/Pool/Particles/ParticleSpawner.cs @@ -0,0 +1,19 @@ +using UnityEngine; + +namespace Core.Tools.Pool.Particles +{ + public sealed class ParticleSpawner : MonoBehaviour + { + [SerializeField] private string _particleName = ""; + [SerializeField] private bool _spawnOnAwake = true; + + private void Start() + { + if (_spawnOnAwake) + Spawn(); + } + + public void Spawn() => + ParticlesPool.PlayParticle(_particleName, transform.position, transform.rotation, Vector3.one, transform); + } +} \ No newline at end of file diff --git a/Assets_DLL/Core/Tools/Pool/Particles/ParticlesPool.cs b/Assets_DLL/Core/Tools/Pool/Particles/ParticlesPool.cs new file mode 100644 index 0000000..a45e9d2 --- /dev/null +++ b/Assets_DLL/Core/Tools/Pool/Particles/ParticlesPool.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + +namespace Core.Tools.Pool.Particles +{ + [ExecuteInEditMode] + public sealed class ParticlesPool : MonoBehaviour + { + private static ParticlesPool _current = null; + + public static string[] GetParticlesName() + { + if (_current == null) + return new string[0]; + + return _current._particles.Select(p => p.ID).ToArray(); + } + + public static void PlayParticle(string id, Vector3 position, Quaternion rotation, Vector3 scale, Transform parent) + { + if (_current == null) + throw new ArgumentNullException("ParticlesPool not found on scene"); + + Particle particle = _current._particles.Where(p => p.ID == id).FirstOrDefault(); + + if (particle == null) + throw new KeyNotFoundException($"particle with id={id} not found!!!"); + + ParticleSystem particleSystem = particle.GetParticleFromPool(); + + particleSystem.transform.SetParent(parent); + particleSystem.transform.position = position; + particleSystem.transform.rotation = rotation; + particleSystem.transform.localScale = scale; + + particleSystem.Play(); + } + + [SerializeField] private Particle[] _particles = new Particle[0]; + + private void OnEnable() => + _current = this; + + private void Awake() + { + if (!Application.isPlaying) + return; + + for (int i = 0; i < _particles.Length; i++) + _particles[i].Init(transform); + } + } +} \ No newline at end of file diff --git a/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.AssemblyReference.cache b/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.AssemblyReference.cache index 0a69fdb64c6242df1e4c718037946562e4671401..0f96e465727337dbe069371ea400b41698b2891b 100644 GIT binary patch delta 461 zcmexq@XM0d*C{C2nURs3fq{WBbaDY>&}4aj4mQ76F2-t_n|1k*F!7uY`3+>>;$UQC zl$|UnA--8eD3y(g(HE%LT{zTJFC{03krAkUMXH(+NZn*RiBD>JVsa%&l7|~2nUYzOUo@GK*^@B<7!KAGJ)}4ax*tIN z@4%%6^8dzVdW>xE-+KZBZ?Z41?B?%`yBXP>Iqm@!O%7yL-F%lhkCCm10UXeQtZx}P z+P~j{7!c2Axw)R*pOKCA<3XtI$+co~oB26^GO``LbqEwSeB72yY|M*5rf>G;tz!fL Dw6K#m delta 209 zcmexm`O|>c*C{C2nURr;fq{WBVDbef>&fMOQXEx34NdYiZgEV`m(ZG=&n&e0DxV%B z+isbwK+(xH(z25cB;-KilLN#PHg6NqW@J0=s0)&75LVsHBb3L;R^faA$lu%`{Faep z)?JVs(6l}oOR#ANL~R+_Y;L=oLQLDNATG|tX29eDv}9tlT67+yyGFW>k%=)B q=&YcL@f>Vt)h_}?H|8E;;yK<_15|vAgOQO@c5)!6_~sDiR5k#(Ye4q^ diff --git a/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.CoreCompileInputs.cache b/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.CoreCompileInputs.cache index f55547f..6ebcfa9 100644 --- a/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.CoreCompileInputs.cache +++ b/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -0ba7e6792316ae7e255beef2c30122219f6f0082 +d1c5eb68f3ce5b18f962b2e20f3968ce352e152d diff --git a/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.dll b/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.dll index 9b489daa3eaa44def69ab5e216170e6a6184b09f..b8e9e6b37e8879c62bc1c550cd02d9dda075418a 100644 GIT binary patch literal 41984 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

E)iz2@#d+jJKD#b${;N%96P16G}s~Q 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 NH*Nms^Z%X&{yz?O;m!a6 literal 37376 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 { "None" }; + } + currentIndex = EditorGUILayout.Popup(text, currentIndex, scenes.ToArray()); return scenes[currentIndex]; diff --git a/Assets_DLL/CoreEditor/IAP/PurchaseButtonEditor.cs b/Assets_DLL/CoreEditor/IAP/PurchaseButtonEditor.cs index 4e5a6f7..7bba318 100644 --- a/Assets_DLL/CoreEditor/IAP/PurchaseButtonEditor.cs +++ b/Assets_DLL/CoreEditor/IAP/PurchaseButtonEditor.cs @@ -6,7 +6,7 @@ using UnityEditor; namespace CoreEditor.Localization { [CustomEditor(typeof(PurchaseButton))] - public sealed class PurchaseButtonEditor : Editor + internal sealed class PurchaseButtonEditor : Editor { public override void OnInspectorGUI() { @@ -23,11 +23,17 @@ namespace CoreEditor.Localization int currentIndex = products.IndexOf(productId.stringValue); - if (currentIndex < 0 || currentIndex >= products.Count) + if (currentIndex < 0 && !string.IsNullOrWhiteSpace(productId.stringValue)) + { + products.Insert(0, productId.stringValue); currentIndex = 0; + } if (products.Count == 0) + { + currentIndex = 0; products = new List { "None" }; + } currentIndex = EditorGUILayout.Popup("Product ID:", currentIndex, products.ToArray()); @@ -41,6 +47,8 @@ namespace CoreEditor.Localization EditorGUILayout.PropertyField(serializedObject.FindProperty("_onFailed")); + EditorGUILayout.Space(5); + serializedObject.ApplyModifiedProperties(); } } diff --git a/Assets_DLL/CoreEditor/Localization/TextLocalizatorEditor.cs b/Assets_DLL/CoreEditor/Localization/TextLocalizatorEditor.cs index 18ee6d6..00a48a6 100644 --- a/Assets_DLL/CoreEditor/Localization/TextLocalizatorEditor.cs +++ b/Assets_DLL/CoreEditor/Localization/TextLocalizatorEditor.cs @@ -20,11 +20,17 @@ namespace CoreEditor.Localization int currentIndex = keys.IndexOf(key.stringValue); - if (currentIndex < 0 || currentIndex >= keys.Count) + if (currentIndex < 0 && !string.IsNullOrWhiteSpace(key.stringValue)) + { + keys.Insert(0, key.stringValue); currentIndex = 0; + } if (keys.Count == 0) + { + currentIndex = 0; keys = new List { "None" }; + } currentIndex = EditorGUILayout.Popup("Key:", currentIndex, keys.ToArray()); diff --git a/Assets_DLL/CoreEditor/SceneManagement/LoadSceneButtonEditor.cs b/Assets_DLL/CoreEditor/SceneManagement/LoadSceneButtonEditor.cs index b7fea4e..6cbf08d 100644 --- a/Assets_DLL/CoreEditor/SceneManagement/LoadSceneButtonEditor.cs +++ b/Assets_DLL/CoreEditor/SceneManagement/LoadSceneButtonEditor.cs @@ -6,7 +6,7 @@ using UnityEditor; namespace CoreEditor.SceneManagement { [CustomEditor(typeof(LoadSceneButton))] - public sealed class LoadSceneButtonEditor : Editor + internal sealed class LoadSceneButtonEditor : Editor { public override void OnInspectorGUI() { diff --git a/Assets_DLL/CoreEditor/Settings/CoreSettingsDataEditor.cs b/Assets_DLL/CoreEditor/Settings/CoreSettingsDataEditor.cs index 3822c10..44ba70a 100644 --- a/Assets_DLL/CoreEditor/Settings/CoreSettingsDataEditor.cs +++ b/Assets_DLL/CoreEditor/Settings/CoreSettingsDataEditor.cs @@ -5,7 +5,7 @@ using UnityEngine; namespace CoreEditor.Settings { [CustomEditor(typeof(CoreSettingsData))] - public sealed class CoreSettingsDataEditor : Editor + internal sealed class CoreSettingsDataEditor : Editor { public override void OnInspectorGUI() { diff --git a/Assets_DLL/CoreEditor/Settings/CoreSettingsWindow.cs b/Assets_DLL/CoreEditor/Settings/CoreSettingsWindow.cs index 3796640..8c52a8d 100644 --- a/Assets_DLL/CoreEditor/Settings/CoreSettingsWindow.cs +++ b/Assets_DLL/CoreEditor/Settings/CoreSettingsWindow.cs @@ -5,10 +5,12 @@ using System.IO; using Core.Settings; using Core.SceneManagement; using Core.Ads; +using System.Collections.Generic; +using Core.Localization; namespace CoreEditor.Settings { - public sealed class CoreSettingsWindow : EditorWindow + internal sealed class CoreSettingsWindow : EditorWindow { private static CoreSettingsData _coreSettings; @@ -396,6 +398,25 @@ namespace CoreEditor.Settings if (_propertiesList[5] == true) { + GUILayout.Space(3); + + if (GUILayout.Button("Load available languages from CSV")) + { + if (_coreSettings.localizationTable != null) + { + IReadOnlyList languageInCSV = LocalizationManager.Languages; + + _coreSettings.availableLanguages = new List(); + + foreach (SystemLanguage language in languageInCSV) + _coreSettings.availableLanguages.Add(language); + } + else + throw new ArgumentNullException("CSV is null"); + } + + GUILayout.Space(5); + EditorGUILayout.BeginVertical("BOX"); GUILayout.Space(5); diff --git a/Assets_DLL/CoreEditor/Tools/AspectHelpers/CameraVerticalStretchingAdapterEditor.cs b/Assets_DLL/CoreEditor/Tools/AspectHelpers/CameraVerticalStretchingAdapterEditor.cs new file mode 100644 index 0000000..2873ab5 --- /dev/null +++ b/Assets_DLL/CoreEditor/Tools/AspectHelpers/CameraVerticalStretchingAdapterEditor.cs @@ -0,0 +1,36 @@ +using Core.Tools.AspectAdapters; +using UnityEditor; +using UnityEngine; + +namespace CoreEditor.Tools.AspectAdapters +{ + [CustomEditor(typeof(CameraVerticalStretchingAdapter))] + internal sealed class CameraVerticalStretchingAdapterEditor : Editor + { + public override void OnInspectorGUI() + { + CameraVerticalStretchingAdapter script = (CameraVerticalStretchingAdapter)target; + + Camera camera = (Camera)serializedObject.FindProperty("_camera").objectReferenceValue; + + serializedObject.Update(); + + EditorGUILayout.Space(5); + + if (camera.orthographic) + { + GUILayout.Label("Camera size for screen 1x1", EditorStyles.helpBox); + EditorGUILayout.PropertyField(serializedObject.FindProperty("_standartCameraSize")); + } + else + { + GUILayout.Label("Camera angle for screen 1x1", EditorStyles.helpBox); + EditorGUILayout.PropertyField(serializedObject.FindProperty("_standartCameraAngle")); + } + + EditorGUILayout.Space(5); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets_DLL/CoreEditor/Tools/AspectHelpers/CanvasAspectAdapterEditor.cs b/Assets_DLL/CoreEditor/Tools/AspectHelpers/CanvasAspectAdapterEditor.cs new file mode 100644 index 0000000..2e9bd44 --- /dev/null +++ b/Assets_DLL/CoreEditor/Tools/AspectHelpers/CanvasAspectAdapterEditor.cs @@ -0,0 +1,27 @@ +using Core.Tools.AspectAdapters; +using UnityEditor; +using UnityEngine; +using UnityEngine.UI; + +namespace CoreEditor.Tools.AspectAdapters +{ + [CustomEditor(typeof(CanvasAspectAdapter))] + internal sealed class CanvasAspectAdapterEditor : Editor + { + public override void OnInspectorGUI() + { + CanvasAspectAdapter script = (CanvasAspectAdapter)target; + + CanvasScaler canvasScaler = (CanvasScaler)serializedObject.FindProperty("_canvasScaler").objectReferenceValue; + + canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; + canvasScaler.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight; + + EditorGUILayout.Space(5); + + GUILayout.Label("Made UI for 16:9 screen", EditorStyles.helpBox); + + EditorGUILayout.Space(5); + } + } +} diff --git a/Assets_DLL/CoreEditor/Tools/KeystoreLoader.cs b/Assets_DLL/CoreEditor/Tools/KeystoreLoader.cs index 119058e..289f994 100644 --- a/Assets_DLL/CoreEditor/Tools/KeystoreLoader.cs +++ b/Assets_DLL/CoreEditor/Tools/KeystoreLoader.cs @@ -5,7 +5,7 @@ using UnityEngine; namespace Core.Tools { [InitializeOnLoad] - public sealed class KeystoreLoader + internal sealed class KeystoreLoader { static KeystoreLoader() { diff --git a/Assets_DLL/CoreEditor/Tools/Pool/Particles/ParticleSpawnerEditor.cs b/Assets_DLL/CoreEditor/Tools/Pool/Particles/ParticleSpawnerEditor.cs new file mode 100644 index 0000000..8ed650d --- /dev/null +++ b/Assets_DLL/CoreEditor/Tools/Pool/Particles/ParticleSpawnerEditor.cs @@ -0,0 +1,51 @@ +using Core.Localization; +using Core.Tools.Pool.Particles; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; + +namespace CoreEditor.Localization +{ + [CustomEditor(typeof(ParticleSpawner))] + public class ParticleSpawnerEditor : Editor + { + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.Space(5); + + SerializedProperty particleName = serializedObject.FindProperty("_particleName"); + + List particles = ParticlesPool.GetParticlesName().ToList(); + + int currentIndex = particles.IndexOf(particleName.stringValue); + + if (currentIndex < 0 && !string.IsNullOrWhiteSpace(particleName.stringValue)) + { + particles.Insert(0, particleName.stringValue); + currentIndex = 0; + } + + if (particles.Count == 0) + { + currentIndex = 0; + particles = new List { "None" }; + } + + currentIndex = EditorGUILayout.Popup("ParticleID:", currentIndex, particles.ToArray()); + + particleName.stringValue = particles[currentIndex]; + + EditorGUILayout.Space(5); + + SerializedProperty spawnOnAwake = serializedObject.FindProperty("_spawnOnAwake"); + + spawnOnAwake.boolValue = EditorGUILayout.Toggle("Spawn on Awake", spawnOnAwake.boolValue); + + EditorGUILayout.Space(5); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets_DLL/CoreEditor/Tools/Pool/Particles/ParticlesPoolEditor.cs b/Assets_DLL/CoreEditor/Tools/Pool/Particles/ParticlesPoolEditor.cs new file mode 100644 index 0000000..dd3eed9 --- /dev/null +++ b/Assets_DLL/CoreEditor/Tools/Pool/Particles/ParticlesPoolEditor.cs @@ -0,0 +1,64 @@ +using Core.Tools.Pool.Particles; +using UnityEditor; +using UnityEngine; + +namespace CoreEditor.Localization +{ + [CustomEditor(typeof(ParticlesPool))] + public class ParticlesPoolEditor : Editor + { + public override void OnInspectorGUI() + { + serializedObject.Update(); + + SerializedProperty particles = serializedObject.FindProperty("_particles"); + + EditorGUILayout.Space(5); + + EditorGUILayout.BeginHorizontal("BOX"); + + GUILayout.Label("ID", EditorStyles.label); + GUILayout.Label(" Prefab", EditorStyles.label); + GUILayout.Label("StartCount", EditorStyles.label, GUILayout.MaxWidth(64)); + GUILayout.Label("", EditorStyles.label, GUILayout.MaxWidth(64)); + + EditorGUILayout.EndHorizontal(); + + EditorGUILayout.Space(5); + + for (int i = 0; i < particles.arraySize; i++) + { + EditorGUILayout.BeginHorizontal("BOX"); + + SerializedProperty particle = particles.GetArrayElementAtIndex(i); + + SerializedProperty id = particle.FindPropertyRelative("_id"); + SerializedProperty prefab = particle.FindPropertyRelative("_prefab"); + SerializedProperty count = particle.FindPropertyRelative("_startCount"); + + + id.stringValue = EditorGUILayout.TextField(id.stringValue); + + EditorGUILayout.PropertyField(prefab, GUIContent.none); + + count.intValue = EditorGUILayout.IntField(count.intValue, GUILayout.MaxWidth(64)); + + if (GUILayout.Button("Remove", GUILayout.MaxWidth(64))) + particles.DeleteArrayElementAtIndex(i); + + EditorGUILayout.EndHorizontal(); + } + + EditorGUILayout.Space(5); + + if (GUILayout.Button("Add")) + { + particles.InsertArrayElementAtIndex(particles.arraySize); + } + + EditorGUILayout.Space(5); + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/Assets_DLL/CoreEditor/Tools/UnusedAssetsMarker.cs b/Assets_DLL/CoreEditor/Tools/UnusedAssetsMarker.cs index 431cd30..d2f689f 100644 --- a/Assets_DLL/CoreEditor/Tools/UnusedAssetsMarker.cs +++ b/Assets_DLL/CoreEditor/Tools/UnusedAssetsMarker.cs @@ -8,7 +8,7 @@ using UnityEngine; namespace Core.Tools { [InitializeOnLoad] - public static class UnusedAssetsMarker + internal static class UnusedAssetsMarker { private struct FolderInfo { diff --git a/Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.AssemblyReference.cache b/Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.AssemblyReference.cache index 570af03732711f263389e9cf181c413758a8f02f..099b6a63d24ec660b1b11a18047deb1b3beacf68 100644 GIT binary patch delta 78 zcmV-U0I~n!2fGN6ToI&6X>cYf+6Vyw0R%&Da%BONAp;bVfvo`vlP>|I8z5C~X>@r- kZf9w3WiC)*a&&29Y-Lkk}lhOfBvuFZ&0q@cq0{{R3 delta 51 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 C@`vpJ literal 22016 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