コード例 #1
0
        protected override void Write(ComponentRenderer renderer, HeadingBlock heading)
        {
            int level = Math.Min(Math.Max(heading.Level, 1), 6);

            // Ignore the level 1 title and let PostPage to render it with greater flexibilities.
            if (level == 1)
            {
                return;
            }

            renderer.Builder.OpenComponent <MudText>(0);

            renderer.Builder.AddAttribute(1, "Typo", _headingTypos[level - 1]);

            if (level == 2)
            {
                renderer.Builder.AddAttribute(2, "Color", Color.Secondary);
            }

            if (level < 5)
            {
                renderer.Builder.AddAttribute(3, "Class", $"mt-{(5 - level) * 2}");
            }

            string title = renderer.RenderHtml(heading.Inline);

            renderer.Builder.AddAttribute(4, "ChildContent",
                                          (RenderFragment)(builder => builder.AddMarkupContent(5, title))
                                          );

            renderer.Builder.CloseComponent();
        }
コード例 #2
0
        protected override void Write(ComponentRenderer renderer, ListBlock listBlock)
        {
            for (int i = 0; i < listBlock.Count; i++)
            {
                var item = listBlock[i] as ListItemBlock;
                renderer.Builder.OpenElement(0, "div");
                renderer.Builder.AddAttribute(1, "class", "ml-4 d-flex flex-row justify-start align-start");


                renderer.Builder.OpenComponent <MudText>(2);
                renderer.Builder.AddAttribute(3, "Class", "mt-2 mr-2");
                renderer.Builder.AddAttribute(4, "Style", "font-weight: bolder");

                string bullet = GetBullet(listBlock.BulletType, i);
                renderer.Builder.AddAttribute(5, "ChildContent",
                                              (RenderFragment)(builder => builder.AddMarkupContent(6, bullet))
                                              );

                renderer.Builder.AddAttribute(7, "Color", Color.Primary);
                renderer.Builder.CloseComponent();

                renderer.Write(item[0]);
                renderer.Builder.CloseElement();
            }
        }
コード例 #3
0
        public override void Render(HtmlRenderOut writer, ComponentRenderer <HtmlRenderOut> parent = null)
        {
            writer.WriteLine("Style", $"#{VariableName}" + "{");
            writer["View"].Indent++;

            writer.WriteLine("Style", $"    display: grid;");
            writer.WriteLine("Style", $"    grid-template-columns: repeat({RendererDataObject.Width}, 1fr);");
            writer.WriteLine("Style", $"    grid-template-rows: repeat({RendererDataObject.Height}, 1fr);");
            writer.WriteLine("Style", $"    grid-gap: 10px;");
            writer.WriteLine("Style", $"    background: {RendererDataObject.BackgroundColor};");
            writer.WriteLine("Style", $"    min-height: 200px;");
            writer.WriteLine("Style", $"    min-width: 200px;");
            writer.WriteLine("Style", $"    /**/");
            //writer.WriteLine("Style", $"    grid-column-start: {RendererDataObject.X};");
            //writer.WriteLine("Style", $"    grid-column-end: {RendererDataObject.X + RendererDataObject.XSpan + 1};");
            //writer.WriteLine("Style", $"    grid-row-start: {RendererDataObject.Y};");
            //writer.WriteLine("Style", $"    grid-row-end: {RendererDataObject.Y + RendererDataObject.YSpan + 1};");

            writer["View"].Indent--;
            writer.WriteLine("Style", "}");


            writer.WriteLine("View", $"<div id=\"{VariableName}\" data-guid=\"{RendererDataObject.ID.ToString()}\">");
            writer["View"].Indent++;
            RenderChildren(writer);
            RenderMonkeyPatches(writer);
            writer["View"].Indent--;
            writer.WriteLine("View", $"</div>");
        }
コード例 #4
0
 public virtual void setRenderer()
 {
     nodeRenderer = rendererFactory.getRenderer(baseType);
     nodeRenderer.instantiate(gameObject);
     nodeRenderer.register(gameObject);
     nodeRenderer.render(gameObject);
 }
