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

◆ DropSelectedItem() [2/2]

void Terraria.Player.DropSelectedItem ( int slot,
ref Item theItemWeDrop )
inline

Definition at line 4327 of file Player.cs.

4328 {
4329 bool flag = false;
4330 if (theItemWeDrop.favorited)
4331 {
4332 theItemWeDrop = GetItem(whoAmI, theItemWeDrop, GetItemSettings.GetItemInDropItemCheck);
4333 if (slot == 58)
4334 {
4335 Main.mouseItem = theItemWeDrop;
4336 }
4337 Recipe.FindRecipes();
4338 if (theItemWeDrop.type == 0)
4339 {
4340 flag = true;
4341 }
4342 }
4343 if (!flag)
4344 {
4345 Item item = new Item();
4346 if (((Main.mouseRight && !mouseInterface && Main.mouseRightRelease) || !Main.playerInventory) && Main.mouseItem.type > 0 && Main.mouseItem.stack > 0)
4347 {
4349 theItemWeDrop = Main.mouseItem;
4350 delayUseItem = true;
4351 controlUseItem = false;
4352 }
4353 if (whoAmI == Main.myPlayer && theItemWeDrop.type == 5095)
4354 {
4355 LucyAxeMessage.Create(LucyAxeMessage.MessageSource.ThrownAway, base.Top, new Vector2(direction * 7, -2f));
4356 }
4357 int num = Item.NewItem(GetItemSource_Misc(4), (int)position.X, (int)position.Y, width, height, theItemWeDrop.type);
4358 theItemWeDrop.position = Main.item[num].position;
4359 Main.item[num] = theItemWeDrop;
4360 theItemWeDrop = new Item();
4361 if (slot == 58)
4362 {
4363 Main.mouseItem = new Item();
4364 }
4365 Item item2 = Main.item[num];
4366 if (Main.netMode == 0)
4367 {
4368 item2.noGrabDelay = 100;
4369 }
4370 item2.velocity.Y = -2f;
4371 item2.velocity.X = (float)(4 * direction) + velocity.X;
4372 item2.favorited = false;
4373 item2.newAndShiny = false;
4374 if (((Main.mouseRight && !mouseInterface) || !Main.playerInventory) && Main.mouseItem.type > 0)
4375 {
4377 Main.mouseItem = new Item();
4378 }
4379 else
4380 {
4381 SetItemAnimation(10);
4382 JustDroppedAnItem = true;
4384 }
4385 Recipe.FindRecipes();
4386 if (Main.netMode == 1)
4387 {
4388 NetMessage.SendData(21, -1, -1, null, num);
4389 }
4390 }
4391 }
Vector2 velocity
Definition Entity.cs:16
Vector2 position
Definition Entity.cs:14
static void Create(MessageSource source, Vector2 position, Vector2 velocity)
void SetItemAnimation(int frames)
Definition Player.cs:3769
Item GetItem(int plr, Item newItem, GetItemSettings settings)
Definition Player.cs:37130
bool mouseInterface
Definition Player.cs:1137
bool JustDroppedAnItem
Definition Player.cs:2015
void DropSelectedItem_InterruptActionsThatUseAnimations()
Definition Player.cs:4405
IEntitySource GetItemSource_Misc(int itemSourceId)
Definition Player.cs:9287
bool delayUseItem
Definition Player.cs:1483
bool controlUseItem
Definition Player.cs:1391

References Terraria.Player.controlUseItem, Terraria.GameContent.LucyAxeMessage.Create(), Terraria.Player.delayUseItem, Terraria.Entity.direction, Terraria.Player.DropSelectedItem_InterruptActionsThatUseAnimations(), Terraria.Recipe.FindRecipes(), Terraria.Player.GetItem(), Terraria.GetItemSettings.GetItemInDropItemCheck, Terraria.Player.GetItemSource_Misc(), Terraria.Entity.height, System.item, Terraria.Main.item, Terraria.Player.JustDroppedAnItem, Terraria.Player.mouseInterface, Terraria.Main.mouseItem, Terraria.Main.mouseRight, Terraria.Main.mouseRightRelease, Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.Item.NewItem(), Terraria.Main.playerInventory, Terraria.Entity.position, Terraria.NetMessage.SendData(), Terraria.Player.SetItemAnimation(), Terraria.Entity.velocity, Terraria.Entity.whoAmI, Terraria.Entity.width, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.