public static void GenerateRecap(CodeMemberMethod generate, Text text, CodeGeneratorContext context) { CodeGeneration_Randomiser.Ensure(context); generate.Statements.Add(new CodeMethodInvokeExpression( CodeConstants.RequestVariableRef, "SetValue", new CodePrimitiveExpression("scene_recap"), CodeConstants.GeneratePickFrom(text.Content))); }
public static void GenerateSay(CodeMemberMethod generate, Text text, CodeGeneratorContext context) { CodeGeneration_Randomiser.Ensure(context); foreach (var content in text.Content) { var variableReady = VariableSplitArray(content); var method = new CodeMethodInvokeExpression( new CodeTypeReferenceExpression("Output"), "AddSpeech", new CodeVariableReferenceExpression(CodeConstants.RequestVariableName), variableReady.Length == 1 ? variableReady[0] : new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(typeof(string)), "Concat", variableReady)); generate.Statements.Add(method); } }
public static void Ensure(CodeGeneratorContext context) { if (context.SceneFiles.ContainsKey("Randomiser")) { return; } var code = new CodeCompileUnit(); var ns = new CodeNamespace(context.Options.SafeRootNamespace); ns.Imports.Add(new CodeNamespaceImport("System.Security.Cryptography")); code.Namespaces.Add(ns); var randomiserClass = CodeGeneration_Randomiser.Generate(); ns.Types.Add(randomiserClass); context.SceneFiles.Add("Randomiser", code); }