Ejemplo n.º 1
0
        public static FunctionModel CreateFunction(this VSGraphModel graphModel, string methodName, Vector2 position,
                                                   SpawnFlags spawnFlags = SpawnFlags.Default)
        {
            graphModel.Stencil.GetSearcherDatabaseProvider().ClearReferenceItemsSearcherDatabases();
            var uniqueMethodName = graphModel.GetUniqueName(methodName);

            return(graphModel.CreateModel <FunctionModel>(uniqueMethodName, position, spawnFlags));
        }
Ejemplo n.º 2
0
        public static InlineExpressionNodeModel CreateInlineExpressionNode(this VSGraphModel graphModel,
                                                                           string expression, Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default)
        {
            const string nodeName = "inline";

            void Setup(InlineExpressionNodeModel m) => m.Expression = expression;

            return(graphModel.CreateModel <InlineExpressionNodeModel>(nodeName, position, spawnFlags, Setup));
        }
Ejemplo n.º 3
0
        public static EventFunctionModel CreateEventFunction(this VSGraphModel graphModel, MethodInfo methodInfo,
                                                             Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default)
        {
            graphModel.Stencil.GetSearcherDatabaseProvider().ClearReferenceItemsSearcherDatabases();

            void Setup(EventFunctionModel e) => e.EventType = methodInfo.DeclaringType.GenerateTypeHandle(graphModel.Stencil);

            return(graphModel.CreateModel <EventFunctionModel>(methodInfo.Name, position, spawnFlags, Setup));
        }
Ejemplo n.º 4
0
        public static IVariableModel CreateVariableNode(this VSGraphModel graphModel,
                                                        IVariableDeclarationModel declarationModel, Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default)
        {
            if (declarationModel == null)
            {
                return(graphModel.CreateNode <ThisNodeModel>("this", position));
            }

            return(graphModel.CreateModel <VariableNodeModel>(declarationModel.Title, position, spawnFlags, v => v.DeclarationModel = declarationModel));
        }
Ejemplo n.º 5
0
        public static StackBaseModel CreateStack(this VSGraphModel graphModel, string name, Vector2 position,
                                                 SpawnFlags spawnFlags = SpawnFlags.Default)
        {
            var stackTypeToCreate = graphModel.Stencil.GetDefaultStackModelType();

            if (!typeof(StackModel).IsAssignableFrom(stackTypeToCreate))
            {
                stackTypeToCreate = typeof(StackModel);
            }

            return(graphModel.CreateModel <StackBaseModel>(stackTypeToCreate, name, position, spawnFlags));
        }
Ejemplo n.º 6
0
        public static ISystemConstantNodeModel CreateSystemConstantNode(this VSGraphModel graphModel, Type type,
                                                                        PropertyInfo propertyInfo, Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default)
        {
            void Setup(SystemConstantNodeModel n)
            {
                n.ReturnType    = propertyInfo.PropertyType.GenerateTypeHandle(graphModel.Stencil);
                n.DeclaringType = propertyInfo.DeclaringType.GenerateTypeHandle(graphModel.Stencil);
                n.Identifier    = propertyInfo.Name;
            }

            var name = $"{type.FriendlyName(false)} > {propertyInfo.Name}";

            return(graphModel.CreateModel <SystemConstantNodeModel>(name, position, spawnFlags, Setup));
        }
Ejemplo n.º 7
0
 public static FunctionCallNodeModel CreateFunctionCallNode(this VSGraphModel graphModel, MethodBase methodInfo,
                                                            Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default)
 {
     return(graphModel.CreateModel <FunctionCallNodeModel>(methodInfo.Name, position, spawnFlags, n => n.MethodInfo = methodInfo));
 }
Ejemplo n.º 8
0
 public static FunctionRefCallNodeModel CreateFunctionRefCallNode(this VSGraphModel graphModel,
                                                                  FunctionModel methodInfo, Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default)
 {
     return(graphModel.CreateModel <FunctionRefCallNodeModel>(methodInfo.Title, position, spawnFlags, n => n.Function = methodInfo));
 }
Ejemplo n.º 9
0
 public static LoopStackModel CreateLoopStack(this VSGraphModel graphModel, Type loopStackType, Vector2 position,
                                              SpawnFlags spawnFlags = SpawnFlags.Default)
 {
     return(graphModel.CreateModel <LoopStackModel>(loopStackType, "loopStack", position, spawnFlags, node => ((LoopStackModel)node).CreateLoopVariables(null)));
 }
Ejemplo n.º 10
0
 public static GroupNodeModel CreateGroup(this VSGraphModel graphModel, string name, Vector2 position,
                                          SpawnFlags spawnFlags = SpawnFlags.Default)
 {
     return(graphModel.CreateModel <GroupNodeModel>(name, position, spawnFlags));
 }
Ejemplo n.º 11
0
 public static MacroRefNodeModel CreateMacroRefNode(this VSGraphModel graphModel, VSGraphModel macroGraphModel,
                                                    Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default)
 {
     return(graphModel.CreateModel <MacroRefNodeModel>(graphModel.AssetModel.Name, position, spawnFlags, n => n.Macro = macroGraphModel));
 }
Ejemplo n.º 12
0
 public static GetPropertyGroupNodeModel CreateGetPropertyGroupNode(this VSGraphModel graphModel,
                                                                    Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default)
 {
     return(graphModel.CreateModel <GetPropertyGroupNodeModel>("Get Property", position, spawnFlags));
 }
Ejemplo n.º 13
0
 public static BinaryOperatorNodeModel CreateBinaryOperatorNode(this VSGraphModel graphModel,
                                                                BinaryOperatorKind kind, Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default)
 {
     return(graphModel.CreateModel <BinaryOperatorNodeModel>(kind.ToString(), position, spawnFlags, n => n.kind = kind));
 }