コード例 #5
0
        public override void Render(HtmlRenderOut writer, ComponentRenderer <HtmlRenderOut> parent = null)
        {
            writer.WriteLine("View", $"<a id=\"{VariableName}\" href=\"{RendererDataObject.LinkPath}\" data-guid=\"{RendererDataObject.ID.ToString()}\">");
            writer["View"].Indent++;

            writer.WriteLine("View", $"<img src=\"{RendererDataObject.LinkPath}\">");
            writer["View"].Indent++;
            RenderChildren(writer);
            RenderMonkeyPatches(writer);
            writer["View"].Indent--;
            writer.WriteLine("View", $"</img>");

            writer["View"].Indent--;
            writer.WriteLine("View", $"</a>");

            writer.WriteLine("Style", $"#{VariableName}" + "{");
            writer["View"].Indent++;

            writer.WriteLine("Style", $"    grid-column-start: {RendererDataObject.X};");
            writer.WriteLine("Style", $"    grid-column-end: {RendererDataObject.X + RendererDataObject.XSpan + 1};");
            writer.WriteLine("Style", $"    grid-row-start: {RendererDataObject.Y};");
            writer.WriteLine("Style", $"    grid-row-end: {RendererDataObject.Y + RendererDataObject.YSpan + 1};");
            writer.WriteLine("Style", $"    background: {RendererDataObject.BackgroundColor};");

            writer["View"].Indent--;
            writer.WriteLine("Style", "}");
        }
コード例 #6
0
        protected override void Write(ComponentRenderer renderer, EmphasisInline emphasisInline)
        {
            bool isBold = emphasisInline.DelimiterChar == '*' && emphasisInline.DelimiterCount > 1;

            if (isBold)
            {
                renderer.Builder.OpenElement(-1, "div");
                renderer.Builder.AddAttribute(-1, "class", "d-inline-flex px-1 py-0 grey lighten-3 rounded");
            }

            renderer.Builder.OpenComponent <MudText>(0);

            renderer.Builder.AddAttribute(1, "Typo", Typo.body1);
            renderer.Builder.AddAttribute(2, "Inline", true);

            string fontStyle = GetFontStyle(emphasisInline.DelimiterChar, emphasisInline.DelimiterCount);

            renderer.Builder.AddAttribute(3, "Style", fontStyle);

            string?text = emphasisInline.FirstChild.ToString();

            renderer.Builder.AddAttribute(5, "ChildContent",
                                          (RenderFragment)(builder => builder.AddContent(6, text))
                                          );

            renderer.Builder.CloseComponent();

            if (isBold)
            {
                renderer.Builder.CloseElement();
            }
        }
コード例 #7
0
        /// <summary>
        /// Draws a tile.
        /// </summary>
        private static void DrawTile(Tile tile, Point2D start)
        {
            //A target location for 32x textures to be centered in the tile, without being enlarged.
            X32Target.X = start.X + 16;
            X32Target.Y = start.Y + 16;

            ComponentRenderer tileRenderer = tile.GetComponent <ComponentRenderer>();

            tileRenderer.Render(MapDrawer, start);

            TileItemTarget.X = start.X;
            TileItemTarget.Y = start.Y;

            DrawItems(tile, TileItemTarget);

            switch (tile.ImpendingAction)
            {
            case MagicalLifeAPI.Entity.AI.Task.ActionSelected.Mine:
                MapDrawer.Draw(AssetManager.Textures[AssetManager.NameToIndex[TextureLoader.GUIPickaxeMapIcon]], X32Target, RenderLayer.GUI);
                break;

            case MagicalLifeAPI.Entity.AI.Task.ActionSelected.Chop:
                MapDrawer.Draw(AssetManager.Textures[AssetManager.NameToIndex[TextureLoader.GUIAxeMapIcon]], X32Target, RenderLayer.GUI);
                break;

            default:
                //Do nothing.
                break;
            }
        }
