示例#1
0
        public TokenDeclaration Clone()
        {
            var clone = new TokenDeclaration(m_Store, Declaration, m_GraphView)
            {
                viewDataKey = Guid.NewGuid().ToString()
            };

            if (Declaration is LoopVariableDeclarationModel loopVariableDeclarationModel)
            {
                VseUtility.AddTokenIcon(clone, loopVariableDeclarationModel.TitleComponentIcon);
            }
            return(clone);
        }
        public static GraphElement CreateToken(this INodeBuilder builder, Store store, IVariableModel model)
        {
            var       isExposed = model.DeclarationModel?.IsExposed;
            Texture2D icon      = (isExposed != null && isExposed.Value)
                ? VisualScriptingIconUtility.LoadIconRequired("GraphView/Nodes/BlackboardFieldExposed.png")
                : null;

            GetTokenPorts(store, model, out var input, out var output, Orientation.Horizontal);

            var token = new Token(model, store, input, output, builder.GraphView, icon);

            if (model.DeclarationModel != null && model.DeclarationModel is LoopVariableDeclarationModel loopVariableDeclarationModel)
            {
                VseUtility.AddTokenIcon(token, loopVariableDeclarationModel.TitleComponentIcon);
            }
            return(token);
        }