Esempio n. 1
0
        public override ILineObject Generate(GenerationEnvironment env)
        {
            var funcName = env.GenerateActionAsActorInit(ActionName);
            var dir      = ThisExpr.Instance.MakeIndex("direction");

            if (Direction == CreateBulletDirection.Opposite)
            {
                dir = new UnOpExpr(dir, UnOpExpr.Op.Sub);
            }
            return(new SimpleBlock(new ILineObject[] {
                //create t
                new SimpleLineObject("local t = this.DefaultShotTable();"),

                //set parent actor
                new SimpleLineObject("t.flag1 = { wr = this.weakref() };"),

                //TODO setup t

                //create actor
                ThisExpr.Instance.MakeIndex("world2d").MakeIndex("CreateActor").Call(
                    Position.GenerateX(ThisExpr.Instance, env),
                    Position.GenerateY(ThisExpr.Instance, env),
                    dir,
                    ThisExpr.Instance.MakeIndex("u").MakeIndex("uu").MakeIndex("uuu").MakeIndex(funcName),
                    new IdentifierExpr("t")
                    ).Statement(),

                //clear actor reference (safety)
                new SimpleLineObject("t.flag1 = null;"),
            }).Statement());
        }
Esempio n. 2
0
 public override ILineObject Generate(GenerationEnvironment env)
 {
     return(new SimpleBlock(new ILineObject[] {
         ThisExpr.Instance.MakeIndex("game").MakeIndex("timeStop").Assign(new ConstNumberExpr(Time)).Statement(),
         ThisExpr.Instance.MakeIndex("Set_MonoColor").Call().Statement(),
     }).Statement());
 }
Esempio n. 3
0
        public override ILineObject Generate(GenerationEnvironment env)
        {
            var funcName = env.GenerateActionAsActorInit(Action);

            return(ThisExpr.Instance.MakeIndex("hitEffect").Assign(
                       ThisExpr.Instance.MakeIndex("u").MakeIndex("uu").MakeIndex("uuu").MakeIndex(funcName)).Statement());
        }
Esempio n. 4
0
        /// <summary>
        ///     Create the template output
        /// </summary>
        public virtual string TransformText()
        {
            Write("\r\n<html>\r\n<body>\r\n<h1>Course</h2>\r\n<table>\r\n    ");

#line 11 "E:\Git\TestProject\T4Demo3\RuntimeTextTemplate.tt"
            foreach (string item in Items)
            {
#line default
#line hidden
                Write("         <tr><td>");

#line 13 "E:\Git\TestProject\T4Demo3\RuntimeTextTemplate.tt"
                Write(ToStringHelper.ToStringWithCulture(Content(item)));

#line default
#line hidden
                Write(" </td></tr>\r\n    ");

#line 14 "E:\Git\TestProject\T4Demo3\RuntimeTextTemplate.tt"
            }

#line default
#line hidden
            Write(" </table>\r\n </body>\r\n </html>\r\n\r\n");
            return(GenerationEnvironment.ToString());
        }
Esempio n. 5
0
        public void Save()
        {
            var dir = Path.Combine(_model.RootPath, _model.Project.Code,
                                   $"src/UI/{_model.Project.WebUIDicName}/src/api/components");

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            if (_model.Project.ClassList != null && _model.Project.ClassList.Any())
            {
                foreach (var classModel in _model.Project.ClassList)
                {
                    _class = classModel;

                    //清空
                    GenerationEnvironment.Clear();

                    var content = TransformText();

                    var filePath = Path.Combine(dir, $"{_class.Name.FirstCharToLower()}.js");
                    File.WriteAllText(filePath, content);
                }
            }
        }
Esempio n. 6
0
        public void Save()
        {
            if (_model.Project.ClassList != null && _model.Project.ClassList.Any())
            {
                foreach (var classModel in _model.Project.ClassList)
                {
                    _class = classModel;

                    var dir = Path.Combine(_model.RootPath, _model.Project.Code, "src/Library/Domain", _class.Name, "Models");
                    if (!Directory.Exists(dir))
                    {
                        Directory.CreateDirectory(dir);
                    }

                    _propertyList = classModel.ModelPropertyList
                                    .Where(m => m.ModelType == ModelType.Query).ToList();

                    //清空
                    GenerationEnvironment.Clear();

                    var content = TransformText();

                    var filePath = Path.Combine(dir, $"{_class.Name}QueryModel.cs");
                    File.WriteAllText(filePath, content);
                }
            }
        }
