Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrawItemTextPopups()

static void Terraria.Main.DrawItemTextPopups ( float scaleTarget)
inlinestaticprivate

Definition at line 59201 of file Main.cs.

59202 {
59203 for (int i = 0; i < 20; i++)
59204 {
59205 PopupText popupText = Main.popupText[i];
59206 if (!popupText.active)
59207 {
59208 continue;
59209 }
59210 string text = popupText.name;
59211 if (popupText.stack > 1)
59212 {
59213 text = text + " (" + popupText.stack + ")";
59214 }
59215 Vector2 vector = FontAssets.MouseText.Value.MeasureString(text);
59216 Vector2 vector2 = new Vector2(vector.X * 0.5f, vector.Y * 0.5f);
59217 float num = popupText.scale / scaleTarget;
59218 int num2 = (int)(255f - 255f * num);
59219 float num3 = (int)popupText.color.R;
59220 float num4 = (int)popupText.color.G;
59221 float num5 = (int)popupText.color.B;
59222 float num6 = (int)popupText.color.A;
59223 num3 *= num * popupText.alpha * 0.3f;
59224 num5 *= num * popupText.alpha * 0.3f;
59225 num4 *= num * popupText.alpha * 0.3f;
59226 num6 *= num * popupText.alpha;
59227 Microsoft.Xna.Framework.Color color = new Microsoft.Xna.Framework.Color((int)num3, (int)num4, (int)num5, (int)num6);
59229 float num7 = 1f;
59230 Texture2D texture2D = null;
59231 switch (popupText.context)
59232 {
59233 case PopupTextContext.ItemPickupToVoidContainer:
59234 color2 = new Microsoft.Xna.Framework.Color(127, 20, 255) * 0.4f;
59235 num7 = 0.8f;
59236 break;
59237 case PopupTextContext.SonarAlert:
59238 color2 = Microsoft.Xna.Framework.Color.Blue * 0.4f;
59239 if (popupText.npcNetID != 0)
59240 {
59241 color2 = Microsoft.Xna.Framework.Color.Red * 0.4f;
59242 }
59243 num7 = 1f;
59244 break;
59245 }
59246 float num8 = (float)num2 / 255f;
59247 for (int j = 0; j < 5; j++)
59248 {
59249 color = color2;
59250 float num9 = 0f;
59251 float num10 = 0f;
59252 switch (j)
59253 {
59254 case 0:
59255 num9 -= scaleTarget * 2f;
59256 break;
59257 case 1:
59258 num9 += scaleTarget * 2f;
59259 break;
59260 case 2:
59261 num10 -= scaleTarget * 2f;
59262 break;
59263 case 3:
59264 num10 += scaleTarget * 2f;
59265 break;
59266 default:
59267 color = popupText.color * num * popupText.alpha * num7;
59268 break;
59269 }
59270 if (j < 4)
59271 {
59272 num6 = (float)(int)popupText.color.A * num * popupText.alpha;
59273 color = new Microsoft.Xna.Framework.Color(0, 0, 0, (int)num6);
59274 }
59275 if (color2 != Microsoft.Xna.Framework.Color.Black && j < 4)
59276 {
59277 num9 *= 1.3f + 1.3f * num8;
59278 num10 *= 1.3f + 1.3f * num8;
59279 }
59280 float num11 = popupText.position.Y - screenPosition.Y + num10;
59281 if (player[myPlayer].gravDir == -1f)
59282 {
59283 num11 = (float)screenHeight - num11;
59284 }
59285 if (color2 != Microsoft.Xna.Framework.Color.Black && j < 4)
59286 {
59288 color3.A = (byte)MathHelper.Lerp(60f, 127f, Utils.GetLerpValue(0f, 255f, num6, clamped: true));
59291 }
59292 else
59293 {
59295 }
59296 if (texture2D != null)
59297 {
59298 float scale = (1.3f - num8) * popupText.scale * 0.7f;
59299 Vector2 vector3 = new Vector2(popupText.position.X - screenPosition.X + num9 + vector2.X, num11 + vector2.Y);
59301 if (j == 4)
59302 {
59303 color4 = Microsoft.Xna.Framework.Color.White * 0.6f;
59304 }
59305 color4.A = (byte)((float)(int)color4.A * 0.5f);
59306 int num12 = 25;
59307 spriteBatch.Draw(texture2D, vector3 + new Vector2(vector2.X * -0.5f - (float)num12 - texture2D.Size().X / 2f, 0f), null, color4 * popupText.scale, 0f, texture2D.Size() / 2f, scale, SpriteEffects.None, 0f);
59308 spriteBatch.Draw(texture2D, vector3 + new Vector2(vector2.X * 0.5f + (float)num12 + texture2D.Size().X / 2f, 0f), null, color4 * popupText.scale, 0f, texture2D.Size() / 2f, scale, SpriteEffects.None, 0f);
59309 }
59310 }
59311 }
59312 }
static float Lerp(float value1, float value2, float amount)
Definition MathHelper.cs:53
static void DrawString(this SpriteBatch spriteBatch, DynamicSpriteFont spriteFont, string text, Vector2 position, Color color)
static Asset< DynamicSpriteFont > MouseText
Definition FontAssets.cs:10
static SpriteBatch spriteBatch
Definition Main.cs:974
static int myPlayer
Definition Main.cs:1801
static int screenHeight
Definition Main.cs:1721
static Vector2 screenPosition
Definition Main.cs:1715
static Player[] player
Definition Main.cs:1803
static PopupText[] popupText
Definition Main.cs:1697
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491

References Microsoft.Xna.Framework.Color.Black, ReLogic.Graphics.DynamicSpriteFontExtensionMethods.DrawString(), Terraria.Utils.GetLerpValue(), System.Text.RegularExpressions.i, Microsoft.Xna.Framework.Color.Lerp(), Microsoft.Xna.Framework.MathHelper.Lerp(), Terraria.GameContent.FontAssets.MouseText, Terraria.Main.myPlayer, Terraria.Main.player, Terraria.Main.popupText, Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.spriteBatch, System.text, and Microsoft.Xna.Framework.Graphics.Vector2.

Referenced by Terraria.Main.DoDraw().