diff --git a/src/Debug/Editor/SettingsEditor.cs b/src/Debug/Editor/SettingsEditor.cs index 377cfaf..b782fc2 100644 --- a/src/Debug/Editor/SettingsEditor.cs +++ b/src/Debug/Editor/SettingsEditor.cs @@ -1,4 +1,5 @@ #if UNITY_EDITOR +using System; using System.Collections.Generic; using System.Linq; using UnityEditor; @@ -29,7 +30,6 @@ namespace DCFApixels.DragonECS.Unity.Editors nameof(EcsConsts.DISABLE_DEBUG), nameof(EcsConsts.ENABLE_DUMMY_SPAN), nameof(EcsConsts.DISABLE_CATH_EXCEPTIONS), - "DEBUG", }; for (int i = 0; i < _defineSymbols.Count; i++) { @@ -74,11 +74,14 @@ namespace DCFApixels.DragonECS.Unity.Editors GUILayout.Label(nameof(SettingsPrefs.IsShowRuntimeComponents), GUILayout.ExpandWidth(false)); GUILayout.EndHorizontal(); + settings.AutoColorMode = (AutoColorMode)EditorGUILayout.EnumPopup(nameof(SettingsPrefs.AutoColorMode), SettingsPrefs.instance.AutoColorMode); + if (EditorGUI.EndChangeCheck()) { SettingsPrefs.instance.IsShowHidden = settings.IsShowHidden; SettingsPrefs.instance.IsShowInterfaces = settings.IsShowInterfaces; SettingsPrefs.instance.IsShowRuntimeComponents = settings.IsShowRuntimeComponents; + SettingsPrefs.instance.AutoColorMode = settings.AutoColorMode; } GUILayout.EndVertical(); @@ -144,6 +147,7 @@ namespace DCFApixels.DragonECS.Unity.Editors public bool IsShowHidden; public bool IsShowInterfaces; public bool IsShowRuntimeComponents; + public AutoColorMode AutoColorMode; } } } diff --git a/src/Debug/Editor/SettingsPrefs.cs b/src/Debug/Editor/SettingsPrefs.cs index 072e06b..22e81b6 100644 --- a/src/Debug/Editor/SettingsPrefs.cs +++ b/src/Debug/Editor/SettingsPrefs.cs @@ -4,8 +4,14 @@ using UnityEngine; namespace DCFApixels.DragonECS.Unity.Editors { - [FilePath(EcsConsts.FRAMEWORK_NAME + "/" + nameof(SettingsPrefs) + ".prefs", FilePathAttribute.Location.ProjectFolder)] - public class SettingsPrefs : ScriptableSingleton + internal enum AutoColorMode + { + Generic = 0, + Name = 1, + Rainbow = 2, + } + [FilePath(EcsConsts.AUTHOR + "/" + EcsConsts.FRAMEWORK_NAME + "/" + nameof(SettingsPrefs) + ".prefs", FilePathAttribute.Location.ProjectFolder)] + internal class SettingsPrefs : ScriptableSingleton { [SerializeField] private bool _isShowInterfaces = false; @@ -52,6 +58,19 @@ namespace DCFApixels.DragonECS.Unity.Editors Save(false); } } + + + [SerializeField] + private AutoColorMode _autoColorMode = AutoColorMode.Name; + public AutoColorMode AutoColorMode + { + get => _autoColorMode; + set + { + _autoColorMode = value; + Save(false); + } + } } } #endif \ No newline at end of file diff --git a/src/EntityTemplate/Editor/EntityTemplateEditor.cs b/src/EntityTemplate/Editor/EntityTemplateEditor.cs index 833b7fc..b30ec75 100644 --- a/src/EntityTemplate/Editor/EntityTemplateEditor.cs +++ b/src/EntityTemplate/Editor/EntityTemplateEditor.cs @@ -16,6 +16,12 @@ namespace DCFApixels.DragonECS.Unity.Editors private GenericMenu _genericMenu; private bool _isInit = false; + private static AutoColorMode AutoColorMode + { + get { return SettingsPrefs.instance.AutoColorMode; } + set { SettingsPrefs.instance.AutoColorMode = value; } + } + #region Init private void Init() { @@ -42,6 +48,11 @@ namespace DCFApixels.DragonECS.Unity.Editors var componentTemplateDummies = ComponentTemplateTypeCache.Dummies; foreach (var dummy in componentTemplateDummies) { + if (dummy.Type.GetCustomAttribute() == null) + { + Debug.LogWarning($"Type {dummy.Type.Name} does not have the [Serializable] attribute"); + continue; + } ITypeMeta meta = dummy is ITypeMeta metaOverride ? metaOverride : dummy.Type.ToMeta(); string name = meta.Name; string description = meta.Description.Text; @@ -112,7 +123,7 @@ namespace DCFApixels.DragonECS.Unity.Editors GUILayout.Label("", GUILayout.Height(0), GUILayout.ExpandWidth(true)); for (int i = 0; i < componentsProp.arraySize; i++) { - DrawComponentData(componentsProp.GetArrayElementAtIndex(i), i); + DrawComponentData(componentsProp.GetArrayElementAtIndex(i), componentsProp.arraySize, i); } GUILayout.EndVertical(); } @@ -132,37 +143,85 @@ namespace DCFApixels.DragonECS.Unity.Editors } } - private void DrawComponentData(SerializedProperty componentRefProp, int index) + private void DrawComponentData(SerializedProperty componentRefProp, int total, int index) { IComponentTemplate template = componentRefProp.managedReferenceValue as IComponentTemplate; if (template == null || componentRefProp.managedReferenceValue == null) { - DrawDamagedComponent(componentRefProp, index); + DrawDamagedComponent_Replaced(componentRefProp, index); + return; + } + + Type componentType; + SerializedProperty componentProperty = componentRefProp; + try + { + ComponentTemplateBase customTemplate = componentProperty.managedReferenceValue as ComponentTemplateBase; + if (customTemplate != null) + { + componentProperty = componentRefProp.FindPropertyRelative("component"); + componentType = customTemplate.GetType().GetField("component", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FieldType; + } + else + { + componentType = componentProperty.managedReferenceValue.GetType(); + } + + if (componentType == null || componentProperty == null) + { + throw new NullReferenceException(); + } + } + catch (Exception e) + { + Debug.LogException(e, serializedObject.targetObject); + DrawDamagedComponent(index, "Damaged component template."); return; } - Type componentType; - SerializedProperty componentProperty = componentRefProp; - ComponentTemplateBase customInitializer = componentProperty.managedReferenceValue as ComponentTemplateBase; - if (customInitializer != null) - { - componentProperty = componentRefProp.FindPropertyRelative("component"); - componentType = customInitializer.GetType().GetField("component", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FieldType; - } - else - { - componentType = componentProperty.managedReferenceValue.GetType(); ; - } + //сюда попадают уже валидные компоненты + ITypeMeta meta = template is ITypeMeta metaOverride ? metaOverride : template.Type.ToMeta(); string name = meta.Name; string description = meta.Description.Text; - Color panelColor = meta.Color.ToUnityColor().Desaturate(EscEditorConsts.COMPONENT_DRAWER_DESATURATE); - //GUIContent label = new GUIContent(name); bool isEmpty = componentType.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).Length <= 0; + var propsCounter = componentProperty.Copy(); + int lastDepth = propsCounter.depth; + bool next = propsCounter.Next(true) && lastDepth < propsCounter.depth; + int propCount = next ? -1 : 0; + while (next) + { + propCount++; + next = propsCounter.Next(false); + } float padding = EditorGUIUtility.standardVerticalSpacing; + + Color panelColor; + if (meta.IsCustomColor) + { + panelColor = meta.Color.ToUnityColor(); + } + else + { + switch (AutoColorMode) + { + case AutoColorMode.Name: + panelColor = meta.Color.ToUnityColor().Desaturate(0.48f) / 1.18f; //.Desaturate(0.48f) / 1.18f; + break; + case AutoColorMode.Rainbow: + Color hsv = Color.HSVToRGB(1f / (Mathf.Max(total, EscEditorConsts.AUTO_COLOR_RAINBOW_MIN_RANGE)) * index, 1, 1); + panelColor = hsv.Desaturate(0.48f) / 1.18f; + break; + default: + panelColor = index % 2 == 0 ? new Color(0.40f, 0.40f, 0.40f) : new Color(0.54f, 0.54f, 0.54f); + break; + } + } + panelColor = panelColor.Desaturate(EscEditorConsts.COMPONENT_DRAWER_DESATURATE); + Color alphaPanelColor = panelColor; alphaPanelColor.a = EscEditorConsts.COMPONENT_DRAWER_ALPHA; @@ -171,24 +230,27 @@ namespace DCFApixels.DragonECS.Unity.Editors EditorGUI.BeginChangeCheck(); GUILayout.BeginVertical(UnityEditorUtility.GetStyle(alphaPanelColor)); - - #region Draw Component Block - bool isRemoveComponent = false; removeButtonRect.yMin = removeButtonRect.yMax; removeButtonRect.yMax += RemoveButtonRect.height; removeButtonRect.xMin = removeButtonRect.xMax - RemoveButtonRect.width; removeButtonRect.center += Vector2.up * padding * 2f; - if (EcsGUI.CloseButton(removeButtonRect)) - { - isRemoveComponent = true; - } + bool isRemoveComponent = EcsGUI.CloseButton(removeButtonRect); - if (isEmpty) + if (propCount <= 0) { GUIContent label = UnityEditorUtility.GetLabel(name); - GUILayout.Label(label); + EditorGUILayout.LabelField(name); + Rect emptyPos = GUILayoutUtility.GetLastRect(); + emptyPos.xMin += EditorGUIUtility.labelWidth; + if (isEmpty) + { + using (new EcsGUI.ContentColorScope(1f, 1f, 1f, 0.4f)) + { + GUI.Label(emptyPos, "empty"); + } + } EditorGUI.BeginProperty(GUILayoutUtility.GetLastRect(), label, componentRefProp); EditorGUI.EndProperty(); } @@ -226,19 +288,28 @@ namespace DCFApixels.DragonECS.Unity.Editors EditorUtility.SetDirty(componentProperty.serializedObject.targetObject); } } - - private void DrawDamagedComponent(SerializedProperty componentRefProp, int index) + private void DrawDamagedComponent_Replaced(SerializedProperty componentRefProp, int index) { + DrawDamagedComponent(index, $"Damaged component template. If the problem occurred after renaming a component or initializer. use MovedFromAttrubute"); + } + private void DrawDamagedComponent(int index, string message) + { + Rect removeButtonRect = GUILayoutUtility.GetLastRect(); + GUILayout.BeginHorizontal(); - EditorGUILayout.HelpBox($"Damaged component. If the problem occurred after renaming a component or initializer. use MovedFromAttrubute", MessageType.Warning); + float padding = EditorGUIUtility.standardVerticalSpacing; - Rect lastrect = GUILayoutUtility.GetLastRect(); - Rect removeButtonRect = RemoveButtonRect; - removeButtonRect.center = new Vector2(lastrect.xMax + removeButtonRect.width, lastrect.yMin + removeButtonRect.height / 2f); + removeButtonRect.yMin = removeButtonRect.yMax; + removeButtonRect.yMax += RemoveButtonRect.height; + removeButtonRect.xMin = removeButtonRect.xMax - RemoveButtonRect.width; + removeButtonRect.center += Vector2.up * padding * 2f; - GUILayout.Label("", GUILayout.Width(removeButtonRect.width)); - if (GUI.Button(removeButtonRect, "x", _removeButtonStyle)) + bool isRemoveComponent = EcsGUI.CloseButton(removeButtonRect); + + EditorGUILayout.HelpBox(message, MessageType.Warning); + + if (isRemoveComponent) { OnRemoveComponentAt(index); } diff --git a/src/EntityTemplate/Templates/ComponentTemplateBase.cs b/src/EntityTemplate/Templates/ComponentTemplateBase.cs index df4f541..e8105d1 100644 --- a/src/EntityTemplate/Templates/ComponentTemplateBase.cs +++ b/src/EntityTemplate/Templates/ComponentTemplateBase.cs @@ -33,7 +33,9 @@ namespace DCFApixels.DragonECS { #region Properties public abstract Type Type { get; } + public virtual bool IsCustomName { get { return false; } } public virtual string Name { get { return string.Empty; } } + public virtual bool IsCustomColor { get { return false; } } public virtual MetaColor Color { get { return new MetaColor(MetaColor.Black); } } public virtual MetaGroup Group { get { return MetaGroup.Empty; } } public virtual MetaDescription Description { get { return MetaDescription.Empty; } } @@ -58,11 +60,13 @@ namespace DCFApixels.DragonECS #region Properties public override Type Type { get { return typeof(T); } } + public override bool IsCustomName { get { return Meta.IsCustomName; } } public override string Name { get { return Meta.Name; } } + public override bool IsCustomColor { get { return Meta.IsCustomColor; } } + public override MetaColor Color { get { return Meta.Color; } } public override MetaGroup Group { get { return Meta.Group; } } public override MetaDescription Description { get { return Meta.Description; } } public override IReadOnlyCollection Tags { get { return Meta.Tags; } } - public override MetaColor Color { get { return Meta.Color; } } #endregion #region Methods @@ -129,7 +133,7 @@ namespace DCFApixels.DragonECS.Unity.Editors Type interfaceType = typeof(IComponentTemplate); foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) { - var targetTypes = assembly.GetTypes().Where(type => !type.IsGenericType && !(type.IsAbstract || type.IsInterface) && type.GetCustomAttribute() != null); + var targetTypes = assembly.GetTypes().Where(type => !type.IsGenericType && !(type.IsAbstract || type.IsInterface) /*&& type.GetCustomAttribute() != null*/); types.AddRange(targetTypes.Where(type => interfaceType.IsAssignableFrom(type))); diff --git a/src/Icons/AutosetCascadeIcon.png b/src/Icons/AutosetCascadeIcon.png new file mode 100644 index 0000000..2ad48f6 Binary files /dev/null and b/src/Icons/AutosetCascadeIcon.png differ diff --git a/src/Icons/d_winbtn_win_restore@2x.png.meta b/src/Icons/AutosetCascadeIcon.png.meta similarity index 83% rename from src/Icons/d_winbtn_win_restore@2x.png.meta rename to src/Icons/AutosetCascadeIcon.png.meta index 343fb69..641eceb 100644 --- a/src/Icons/d_winbtn_win_restore@2x.png.meta +++ b/src/Icons/AutosetCascadeIcon.png.meta @@ -3,10 +3,10 @@ guid: 8f9fb2a8877577940971d81a98aeaaaa TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 13 + serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -20,12 +20,11 @@ TextureImporter: externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 - flipGreenChannel: 0 isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 - ignoreMipmapLimit: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -52,7 +51,7 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 @@ -64,20 +63,17 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 - resizeAlgorithm: 0 + resizeAlgorithm: 1 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 @@ -90,7 +86,18 @@ TextureImporter: crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 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 spriteSheet: @@ -107,8 +114,9 @@ TextureImporter: weights: [] secondaryTextures: [] nameFileIdTable: {} - mipmapLimitGroupName: + spritePackingTag: pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/src/Icons/AutosetIcon.png b/src/Icons/AutosetIcon.png new file mode 100644 index 0000000..b1f790d Binary files /dev/null and b/src/Icons/AutosetIcon.png differ diff --git a/src/Icons/d_winbtn_win_max@2x.png.meta b/src/Icons/AutosetIcon.png.meta similarity index 81% rename from src/Icons/d_winbtn_win_max@2x.png.meta rename to src/Icons/AutosetIcon.png.meta index 7125548..c253200 100644 --- a/src/Icons/d_winbtn_win_max@2x.png.meta +++ b/src/Icons/AutosetIcon.png.meta @@ -3,10 +3,10 @@ guid: d01e651682f48b548b597714f47e14b9 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 13 + serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -20,12 +20,11 @@ TextureImporter: externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 - flipGreenChannel: 0 isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 - ignoreMipmapLimit: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -43,7 +42,7 @@ TextureImporter: nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 2 + spriteMode: 1 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -52,7 +51,7 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 @@ -64,20 +63,17 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 - resizeAlgorithm: 0 + resizeAlgorithm: 1 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 @@ -90,7 +86,18 @@ TextureImporter: crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 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 spriteSheet: @@ -99,7 +106,7 @@ TextureImporter: outline: [] physicsShape: [] bones: [] - spriteID: + spriteID: 5e97eb03825dee720800000000000000 internalID: 0 vertices: [] indices: @@ -107,8 +114,9 @@ TextureImporter: weights: [] secondaryTextures: [] nameFileIdTable: {} - mipmapLimitGroupName: + spritePackingTag: pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/src/Icons/d_winbtn_win_close.png b/src/Icons/CloseIcon.png similarity index 100% rename from src/Icons/d_winbtn_win_close.png rename to src/Icons/CloseIcon.png diff --git a/src/Icons/d_winbtn_win_close.png.meta b/src/Icons/CloseIcon.png.meta similarity index 83% rename from src/Icons/d_winbtn_win_close.png.meta rename to src/Icons/CloseIcon.png.meta index 26a947b..8a67a2d 100644 --- a/src/Icons/d_winbtn_win_close.png.meta +++ b/src/Icons/CloseIcon.png.meta @@ -3,10 +3,10 @@ guid: 8a708e50662813d4a99c107e6431a60b TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 13 + serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -20,12 +20,11 @@ TextureImporter: externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 - flipGreenChannel: 0 isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 - ignoreMipmapLimit: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -52,7 +51,7 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 @@ -64,20 +63,17 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 - resizeAlgorithm: 0 + resizeAlgorithm: 1 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 @@ -90,7 +86,18 @@ TextureImporter: crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 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 spriteSheet: @@ -107,8 +114,9 @@ TextureImporter: weights: [] secondaryTextures: [] nameFileIdTable: {} - mipmapLimitGroupName: + spritePackingTag: pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/src/Icons/d_P4_DeletedLocal.png b/src/Icons/CloseIconOn.png similarity index 100% rename from src/Icons/d_P4_DeletedLocal.png rename to src/Icons/CloseIconOn.png diff --git a/src/Icons/d_P4_DeletedLocal.png.meta b/src/Icons/CloseIconOn.png.meta similarity index 83% rename from src/Icons/d_P4_DeletedLocal.png.meta rename to src/Icons/CloseIconOn.png.meta index 046fdf1..7904d9f 100644 --- a/src/Icons/d_P4_DeletedLocal.png.meta +++ b/src/Icons/CloseIconOn.png.meta @@ -3,10 +3,10 @@ guid: 6a1d402595b00c24db2ba647fed93a5c TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 13 + serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -20,12 +20,11 @@ TextureImporter: externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 - flipGreenChannel: 0 isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 - ignoreMipmapLimit: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -52,7 +51,7 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 @@ -64,20 +63,17 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 - resizeAlgorithm: 0 + resizeAlgorithm: 1 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 @@ -90,7 +86,18 @@ TextureImporter: crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 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 spriteSheet: @@ -107,8 +114,9 @@ TextureImporter: weights: [] secondaryTextures: [] nameFileIdTable: {} - mipmapLimitGroupName: + spritePackingTag: pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/src/Icons/d__Help.png b/src/Icons/HelpIcon.png similarity index 100% rename from src/Icons/d__Help.png rename to src/Icons/HelpIcon.png diff --git a/src/Icons/d__Help.png.meta b/src/Icons/HelpIcon.png.meta similarity index 83% rename from src/Icons/d__Help.png.meta rename to src/Icons/HelpIcon.png.meta index 439d0b0..fdee6d6 100644 --- a/src/Icons/d__Help.png.meta +++ b/src/Icons/HelpIcon.png.meta @@ -3,10 +3,10 @@ guid: e135cf23a5d53ce48a75e163b41e39d5 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 13 + serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -20,12 +20,11 @@ TextureImporter: externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 - flipGreenChannel: 0 isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 - ignoreMipmapLimit: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -52,7 +51,7 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 @@ -64,20 +63,17 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 - resizeAlgorithm: 0 + resizeAlgorithm: 1 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 @@ -90,7 +86,18 @@ TextureImporter: crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 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 spriteSheet: @@ -107,8 +114,9 @@ TextureImporter: weights: [] secondaryTextures: [] nameFileIdTable: {} - mipmapLimitGroupName: + spritePackingTag: pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/src/Icons/UnlinkIcon.png b/src/Icons/UnlinkIcon.png new file mode 100644 index 0000000..f6f1004 Binary files /dev/null and b/src/Icons/UnlinkIcon.png differ diff --git a/src/Icons/d_Unlinked.png.meta b/src/Icons/UnlinkIcon.png.meta similarity index 83% rename from src/Icons/d_Unlinked.png.meta rename to src/Icons/UnlinkIcon.png.meta index f93621e..4689347 100644 --- a/src/Icons/d_Unlinked.png.meta +++ b/src/Icons/UnlinkIcon.png.meta @@ -3,10 +3,10 @@ guid: 5baead89a941e034e9f44d63617d3246 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 13 + serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -20,12 +20,11 @@ TextureImporter: externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 - flipGreenChannel: 0 isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 - ignoreMipmapLimit: 0 + ignoreMasterTextureLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -52,7 +51,7 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 @@ -64,20 +63,17 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 - swizzle: 50462976 - cookieLightType: 0 platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 - resizeAlgorithm: 0 + resizeAlgorithm: 1 textureFormat: -1 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - serializedVersion: 3 @@ -90,7 +86,18 @@ TextureImporter: crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 - ignorePlatformSupport: 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 spriteSheet: @@ -107,8 +114,9 @@ TextureImporter: weights: [] secondaryTextures: [] nameFileIdTable: {} - mipmapLimitGroupName: + spritePackingTag: pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/src/Icons/d_Unlinked.png b/src/Icons/d_Unlinked.png deleted file mode 100644 index 1482061..0000000 Binary files a/src/Icons/d_Unlinked.png and /dev/null differ diff --git a/src/Icons/d_winbtn_win_max@2x.png b/src/Icons/d_winbtn_win_max@2x.png deleted file mode 100644 index 66dd3d6..0000000 Binary files a/src/Icons/d_winbtn_win_max@2x.png and /dev/null differ diff --git a/src/Icons/d_winbtn_win_restore@2x.png b/src/Icons/d_winbtn_win_restore@2x.png deleted file mode 100644 index dc22a34..0000000 Binary files a/src/Icons/d_winbtn_win_restore@2x.png and /dev/null differ diff --git a/src/Internal/Editor/EcsGUI.cs b/src/Internal/Editor/EcsGUI.cs index c7e7ef4..679e47b 100644 --- a/src/Internal/Editor/EcsGUI.cs +++ b/src/Internal/Editor/EcsGUI.cs @@ -39,6 +39,7 @@ namespace DCFApixels.DragonECS.Unity.Editors public struct ContentColorScope : IDisposable { private readonly Color _value; + public ContentColorScope(float r, float g, float b, float a = 1f) : this(new Color(r, g, b, a)) { } public ContentColorScope(Color value) { _value = GUI.contentColor; diff --git a/src/Internal/EscEditorConsts.cs b/src/Internal/EscEditorConsts.cs index 9307e9a..d3a7c88 100644 --- a/src/Internal/EscEditorConsts.cs +++ b/src/Internal/EscEditorConsts.cs @@ -4,5 +4,6 @@ { public const float COMPONENT_DRAWER_ALPHA = 0.26f; public const float COMPONENT_DRAWER_DESATURATE = 0.86f; + public const int AUTO_COLOR_RAINBOW_MIN_RANGE = 7; } }