mirror of
https://github.com/Phantop/LADXHD.git
synced 2024-11-01 04:14:22 +00:00
57 lines
2 KiB
C#
57 lines
2 KiB
C#
using Microsoft.Xna.Framework;
|
|
using Microsoft.Xna.Framework.Graphics;
|
|
using ProjectZ.InGame.SaveLoad;
|
|
|
|
namespace ProjectZ.InGame.Interface
|
|
{
|
|
public class InterfaceImage : InterfaceElement
|
|
{
|
|
public Rectangle SourceRectangle;
|
|
public Vector2 Offset;
|
|
public Color ImageColor = Color.White;
|
|
public Vector2 Origin;
|
|
public SpriteEffects Effects;
|
|
|
|
private readonly Texture2D _sprImage;
|
|
private readonly Vector2 _drawOffset;
|
|
|
|
public InterfaceImage(DictAtlasEntry sprite, Point margin)
|
|
{
|
|
_sprImage = sprite.Texture;
|
|
SourceRectangle = sprite.ScaledRectangle;
|
|
|
|
Size = new Point(sprite.SourceRectangle.Width, sprite.SourceRectangle.Height);
|
|
Margin = margin;
|
|
}
|
|
|
|
public InterfaceImage(Texture2D sprImage, Rectangle rectangle, Point size, Point margin)
|
|
{
|
|
_sprImage = sprImage;
|
|
SourceRectangle = rectangle;
|
|
|
|
if (size == Point.Zero)
|
|
Size = new Point(SourceRectangle.Width, SourceRectangle.Height);
|
|
else
|
|
Size = size;
|
|
|
|
Margin = margin;
|
|
|
|
if (size != Point.Zero)
|
|
_drawOffset = new Vector2(Size.X / 2 - SourceRectangle.Width / 2, Size.Y / 2 - SourceRectangle.Height / 2);
|
|
}
|
|
|
|
public override void Draw(SpriteBatch spriteBatch, Vector2 drawPosition, float scale, float transparency)
|
|
{
|
|
base.Draw(spriteBatch, drawPosition, scale, transparency);
|
|
|
|
if (!Visible || Hidden)
|
|
return;
|
|
|
|
spriteBatch.Draw(_sprImage, new Rectangle(
|
|
(int)(drawPosition.X + _drawOffset.X * scale + Offset.X * scale),
|
|
(int)(drawPosition.Y + _drawOffset.Y * scale + Offset.Y * scale),
|
|
(int)(SourceRectangle.Width * scale),
|
|
(int)(SourceRectangle.Height * scale)), SourceRectangle, ImageColor * transparency, 0, Origin, Effects, 0);
|
|
}
|
|
}
|
|
} |