void DrawTargetMarker(LineRenderer wlr, float2 p) { wlr.DrawLine(p + new float2(-1, -1), p + new float2(-1, 1), c, c); wlr.DrawLine(p + new float2(-1, 1), p + new float2(1, 1), c, c); wlr.DrawLine(p + new float2(1, 1), p + new float2(1, -1), c, c); wlr.DrawLine(p + new float2(1, -1), p + new float2(-1, -1), c, c); }
public static void Render(Renderer r, LineRenderer lr) { float2 origin = Game.viewport.Location + new float2(330, Game.viewport.Height - 30); float2 basis = new float2(-3, -3); lr.DrawLine(origin, origin + new float2(100, 0) * basis, Color.White, Color.White); lr.DrawLine(origin + new float2(100,0) * basis, origin + new float2(100,70) * basis, Color.White, Color.White); foreach (var item in items.Values) { int n = 0; item.Samples().Aggregate((a, b) => { lr.DrawLine( origin + new float2(n, (float)a) * basis, origin + new float2(n+1, (float)b) * basis, item.c, item.c); ++n; return b; }); } lr.Flush(); }
public Chrome(Renderer r, Manifest m) { this.renderer = r; rgbaRenderer = new SpriteRenderer(renderer, true, renderer.RgbaSpriteShader); lineRenderer = new LineRenderer(renderer); shpRenderer = new SpriteRenderer(renderer, true, renderer.WorldSpriteShader); optionsButton = new Animation("tabs"); optionsButton.PlayRepeating("left-normal"); tabSprites = Rules.Info.Values .Where(u => u.Traits.Contains<BuildableInfo>()) .ToDictionary( u => u.Name, u => SpriteSheetBuilder.LoadAllSprites(u.Traits.Get<BuildableInfo>().Icon ?? (u.Name + "icon"))[0]); spsprites = Rules.Info.Values.SelectMany( u => u.Traits.WithInterface<SupportPowerInfo>() ) .ToDictionary( u => u.Image, u => SpriteSheetBuilder.LoadAllSprites(u.Image)[0]); var groups = Rules.Categories(); tabImageNames = groups.Select( (g, i) => Pair.New(g, OpenRA.Graphics.Util.MakeArray(3, n => i.ToString()))) .ToDictionary(a => a.First, a => a.Second); cantBuild = new Animation("clock"); cantBuild.PlayFetchIndex("idle", () => 0); ready = new Animation("pips"); ready.PlayRepeating("ready"); clock = new Animation("clock"); var widgetYaml = m.ChromeLayout.Select(a => MiniYaml.FromFile(a)).Aggregate(MiniYaml.Merge); rootWidget = WidgetLoader.LoadWidget( widgetYaml.FirstOrDefault() ); rootWidget.Initialize(); }