Added a scale slider for sprites in the AssetBrowser
This commit is contained in:
committed by
Matthias Mailänder
parent
40c728269c
commit
7a9e0863d6
@@ -17,7 +17,8 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
{
|
||||
public class SpriteWidget : Widget
|
||||
{
|
||||
public Func<float> GetScale = () => 1f;
|
||||
public float Scale = 1f;
|
||||
public Func<float> GetScale;
|
||||
public string Palette = "chrome";
|
||||
public Func<string> GetPalette;
|
||||
public Func<Sprite> GetSprite;
|
||||
@@ -28,6 +29,7 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
public SpriteWidget(WorldRenderer worldRenderer)
|
||||
{
|
||||
GetPalette = () => Palette;
|
||||
GetScale = () => Scale;
|
||||
|
||||
WorldRenderer = worldRenderer;
|
||||
}
|
||||
@@ -59,10 +61,11 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
if (sprite == null || palette == null)
|
||||
return;
|
||||
|
||||
if (sprite != cachedSprite)
|
||||
if (sprite != cachedSprite || scale != cachedScale)
|
||||
{
|
||||
offset = 0.5f * (new float2(RenderBounds.Size) - sprite.Size.XY);
|
||||
offset = 0.5f * (new float2(RenderBounds.Size) - scale * sprite.Size.XY);
|
||||
cachedSprite = sprite;
|
||||
cachedScale = scale;
|
||||
}
|
||||
|
||||
if (palette != cachedPalette)
|
||||
@@ -71,12 +74,6 @@ namespace OpenRA.Mods.Common.Widgets
|
||||
cachedPalette = palette;
|
||||
}
|
||||
|
||||
if (scale != cachedScale)
|
||||
{
|
||||
offset *= scale;
|
||||
cachedScale = scale;
|
||||
}
|
||||
|
||||
Game.Renderer.EnableAntialiasingFilter();
|
||||
Game.Renderer.SpriteRenderer.DrawSprite(sprite, pr, RenderOrigin + offset, scale);
|
||||
Game.Renderer.DisableAntialiasingFilter();
|
||||
|
||||
Reference in New Issue
Block a user