public override void Draw(int depth, RelationType relationType, ITypeColorProvider colorProvider, ISelectionChanger selectionChanger,
                                  NodeDisplayData displayData, ViewAreaData viewAreaData)
        {
            float offset = GetPositionOffset(viewAreaData);

            PathNode.DrawPathNodes(PosX, PosY + offset, PathNode, colorProvider);
            DrawPathNodeConnections(PathNode, TargetNodes, colorProvider, offset);
        }
Exemple #2
0
        public static void DrawPathNodeRec(float px, float py, PathNode node, ITypeColorProvider colorProvider)
        {
            DrawPathSegment(node.PosX + px, node.PosY + py, node);

            foreach (PathNode child in node.Children)
            {
                DrawPathNodeRec(px, py, child, colorProvider);
                AssetRelationsViewerWindow.DrawConnection(node.PosX + px + node.TextLength, node.PosY + py, child.PosX + px, child.PosY + py, colorProvider.GetConnectionColorForType(child.DependencyType));
            }
        }
Exemple #3
0
 public static void DrawPathNodes(float px, float py, PathNode node,
                                  ITypeColorProvider colorProvider)
 {
     DrawPathNodeRec(px, py, node, colorProvider);
 }
        public override void Draw(int depth, RelationType relationType, ITypeColorProvider colorProvider,
                                  ISelectionChanger selectionChanger, NodeDisplayData displayData, ViewAreaData viewAreaData)
        {
            Vector2 position = GetPosition(viewAreaData);

            Color rectColor = (depth == 0) ? ARVStyles.NodeBackGroundColorOwn : ARVStyles.NodeBackGroundColor;

            bool isMissing = NodeData.IsMissing;

            if (NodeData.IsEditorAsset)
            {
                rectColor.b += 0.05f;
            }

            if (isMissing)
            {
                rectColor = new Color(0.8f, 0.07f, 0.02f, 1.0f);
            }

            int assetPreviewSize = displayData.AssetPreviewSize;

            EditorGUI.DrawRect(new Rect(position.x + assetPreviewSize, position.y, displayData.NodeWidth, 16), rectColor);

            if (NodeData.IsPackedToApp && displayData.HighlightPackagedAssets)
            {
                EditorGUI.DrawRect(new Rect(position.x + assetPreviewSize, position.y + 16, displayData.NodeWidth, 1), ARVStyles.PackageToAppColor);
            }

            DrawPreviewTexture(position.x, position.y, displayData);

            GUIStyle style     = new GUIStyle();
            Color    textColor = Color.white;

            if (depth > 0)
            {
                string typeId = GetRelations(AssetRelationsViewerWindow.InvertRelationType(relationType))[0].Datas[0].Type;                 // TODO move
                textColor = colorProvider.GetConnectionColorForType(typeId);
            }

            textColor *= ARVStyles.TextColorMod;

            style.normal.textColor = textColor;
            style.clipping         = TextClipping.Clip;
            string name = isMissing ? "Missing!!!" : NodeData.Name;

            GUI.Label(new Rect(position.x + assetPreviewSize, position.y, displayData.NodeWidth - 32, assetPreviewSize), name, style);

            if (displayData.ShowAdditionalInformation)
            {
                string text = string.Format("Size: {0}kb | TreeSize: {1}kb ", NodeData.OwnSize, NodeData.HierarchySize);
                GUI.Label(new Rect(position.x + assetPreviewSize, position.y + 16, 200, 16), text);
            }

            DrawIsFilteredOverlay(position, displayData);

            if (GUI.Button(new Rect(position.x + displayData.NodeWidth + assetPreviewSize - 16, position.y, 16, 16), ">"))
            {
                selectionChanger.ChangeSelection(NodeData.Id, NodeData.Type);
            }

            if (GUI.Button(new Rect(position.x + displayData.NodeWidth + assetPreviewSize - 32, position.y, 16, 16), "s"))
            {
                NodeData.TypeHandler.SelectInEditor(NodeData.Id);
            }
        }
 private void DrawPathNodeConnections(PathNode rootNode, HashSet <PathNode> targetNodes, ITypeColorProvider colorProvider, float yOffset)
 {
     foreach (PathNode tn in targetNodes)
     {
         Color color  = colorProvider.GetConnectionColorForType(tn.DependencyType);
         int   offset = -32;
         int   endX   = PosX + Bounds.Width;
         AssetRelationsViewerWindow.DrawConnection(tn.PosX + tn.Width + PosX - 16, tn.PosY + PosY + yOffset, endX + offset, tn.PosY + PosY + yOffset, color);
         AssetRelationsViewerWindow.DrawConnection(endX + offset, tn.PosY + PosY + yOffset, endX, rootNode.PosY + PosY + yOffset, color);
     }
 }
Exemple #6
0
 public abstract void Draw(int depth, RelationType relationType, ITypeColorProvider colorProvider,
                           ISelectionChanger selectionChanger, NodeDisplayData displayData, ViewAreaData viewAreaData);