Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ResourceDrawSettings.cs
Go to the documentation of this file.
4
6
8{
9 public delegate void TextureGetter(int elementIndex, int firstElementIndex, int lastElementIndex, out Asset<Texture2D> texture, out Vector2 drawOffset, out float drawScale, out Rectangle? sourceRect);
10
12
13 public int ElementCount;
14
16
17 public TextureGetter GetTextureMethod;
18
20
22
24
26
27 public void Draw(SpriteBatch spriteBatch, ref bool isHovered)
28 {
29 int elementCount = ElementCount;
30 Vector2 topLeftAnchor = TopLeftAnchor;
31 Point value = Main.MouseScreen.ToPoint();
32 for (int i = 0; i < elementCount; i++)
33 {
34 int elementIndex = i + ElementIndexOffset;
35 GetTextureMethod(elementIndex, ElementIndexOffset, ElementIndexOffset + elementCount - 1, out var texture, out var drawOffset, out var drawScale, out var sourceRect);
36 Rectangle rectangle = texture.Frame();
37 if (sourceRect.HasValue)
38 {
39 rectangle = sourceRect.Value;
40 }
41 Vector2 position = topLeftAnchor + drawOffset;
43 Rectangle rectangle2 = rectangle;
44 rectangle2.X += (int)(position.X - origin.X);
45 rectangle2.Y += (int)(position.Y - origin.Y);
46 if (rectangle2.Contains(value))
47 {
48 isHovered = true;
49 }
50 spriteBatch.Draw(texture.Value, position, rectangle, Color.White, 0f, origin, drawScale, SpriteEffects.None, 0f);
51 topLeftAnchor += OffsetPerDraw + rectangle.Size() * OffsetPerDrawByTexturePercentile;
52 }
53 }
54}
void Draw(Texture2D texture, Vector2 position, Color color)
static Vector2 MouseScreen
Definition Main.cs:2773
bool Contains(int x, int y)
Definition Rectangle.cs:92
delegate void TextureGetter(int elementIndex, int firstElementIndex, int lastElementIndex, out Asset< Texture2D > texture, out Vector2 drawOffset, out float drawScale, out Rectangle? sourceRect)
void Draw(SpriteBatch spriteBatch, ref bool isHovered)