Пример #1
0
        private string GenerateFieldsInitialization(ScenesCodeCooker scenesCodeCooker)
        {
            var result = "";

            if (!BaseClassName.IsNullOrWhiteSpace())
            {
                result += $"{BaseClassName} = new Common.{BaseClassName}(Node);\n";
            }
            foreach (var node in ParsedNodes)
            {
                result += string.Format(
                    "@{2} = new {0}(Node.Find<Node>(\"{1}\"));",
                    scenesCodeCooker.GetFullTypeOf(node),
                    node.Id,
                    node.FieldName
                    );
                result += "\n";
            }
            foreach (var pft in InnerClasses)
            {
                result += string.Format(
                    "@{2} = new {0}(Node.Find<Node>(\"{1}\"));",
                    scenesCodeCooker.GetFullTypeOf(pft),
                    pft.ParsedNode.Id,
                    pft.FieldName
                    );
                result += "\n";
            }
            return(result);
        }
Пример #2
0
        private string GenerateFields(ScenesCodeCooker scenesCodeCooker)
        {
            var result       = "";
            var multiFields  = new List <ParsedNode>();
            var multiClasses = new List <ParsedFramesTree>();

            foreach (var node in ParsedNodes)
            {
                bool haveSameFields = ParsedNodes.Count(f => f.FieldName == node.FieldName) > 1;

                if (haveSameFields)
                {
                    if (multiFields.Exists(n => n.FieldName == node.FieldName))
                    {
                        continue;
                    }

                    multiFields.Add(node);

                    result += $"public readonly List<{scenesCodeCooker.GetFullTypeOf(node)}> @{node.FieldName};" + "\n";
                }
                else
                {
                    result += $"public readonly {scenesCodeCooker.GetFullTypeOf(node)} @{node.FieldName};" + "\n";
                }
            }

            foreach (var pft in InnerClasses)
            {
                bool haveSameClasses = InnerClasses.Count(f => f.FieldName == pft.FieldName) > 1;

                if (haveSameClasses)
                {
                    if (multiClasses.Exists(n => n.FieldName == pft.FieldName))
                    {
                        continue;
                    }

                    multiClasses.Add(pft);
                    result += $"public readonly List<{scenesCodeCooker.GetFullTypeOf(pft)}> @{pft.FieldName};" + "\n";
                }
                else
                {
                    result += $"public readonly {scenesCodeCooker.GetFullTypeOf(pft)} @{pft.FieldName};" + "\n";
                }
            }

            return(result);
        }
Пример #3
0
        private string GenerateFields(ScenesCodeCooker scenesCodeCooker)
        {
            var result = "";

            foreach (var node in ParsedNodes)
            {
                result += string.Format("public readonly {0} @{1};", scenesCodeCooker.GetFullTypeOf(node), node.FieldName);
                result += "\n";
            }
            foreach (var pft in InnerClasses)
            {
                result += string.Format("public readonly {0} @{1};", scenesCodeCooker.GetFullTypeOf(pft), pft.FieldName);
                result += "\n";
            }
            return(result);
        }
Пример #4
0
        private string GenerateFieldsInitialization(ScenesCodeCooker scenesCodeCooker)
        {
            var result = "";

            if (!BaseClassName.IsNullOrWhiteSpace())
            {
                result += $"{BaseClassName} = new Common.{BaseClassName}(Node);\n";
            }

            var multiNodes   = new List <ParsedNode>();
            var multiClasses = new List <ParsedFramesTree>();

            foreach (var node in ParsedNodes)
            {
                bool haveSameFields = ParsedNodes.Count(f => f.FieldName == node.FieldName) > 1;

                if (haveSameFields)
                {
                    if (multiNodes.Exists(n => n.FieldName == node.FieldName))
                    {
                        continue;
                    }

                    multiNodes.Add(node);

                    result += string.Format(
                        "@{2} = Node.Descendants.Where(nodeEl => nodeEl.Id == \"{1}\")" +
                        ".Select(nodeEl => new {0} (nodeEl)).ToList();" + "\n",
                        scenesCodeCooker.GetFullTypeOf(node),
                        node.Id,
                        node.FieldName
                        );
                }
                else
                {
                    result += string.Format(
                        "@{2} = new {0}(Node.Find<Node>(\"{1}\"));" + "\n",
                        scenesCodeCooker.GetFullTypeOf(node),
                        node.Id,
                        node.FieldName
                        );
                }
            }

            foreach (var pft in InnerClasses)
            {
                bool haveSameFields = InnerClasses.Count(f => f.FieldName == pft.FieldName) > 1;

                if (haveSameFields)
                {
                    if (multiClasses.Exists(n => n.FieldName == pft.FieldName))
                    {
                        continue;
                    }

                    multiClasses.Add(pft);

                    result += string.Format(
                        "@{2} = Node.Descendants.Where(nodeEl => nodeEl.Id == \"{1}\")" +
                        ".Select(nodeEl => new {0} (nodeEl)).ToList();" + "\n",
                        scenesCodeCooker.GetFullTypeOf(pft),
                        pft.ParsedNode.Id,
                        pft.FieldName
                        );
                }
                else
                {
                    result += string.Format(
                        "@{2} = new {0}(Node.Find<Node>(\"{1}\"));" + "\n",
                        scenesCodeCooker.GetFullTypeOf(pft),
                        pft.ParsedNode.Id,
                        pft.FieldName
                        );
                }
            }

            return(result);
        }