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

◆ DrawMouseOver()

void Terraria.Main.DrawMouseOver ( )
inline

Definition at line 39869 of file Main.cs.

39870 {
39874 if (player[myPlayer].gravDir == -1f)
39875 {
39876 mouseRectangle.Y = (int)screenPosition.Y + screenHeight - mouseY;
39877 }
39879 if (!LocalPlayer.ghost)
39880 {
39881 ResourceSetsManager.TryToHoverOverResources();
39882 }
39884 IngameOptions.MouseOver();
39886 if (!mouseText)
39887 {
39888 for (int i = 0; i < 400; i++)
39889 {
39890 if (!item[i].active)
39891 {
39892 continue;
39893 }
39895 Vector2 bottom = item[i].Bottom;
39896 Microsoft.Xna.Framework.Rectangle value = new Microsoft.Xna.Framework.Rectangle((int)(bottom.X - (float)drawHitbox.Width * 0.5f), (int)(bottom.Y - (float)drawHitbox.Height), drawHitbox.Width, drawHitbox.Height);
39897 if (mouseRectangle.Intersects(value))
39898 {
39899 player[myPlayer].cursorItemIconEnabled = false;
39900 string text = item[i].AffixName();
39901 if (item[i].stack > 1)
39902 {
39903 text = text + " (" + item[i].stack + ")";
39904 }
39905 if (item[i].playerIndexTheItemIsReservedFor < 255 && showItemOwner)
39906 {
39907 text = text + " <" + player[item[i].playerIndexTheItemIsReservedFor].name + ">";
39908 }
39909 rare = item[i].rare;
39910 if (item[i].expert)
39911 {
39912 rare = -12;
39913 }
39915 mouseText = true;
39916 break;
39917 }
39918 }
39919 }
39920 for (int j = 0; j < 255; j++)
39921 {
39922 if (!player[j].active || myPlayer == j || player[j].dead || player[j].ShouldNotDraw || !((double)player[j].stealth > 0.5))
39923 {
39924 continue;
39925 }
39926 Microsoft.Xna.Framework.Rectangle value2 = new Microsoft.Xna.Framework.Rectangle((int)((double)player[j].position.X + (double)player[j].width * 0.5 - 16.0), (int)(player[j].position.Y + (float)player[j].height - 48f), 32, 48);
39927 if (!mouseText && mouseRectangle.Intersects(value2))
39928 {
39929 player[myPlayer].cursorItemIconEnabled = false;
39930 int num = player[j].statLife;
39931 if (num < 0)
39932 {
39933 num = 0;
39934 }
39935 string text2 = player[j].name + ": " + num + "/" + player[j].statLifeMax2;
39936 if (player[j].hostile)
39937 {
39938 text2 = text2 + " " + Language.GetTextValue("Game.PvPFlag");
39939 }
39940 MouseTextHackZoom(text2, 0, player[j].difficulty);
39941 mouseText = true;
39942 }
39943 }
39944 HoveringOverAnNPC = false;
39945 if (!mouseText)
39946 {
39948 }
39949 if (!mouseText && signHover != -1 && sign[signHover] != null && !player[myPlayer].mouseInterface && !string.IsNullOrWhiteSpace(sign[signHover].text))
39950 {
39951 int lineAmount;
39952 string[] array = Utils.WordwrapString(sign[signHover].text, FontAssets.MouseText.Value, 460, 10, out lineAmount);
39953 lineAmount++;
39954 spriteBatch.End();
39955 spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, _uiScaleMatrix);
39957 int num2 = screenWidth;
39958 int num3 = screenHeight;
39959 int num4 = mouseX;
39960 int num5 = mouseY;
39963 float num6 = 0f;
39964 for (int k = 0; k < lineAmount; k++)
39965 {
39966 float x = FontAssets.MouseText.Value.MeasureString(array[k]).X;
39967 if (num6 < x)
39968 {
39969 num6 = x;
39970 }
39971 }
39972 if (num6 > 460f)
39973 {
39974 num6 = 460f;
39975 }
39977 Vector2 vector = new Vector2(num4, num5) + new Vector2(16f);
39979 {
39980 vector += new Vector2(8f, 2f);
39981 }
39982 if (vector.Y > (float)(num3 - 30 * lineAmount))
39983 {
39984 vector.Y = num3 - 30 * lineAmount;
39985 }
39986 if (vector.X > (float)num2 - num6)
39987 {
39988 vector.X = (float)num2 - num6;
39989 }
39992 {
39994 int num7 = 10;
39995 int num8 = 5;
39996 Utils.DrawInvBG(spriteBatch, new Microsoft.Xna.Framework.Rectangle((int)vector.X - num7, (int)vector.Y - num8, (int)num6 + num7 * 2, 30 * lineAmount + num8 + num8 / 2), new Microsoft.Xna.Framework.Color(23, 25, 81, 255) * 0.925f * 0.85f);
39997 }
39998 for (int l = 0; l < lineAmount; l++)
39999 {
40000 Utils.DrawBorderStringFourWay(spriteBatch, FontAssets.MouseText.Value, array[l], vector.X, vector.Y + (float)(l * 30), color, Microsoft.Xna.Framework.Color.Black, Vector2.Zero);
40001 }
40002 mouseText = true;
40003 }
40005 }
static Asset< DynamicSpriteFont > MouseText
Definition FontAssets.cs:10
static string GetTextValue(string key)
Definition Language.cs:15
void MouseTextHackZoom(string text, string buffTooltip=null)
Definition Main.cs:18714
static Item[] item
Definition Main.cs:1681
static SpriteBatch spriteBatch
Definition Main.cs:974
static int myPlayer
Definition Main.cs:1801
static int rare
Definition Main.cs:2457
static PlayerResourceSetsManager ResourceSetsManager
Definition Main.cs:2261
static int signHover
Definition Main.cs:2183
static int screenHeight
Definition Main.cs:1721
static Vector2 screenPosition
Definition Main.cs:1715
static bool mouseText
Definition Main.cs:2453
static byte mouseTextColor
Definition Main.cs:1751
void HoverOverNPCs(Microsoft.Xna.Framework.Rectangle mouseRectangle)
Definition Main.cs:40007
static int screenWidth
Definition Main.cs:1719
static bool SettingsEnabled_OpaqueBoxBehindTooltips
Definition Main.cs:253
static bool HoveringOverAnNPC
Definition Main.cs:2447
static Matrix _uiScaleMatrix
Definition Main.cs:233
static int mouseY
Definition Main.cs:606
static bool showItemOwner
Definition Main.cs:568
static Player LocalPlayer
Definition Main.cs:2829
static Sign[] sign
Definition Main.cs:1701
static Player[] player
Definition Main.cs:1803
static int mouseX
Definition Main.cs:604
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491