コード例 #8
0
 public override void Render(XamlRenderOut writer, ComponentRenderer <XamlRenderOut> parent = null)
 {
     writer.WriteLine("Xaml", $"<TextBox Grid.Column=\"{RendererDataObject.X}\" Grid.Row=\"{RendererDataObject.Y}\" Grid.ColumnSpan=\"{RendererDataObject.XSpan+1}\" Grid.RowSpan=\"{RendererDataObject.YSpan+1}\" IsReadOnly = \"{RendererDataObject.IsReadOnly}\">");
     writer["Xaml"].Indent++;
     writer.WriteLine("Xaml", RendererDataObject.Text);
     writer["Xaml"].Indent--;
     writer.WriteLine("Xaml", $"</TextBox>");
 }
コード例 #9
0
 public override void Render(XamlRenderOut writer, ComponentRenderer <XamlRenderOut> parent = null)
 {
     writer.WriteLine("Xaml", $"<Button Grid.Column=\"{RendererDataObject.X}\" Grid.Row=\"{RendererDataObject.Y}\" Grid.ColumnSpan=\"{RendererDataObject.XSpan + 1}\" Grid.RowSpan=\"{RendererDataObject.YSpan + 1}\">");
     writer["Xaml"].Indent++;
     RenderChildren(writer);
     writer["Xaml"].Indent--;
     writer.WriteLine("Xaml", $"</Button>");
 }
コード例 #10
0
        protected static ComponentRenderer GetRenderer()
        {
            ComponentRenderer renderer = new ComponentRenderer();
            StaticTexture     texture  = new StaticTexture(GetTextureID(), RenderLayer.DirtBase);

            renderer.RenderQueue.Add(texture);
            return(renderer);
        }
コード例 #11
0
 public override void Render(XamlRenderOut writer, ComponentRenderer <XamlRenderOut> parent = null)
 {
     writer.Write("Xaml", $"<Image");
     writer.Write("Xaml", $" Grid.Column=\"{RendererDataObject.X}\" Grid.Row=\"{RendererDataObject.Y}\"");
     writer.Write("Xaml", $" Grid.ColumnSpan=\"{RendererDataObject.XSpan + 1}\" Grid.RowSpan=\"{RendererDataObject.YSpan + 1}\"");
     writer.Write("Xaml", $" Source=\"{RendererDataObject.LinkPath}\" Stretch=\"{(RendererDataObject.PreserveAspect? "Uniform": "Fill")}\"");
     writer.WriteLine("Xaml", $"/>");
 }
コード例 #12
0
 protected override void Write(ComponentRenderer renderer, ThematicBreakBlock breakBlock)
 {
     if (breakBlock.ThematicChar == '-')
     {
         renderer.Builder.OpenComponent <MudDivider>(0);
         renderer.Builder.AddAttribute(1, "Class", "my-4");
         renderer.Builder.CloseComponent();
     }
 }
