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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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))); }
public static GroupNodeModel CreateGroup(this VSGraphModel graphModel, string name, Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default) { return(graphModel.CreateModel <GroupNodeModel>(name, position, spawnFlags)); }
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)); }
public static GetPropertyGroupNodeModel CreateGetPropertyGroupNode(this VSGraphModel graphModel, Vector2 position, SpawnFlags spawnFlags = SpawnFlags.Default) { return(graphModel.CreateModel <GetPropertyGroupNodeModel>("Get Property", position, spawnFlags)); }
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)); }