Example #1
0
 public SetOperationForComponentTypeInInstantiateNodeAction(InstantiateNodeModel model, TypeHandle componentType,
                                                            ComponentOperation.ComponentOperationType operation)
 {
     Model         = model;
     ComponentType = componentType;
     Operation     = operation;
 }
Example #2
0
        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);
        }
Example #3
0
 public RemoveOperationForComponentTypeInInstantiateNodeAction(InstantiateNodeModel model, TypeHandle componentType)
 {
     Model         = model;
     ComponentType = componentType;
 }
Example #4
0
        public static GraphElement CreateInstantiateNode(this INodeBuilder builder, Store store, InstantiateNodeModel model)
        {
            var functionNode = new InstantiateNode(model, store, builder.GraphView);

            return(functionNode);
        }