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);
 }
Exemple #2
0
		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();
		}
Exemple #3
0
		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();
		}