mirror of
https://github.com/Phantop/LADXHD.git
synced 2024-11-01 04:14:22 +00:00
80 lines
3.3 KiB
C#
80 lines
3.3 KiB
C#
|
using Microsoft.Xna.Framework;
|
|||
|
using Microsoft.Xna.Framework.Graphics;
|
|||
|
using ProjectZ.Base.UI;
|
|||
|
using ProjectZ.InGame.Things;
|
|||
|
|
|||
|
namespace ProjectZ.InGame.Overlay
|
|||
|
{
|
|||
|
class ItemSlotOverlay
|
|||
|
{
|
|||
|
public static Rectangle RecItemselection = new Rectangle(6, 29, 30, 20);
|
|||
|
|
|||
|
public static int DistX = 2;
|
|||
|
public static int DistY = 2;
|
|||
|
|
|||
|
public Point ItemSlotPosition;
|
|||
|
|
|||
|
// 3
|
|||
|
// 2 1
|
|||
|
// 0
|
|||
|
private static Rectangle[] _itemSlots = {
|
|||
|
new Rectangle(RecItemselection.Width + DistX / 2 - RecItemselection.Width / 2,
|
|||
|
RecItemselection.Height * 2 + DistY * 2,
|
|||
|
RecItemselection.Width, RecItemselection.Height),
|
|||
|
new Rectangle(RecItemselection.Width + DistX, RecItemselection.Height + DistY,
|
|||
|
RecItemselection.Width, RecItemselection.Height),
|
|||
|
new Rectangle(0, RecItemselection.Height + DistY,
|
|||
|
RecItemselection.Width, RecItemselection.Height),
|
|||
|
new Rectangle(RecItemselection.Width + DistX / 2 - RecItemselection.Width / 2, 0,
|
|||
|
RecItemselection.Width, RecItemselection.Height)
|
|||
|
};
|
|||
|
|
|||
|
private static readonly UiRectangle[] _uiBackgroundBoxes = new UiRectangle[4];
|
|||
|
|
|||
|
public ItemSlotOverlay()
|
|||
|
{
|
|||
|
for (var i = 0; i < _itemSlots.Length; i++)
|
|||
|
{
|
|||
|
_uiBackgroundBoxes[i] =
|
|||
|
new UiRectangle(_itemSlots[i], "itemBox" + i, Values.ScreenNameGame, Values.OverlayBackgroundColor, Values.OverlayBackgroundBlurColor, null) { Radius = Values.UiBackgroundRadius };
|
|||
|
Game1.EditorUi.AddElement(_uiBackgroundBoxes[i]);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void SetTransparency(float transparency)
|
|||
|
{
|
|||
|
for (var i = 0; i < _itemSlots.Length; i++)
|
|||
|
{
|
|||
|
_uiBackgroundBoxes[i].BackgroundColor = Values.OverlayBackgroundColor * transparency;
|
|||
|
_uiBackgroundBoxes[i].BlurColor = Values.OverlayBackgroundBlurColor * transparency;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static void Draw(SpriteBatch spriteBatch, Point position, int scale, float transparency)
|
|||
|
{
|
|||
|
// draw the item slots
|
|||
|
for (var i = 0; i < _itemSlots.Length; i++)
|
|||
|
{
|
|||
|
var slotRectangle = new Rectangle(_itemSlots[i].X, _itemSlots[i].Y, RecItemselection.Width, RecItemselection.Height);
|
|||
|
ItemDrawHelper.DrawItemWithInfo(spriteBatch, Game1.GameManager.Equipment[i], position, slotRectangle, scale, Color.White * transparency);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public void UpdatePositions(Rectangle uiWindow, Point offset, int scale)
|
|||
|
{
|
|||
|
// bottom left corner
|
|||
|
ItemSlotPosition = new Point(uiWindow.X + 16 * scale,
|
|||
|
uiWindow.Y + uiWindow.Height - (RecItemselection.Height * 3 + DistY * 2 + 16) * scale);
|
|||
|
|
|||
|
// update the background rectangles
|
|||
|
for (var i = 0; i < _itemSlots.Length; i++)
|
|||
|
{
|
|||
|
_uiBackgroundBoxes[i].Rectangle = new Rectangle(
|
|||
|
ItemSlotPosition.X + _itemSlots[i].X * scale + offset.X,
|
|||
|
ItemSlotPosition.Y + _itemSlots[i].Y * scale + offset.Y,
|
|||
|
_itemSlots[i].Width * scale, _itemSlots[i].Height * scale);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|