private void WriteTree(ResourceNode node)
        {
            ResourceFolder asFolder = node as ResourceFolder;
            ResourceItem   asItem   = node as ResourceItem;

            if (asFolder != null)
            {
                Write("public class ");
                WriteLine(asFolder.name);
                WriteLine("{");
                PushIndent(indent);
                for (int i = 0; i < asFolder.children.Count; i++)
                {
                    WriteTree(asFolder.children[i]);
                }
                PopIndent();
                WriteLine("}");
                WriteLine(string.Empty);
            }
            else if (asItem != null)
            {
                Write("public const string ");
                Write(NamingUtility.ToVariableName(asItem.name));
                Write(" = \"");
                Write(asItem.name + asItem.extension);
                WriteLine("\";");
            }
        }
        /// <summary>
        /// Invoked when the enum should be defined by this widget.
        /// </summary>
        public override void WriteEnumContent()
        {
            if (!m_CreateEnum)
            {
                return;
            }

            this.Write("/// <summary>\r\n/// An enum that contains the names of every tag that\r\n/// is defi" +
                       "ned in the project.\r\n/// </summary>\r\n");


            Write("public enum ");
            WriteLine(m_EnumName);
            WriteLine("{");
            PushIndent(indent);
            for (int i = 0; i < m_Tags.Length; i++)
            {
                Write(NamingUtility.ToVariableName(m_Tags[i]));
                if (i < m_Tags.Length - 1)
                {
                    WriteLine(",");
                }
                else
                {
                    WriteLine(string.Empty);
                }
            }
            PopIndent();
            WriteLine("}");
            WriteLine(string.Empty);
        }
Exemple #3
0
        /// <summary>
        /// This class contains all our GUI Content labels that we use in Script Forge
        /// </summary>
        public override void WriteClassContent()
        {
            // Const elements
            for (int i = 0; i < m_Scenes.Length; i++)
            {
                Write("public const string ");
                Write(NamingUtility.ToVariableName(m_Scenes[i]));
                Write(" = \"");
                Write(m_Scenes[i]);
                WriteLine("\";");
            }

            // Space
            WriteLine("");

            // Array
            WriteLine("// An array containing all the names of our scenes.");
            WriteLine("private static string[] m_Names = new string[]");
            WriteLine("{");
            PushIndent(indent);
            {
                for (int i = 0; i < m_Scenes.Length; i++)
                {
                    Write("\"");
                    Write(NamingUtility.ToVariableName(m_Scenes[i]));
                    WriteLine("\",");
                }
            }
            PopIndent();
            WriteLine("};");
        }
 /// <summary>
 /// This class contains all our GUI Content labels that we use in Script Forge
 /// </summary>
 public override void WriteClassContent()
 {
     for (int i = 0; i < m_Tags.Length; i++)
     {
         Write("public const string ");
         Write(NamingUtility.ToVariableName(m_Tags[i]));
         Write(" = \"");
         Write(m_Tags[i]);
         WriteLine("\";");
     }
 }
 /// <summary>
 /// This class contains all our GUI Content labels that we use in Script Forge
 /// </summary>
 public override void WriteClassContent()
 {
     for (int i = 0; i < m_SortingLayers.Length; i++)
     {
         if (!string.IsNullOrEmpty(m_SortingLayers[i]))
         {
             Write("public const string ");
             Write(NamingUtility.ToVariableName(m_SortingLayers[i]));
             Write(" = \"");
             Write(m_SortingLayers[i]);
             WriteLine("\";");
         }
     }
 }