コード例 #13
0
        protected override void Write(ComponentRenderer renderer, Table table)
        {
            renderer.Builder.OpenComponent <MudSimpleTable>(0);
            renderer.Builder.AddAttribute(1, "Class", "my-2");
            renderer.Builder.AddAttribute(2, "FixedHeader", true);
            renderer.Builder.AddAttribute(3, "Hover", true);

            // Render table contents using HtmlRenderer and trim the '<table></table>' tag
            string tableContent = renderer.RenderHtml(table)[8..^ 9];
コード例 #14
0
        protected override void Write(ComponentRenderer renderer, ParagraphBlock paragraphBlock)
        {
            renderer.Builder.OpenElement(0, "div");
            renderer.Builder.AddAttribute(1, "class", "mt-2");

            renderer.WriteChildren(paragraphBlock.Inline);

            renderer.Builder.CloseElement();
        }
コード例 #15
0
        protected override void Write(ComponentRenderer renderer, CodeInline codeInline)
        {
            renderer.Builder.OpenComponent <CodeBlock>(0);

            renderer.Builder.AddAttribute(1, "Inline", true);
            renderer.Builder.AddAttribute(2, "Code", codeInline.Content);

            renderer.Builder.CloseComponent();
        }
コード例 #16
0
        private void InitializeComponents()
        {
            ComponentTillable tillingBehavior = new TillablePercentDone(.02F);
            ComponentRenderer renderer        = this.GetExactComponent <ComponentRenderer>();

            this.AddComponent(tillingBehavior);

            renderer.AddVisual(new StaticTexture(AssetManager.GetTextureIndex(this.GetRandomDirtTexture()), RenderLayer.DirtBase));
        }
コード例 #17
0
        protected override void Write(ComponentRenderer renderer, QuoteBlock quoteBlock)
        {
            renderer.Builder.OpenElement(0, "div");
            renderer.Builder.AddAttribute(1, "Class",
                                          "my-2 py-2 px-4 mud-elevation-1 rounded grey lighten-4");

            renderer.WriteChildren(quoteBlock);

            renderer.Builder.CloseElement();
        }
コード例 #18
0
        protected override void Write(ComponentRenderer renderer, AutolinkInline linkInline)
        {
            renderer.Builder.OpenComponent <MudLink>(0);

            renderer.Builder.AddAttribute(1, "Href", linkInline.Url);

            renderer.Builder.AddAttribute(2, "ChildContent",
                                          (RenderFragment)(builder => builder.AddContent(4, linkInline.Url))
                                          );

            renderer.Builder.CloseComponent();
        }
コード例 #19
0
        protected override void Write(ComponentRenderer renderer, MathBlockSyntax mathBlock)
        {
            renderer.Builder.OpenComponent <MathBlock>(0);

            renderer.Builder.AddAttribute(1, "Inline", false);

            string mathText = mathBlock.Lines.ToString();

            renderer.Builder.AddAttribute(2, "MathText", mathText);

            renderer.Builder.CloseComponent();
        }
コード例 #20
0
        private HasComponents CreateHasComponents()
        {
            HasComponents     components = new HasComponents(true);
            ComponentRenderer renderer   = new ComponentRenderer();

            renderer.AddVisual(new StaticTexture(9, RenderLayer.DirtBase));

            components.AddComponent(new ComponentSelectable(SelectionType.Tile));
            components.AddComponent(new DropWhenCompletelyHarvested(new List <Item>(), string.Empty, string.Empty));
            components.AddComponent(renderer);
            return(components);
        }
コード例 #21
0
        public virtual void WritePatch(R renderer, ComponentRenderer <R> componentRenderer)
        {
            Component c = componentRenderer.GetType().GetProperty("RendererDataObject").GetValue(componentRenderer) as Component;

            if (c != null)
            {
                foreach (Patch patch in patches)
                {
                    patch.Apply(renderer, c);
                }
            }
        }
コード例 #22
0
        protected override void Write(ComponentRenderer renderer, MathInline mathInline)
        {
            renderer.Builder.OpenComponent <MathBlock>(0);

            renderer.Builder.AddAttribute(1, "Inline", true);

            string mathText = mathInline.Content.ToString();

            renderer.Builder.AddAttribute(2, "MathText", mathText);

            renderer.Builder.CloseComponent();
        }
コード例 #23
0
 void RepeatTexture(ComponentRenderer renderer)
 {
     if (renderer.RepeatTexture)
     {
         GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)All.Repeat);
         GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)All.Repeat);
     }
     else
     {
         GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)All.ClampToEdge);
         GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)All.ClampToEdge);
     }
 }
コード例 #24
0
        protected override void Write(ComponentRenderer renderer, CodeBlockSyntax codeBlock)
        {
            if (codeBlock is FencedCodeBlock fencedCodeBlock)
            {
                renderer.Builder.OpenComponent <CodeBlock>(0);

                string language = fencedCodeBlock.Info;
                renderer.Builder.AddAttribute(1, "Language", language);
                string code = ExtractSourceCode(codeBlock);
                renderer.Builder.AddAttribute(2, "Code", code);

                renderer.Builder.CloseComponent();
            }
        }
コード例 #25
0
        protected override void Write(ComponentRenderer renderer, LiteralInline literalInline)
        {
            renderer.Builder.OpenComponent <MudText>(0);

            renderer.Builder.AddAttribute(1, "Typo", Typo.body1);
            renderer.Builder.AddAttribute(2, "Inline", true);

            string text = literalInline.Content.ToString();

            renderer.Builder.AddAttribute(3, "ChildContent",
                                          (RenderFragment)(builder => builder.AddContent(4, text))
                                          );

            renderer.Builder.CloseComponent();
        }
