private static AccessModifier GetAccessModifier(SyntaxNodeAnalysisContext context, MemberDeclarationSyntax declaration, SyntaxTokenList modifiers) { if (!ModifierUtility.ContainsAccessModifier(modifiers)) { if (modifiers.Any(SyntaxKind.PartialKeyword)) { if (!declaration.IsKind(SyntaxKind.MethodDeclaration)) { AccessModifier?accessModifier = GetPartialAccessModifier(context, declaration); if (accessModifier != null) { if (accessModifier == AccessModifier.None) { return(ModifierUtility.GetDefaultAccessModifier(declaration)); } else { return(accessModifier.Value); } } } } else { return(ModifierUtility.GetDefaultAccessModifier(declaration)); } } return(AccessModifier.None); }
protected override void OnEnable() { base.OnEnable(); m_Type = serializedObject.FindProperty("m_Type"); m_FillMethod = serializedObject.FindProperty("m_FillMethod"); m_FillOrigin = serializedObject.FindProperty("m_FillOrigin"); m_FillClockwise = serializedObject.FindProperty("m_FillClockwise"); m_FillAmount = serializedObject.FindProperty("m_FillAmount"); m_Sprite = serializedObject.FindProperty("m_Sprite"); var typeEnum = (Image.Type)m_Type.enumValueIndex; showFilled = new AnimBool(!m_Type.hasMultipleDifferentValues && typeEnum == Image.Type.Filled); showFilled.valueChanged.AddListener(Repaint); attrList = ModifierUtility.GetAttributeList(); m_borderWidth = serializedObject.FindProperty("borderWidth"); m_falloffDist = serializedObject.FindProperty("falloffDistance"); if ((target as ProceduralImage).GetComponent <ProceduralImageModifier> () != null) { selectedId = attrList.IndexOf(((ModifierID[])(target as ProceduralImage).GetComponent <ProceduralImageModifier> ().GetType().GetCustomAttributes(typeof(ModifierID), false)) [0]); } selectedId = Mathf.Max(selectedId, 0); EditorApplication.update -= UpdateProceduralImage; EditorApplication.update += UpdateProceduralImage; }
protected void ModifierGUI() { GUIContent[] con = new GUIContent[attrList.Count]; for (int i = 0; i < con.Length; i++) { con[i] = new GUIContent(attrList[i].Name); } int index = EditorGUILayout.Popup(new GUIContent("Modifier Type"), selectedId, con); if (selectedId != index) { selectedId = index; foreach (var item in targets) { DestroyImmediate((item as ProceduralImage).GetComponent <ProceduralImageModifier>(), true); (item as ProceduralImage).ModifierType = ModifierUtility.GetTypeWithId(attrList[selectedId].Name); MoveComponentBehind((item as ProceduralImage), (item as ProceduralImage).GetComponent <ProceduralImageModifier>()); } //Exit GUI prevents Unity from trying to draw destroyed components editor; EditorGUIUtility.ExitGUI(); } }
private void AnalyzeMemberDeclaration(SyntaxNodeAnalysisContext context) { if (GeneratedCodeAnalyzer?.IsGeneratedCode(context) == true) { return; } var declaration = (MemberDeclarationSyntax)context.Node; SyntaxTokenList modifiers = declaration.GetModifiers(); if (modifiers.Count > 1 && !ModifierUtility.IsSorted(modifiers) && !declaration.ContainsDirectives(modifiers.Span)) { context.ReportDiagnostic( DiagnosticDescriptors.ReorderModifiers, Location.Create(context.Node.SyntaxTree, modifiers.Span)); } AccessModifier accessModifier = GetAccessModifier(context, declaration, modifiers); if (accessModifier != AccessModifier.None) { Location location = GetLocation(declaration); if (location != null) { context.ReportDiagnostic( DiagnosticDescriptors.AddDefaultAccessModifier, location, ImmutableDictionary.CreateRange(new KeyValuePair <string, string>[] { new KeyValuePair <string, string>(nameof(AccessModifier), accessModifier.ToString()) })); } } }
protected void ModifierGUI() { GUIContent[] con = new GUIContent[attrList.Count]; for (int i = 0; i < con.Length; i++) { con[i] = new GUIContent(attrList[i].Name); } bool hasMultipleValues = false; if (targets.Length > 1) { Type t = (targets[0] as ProceduralImage).GetComponent <ProceduralImageModifier>().GetType(); foreach (var item in targets) { if ((item as ProceduralImage).GetComponent <ProceduralImageModifier>().GetType() != t) { hasMultipleValues = true; break; } } } if (!hasMultipleValues) { int index = EditorGUILayout.Popup(new GUIContent("Modifier Type"), selectedId, con); if (selectedId != index) { selectedId = index; foreach (var item in targets) { DestroyImmediate((item as ProceduralImage).GetComponent <ProceduralImageModifier>(), true); (item as ProceduralImage).ModifierType = ModifierUtility.GetTypeWithId(attrList[selectedId].Name); MoveComponentBehind((item as ProceduralImage), (item as ProceduralImage).GetComponent <ProceduralImageModifier>()); } //Exit GUI prevents Unity from trying to draw destroyed components editor; EditorGUIUtility.ExitGUI(); } } else { int index = EditorGUILayout.Popup(new GUIContent("Modifier Type"), -1, con); if (index != -1) { selectedId = index; foreach (var item in targets) { DestroyImmediate((item as ProceduralImage).GetComponent <ProceduralImageModifier>(), true); (item as ProceduralImage).ModifierType = ModifierUtility.GetTypeWithId(attrList[selectedId].Name); MoveComponentBehind((item as ProceduralImage), (item as ProceduralImage).GetComponent <ProceduralImageModifier>()); } //Exit GUI prevents Unity from trying to draw destroyed components editor; EditorGUIUtility.ExitGUI(); } } }
private static SyntaxTokenList CreateModifiers(SyntaxTokenList modifiers) { modifiers = RemoveVirtualKeywordIfPresent(modifiers); modifiers = AddAbstractKeywordIfNotPresent(modifiers); if (!ModifierUtility.IsSorted(modifiers)) { modifiers = TokenList(modifiers.OrderBy(f => f, ModifierComparer.Instance)); } return(modifiers); }
protected override void OnEnable() { base.OnEnable(); attrList = ModifierUtility.GetAttributeList(); m_spritePro = serializedObject.FindProperty("m_sprite"); m_borderWidth = serializedObject.FindProperty("borderWidth"); m_falloffDist = serializedObject.FindProperty("falloffDistance"); m_needClipping = serializedObject.FindProperty("needClipping"); if ((target as ProceduralImage).GetComponent <ProceduralImageModifier> () != null) { selectedId = attrList.IndexOf(((ModifierID[])(target as ProceduralImage).GetComponent <ProceduralImageModifier> ().GetType().GetCustomAttributes(typeof(ModifierID), false))[0]); } selectedId = Mathf.Max(selectedId, 0); EditorApplication.update -= UpdateProceduralImage; EditorApplication.update += UpdateProceduralImage; }
private static AccessModifier?GetPartialAccessModifier( SyntaxNodeAnalysisContext context, MemberDeclarationSyntax declaration) { var accessModifier = AccessModifier.None; ISymbol symbol = context.SemanticModel.GetDeclaredSymbol(declaration, context.CancellationToken); if (symbol != null) { foreach (SyntaxReference syntaxReference in symbol.DeclaringSyntaxReferences) { var declaration2 = syntaxReference.GetSyntax(context.CancellationToken) as MemberDeclarationSyntax; if (declaration2 != null) { SyntaxTokenList modifiers = declaration2.GetModifiers(); AccessModifier accessModifier2 = ModifierUtility.GetAccessModifier(modifiers); if (accessModifier2 != AccessModifier.None) { if (accessModifier == AccessModifier.None || accessModifier == accessModifier2) { accessModifier = accessModifier2; } else { return(null); } } } } } return(accessModifier); }
public void Configure(Values values) { ModifierType = ModifierUtility.ParseModifierType(values.Get("AffectedStat", string.Empty)); ModifierValue = new OffsetValue(values.Get("Amount", -1f), ModifierUtility.ParseOffsetValueType(values.Get("ActType", string.Empty))); Name = values.Get("Name", string.Empty); }