Пример #1
0
        private void GenerateConnectionCode(GeneratedBlockInfo blockInfo)
        {
            //Output connections
            var block        = blockInfo.Block;
            var variableName = blockInfo.VariableName;

            for (var i = 0; i < block.OutputNodes.Count; i++)
            {
                var outputNode  = block.OutputNodes[i];
                var connectedTo = _generatedBlocks.Where(it => it.Block.InputNodes.Any(c => c.ConnectingNode == outputNode));
                foreach (var connectedBlock in connectedTo)
                {
                    for (var j = 0; j < connectedBlock.Block.InputNodes.Count; j++)
                    {
                        if (connectedBlock.Block.InputNodes[j].ConnectingNode == outputNode)
                        {
                            _text.AppendLine(Ident(3) + variableName + ".OutputNodes[" + i + "].ConnectTo(" + connectedBlock.VariableName + ".InputNodes[" + j + "]);");
                        }
                    }
                }
            }
        }
Пример #2
0
        private void GenerateDeclarationCode(GeneratedBlockInfo blockInfo)
        {
            //Variable declaration and paramaters
            var block = blockInfo.Block;
            var type  = block.GetType();
            var parameterProperties = type.GetProperties().Where(property => property.GetCustomAttributes(true).OfType <Parameter>().Any()).ToList();
            var variableName        = blockInfo.VariableName;

            _text.Append(Ident(3) + "var " + variableName + " = new " + type.Name);
            if (parameterProperties.Count == 0)
            {
                _text.AppendLine("();");
            }
            else
            {
                _text.AppendLine(Environment.NewLine + Ident(3) + "{");
                for (var i = 0; i < parameterProperties.Count; i++)
                {
                    var property = parameterProperties[i];
                    _text.AppendLine(Ident(4) + property.Name + " = " + GetPropertyValue(property, block) + (i < parameterProperties.Count - 1 ? "," : ""));
                }
                _text.AppendLine(Ident(3) + "};");
            }
        }