コード例 #26
0
        public override void Render(XamlRenderOut writer, ComponentRenderer <XamlRenderOut> parent = null)
        {
            writer.WriteLine("CodeBehind", "using System;");
            writer.WriteLine("CodeBehind", "using System.Collections.Generic;");
            writer.WriteLine("CodeBehind", "using System.Linq;");
            writer.WriteLine("CodeBehind", "using System.Text;");
            writer.WriteLine("CodeBehind", "using System.Threading.Tasks;");
            writer.WriteLine("CodeBehind", "using System.Windows;");
            writer.WriteLine("CodeBehind", "using System.Windows.Controls;");
            writer.WriteLine("CodeBehind", "using System.Windows.Data;");
            writer.WriteLine("CodeBehind", "using System.Windows.Documents;");
            writer.WriteLine("CodeBehind", "using System.Windows.Input;");
            writer.WriteLine("CodeBehind", "using System.Windows.Media;");
            writer.WriteLine("CodeBehind", "using System.Windows.Media.Imaging;");
            writer.WriteLine("CodeBehind", "using System.Windows.Navigation;");
            writer.WriteLine("CodeBehind", "using System.Windows.Shapes;");
            writer.WriteLine("CodeBehind", "");
            writer.WriteLine("CodeBehind", "namespace Wpf_RenderTest {");
            writer["CodeBehind"].Indent++;
            writer.WriteLine("CodeBehind", "public partial class " + "MainWindow" + ": Window{");
            writer["CodeBehind"].Indent++;
            writer.WriteLine("CodeBehind", "public " + "MainWindow" + "(){");
            writer["CodeBehind"].Indent++;
            writer.WriteLine("CodeBehind", "InitializeComponent();");
            writer["CodeBehind"].Indent--;
            writer.WriteLine("CodeBehind", "}");
            writer["CodeBehind"].Indent--;

            writer.WriteLine("Xaml", "<Window x:Class=\"Wpf_RenderTest.MainWindow\"");
            writer.WriteLine("Xaml", "    xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"");
            writer.WriteLine("Xaml", "    xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"");
            writer.WriteLine("Xaml", "    xmlns:d=\"http://schemas.microsoft.com/expression/blend/2008\"");
            writer.WriteLine("Xaml", "    xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\"");
            writer.WriteLine("Xaml", "    xmlns:local=\"clr -namespace:Wpf_RenderTest\"");
            writer.WriteLine("Xaml", "    mc:Ignorable=\"d\"");
            writer.WriteLine("Xaml", "   Title=\"MainWindow\" Height=\"450\" Width=\"800\">");
            writer["Xaml"].Indent++;
            RenderChildren(writer);
            writer["Xaml"].Indent--;
            writer.WriteLine("Xaml", "</Window>");


            writer.WriteLine("CodeBehind", "}");
            writer["CodeBehind"].Indent--;
            writer.WriteLine("CodeBehind", "}");
        }
コード例 #27
0
        /// <summary>
        /// Swaps the old visuals with the new.
        /// Can handle null inputs.
        /// </summary>
        /// <param name="oldVisual">Should have a <see cref="ComponentHasTexture"/> component.</param>
        /// <param name="newVisual">Should have a <see cref="ComponentHasTexture"/> component.</param>
        private void UpdateVisuals(HasComponents oldVisual, HasComponents newVisual)
        {
            ComponentRenderer renderComponent = this.GetExactComponent <ComponentRenderer>();

            if (oldVisual != null)
            {
                //Remove old visuals
                ComponentHasTexture oldTextureComponent = oldVisual.GetExactComponent <ComponentHasTexture>();
                renderComponent.RemoveVisuals(oldTextureComponent.Visuals);
            }

            if (newVisual != null)
            {
                //Add new visuals
                ComponentHasTexture newTextureComponent = newVisual.GetExactComponent <ComponentHasTexture>();
                renderComponent.AddVisuals(newTextureComponent.Visuals);
            }
        }
コード例 #28
0
        public override void Render(XamlRenderOut writer, ComponentRenderer <XamlRenderOut> parent = null)
        {
            //writer.WriteLine("CodeBehind", "Grid " + VariableName + " = new Grid();");
            //writer.WriteLine("CodeBehind", VariableName + ".ShowGridLines = true;");

            //writer.WriteLine("CodeBehind", "for(int x = 0; x < " + RendererDataObject.X + "; x++) {");
            //writer["CodeBehind"].Indent++;
            //    writer.WriteLine("CodeBehind", "ColumnDefinition gridCol = new ColumnDefinition();");
            //    writer.WriteLine("CodeBehind", "for(int y = 0; y < " + RendererDataObject.Y + "; y++) {");
            //    writer["CodeBehind"].Indent++;
            //        writer.WriteLine("CodeBehind", "RowDefinition gridRow = new RowDefinition();");
            //        //writer.WriteLine("CodeBehind", "gridRow.Height = new GridLength(45);");
            //        writer.WriteLine("CodeBehind", VariableName + ".RowDefinitions.Add(gridRow);");
            //        writer["CodeBehind"].Indent--;
            //    writer.WriteLine("CodeBehind", "}");
            //writer["CodeBehind"].Indent--;
            //writer.WriteLine("CodeBehind", VariableName + ".ColumnDefinitions.Add(gridCol1); ");
            //writer.WriteLine("CodeBehind", "}");
            ////writer.WriteLine("View", $@"<p>");
            ////writer["CodeBehind"].Indent++;

            writer.WriteLine("Xaml", $"<Grid>");
            writer["Xaml"].Indent++;
            writer.WriteLine("Xaml", $"<Grid.ColumnDefinitions>");
            writer["Xaml"].Indent++;
            for (int i = 0; i < RendererDataObject.X; i++)
            {
                writer.WriteLine("Xaml", $"<ColumnDefinition Width=\"*\"/>");
            }
            writer["Xaml"].Indent--;
            writer.WriteLine("Xaml", $"</Grid.ColumnDefinitions>");
            writer.WriteLine("Xaml", $"<Grid.RowDefinitions>");
            writer["Xaml"].Indent++;
            for (int i = 0; i < RendererDataObject.Y; i++)
            {
                writer.WriteLine("Xaml", $"<RowDefinition Height=\"*\"/>");
            }
            writer["Xaml"].Indent--;
            writer.WriteLine("Xaml", $"</Grid.RowDefinitions>");

            RenderChildren(writer);
            writer["Xaml"].Indent--;
            writer.WriteLine("Xaml", "</Grid>");
        }
コード例 #29
0
        public override void Render(HtmlRenderOut writer, ComponentRenderer <HtmlRenderOut> parent = null)
        {
            writer.WriteLine("Style", $"#{VariableName}" + "{");
            writer["View"].Indent++;
            writer.WriteLine("Style", $"    background: {RendererDataObject.BackgroundColor};");
            writer.WriteLine("Style", $"    min-height: 200px;");
            writer["View"].Indent--;
            writer.WriteLine("Style", "}");


            writer.WriteLine("View", $"<div id=\"{VariableName}\" data-guid=\"{RendererDataObject.ID.ToString()}\">");
            writer["View"].Indent++;

            RenderChildren(writer);
            RenderMonkeyPatches(writer);

            writer["View"].Indent--;
            writer.WriteLine("View", $"</div>");
        }
コード例 #30
0
        public async Task ExecuteAsync_RendersWebAssemblyStateImplicitlyWhenAWebAssemblyComponentWasPrerendered()
        {
            // Arrange
            var tagHelper = new PersistComponentStateTagHelper
            {
                ViewContext = GetViewContext()
            };

            ComponentRenderer.UpdateSaveStateRenderMode(tagHelper.ViewContext, RenderMode.WebAssemblyPrerendered);

            var context = GetTagHelperContext();
            var output  = GetTagHelperOutput();

            // Act
            await tagHelper.ProcessAsync(context, output);

            // Assert
            var content = HtmlContentUtilities.HtmlContentToString(output.Content);

            Assert.Equal("<!--Blazor-Component-State:e30=-->", content);
            Assert.Null(output.TagName);
        }