Exemple #6
0
        /// <summary>
        /// This class contains all our GUI Content labels that we use in Script Forge
        /// </summary>
        public override void WriteClassContent()
        {
            WriteLine("public static class Int");
            WriteLine("{");
            PushIndent(indent);
            {
                for (int i = 0; i < m_Layers.Length; i++)
                {
                    if (!string.IsNullOrEmpty(m_Layers[i]))
                    {
                        Write("public const int ");
                        Write(NamingUtility.ToVariableName(m_Layers[i]));
                        Write(" = ");
                        Write(i.ToString());
                        WriteLine(";");
                    }
                }
            }
            PopIndent();
            WriteLine("}");

            if (m_CreateBitwise)
            {
                WriteLine("public static class Bit");
                WriteLine("{");
                PushIndent(indent);
                {
                    for (int i = 0; i < m_Layers.Length; i++)
                    {
                        if (!string.IsNullOrEmpty(m_Layers[i]))
                        {
                            Write("public const int ");
                            Write(m_Layers[i]);
                            Write(" = 1 << ");
                            Write(i.ToString());
                            WriteLine(";");
                        }
                    }
                }
                PopIndent();
                WriteLine("}");
            }
        }
        /// <summary>
        /// Invoked when the enum should be defined by this widget.
        /// </summary>
        public override void WriteEnumContent()
        {
            if (!m_CreateEnum)
            {
                return;
            }

            this.Write("/// <summary>\r\n/// An enum that contains the names of every scene that\r\n/// is in" +
                       " your project.\r\n/// </summary>\r\n");


            Write("public enum ");
            WriteLine(m_EnumName);
            WriteLine("{");
            PushIndent(indent);
            for (int i = 0; i < m_SortingLayers.Length; i++)
            {
                if (!string.IsNullOrEmpty(m_SortingLayers[i]))
                {
                    Write(NamingUtility.ToVariableName(m_SortingLayers[i]));
                    Write(" = ");
                    Write(i.ToString());
                    if (i < m_SortingLayers.Length - 1)
                    {
                        WriteLine(",");
                    }
                    else
                    {
                        WriteLine(string.Empty);
                    }
                }
            }
            PopIndent();
            WriteLine("}");
            WriteLine(string.Empty);
        }
 public bool IsLegalASCIIIdentifier(string value)
 {
     return(NamingUtility.IsLegalASCIIIdentifier(value));
 }
 public bool IsLegalASCIIIdentifierCharacter(char c)
 {
     return(NamingUtility.IsLegalASCIIIdentifierCharacter(c));
 }
