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

◆ FillAmmo()

Item Terraria.Player.FillAmmo ( int plr,
Item newItem,
GetItemSettings settings )
inline

Definition at line 37067 of file Player.cs.

37068 {
37069 for (int i = 54; i < 58; i++)
37070 {
37071 if (inventory[i].type <= 0 || inventory[i].stack >= inventory[i].maxStack || !newItem.IsTheSameAs(inventory[i]))
37072 {
37073 continue;
37074 }
37075 SoundEngine.PlaySound(7, (int)position.X, (int)position.Y);
37076 if (newItem.stack + inventory[i].stack <= inventory[i].maxStack)
37077 {
37078 inventory[i].stack += newItem.stack;
37079 if (!settings.NoText)
37080 {
37081 PopupText.NewText(PopupTextContext.RegularItemPickup, newItem, newItem.stack);
37082 }
37083 DoCoins(i);
37084 if (plr == Main.myPlayer)
37085 {
37086 Recipe.FindRecipes();
37087 }
37088 settings.HandlePostAction(inventory[i]);
37089 return new Item();
37090 }
37091 newItem.stack -= inventory[i].maxStack - inventory[i].stack;
37092 if (!settings.NoText)
37093 {
37094 PopupText.NewText(PopupTextContext.RegularItemPickup, newItem, inventory[i].maxStack - inventory[i].stack);
37095 }
37097 DoCoins(i);
37098 if (plr == Main.myPlayer)
37099 {
37100 Recipe.FindRecipes();
37101 }
37102 settings.HandlePostAction(inventory[i]);
37103 }
37104 if (newItem.CanFillEmptyAmmoSlot())
37105 {
37106 for (int j = 54; j < 58; j++)
37107 {
37108 if (inventory[j].type == 0)
37109 {
37110 newItem.shimmered = false;
37111 inventory[j] = newItem;
37112 if (!settings.NoText)
37113 {
37114 PopupText.NewText(PopupTextContext.RegularItemPickup, newItem, newItem.stack);
37115 }
37116 DoCoins(j);
37117 SoundEngine.PlaySound(7, (int)position.X, (int)position.Y);
37118 if (plr == Main.myPlayer)
37119 {
37120 Recipe.FindRecipes();
37121 }
37122 settings.HandlePostAction(inventory[j]);
37123 return new Item();
37124 }
37125 }
37126 }
37127 return newItem;
37128 }
static void PlaySound(int type, Vector2 position, int style=1)
Vector2 position
Definition Entity.cs:14
int stack
Definition Item.cs:149
int maxStack
Definition Item.cs:151
void DoCoins(int i)
Definition Player.cs:37047
Item[] inventory
Definition Player.cs:1257

References Terraria.Recipe.FindRecipes(), Terraria.GetItemSettings.HandlePostAction(), Terraria.Item.maxStack, Terraria.Main.myPlayer, Terraria.PopupText.NewText(), Terraria.GetItemSettings.NoText, Terraria.Audio.SoundEngine.PlaySound(), Terraria.Item.stack, and System.type.