Skip to content

Commit

Permalink
MainMenuCommon MainMenu now using Yoga Layout
Browse files Browse the repository at this point in the history
  • Loading branch information
IceReaper authored and Andre Mohren committed May 28, 2020
1 parent 85b3a19 commit 36eddc9
Show file tree
Hide file tree
Showing 3 changed files with 221 additions and 212 deletions.
20 changes: 17 additions & 3 deletions OpenRA.Mods.Common/Widgets/ImageWidget.cs
Expand Up @@ -32,6 +32,8 @@ public class ImageWidget : Widget
Lazy<TooltipContainerWidget> tooltipContainer;
public Func<string> GetTooltipText;

Sprite sprite;

public ImageWidget()
{
GetImageName = () => ImageName;
Expand Down Expand Up @@ -59,16 +61,28 @@ protected ImageWidget(ImageWidget other)

public override Widget Clone() { return new ImageWidget(this); }

public override void Draw()
public override void UpdateLayout()
{
var name = GetImageName();
var collection = GetImageCollection();

var sprite = ChromeProvider.GetImage(collection, name);
if (name == "")
return;

sprite = ChromeProvider.GetImage(collection, name);
if (sprite == null)
throw new ArgumentException("Sprite {0}/{1} was not found.".F(collection, name));

WidgetUtils.DrawRGBA(sprite, RenderOrigin);
if (Math.Abs(Node.Width.Value - sprite.Size.X) < 0.1 && Math.Abs(Node.Height.Value - sprite.Size.Y) < 0.1)
return;

Node.Width = sprite.Size.X;
Node.Height = sprite.Size.Y;
}

public override void Draw()
{
WidgetUtils.DrawRGBA(sprite, RenderOrigin, new float2(Node.LayoutWidth, Node.LayoutHeight));
}

public override bool HandleMouseInput(MouseInput mi)
Expand Down
5 changes: 5 additions & 0 deletions OpenRA.Mods.Common/Widgets/WidgetUtils.cs
Expand Up @@ -23,6 +23,11 @@ public static Sprite GetChromeImage(World world, string name)
return ChromeProvider.GetImage("chrome-" + world.LocalPlayer.Faction.InternalName, name);
}

public static void DrawRGBA(Sprite s, float2 pos, float2 size)
{
Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos, size);
}

public static void DrawRGBA(Sprite s, float2 pos)
{
Game.Renderer.RgbaSpriteRenderer.DrawSprite(s, pos);
Expand Down

0 comments on commit 36eddc9

Please sign in to comment.