A game about forced loneliness, made by TACStudios
at master 2.6 kB view raw
1using System; 2using UnityEditor; 3using UnityEngine; 4 5namespace Unity.VisualScripting 6{ 7 [Inspector(typeof(ValueInputDefinition))] 8 public sealed class ValueInputDefinitionInspector : ValuePortDefinitionInspector 9 { 10 public ValueInputDefinitionInspector(Metadata metadata) : base(metadata) { } 11 12 private Metadata hasDefaultValueMetadata => metadata[nameof(ValueInputDefinition.hasDefaultValue)]; 13 private Metadata defaultValueMetadata => metadata[nameof(ValueInputDefinition.defaultValue)]; 14 private Metadata typedDefaultValueMetadata => defaultValueMetadata.Cast((Type)typeMetadata.value); 15 16 private float GetHasDefaultValueHeight(float width) 17 { 18 return LudiqGUI.GetInspectorHeight(this, hasDefaultValueMetadata, width); 19 } 20 21 private float GetDefaultValueHeight(float width) 22 { 23 return LudiqGUI.GetInspectorHeight(this, typedDefaultValueMetadata, width); 24 } 25 26 private void OnHasDefaultValueGUI(Rect position) 27 { 28 LudiqGUI.Inspector(hasDefaultValueMetadata, position); 29 } 30 31 private void OnDefaultValueGUI(Rect position) 32 { 33 LudiqGUI.Inspector(typedDefaultValueMetadata, position); 34 } 35 36 protected override float GetHeight(float width, GUIContent label) 37 { 38 var height = base.GetHeight(width, label); 39 40 if (typeMetadata.value != null && ValueInput.SupportsDefaultValue((Type)typeMetadata.value)) 41 { 42 height += EditorGUIUtility.standardVerticalSpacing; 43 44 height += GetHasDefaultValueHeight(width); 45 46 if ((bool)hasDefaultValueMetadata.value) 47 { 48 height += EditorGUIUtility.standardVerticalSpacing; 49 50 height += GetDefaultValueHeight(width); 51 } 52 } 53 54 return height; 55 } 56 57 protected override void OnFieldsGUI(Rect position) 58 { 59 base.OnFieldsGUI(position); 60 61 if (typeMetadata.value != null && ValueInput.SupportsDefaultValue((Type)typeMetadata.value)) 62 { 63 y += EditorGUIUtility.standardVerticalSpacing; 64 65 OnHasDefaultValueGUI(position.VerticalSection(ref y, GetHasDefaultValueHeight(position.width))); 66 67 if ((bool)hasDefaultValueMetadata.value) 68 { 69 y += EditorGUIUtility.standardVerticalSpacing; 70 71 OnDefaultValueGUI(position.VerticalSection(ref y, GetDefaultValueHeight(position.width))); 72 } 73 } 74 } 75 } 76}