void PrepareGraph(VSGraphModel graphModel) { var entityTypeHandle = typeof(Entity).GenerateTypeHandle(graphModel.Stencil); // Component creation var scale = typeof(Scale).GenerateTypeHandle(Stencil); var group = graphModel.CreateComponentQuery("g"); group.AddComponent(graphModel.Stencil, scale, ComponentDefinitionFlags.None); // On update var groupInstance = graphModel.CreateVariableNode(group, Vector2.zero); m_OnUpdateEntities = graphModel.CreateNode <OnUpdateEntitiesNodeModel>("update", Vector2.zero); graphModel.CreateEdge(m_OnUpdateEntities.InstancePort, groupInstance.OutputPort); m_CreateEntityModel = m_OnUpdateEntities.CreateStackedNode <CreateEntityNodeModel>("instantiate"); // 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_CreateEntityModel.InstancePort, m_NewEntityVariable.OutputPort); }
public RemoveOperationForComponentTypeInCreateEntityNodeAction(CreateEntityNodeModel model, TypeHandle componentType) { Model = model; ComponentType = componentType; }
public static GraphElement CreateCreateEntityNode(this INodeBuilder builder, Store store, CreateEntityNodeModel model) { var functionNode = new CreateEntityNode(model, store, builder.GraphView); return(functionNode); }