References Terraria.Main._uiScaleMatrix, System.array, Microsoft.Xna.Framework.Color.Black, Terraria.Utils.DrawBorderStringFourWay(), Terraria.Utils.DrawInvBG(), Terraria.UI.AchievementAdvisor.DrawMouseHover(), Terraria.Item.GetDrawHitbox(), Terraria.Localization.Language.GetTextValue(), Terraria.Main.HoveringOverAnNPC, Terraria.Main.HoverOverNPCs(), System.Text.RegularExpressions.i, Terraria.Main.item, Microsoft.Xna.Framework.Color.Lerp(), Terraria.Main.LocalPlayer, Terraria.UI.IngameFancyUI.MouseOver(), Terraria.IngameOptions.MouseOver(), Terraria.GameContent.FontAssets.MouseText, Terraria.Main.mouseText, Terraria.Main.mouseTextColor, Terraria.Main.MouseTextHackZoom(), Terraria.Main.mouseX, Terraria.Main.mouseY, Terraria.Main.myPlayer, Terraria.Main.player, Terraria.Main.rare, Terraria.Main.ResourceSetsManager, Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.Main.SettingsEnabled_OpaqueBoxBehindTooltips, Terraria.GameInput.PlayerInput.SetZoom_MouseInWorld(), Terraria.GameInput.PlayerInput.SetZoom_Test(), Terraria.GameInput.PlayerInput.SetZoom_UI(), Terraria.GameInput.PlayerInput.SetZoom_Unscaled(), Terraria.Main.showItemOwner, Terraria.Main.sign, Terraria.Main.signHover, Terraria.Main.spriteBatch, System.text, System.type, System.value, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Color.White, Terraria.Utils.WordwrapString(), Microsoft.Xna.Framework.Vector2.X, Microsoft.Xna.Framework.Vector2.Y, and Microsoft.Xna.Framework.Vector2.Zero.

Referenced by Terraria.Main.DrawInterface_39_MouseOver().