Exemple #10
0
        /// <summary>
        /// This class contains all our GUI Content labels that we use in Script Forge
        /// </summary>
        public override void WriteClassContent()
        {
            foreach (var controllerClass in m_AnimatorControllerMap)
            {
                PushIndent(indent);
                {
                    Write("public static class ");
                    WriteLine(controllerClass.Key);
                    WriteLine("{");
                    PushIndent(indent);
                    {
                        // Clip Names
                        if (m_GenerateClipNames)
                        {
                            WriteLine("public static class Clips");
                            WriteLine("{");
                            PushIndent(indent);
                            {
                                // Constants
                                foreach (AnimatorController controller in controllerClass.Value)
                                {
                                    foreach (AnimationClip animationClip in controller.animationClips)
                                    {
                                        WriteLine("/// <summary>");
                                        Write("/// Length: ");
                                        Write(animationClip.length.ToString("0.00"));
                                        WriteLine(" Seconds");
                                        WriteLine("/// </summary>");
                                        Write("public static readonly int ");
                                        Write(NamingUtility.ToVariableName(animationClip.name));
                                        WriteLine(";");
                                    }
                                }

                                this.Write("\r\n/// <summary>\r\n/// Initializes all our Animations Clips with their hash the\r\n//" +
                                           "/ first time this class is referenced.\r\n/// </summary>\r\n");


                                WriteLine("static Clips()");
                                WriteLine("{");
                                PushIndent(indent);
                                {
                                    // Initialize Animation Hashes.
                                    if (m_GenerateClipNames)
                                    {
                                        foreach (AnimatorController controller in controllerClass.Value)
                                        {
                                            foreach (AnimationClip animationClip in controller.animationClips)
                                            {
                                                Write(NamingUtility.ToVariableName(animationClip.name));
                                                Write(" = ");
                                                Write("Animator.StringToHash(\"");
                                                Write(animationClip.name);
                                                WriteLine("\");");
                                            }
                                        }
                                    }
                                }
                                PopIndent();
                                WriteLine("}");
                            }
                            PopIndent();
                            WriteLine("}");
                            WriteLine("");
                        }

                        // Layer Names
                        if (m_GenerateLayerNames)
                        {
                            WriteLine("public static class Layers");
                            WriteLine("{");
                            PushIndent(indent);
                            {
                                foreach (AnimatorController controller in controllerClass.Value)
                                {
                                    foreach (var layer in controller.layers)
                                    {
                                        Write("public const string ");
                                        Write(NamingUtility.ToVariableName(layer.name));
                                        Write(" = \"");
                                        Write(layer.name);
                                        WriteLine("\";");
                                    }
                                }
                            }
                            PopIndent();
                            WriteLine("}");
                            WriteLine("");
                        }

                        // Parameters
                        if (m_GenerateParamaters)
                        {
                            WriteLine("public static class Parameters");
                            WriteLine("{");
                            PushIndent(indent);
                            {
                                // Constants
                                foreach (AnimatorController controller in controllerClass.Value)
                                {
                                    foreach (AnimatorControllerParameter parameter in controller.parameters)
                                    {
                                        WriteLine("/// <summary>");
                                        Write("/// Type: ");
                                        WriteLine(parameter.type.ToString());
                                        WriteLine("/// </summary>");
                                        Write("public static int ");
                                        Write(NamingUtility.ToVariableName(parameter.name));
                                        Write(" = ");
                                        Write(parameter.nameHash.ToString());
                                        WriteLine(";");
                                    }
                                }
                                WriteLine("");
                                // Utility Functions
                                foreach (AnimatorController controller in controllerClass.Value)
                                {
                                    foreach (AnimatorControllerParameter parameter in controller.parameters)
                                    {
                                        Write("public static void Set");
                                        Write(NamingUtility.ToVariableName(parameter.name));
                                        Write("(Animator animator");
                                        switch (parameter.type)
                                        {
                                        case AnimatorControllerParameterType.Trigger:
                                            WriteLine(")");
                                            WriteLine("{");
                                            PushIndent(indent);
                                            Write("animator.SetTrigger(");
                                            Write(NamingUtility.ToVariableName(parameter.name));
                                            WriteLine(");");
                                            break;

                                        case AnimatorControllerParameterType.Bool:
                                            WriteLine(", bool value)");
                                            WriteLine("{");
                                            PushIndent(indent);
                                            Write("animator.SetBool(");
                                            Write(NamingUtility.ToVariableName(parameter.name));
                                            WriteLine(", value);");
                                            break;

                                        case AnimatorControllerParameterType.Int:
                                            WriteLine(", int value)");
                                            WriteLine("{");
                                            PushIndent(indent);
                                            Write("animator.SetInteger(");
                                            Write(NamingUtility.ToVariableName(parameter.name));
                                            WriteLine(", value);");
                                            break;

                                        case AnimatorControllerParameterType.Float:
                                            WriteLine(", float value)");
                                            WriteLine("{");
                                            PushIndent(indent);
                                            Write("animator.SetFloat(");
                                            Write(NamingUtility.ToVariableName(parameter.name));
                                            WriteLine(", value);");
                                            break;
                                        }
                                        PopIndent();
                                        WriteLine("}");
                                        WriteLine("");
                                    }
                                }
                            }
                            PopIndent();
                            WriteLine("}");
                            WriteLine("");
                        }


                        // Initializer
                    }
                    PopIndent();
                    WriteLine("}");
                    WriteLine("");
                }
                PopIndent();
            }
        }
Exemple #11
0
 public ResourceItem(string fileName)
 {
     extension = Path.GetExtension(fileName);
     name      = Path.GetFileNameWithoutExtension(fileName);
     safeName  = NamingUtility.ToVariableName(name);
 }
