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

◆ FindOwner()

void Terraria.Item.FindOwner ( int whoAmI)
inline

Definition at line 49847 of file Item.cs.

49848 {
49849 if (Main.netMode == 1 && shimmerTime > 0f)
49850 {
49851 keepTime = 0;
49852 }
49853 if (keepTime > 0)
49854 {
49855 return;
49856 }
49859 bool flag = true;
49860 if (type == 267 && ownIgnore != -1)
49861 {
49862 flag = false;
49863 }
49864 if (shimmerTime > 0f)
49865 {
49867 }
49868 else if (flag)
49869 {
49870 float num2 = NPC.sWidth;
49871 for (int i = 0; i < 255; i++)
49872 {
49873 if (ownIgnore == i)
49874 {
49875 continue;
49876 }
49877 Player player = Main.player[i];
49878 if (!player.active)
49879 {
49880 continue;
49881 }
49882 Player.ItemSpaceStatus status = player.ItemSpace(Main.item[whoAmI]);
49883 if (player.CanPullItem(Main.item[whoAmI], status))
49884 {
49885 float num3 = Math.Abs(player.position.X + (float)(player.width / 2) - position.X - (float)(width / 2)) + Math.Abs(player.position.Y + (float)(player.height / 2) - position.Y - (float)height);
49886 if (player.manaMagnet && (type == 184 || type == 1735 || type == 1868))
49887 {
49888 num3 -= (float)manaGrabRange;
49889 }
49890 if (player.lifeMagnet && (type == 58 || type == 1734 || type == 1867))
49891 {
49892 num3 -= (float)lifeGrabRange;
49893 }
49894 if (type == 4143)
49895 {
49896 num3 -= (float)manaGrabRange;
49897 }
49898 if (num2 > num3)
49899 {
49900 num2 = num3;
49902 }
49903 }
49904 }
49905 }
49906 if (playerIndexTheItemIsReservedFor != num && ((num == Main.myPlayer && Main.netMode == 1) || (num == 255 && Main.netMode == 2) || (num != 255 && !Main.player[num].active)))
49907 {
49908 NetMessage.SendData(21, -1, -1, null, whoAmI);
49909 if (active)
49910 {
49911 NetMessage.SendData(22, -1, -1, null, whoAmI);
49912 }
49913 }
49914 }
static double Abs(double value)
Vector2 position
Definition Entity.cs:14
static int manaGrabRange
Definition Item.cs:103
static int lifeGrabRange
Definition Item.cs:105
int playerIndexTheItemIsReservedFor
Definition Item.cs:231
float shimmerTime
Definition Item.cs:324
int ownIgnore
Definition Item.cs:125
int keepTime
Definition Item.cs:129

References System.Math.Abs(), Terraria.Entity.active, Terraria.Player.CanPullItem(), Terraria.Entity.height, Terraria.Main.item, Terraria.Player.ItemSpace(), Terraria.Item.keepTime, Terraria.Item.lifeGrabRange, Terraria.Player.lifeMagnet, Terraria.Item.manaGrabRange, Terraria.Player.manaMagnet, Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.Item.ownIgnore, Terraria.Main.player, Terraria.Item.playerIndexTheItemIsReservedFor, Terraria.Entity.position, Terraria.NetMessage.SendData(), Terraria.Item.shimmerTime, Terraria.NPC.sWidth, Terraria.Item.type, Terraria.Entity.whoAmI, Terraria.Entity.width, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.