Esempio n. 7
0
 /// <summary>
 /// Write text directly into the generated output
 /// </summary>
 /// <param name="textToAppend"></param>
 public void Write(string textToAppend)
 {
     if (string.IsNullOrEmpty(textToAppend))
     {
         return;
     }
     if (GenerationEnvironment.Length == 0 || endsWithNewline)
     {
         GenerationEnvironment.Append(currentIndentField);
         endsWithNewline = false;
     }
     if (textToAppend.EndsWith(Environment.NewLine, StringComparison.CurrentCulture))
     {
         endsWithNewline = true;
     }
     if (currentIndentField.Length == 0)
     {
         GenerationEnvironment.Append(textToAppend);
         return;
     }
     textToAppend = textToAppend.Replace(Environment.NewLine, Environment.NewLine + currentIndentField);
     if (endsWithNewline)
     {
         GenerationEnvironment.Append(textToAppend, 0, textToAppend.Length - currentIndentField.Length);
     }
     else
     {
         GenerationEnvironment.Append(textToAppend);
     }
 }
Esempio n. 8
0
        public async Task <string> GenerateAsync(DnfClient client, Func <JProperty, bool> filter)
        {
            var objects = await RetrieveSObjectsAsync(client)
                          .ConfigureAwait(false);

            GenerationEnvironment.Append(@"using DotNetForce;
using DotNetForce.Schema;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace ").Append(SchemaNamespace).Append(@"
{");
            GenerateSchema(objects);

            foreach (var prop in objects.Properties().Where(p => filter?.Invoke(p) != false))
            {
                // await WriteJsonAsync(prop.Name, prop.Value).ConfigureAwait(false);
                GenerateObject(prop.Name, prop.Value);
            }
            GenerationEnvironment.Append(@"
}");
            return(GenerationEnvironment.ToString());
        }
Esempio n. 9
0
        public override ILineObject Generate(GenerationEnvironment env)
        {
            var ret = new SimpleBlock(new ILineObject[] {
                _ClearLabel.Generate(env),
                _InitCount.Generate(env),
                _SetMotion.Generate(env),
                _AdjustDirection.Generate(env),
            }).Statement();

            if (AutoCancel)
            {
                if (IsInAir)
                {
                    ret = new SimpleBlock(new ILineObject[] {
                        ret,
                        _SitCancel.Generate(env),
                    }).Statement();
                }
                else
                {
                    ret = new SimpleBlock(new ILineObject[] {
                        ret,
                        _FallCancel.Generate(env),
                    }).Statement();
                }
            }
            return(ret);
        }
Esempio n. 10
0
        public virtual string TransformText()
        {
            GenerationEnvironment = null;
            Write("\r\nList<ProdLogger> loggers = new  List<ProdLogger>();\r\nloggers.Add(example);\r\nPro" + "dWindow window = new ProdWindow(\"");

#line 8 "C:\Documents and Settings\PRP9434\My Documents\Projects\produi\ProdUISystem\ProdCodeGenerator\csProdHeader.tt"
            Write(ToStringHelper.ToStringWithCulture(WindowName));

#line default
#line hidden
            Write("\");\r\n");

#line 9 "C:\Documents and Settings\PRP9434\My Documents\Projects\produi\ProdUISystem\ProdCodeGenerator\csProdHeader.tt"
            Write(ToStringHelper.ToStringWithCulture(ControlType));

#line default
#line hidden
            Write(" ctrl = new ");

#line 9 "C:\Documents and Settings\PRP9434\My Documents\Projects\produi\ProdUISystem\ProdCodeGenerator\csProdHeader.tt"
            Write(ToStringHelper.ToStringWithCulture(ControlType));

#line default
#line hidden
            Write("(window,\"");

#line 9 "C:\Documents and Settings\PRP9434\My Documents\Projects\produi\ProdUISystem\ProdCodeGenerator\csProdHeader.tt"
            Write(ToStringHelper.ToStringWithCulture(ControlName));

#line default
#line hidden
            Write("\");");
            return(GenerationEnvironment.ToString());
        }
 /// <summary>
 ///     Create the template output
 /// </summary>
 public virtual string TransformText()
 {
     Write("#include \"Uniforms.hlsl\"\r\n#include \"Samplers.hlsl\"\r\n#include \"Transform.hlsl\"\r\n\r\n" +
           "void VS(float4 iPos : POSITION,\r\n    #ifdef DIFFMAP\r\n        float2 iTexCoord : " +
           "TEXCOORD0,\r\n    #endif\r\n    #ifdef VERTEXCOLOR\r\n        float4 iColor : COLOR0,\r" +
           "\n    #endif\r\n    #ifdef SKINNED\r\n        float4 iBlendWeights : BLENDWEIGHT,\r\n  " +
           "      int4 iBlendIndices : BLENDINDICES,\r\n    #endif\r\n    #ifdef INSTANCED\r\n    " +
           "    float4x3 iModelInstance : TEXCOORD4,\r\n    #endif\r\n    #if defined(BILLBOARD)" +
           " || defined(DIRBILLBOARD)\r\n        float2 iSize : TEXCOORD1,\r\n    #endif\r\n    #i" +
           "f defined(DIRBILLBOARD) || defined(TRAILBONE)\r\n        float3 iNormal : NORMAL,\r" +
           "\n    #endif\r\n    #if defined(TRAILFACECAM) || defined(TRAILBONE)\r\n        float4" +
           " iTangent : TANGENT,\r\n    #endif\r\n    #ifdef DIFFMAP\r\n        out float2 oTexCoo" +
           "rd : TEXCOORD0,\r\n    #endif\r\n    #ifdef VERTEXCOLOR\r\n        out float4 oColor :" +
           " COLOR0,\r\n    #endif\r\n    #if defined(D3D11) && defined(CLIPPLANE)\r\n        out " +
           "float oClip : SV_CLIPDISTANCE0,\r\n    #endif\r\n    out float4 oPos : OUTPOSITION)\r" +
           "\n{\r\n    float4x3 modelMatrix = iModelMatrix;\r\n    float3 worldPos = GetWorldPos(" +
           "modelMatrix);\r\n    oPos = GetClipPos(worldPos);\r\n\r\n    #if defined(D3D11) && def" +
           "ined(CLIPPLANE)\r\n        oClip = dot(oPos, cClipPlane);\r\n    #endif\r\n\r\n    #ifde" +
           "f VERTEXCOLOR\r\n        oColor = iColor;\r\n    #endif\r\n    #ifdef DIFFMAP\r\n       " +
           " oTexCoord = iTexCoord;\r\n    #endif\r\n}\r\n\r\nvoid PS(\r\n    #if defined(DIFFMAP) || " +
           "defined(ALPHAMAP)\r\n        float2 iTexCoord : TEXCOORD0,\r\n    #endif\r\n    #ifdef" +
           " VERTEXCOLOR\r\n        float4 iColor : COLOR0,\r\n    #endif\r\n    #if defined(D3D11" +
           ") && defined(CLIPPLANE)\r\n        float iClip : SV_CLIPDISTANCE0,\r\n    #endif\r\n  " +
           "  out float4 oColor : OUTCOLOR0)\r\n{\r\n    float4 diffColor = cMatDiffColor;\r\n\r\n  " +
           "  #ifdef VERTEXCOLOR\r\n        diffColor *= iColor;\r\n    #endif\r\n\r\n    #if (!defi" +
           "ned(DIFFMAP)) && (!defined(ALPHAMAP))\r\n        oColor = diffColor;\r\n    #endif\r\n" +
           "    #ifdef DIFFMAP\r\n        float4 diffInput = Sample2D(DiffMap, iTexCoord);\r\n  " +
           "      #ifdef ALPHAMASK\r\n            if (diffInput.a < 0.5)\r\n                disc" +
           "ard;\r\n        #endif\r\n        oColor = diffColor * diffInput;\r\n    #endif\r\n    #" +
           "ifdef ALPHAMAP\r\n        float alphaInput = Sample2D(DiffMap, iTexCoord).a;\r\n    " +
           "    oColor = float4(diffColor.rgb, diffColor.a * alphaInput);\r\n    #endif\r\n}\r\n");
     return(GenerationEnvironment.ToString());
 }
Esempio n. 12
0
        public void Write(string textToAppend)
        {
            // clear new lines
            Regex lineEndings = new Regex(@"\r\n|\n|\r");

            textToAppend = lineEndings.Replace(textToAppend, Environment.NewLine + _currentIndent);

            // indent new line
            if (_endWithNewLine)
            {
                GenerationEnvironment.Append(_currentIndent);
            }
            if (textToAppend.EndsWith(Environment.NewLine + _currentIndent))
            {
                textToAppend = textToAppend.Substring(0,
                                                      textToAppend.Length - _currentIndent.Length);
                _endWithNewLine = true;
            }
            else
            {
                _endWithNewLine = false;
            }

            GenerationEnvironment.Append(textToAppend);
        }
Esempio n. 13
0
        public void Save()
        {
            var dir = Path.Combine(_model.RootPath, _model.Project.Code, "src/Library/Infrastructure/Repositories/SqlServer");

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            if (_model.Project.ClassList != null && _model.Project.ClassList.Any())
            {
                foreach (var classModel in _model.Project.ClassList)
                {
                    _class = classModel;

                    //清空
                    GenerationEnvironment.Clear();

                    var content = TransformText();

                    var filePath = Path.Combine(dir, $"{_class.Name}Repository.cs");
                    File.WriteAllText(filePath, content);
                }
            }
        }
Esempio n. 14
0
        public void Write(string textToAppend)
        {
            // 消除混乱的换行然后顺便在换行处插入缩进
            Regex lineEndings = new Regex(@"\r\n|\n|\r");

            textToAppend = lineEndings.Replace(textToAppend, Environment.NewLine + _currentIndent);

            // 从新行开始插入的时候先插入缩进
            if (_endWithNewLine)
            {
                GenerationEnvironment.Append(_currentIndent);
            }
            if (textToAppend.EndsWith(Environment.NewLine + _currentIndent))
            {
                textToAppend = textToAppend.Substring(0,
                                                      textToAppend.Length - _currentIndent.Length);
                _endWithNewLine = true;
            }
            else
            {
                _endWithNewLine = false;
            }

            GenerationEnvironment.Append(textToAppend);
        }
Esempio n. 15
0
        public override ILineObject Generate(GenerationEnvironment env)
        {
            List <ILineObject> ret = new List <ILineObject>();

            if (CheckInstance != null && CheckInstance.Length != 0)
            {
                ret.Add(new ControlBlock(ControlBlockType.If,
                                         new BiOpExpr(ActorVariableHelper.GenerateGet(CheckInstance), ThisExpr.Instance.MakeIndex("name"), BiOpExpr.Op.NotEqual),
                                         new ILineObject[] {
                    ThisExpr.Instance.MakeIndex("Release").Call().Statement(),
                }).Statement());
            }

            var ownerActor = new IdentifierExpr("ownerActor");
            var x          = Position.GenerateX(ownerActor, env);
            var y          = Position.GenerateY(ownerActor, env);

            var setRotation = ThisExpr.Instance.MakeIndex("rz").Assign(ownerActor.MakeIndex("rz")).Statement();

            ret.AddRange(new ILineObject[] {
                new LocalVarStatement("ownerActor", ActorVariableHelper.GenerateGet("SYS_parent").MakeIndex("wr")),
                new ControlBlock(ControlBlockType.If, "ownerActor != null", new ILineObject[] {
                    ThisExpr.Instance.MakeIndex("x").Assign(x).Statement(),
                    ThisExpr.Instance.MakeIndex("y").Assign(y).Statement(),
                    IgnoreRotation ? new SimpleLineObject("") : setRotation,
                }).Statement(),
                new ControlBlock(ControlBlockType.Else, new ILineObject[] {
                    ThisExpr.Instance.MakeIndex("Release").Call().Statement(),
                }).Statement(),
            });

            return(new SimpleBlock(ret).Statement());
        }
Esempio n. 16
0
        public void GenerateSchema(JObject objects)
        {
            GenerationEnvironment.Append(@"
	public class "     + SchemaName + @"
	{
		private static "         + SchemaName + @" _Instance { get; set; }
		public static "         + SchemaName + @" Instance
        {
            get
            {
                if (_Instance == null)
                {
                    _Instance = new " + SchemaName + @"();
                }
                return _Instance;
            }
        }
        public static T Of<T>(Func<" + SchemaName + @", T> func) { return func(Instance); }
        public static void Of<T>(Func<" + SchemaName + @", T> func, Action<T> action) { action(func(Instance)); }
        public static TOut Of<T, TOut>(Func<" + SchemaName + @", T> func, Func<T, TOut> getter) { return getter(func(Instance)); }

");
            foreach (var objName in objects.Properties().Select(p => p.Name))
            {
                GenerationEnvironment.Append(@"
		public Sf"        ).Append(objName).Append(@" ").Append(objName).Append(@" { get { return new Sf").Append(objName).Append(@"(); } }
");
            }
            GenerationEnvironment.Append(@"
	}
");
            //await GenerateFileAsync("" + SchemaName + @".cs").ConfigureAwait(false);
        }
Esempio n. 17
0
        public override Expression Generate(GenerationEnvironment env)
        {
            BiOpExpr.Op opr;
            switch (Operator)
            {
            case CompareOperator.Equal:
                opr = BiOpExpr.Op.Equal;
                break;

            case CompareOperator.Greater:
                opr = BiOpExpr.Op.Greater;
                break;

            case CompareOperator.GreaterOrEqual:
                opr = BiOpExpr.Op.GreaterOrEqual;
                break;

            case CompareOperator.NotEqual:
                opr = BiOpExpr.Op.NotEqual;
                break;

            default:
                return(new ConstNumberExpr(0));
            }
            return(new BiOpExpr(Left.Generate(env), Right.Generate(env), opr));
        }
Esempio n. 18
0
        public void Save()
        {
            var dir = Path.Combine(_model.RootPath, "src/Web/Controllers");

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            if (_model.Module.ClassList != null && _model.Module.ClassList.Any())
            {
                foreach (var classModel in _model.Module.ClassList)
                {
                    _class = classModel;

                    //清空
                    GenerationEnvironment.Clear();

                    var content = TransformText();

                    var filePath = Path.Combine(dir, $"{_class.Name}Controller.cs");
                    File.WriteAllText(filePath, content);
                }
            }
        }
Esempio n. 19
0
        /// <summary>
        /// Writes the namespace (if it has one) and the class and all braces. This function
        /// will then call WriteNamespaceContent for stuff in that scope and WriteClassContent()
        /// for everything contained in that scope.
        /// </summary>
        public virtual void WriteClassOutline()
        {
            this.Write("//------------------------------------------------------------------------------\r" +
                       "\n// <auto-generated>\r\n// ");

            this.Write(this.ToStringHelper.ToStringWithCulture(Path.GetFileName(m_SaveLocation)));

            this.Write("\r\n// This code was generated by ScriptForge. To rebuild the code go to \r\n// Proje" +
                       "ct Settings ->Script Forge and on that window hit generate all. Any\r\n// changes " +
                       "made to this script will be overwritten.  \r\n// Asset Hash: ");

            this.Write(this.ToStringHelper.ToStringWithCulture(m_AssetHash));

            this.Write("\r\n// </auto-generated>\r\n//-------------------------------------------------------" +
                       "-----------------------\r\n");


            bool hasNamespace = !string.IsNullOrEmpty(m_Namespace);

            if (hasNamespace)
            {
                Write("namespace ");
                WriteLine(m_Namespace);
                WriteLine("{");
                PushIndent(m_Indent);
            }

            WriteNamespaceContent();

            WriteEnumContent();

            {   // Start class
                Write("public ");
                if (m_IsStaticClass)
                {
                    Write("static ");
                }

                if (m_IsPartialClass)
                {
                    Write("partial ");
                }
                Write("class ");
                WriteLine(m_ClassName);
                WriteLine("{");
                PushIndent(m_Indent);
                WriteEnumContent();
                WriteClassContent();
                WriteHelperFunctions();
                PopIndent();
                Write("}");
            } // End Class
            if (hasNamespace)
            {
                PopIndent();
                GenerationEnvironment.AppendLine();
                Write("}");
            }
        }
Esempio n. 20
0
        public override Expression Generate(GenerationEnvironment env)
        {
            var count = ThisExpr.Instance.MakeIndex("count");

            return(new BiOpExpr(
                       new BiOpExpr(count, Divisor.Generate(env), BiOpExpr.Op.Mod),
                       Mod.Generate(env), BiOpExpr.Op.Equal));
        }
Esempio n. 21
0
 public void WriteLines(IEnumerable <string> strings)
 {
     foreach (var s in strings)
     {
         GenerationEnvironment.Append(currentIndent);
         GenerationEnvironment.AppendLine(s);
     }
 }
Esempio n. 22
0
 private void SaveOutput(String filename)
 {
     /* "this" refers to the T4 TextTransformation instance that's producing the output.
      *  See https://msdn.microsoft.com/en-us/library/Microsoft.VisualStudio.TextTemplating.TextTransformation.aspx. */
     Directory.CreateDirectory(Path.GetDirectoryName(filename));
     File.Delete(filename);
     File.WriteAllText(filename, this.GenerationEnvironment.ToString());
     GenerationEnvironment.Clear();
 }
        protected void Write(string textToAppend)
        {
            if (string.IsNullOrEmpty(textToAppend))
            {
                return;
            }

            GenerationEnvironment.Append(textToAppend);
        }
Esempio n. 24
0
        public override ILineObject Generate(GenerationEnvironment env)
        {
            var ret = ThisExpr.Instance.MakeIndex("SetMotion").Call(
                ThisExpr.Instance.MakeIndex("motion"),
                new BiOpExpr(ThisExpr.Instance.MakeIndex("keyTake"), new ConstNumberExpr(1), BiOpExpr.Op.Add)
                ).Statement();

            return(SetMotionEffectHelper.Generate(env, ret));
        }
Esempio n. 25
0
        public override ILineObject Generate(GenerationEnvironment env)
        {
            var id      = env.GetActionID(Animation);
            var segment = new BiOpExpr(ThisExpr.Instance.MakeIndex("rand").Call(),
                                       new ConstNumberExpr(SegmentCount), BiOpExpr.Op.Mod);
            var ret = ThisExpr.Instance.MakeIndex("SetMotion").Call(new ConstNumberExpr(id), segment).Statement();

            return(SetMotionEffectHelper.Generate(env, ret));
        }
Esempio n. 26
0
        private void SaveGeneratedCodeAsFile(string fileName)
        {
            string dir = Path.GetDirectoryName(Host.TemplateFile);

            string outputFilePath = Path.Combine(dir, fileName);

            File.WriteAllText(outputFilePath, GenerationEnvironment.ToString());

            GenerationEnvironment.Clear();
        }
Esempio n. 27
0
        /// <summary>
        /// Validates and then performs the variable replacements in the given template
        /// </summary>
        /// <returns>Evaluated template</returns>
        public string Print()
        {
            if (!Validate())
            {
                return(null);
            }

            GenerationEnvironment.Clear();
            return(TransformText());
        }
Esempio n. 28
0
        public override Expression Generate(GenerationEnvironment env)
        {
            var level = (int)Math.Ceiling((Max - Min) / Step) + 1;

            return(new BiOpExpr(new ConstNumberExpr(Min),
                                new BiOpExpr(
                                    new BiOpExpr(ThisExpr.Instance.MakeIndex("rand").Call(), new ConstNumberExpr(level), BiOpExpr.Op.Mod),
                                    new ConstNumberExpr(Step), BiOpExpr.Op.Multiply),
                                BiOpExpr.Op.Add));
        }
        public string Generate(string nameSpace, string className)
        {
            Namespace = nameSpace;
            ClassName = className;
            Effects   = _GenerateEffectsDictionary();

            GenerationEnvironment.Clear();

            return(TransformText());
        }
 protected void BlankLine(ref bool first)
 {
     if (first)
     {
         first = false;
     }
     else
     {
         GenerationEnvironment.AppendLine();
     }
 }