Exemple #12
0
        public string GenerateClass(Table table, string rootNamespace, Db model, string safedCode = "")
        {
            StringBuilder builder    = new StringBuilder();
            string        @namespace = rootNamespace;

            StringCollection addedNameSpaces = new StringCollection();

            addedNameSpaces.Add(NamingUtility.GetFullNamespace(rootNamespace, table.Name));

            // @@@ scafftools makedomain generated @@@
            // @@@ at 01.06.2015 00:43:59 @@@

            builder.AppendLine("// @@@ scafftools makedomain generated @@@");
            builder.AppendFormat("// @@@ at {0} @@@\r\n", DateTime.Now);

            //set using statements
            builder.AppendLine("");
            builder.AppendLine("using System;");
            builder.AppendLine("using System.Collections.Generic;");
            foreach (var relation in table.Relations)
            {
                var nms = NamingUtility.GetFullNamespace(@namespace, relation.OuterTable.Name);
                if (!addedNameSpaces.Contains(nms))
                {
                    builder.AppendFormat("using {0};\r\n", nms);
                    addedNameSpaces.Add(nms);
                }
            }
            foreach (var outTable in model.Tables.Where(t => t.Name != table.Name).ToList())
            {
                foreach (var relation in outTable.Relations.Where(r => r.OuterTable.Name == table.Name))
                {
                    var nms = NamingUtility.GetFullNamespace(@namespace, outTable.Name);
                    if (!addedNameSpaces.Contains(nms))
                    {
                        builder.AppendFormat("using {0};\r\n", nms);
                        addedNameSpaces.Add(nms);
                    }
                }
            }

            builder.AppendLine("");

            //namespace
            builder.AppendFormat("namespace {0}\r\n", NamingUtility.GetFullNamespace(rootNamespace, table.Name));
            builder.AppendLine("{");

            //class

            var className = NamingUtility.RemoveSFromName(NamingUtility.GetCleanTableName(table.Name));

            builder.AppendFormat("\tpublic class {0}\r\n", className);
            builder.AppendFormat("\t");
            builder.Append("{");
            builder.AppendFormat("\r\n");

            foreach (var field in table.Columns)
            {
                string typeName = GetTypeName(field.Type);
                bool   nullable = false;

                if (GetTypeNameType(typeName).IsValueType&& field.CanBeNull)
                {
                    nullable = true;
                }

                //property
                builder.AppendLine("\t\t// @@@ scafftools property generated @@@");
                builder.AppendFormat("\t\tpublic {0}{1} {2} ", typeName, nullable == true ? "?" : "", field.Name);
                builder.Append("{ get; set; }");
                builder.AppendFormat("\r\n");
                //end of property
            }

            foreach (var relation in table.Relations)
            {
                var propertyName = NamingUtility.RemoveIdFromName(relation.UniqueColumnKey.Name);

                var cleanTableName = NamingUtility.GetCleanTableName(relation.OuterTable.Name);

                builder.AppendLine("\t\t// @@@ scafftools makedomain generated @@@");
                builder.AppendFormat("\t\tpublic virtual {0} {1} ",
                                     NamingUtility.RemoveSFromName(cleanTableName), propertyName);
                builder.Append("{ get; set; }");
                builder.AppendFormat("\r\n");
            }

            var outTables = model.Tables.Where(t => t.Name != table.Name).ToList();// && table.Relations.Any(a => a.OuterTable.Name == table.Name)).ToList(); //t.Name != table.Name &&

            foreach (var outTable in outTables)
            {
                foreach (var relation in outTable.Relations.Where(r => r.OuterTable.Name == table.Name))
                {
                    var propertyName = NamingUtility.GetCleanTableName(outTable.Name);

                    builder.AppendLine("\t\t// @@@ scafftools makedomain generated @@@");
                    builder.AppendFormat("\t\tpublic virtual ICollection<{0}> {1} ",
                                         NamingUtility.RemoveSFromName(NamingUtility.GetCleanTableName(outTable.Name)), propertyName);
                    builder.Append("{ get; set; }");
                    builder.AppendFormat("\r\n");
                }
            }

            //back safed code
            if (safedCode != string.Empty)
            {
                builder.Append(safedCode);
            }

            //end of class
            builder.AppendFormat("\t");
            builder.Append("}");
            builder.AppendFormat("\r\n");


            //end of namespace
            builder.AppendLine("}");

            return(builder.ToString());
        }