public SetOperationForComponentTypeInInstantiateNodeAction(InstantiateNodeModel model, TypeHandle componentType, ComponentOperation.ComponentOperationType operation) { Model = model; ComponentType = componentType; Operation = operation; }
void PrepareGraph(VSGraphModel graphModel) { var entityTypeHandle = typeof(Entity).GenerateTypeHandle(graphModel.Stencil); // Component creation var scale = typeof(Scale).GenerateTypeHandle(Stencil); var query = graphModel.CreateComponentQuery("g"); query.AddComponent(graphModel.Stencil, scale, ComponentDefinitionFlags.None); // On update var queryInstance = graphModel.CreateVariableNode(query, Vector2.zero); m_OnUpdateEntities = graphModel.CreateNode <OnUpdateEntitiesNodeModel>("update", Vector2.zero); graphModel.CreateEdge(m_OnUpdateEntities.InstancePort, queryInstance.OutputPort); m_InstantiateModel = m_OnUpdateEntities.CreateStackedNode <InstantiateNodeModel>("instantiate"); // Instantiate Entity m_EntityTemplateVariable = graphModel.CreateVariableNode( m_OnUpdateEntities.FunctionParameterModels.Single(p => p.DataType == entityTypeHandle), Vector2.zero); // Variable containing the new entity m_OnUpdateEntities.CreateFunctionVariableDeclaration("newEntity", entityTypeHandle); m_NewEntityVariable = graphModel.CreateVariableNode( m_OnUpdateEntities.FunctionParameterModels.Single(p => p.DataType == entityTypeHandle), Vector2.zero); m_FloatConstantNode = (FloatConstantModel)graphModel.CreateConstantNode("float", TypeHandle.Float, Vector2.zero); m_FloatConstantNode.value = 10f; graphModel.CreateEdge(m_InstantiateModel.InstancePort, m_NewEntityVariable.OutputPort); graphModel.CreateEdge(m_InstantiateModel.EntityPort, m_EntityTemplateVariable.OutputPort); }
public RemoveOperationForComponentTypeInInstantiateNodeAction(InstantiateNodeModel model, TypeHandle componentType) { Model = model; ComponentType = componentType; }
public static GraphElement CreateInstantiateNode(this INodeBuilder builder, Store store, InstantiateNodeModel model) { var functionNode = new InstantiateNode(model, store, builder.GraphView); return(functionNode); }