Пример #1
0
    public FunctionGraphEditorNodeLayout GetLayout(BaseFuncGraphNode node)
    {
        if (layoutMapping == null)
        {
            CreateMapping();
        }

        if (layoutMapping.ContainsKey(node.GetType()))
        {
            return(layoutMapping[node.GetType()]);
        }
        else if (node is VariableNode || node is ConstantNode || node is FixedConstantNode)
        {
            return(defaultNoIn);
        }
        else if (node is SingularChildNode)
        {
            return(defaultSingleIn);
        }
        else if (node is DualChildNode)
        {
            return(defaultDualIn);
        }
        else if (node is VariableMultiChildNode)
        {
            return(defaultMultiIn);
        }
        else if (node is FixedSizeMultiChildNode && node.PossibleChildrenCount == 3)
        {
            return(defaultTripleIn);
        }
        return(null);
    }
Пример #2
0
    public static FunctionGraphEditorNode CreateEditorNode(Vector2 pos, BaseFuncGraphNode n, FunctionGraphEditor editor, FunctionGraphEditorNodeLayout layout)
    {
        var attr = n.GetType().GetCustomAttributes(typeof(EditorNodeTypeAttribute), true) as EditorNodeTypeAttribute[];

        EditorNodeTypeAttribute.NodeType type = EditorNodeTypeAttribute.NodeType.Default;

        if (attr.Length > 0)
        {
            type = attr[0].Type;
        }

        switch (type)
        {
        case EditorNodeTypeAttribute.NodeType.Default:
            return(new FunctionGraphEditorNode(pos, n, editor, layout));

        case EditorNodeTypeAttribute.NodeType.FloatField:
            return(new FunctionGraphEditorNodeConstant(pos, n, editor, layout));

        case EditorNodeTypeAttribute.NodeType.Variable:
            return(new FunctionGraphEditorNodeVariable(pos, n, editor, layout));

        default:
            return(new FunctionGraphEditorNode(pos, n, editor, layout));
        }
    }