private void compileButton_Click(object sender, EventArgs e) { script.Source = scriptBox.Text; HeightRender.Generator generator; string errors; switch (HeightRender.CompileGenerator(script, out generator, out errors)) { case HeightRender.GeneratorCompileResult.WrongGenerateSignature: MessageBox.Show("The method signature for the \"Generate\" function should be:\n\nfloat Generate(int x, int y, HeightField heightField)", "Script Error"); break; case HeightRender.GeneratorCompileResult.MissingGenerateFunction: MessageBox.Show("The \"Generate\" function is missing from your script.", "Script Error"); break; case HeightRender.GeneratorCompileResult.SyntaxError: MessageBox.Show("There was a compilation error in your script:\r\n" + errors, "Script Error"); break; case HeightRender.GeneratorCompileResult.Success: Document.SetGenerator(generatorName, generator, script); break; } }
private static GeneratorScript LoadGenerator(Stream stream) { CSScript script = new CSScript(); script.Source = LoadText(stream); HeightRender.Generator generator; string errors; HeightRender.CompileGenerator(script, out generator, out errors); GeneratorScript gs = new GeneratorScript() { generator = generator, script = script }; return(gs); }